controller上安装计算服务nova
1.3.4.p_w_picpath的服務管理
glance p_w_picpath-create命令
glance p_w_picpath-create命令用于添加新的虛擬機鏡像至glance中,glance p_w_picpath-update 命令用于修改已經完成更新的鏡像的屬性信息。
p_w_picpath-create命令至少要接收三個參數:--name 、--container_format、--disk_format。 其中--disk_format用于指明磁盤鏡像文件的格式,包括raw,qcow2,vhd,vmdk,iso,vdi,aki,ari,ami等。--container_format用于表明鏡像文件是否包含了虛擬機的元數據信息,然而,目前compute服務并未使用此信息,因此,在不確定的情況下可以將其指定為bare,而常用的格式主要有bare(沒有container或元數據信息)、ovf、aki、ari或ami幾種。
?
鏡像元數據
glance p_w_picpath-create或glance p_w_picpath-update命令的--property key=value參數能夠為鏡像文件附加元數據信息,而常用的屬性主要有:
architecture: hypervisor必須支持CPU架構,如x866_64、arm等
hypervisor_type: hypervisor類型,其能夠使用的值包括xen、qemu、kvm、lxc、uml、vmware、hyper-v及powervm;
vm_mode:定義虛擬機模式,即應用于虛擬機的host/guest ABI;例如hvm,xen,uml,exe等
xenAPI還有其專用的兩個屬性可以定義:
autho_disk_config:布爾型屬性值,true表示在虛擬機實例啟動前磁盤的根分區將被自動調整;
os_type:p_w_picpath中安裝的操作系統類型,如linux,windows等,xenAPI能夠根據此屬性值來執行不同的操作,如果為windows則創建fat32格式的交換分區、限制其主機名稱少于16個字符等。
Vmware的API也有如下三個專用屬性可以定義:
vmware_adaptertype:定義hypervisor使用的虛擬scsi或IDE接口類型,其有效值為lsiLogic,busLogic及ide;
vmware_ostype:Vmware GuestID,用于描述映像文件中的操作系統類型:vmware所支持的類型較多,可以參照thinkvirt.com獲取詳細信息,默認值為otherGuest;
vmware_p_w_picpath_version:目前未使用,默認值為1;
1.3.5.獲取虛擬機鏡像
CirrOS(test)鏡像
由Scott Moser維護的一系列用于測試目的的微型虛擬機映像,登錄名為cirros,下載地址為https://launchpad.net/cirros/+download。在qemu或kvm中測試時,官方建議使用qcow2格式的鏡像文件。
Ubuntu鏡像
Canonical官方提供了基于Ubuntu的系列鏡像,登錄名為ubuntu,下載地址為http://uec-p_w_picpaths.ubuntu.com。 在QEMU或KVM中部署時,建議使用qcow2格式的鏡像文件
Fedora鏡像
Fedora官方提供了預制的Fedora JEOS映像,下載地址為http://berrange.fedorapeople.org/p_w_picpaths,目前最新的是為x86_64平臺提供的QCOW2格式的映像.
OpenSUSE和SLES11鏡像
通過SUSE Studio(http://susestudio.com)可以很方便的為OpenSUSE和SLES11構建與Openstack兼容的虛擬應用,比如創建一個OpenSUSE12.1的JEOS鏡像
Rackspace云生成器鏡像
Rackspace云生成器(https://github.com/rackerjoe/oz-p_w_picpath-build)提供了多種發行版預制的預制鏡像,如RedHat,Centos,Fedora,Ubuntu等
1.3.6.制作鏡像的專用工具
Oz(KVM):Oz是能夠為常見Linux發行版創建映像文件的命令行工具,Rackspace就是使用Oz創建的鏡像文件。在Fedora Project的wiki中,提供了使用Oz創建鏡像文件的案例,具體請參照:
https://fedoraproject.org/wiki/Getting_started_with_Openstack_Nova#Building_an_Image_with_Oz
VMBuilder(KVM,Xen):VMBuilder能夠為不同的hypervisor創建虛擬機鏡像文件,它是一個腳本,能夠自動收集所需的資源為虛擬機創建鏡像文件,Ubuntu為之提供了一個使用案例,具體請參照http://help.ubuntu.com/12.04/serverguide/jeos-and-vmbuilder.html
VeeWee(KVM):VeeWee通常用于創建Vagrant虛擬工作環境,一種基于Virtualbox,Vmware,AWS等虛擬化技術的虛擬化工具,VeeWee也可以用于創建KVM鏡像
p_w_picpathfactory:Aeolus項目的一款工具,用于自動化創建,轉換及為不同的云服務商的鏡像文件,支持openstack云
?
若要為openstack定制鏡像,鏡像文件要與Openstack兼容,需要顧及很多方面的因素。
1.3.7.支持元數據服務或配置驅動(config drive)
openstack支持的映像文件必須能夠由openstack獲取到其元數據信息,如ssh公鑰以及用戶在請求鏡像文件時提交的用戶數據等。這些元數據信息可以通過元數據服務或配置驅動獲取,最簡單的方式莫過于在映像文件中安裝cloud-init程序。cloud-init用于為云實例提供配置及定制功能,項目地址為:http://launchpad.net/cloud-init。
1.3.8.支持對磁盤鏡像大小進行調整
虛擬機鏡像文件的磁盤大小有創建鏡像時的初始大小決定,然而openstack需要在啟動實例時通過指定不同的flavor來使用不同大小的磁盤空間。例如,有著磁盤初始大小為5G的鏡像文件,在用于創建實例時使用了m1.small這個flavor,虛擬機實例將需要一個大小為10G磁盤,調整實例的磁盤大小是,通過在其尾部填0來完成。
鏡像文件的分區大小也需要能夠根據用戶的需要在實例啟動時進行調整,否則,在實例啟動后,為了能夠訪問有flavor的配置指定的超出磁盤原始大小的其他空間就不得不手動去調整分區大小,因此在實例啟動時,映像文件需要運行一個腳本以修改分區表,并運行相應的程序(如resize2fs等)調整文件系統,使得其能夠適應新的分區大小。
?
Compute service overview 計算服務概述
OpenStack用于對主機的計算和管理云計算系統。OpenStack的計算是一個基礎設施即服務(IaaS)系統的一個重要組成部分。主要模塊是用python實現的。
OpenStack計算與OpenStack身份驗證交互用來完成認證;OpenStack鏡像服務用于磁盤和服務器鏡像;用戶和管理接口為OpenStack Dashboard。鏡像訪問受到項目和用戶的限制,每個項目的配額是有限的(例如,實例的數量)。OpenStack計算可以在標準硬件上水平縮放,并將鏡像下載來啟動實例。
OpenStack計算包括以下領域及其組件:
nova-api service:接受并響應終端用戶計算API調用。服務支持OpenStack Compute API,亞馬遜EC2 API,以及一些特權用戶為了執行管理動作的特殊的 Admin API 。它強制執行一些策略并啟動很多編排動作,例如運行實例。
nova-api-metadata service:接受來自實例的元數據請求。當您在多主機模式下運行nova-network安裝時,通常使用它。
nova-compute service:通過hypervisor APIs來創建和終止虛擬機實例的后臺工作守護程序。例如:
XenAPI for XenServer/XCP
libvirt for KVM or QEMU
VMwareAPI for VMware
處理相當復雜。基本上,守護進程接收來自隊列的動作和執行一系列的系統命令,例如創建KVM實例并更新它的狀態到數據庫。
nova-placement-api service:跟蹤每個提供者的庫及使用情況。
nova-scheduler service:從隊列獲取虛擬機實例請求并確定它要在哪個計算服務器主機運行。
nova-conductor module:位于nova-compute和數據庫的中間層,用來避免nova-compute與數據庫直接進行交互。不要將其部署到nova-compute service運行的節點上。
nova-consoleauth daemon:授權控制臺代理提供的用戶令牌。次服務必須運行,控制臺代理服務才能工作。
nova-novncproxy daemon:通過一個VNC連接來提供一個代理訪問運行中的實例。支持基于瀏覽器的novnc客戶端。
nova-spicehtml5proxy daemon:通過一個SPICE連接來提供一個代理訪問運行中的實例。支持基于瀏覽器的HTML5客戶端。
nova-xvpvncproxy daemon:通過一個VNC連接來提供一個代理訪問運行中的實例。支持OpenStack-specific Java客戶端。
The queue
??在各進程間傳遞消息的消息隊列服務,通常使用RabbitMQ,也可以用其它的AMQP消息隊列實現,如ZeroMQ
SQL database
??存儲云基礎架構的構建時和運行時的狀態。包含:
?Available instance types
?Instances in use
?Available networks
?Projects
?
在controller上安裝計算服務nova
?
前提準備工作:
???在安裝nova之前,必須創建databases, service credentials, 和API endpoints.
1、使用root登陸數據庫
MariaDB?[(none)]>??CREATE?DATABASE?nova_api; MariaDB?[(none)]>?CREATE?DATABASE?nova; Query?OK,?1?row?affected?(0.00?sec) MariaDB?[(none)]>??CREATE?DATABASE?nova_cell0; Query?OK,?1?row?affected?(0.00?sec)1、授權訪問新創建的數據庫。
MariaDB?[(none)]>?GRANT?ALL?PRIVILEGES?ON?nova_api.*?TO?'nova'@'localhost'??IDENTIFIED?BY?'123456'; Query?OK,?1?row?affected?(0.00?sec) MariaDB?[(none)]>?GRANT?ALL?PRIVILEGES?ON?nova.*?TO?'nova'@'localhost'?IDENTIFIED?BY?'123.456'; Query?OK,?0?rows?affected?(0.00?sec) Maria?[(none)]>?GRANT?ALL?PRIVILEGES?ON?nova.*?TO?'nova'@'%'??IDENTIFIED?BY?'123.456'; Query?OK,?0?rows?affected?(0.00?sec) MariaDB?[(none)]>?GRANT?ALL?PRIVILEGES?ON?nova_cell0.*?TO?'nova'@'localhost'?IDENTIFIED?BY?'123.456'; Query?OK,?0?rows?affected?(0.00?sec) MariaDB?[(none)]>?GRANT?ALL?PRIVILEGES?ON?nova_cell0.*?TO?'nova'@'%'?IDENTIFIED?BY?'123456'; Query?OK,?0?rows?affected?(0.00?sec)[root@Controller?/]#?source?admin-openrc1、創建計算服務憑證
創建onva用戶
[root@Controller /]# openstack user create --domain default --password-prompt nova
將nova用戶加入到admin角色和service項目
[root@Controller?~]#?openstack?role?add?--project?service?--user?nova?admi創建nova服務項目
[root@Controller?~]#?openstack?service?create?--name?nova??--description?"OpenStack?Compute"?compute1、創建計算服務service?endpoints openstack?endpoint?create?--region?RegionOne?compute?internal?http://controller:8774/v2.1
1、創建Placement用戶
[root@Controller ~]# openstack user create --domain default --password-prompt placement
1、添加Placement用戶到admin角色
[root@Controller?/]#?openstack?role?add?--project?service?--user?placement?admin1、創建placement API服務項
[root@Controller?/]#?openstack?service?create?--name?placement?--description?"Placement?API"?placement1、創建Placement API service endpoints:
[root@Controller?/]#?openstack?endpoint?create?--region?RegionOne?placement?public?http://controller:8778[root@Controller?/]#?openstack?endpoint?create?--region?RegionOne?placement?internal?http://controller:8778安裝和配置nova
1、安裝包
[root@Controller?/]#?yum?install?openstack-nova-api?openstack-nova-conductor???openstack-nova-console?oopenstack-nova-novncproxy???openstack-nova-scheduler?openstack-nova-placement-api??-y??在[api_database]和[database]部分配置數據庫連接
在[DEFAULT]部分配置到RabbitMQ消息隊列的訪問
transport_url = rabbit://openstack:123456@controller
在[api]和[keystone_authtoken]部分配置身份驗證服務的訪問
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = 123456
auth_strategy=keystone??去掉#號
my_ip = 10.0.0.11 ?添加
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
在[vnc]部分配置VNC代理,使用controller管理接口IP地址
[vnc]
enabled = true
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:35357/v3
username = placement
password = 123456
為了解決包的bug,你必須將以下配置添加到/etc/httpd/conf.d/00-nova-placement-api.conf文件中,來激活Placement API的訪問
?vim /etc/httpd/conf.d/00-nova-placement-api.conf
<Directory /usr/bin>
???<IfVersion >= 2.4>
??????Require all granted
???</IfVersion>
???<IfVersion < 2.4>
??????Order allow,deny
??????Allow from all
???</IfVersion>
</Directory>
重新啟動httpd服務
[root@Controller?/]#?systemctl?restart?httpd1、初始nova_api數據庫
[root@Controller?/]#?su?-s?/bin/sh?-c?"nova-manage?api_db?sync"?nova1、創建cell
[root@Controller?/]#?su?-s?/bin/sh?-c?"nova-manage?cell_v2?create_cell?--name=cell1?--verbose"?nova1、初始nova數據庫
root@Controller?/]#?su?-s?/bin/sh?-c?"nova-manage?db?sync"?nova1、檢查nova?cell0和cell1是否正確注冊[root@Controller?/]#?nova-manage?cell_v2?list_cells[root@Controller?/]#?systemctl?enable?openstack-nova-api.service???openstack-nova-consoleauth.service?openstack-nova-scheduler.service???openstack-nova-conductor.service?openstack-nova-novncproxy.service[root@Controller?/]#?systemctl?start?openstack-nova-api.service???openstack-nova-consoleauth.service?openstack-nova-scheduler.service???openstack-nova-conductor.service?openstack-nova-novncproxy.service在compute上安裝nova
本節描述如何在計算節點上安裝和配置計算服務。服務支持多種hypervisors部署實例或虛擬機(VM)。為簡單起見,這個配置使用帶KVM的QEMU擴展計算節點,需要硬件支持虛擬機的硬件加速。在傳統的硬件,這樣的配置使用通用的QEMU虛擬機管理程序。
安裝和配置:
1、安裝包
[root@compute/]#?yum?install?openstack-nova-compute1、編輯和配置/etc/nova/nova.conf完成以下設置
在[DEFAULT]部分激活僅compute和metadata APIs:
enabled_apis = osapi_compute,metadata
在[DEFAULT]部分配置到RabbitMQ消息隊列的訪問
在[api]和[keystone_authtoken]部分配置身份驗證服務的訪問
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
password = 123456
在[DEFAULT]部分配置my_ip選項,地址指向controller管理IP地址
my_ip = 10.0.0.31
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
完成安裝
??1、確定計算節點是否支持虛擬機的硬件加速:
[root@Controller?/]#?egrep?-c?'(vmx|svm)'?/proc/cpuinfo如果返回的值為1或者更大,說明你的計算節點支持硬件加速,通常不需要額外配置,如果返回的值為0,說明你的計算節點不支持硬件加速,你必須將libvirt配置為QEMU,來替代默認的KVM。編輯/etc/nova/nova.conf文件:
virt_type=qemu ?修改
2、啟動計算服務,包括它的依賴項,并配置它們在系統啟動時自動啟動:
[root@Controller?/]#?systemctl?enable?libvirtd.service?openstack-nova-compute.service [root@Controller?/]#?systemctl?start?libvirtd.service?openstack-nova-compute.service如果不能正常啟動,一般是controller上的消息服務的5672端口被拒絕訪問,配置防火墻允許即可。
添加計算節點到cell數據庫
操作在controller節點上
1、提供admin管理憑證以便操作命令,然后確認數據庫中有計算主機:
[root@Controller?~]#?source??admin-openrc [root@Controller?~]#?openstack?compute?service?list?--service?nova-compute1、發現計算主機
[root@Controller?/]#?su?-s?/bin/sh?-c?"nova-manage?cell_v2?discover_hosts?--verbose"?nova當你添加新的計算節點,你必須要在控制節點上運行“nova-manage cell_v2 discover_hosts”命令來注冊這些新的計算節點。或者,你可以在配置文件中設置一個適當的時間間隔:/etc/nova/nova.conf,默認是不自動發現,單位是秒。
[scheduler]
discover_hosts_in_cells_interval = 300
檢查操作
??檢查計算服務的操作,在控制節點上執行以下命令:
1、執行admin命令行運行環境
[root@Controller?~]#?source?admin-openrc1、列出服務組件,以驗證成功啟動和注冊的每個進程
[root@Controller?~]#?openstack?compute?service?list其輸處中有3個服務組件是激活在控制節點,一個服務組件是激活在計算節點
1、列出身份服務中的API endpoints,以驗證與身份服務的連通性,顯示結果和安裝的組件有關。
[root@Controller?~]#?openstack?catalog?list1、列出鏡像服務的列表,檢查和鏡像服務的連通性
[root@Controller?~]#?openstack?p_w_picpath?list1、檢查cells和placement API是否成功工作
[root@Controller?~]#??nova-status?upgrade?check后期更新OpenStack網絡neutron
轉載于:https://blog.51cto.com/chaixinwang/1968056
總結
以上是生活随笔為你收集整理的controller上安装计算服务nova的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分享10个免费H5模版(主题)资源网站
- 下一篇: 能够识别扫描文字图片软件