controller上安裝計算服務nova


1.3.4.p_w_picpath的服務管理html

glance p_w_picpath-create命令html5

glance p_w_picpath-create命令用於添加新的虛擬機鏡像至glance中,glance p_w_picpath-update 命令用於修改已經完成更新的鏡像的屬性信息。python

p_w_picpath-create命令至少要接收三個參數:--name --container_format--disk_format。 其中--disk_format用於指明磁盤鏡像文件的格式,包括rawqcow2vhdvmdkisovdiakiariami等。--container_format用於代表鏡像文件是否包含了虛擬機的元數據信息,然而,目前compute服務並未使用此信息,所以,在不肯定的狀況下能夠將其指定爲bare,而經常使用的格式主要有bare(沒有container或元數據信息)、ovfakiariami幾種。linux

 

鏡像元數據git

glance p_w_picpath-createglance p_w_picpath-update命令的--property key=value參數可以爲鏡像文件附加元數據信息,而經常使用的屬性主要有:github

architecture: hypervisor必須支持CPU架構,如x866_64arm數據庫

hypervisor_type: hypervisor類型,其可以使用的值包括xenqemukvmlxcumlvmwarehyper-vpowervm;ubuntu

vm_mode:定義虛擬機模式,即應用於虛擬機的host/guest ABI;例如hvmxenumlexevim

xenAPI還有其專用的兩個屬性能夠定義:windows

autho_disk_config:布爾型屬性值,true表示在虛擬機實例啓動前磁盤的根分區將被自動調整;

os_type:p_w_picpath中安裝的操做系統類型,如linux,windows等,xenAPI可以根據此屬性值來執行不一樣的操做,若是爲windows則建立fat32格式的交換分區、限制其主機名稱少於16個字符等。

VmwareAPI也有以下三個專用屬性能夠定義:

vmware_adaptertype:定義hypervisor使用的虛擬scsiIDE接口類型,其有效值爲lsiLogicbusLogicide;

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。在qemukvm中測試時,官方建議使用qcow2格式的鏡像文件。

Ubuntu鏡像

Canonical官方提供了基於Ubuntu的系列鏡像,登陸名爲ubuntu,下載地址爲http://uec-p_w_picpaths.ubuntu.com。 在QEMUKVM中部署時,建議使用qcow2格式的鏡像文件

Fedora鏡像

Fedora官方提供了預製的Fedora JEOS映像,下載地址爲http://berrange.fedorapeople.org/p_w_picpaths,目前最新的是爲x86_64平臺提供的QCOW2格式的映像.

OpenSUSESLES11鏡像

經過SUSE Studiohttp://susestudio.com)能夠很方便的爲OpenSUSESLES11構建與Openstack兼容的虛擬應用,好比建立一個OpenSUSE12.1JEOS鏡像

Rackspace雲生成器鏡像

Rackspace雲生成器(https://github.com/rackerjoe/oz-p_w_picpath-build)提供了多種發行版預製的預製鏡像,如RedHatCentosFedoraUbuntu

1.3.6.製做鏡像的專用工具

OzKVM:Oz是可以爲常見Linux發行版建立映像文件的命令行工具,Rackspace就是使用Oz建立的鏡像文件。在Fedora Projectwiki中,提供了使用Oz建立鏡像文件的案例,具體請參照:

https://fedoraproject.org/wiki/Getting_started_with_Openstack_Nova#Building_an_Image_with_Oz

VMBuilderKVM,Xen:VMBuilder可以爲不一樣的hypervisor建立虛擬機鏡像文件,它是一個腳本,可以自動收集所需的資源爲虛擬機建立鏡像文件,Ubuntu爲之提供了一個使用案例,具體請參照http://help.ubuntu.com/12.04/serverguide/jeos-and-vmbuilder.html

VeeWeeKVM:VeeWee一般用於建立Vagrant虛擬工做環境,一種基於VirtualboxVmwareAWS等虛擬化技術的虛擬化工具,VeeWee也能夠用於建立KVM鏡像

p_w_picpathfactoryAeolus項目的一款工具,用於自動化建立,轉換及爲不一樣的雲服務商的鏡像文件,支持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.

一、使用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)

一、受權訪問新建立的數據庫。

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-openrc

一、建立計算服務憑證

建立onva用戶

[root@Controller /]# openstack user create --domain default --password-prompt nova

wKiom1nGWBPi0An3AAB3-40wWcU169.png-wh_50

nova用戶加入到admin角色和service項目

[root@Controller ~]# openstack role add --project service --user nova admi

建立nova服務項目

[root@Controller ~]# openstack service create --name nova  --description "OpenStack Compute" compute

wKiom1nGWE7C3rEgAABAzxpGtl4940.png-wh_50

一、建立計算服務service endpoints
openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1

wKioL1nGWDeCUu5CAACcOFJX0mM604.png-wh_50

一、建立Placement用戶

[root@Controller ~]# openstack user create --domain default --password-prompt placement

wKioL1nGWZ3x2ZI8AAB8dyzZ2cE963.png-wh_50

一、添加Placement用戶到admin角色

[root@Controller /]# openstack role add --project service --user placement admin

一、建立placement API服務項

[root@Controller /]# openstack service create --name placement --description "Placement API" placement

wKiom1nGWgjg3SwcAABgklMOd8k985.png-wh_50

一、建立Placement API service endpoints:

[root@Controller /]# openstack endpoint create --region RegionOne placement public http://controller:8778

wKioL1nGWfOyFO5KAACPA1NzNkc386.png-wh_50

[root@Controller /]# openstack endpoint create --region RegionOne placement internal http://controller:8778

wKiom1nGWkKAMbReAACWQP5MuGc997.png-wh_50

安裝和配置nova

一、安裝包

[root@Controller /]# yum install openstack-nova-api openstack-nova-conductor   openstack-nova-console oopenstack-nova-novncproxy   openstack-nova-scheduler openstack-nova-placement-api  -y

wKioL1nGWibxj7O8AAAIMrDEmuU525.png-wh_50

  [api_database][database]部分配置數據庫鏈接

wKiom1nGWm6zMpSSAAAQuDWpdsM503.png-wh_50

[DEFAULT]部分配置到RabbitMQ消息隊列的訪問

transport_url = rabbit://openstack:123456@controller

wKioL1nGWkigh5CUAAAN326tkQE031.png-wh_50

[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

wKiom1nGWpvj2560AAAZb2WXNR0884.png-wh_50

auth_strategy=keystone  去掉#號

my_ip = 10.0.0.11  添加

use_neutron = True

firewall_driver = nova.virt.firewall.NoopFirewallDriver


wKiom1nGWqzgoxF1AAAiYVQu2uc213.png-wh_50

[vnc]部分配置VNC代理,使用controller管理接口IP地址

[vnc]

enabled = true

vncserver_listen = $my_ip

vncserver_proxyclient_address = $my_ip

wKioL1nGWoGxtz5MAAA7OxzH08E670.png-wh_50

[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

wKiom1nGWsuAW685AAAXk6SPDZM315.png-wh_50

爲了解決包的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>

wKioL1nGWrKQTRyoAAAXk6SPDZM766.png-wh_50

從新啓動httpd服務

[root@Controller /]# systemctl restart httpd

一、初始nova_api數據庫

[root@Controller /]# su -s /bin/sh -c "nova-manage api_db sync" nova

一、建立cell

[root@Controller /]# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova

一、初始nova數據庫

root@Controller /]# su -s /bin/sh -c "nova-manage db sync" nova
一、檢查nova cell0和cell1是否正確註冊
[root@Controller /]# nova-manage cell_v2 list_cells

wKioL1nGWwKAxNdqAABs8dthVOo225.png-wh_50

[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)。爲簡單起見,這個配置使用帶KVMQEMU擴展計算節點,須要硬件支持虛擬機的硬件加速。在傳統的硬件,這樣的配置使用通用的QEMU虛擬機管理程序。

安裝和配置:

一、安裝包

[root@compute/]# yum install openstack-nova-compute

一、編輯和配置/etc/nova/nova.conf完成如下設置

[DEFAULT]部分激活僅computemetadata APIs:

enabled_apis = osapi_compute,metadata

wKiom1nGW3eg-rtBAAAcyXNBhuA450.png-wh_50

[DEFAULT]部分配置到RabbitMQ消息隊列的訪問

wKioL1nGW1KB5rhOAAAMvoI_VGM944.png-wh_50

[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

wKioL1nGW2-z7Rc8AAAHJIU43Cc347.png-wh_50

若是返回的值爲1或者更大,說明你的計算節點支持硬件加速,一般不須要額外配置,若是返回的值爲0,說明你的計算節點不支持硬件加速,你必須將libvirt配置爲QEMU,來替代默認的KVM。編輯/etc/nova/nova.conf文件:

virt_type=qemu  修改

二、啓動計算服務,包括它的依賴項,並配置它們在系統啓動時自動啓動:

[root@Controller /]# systemctl enable libvirtd.service openstack-nova-compute.service
[root@Controller /]# systemctl start libvirtd.service openstack-nova-compute.service

若是不能正常啓動,通常是controller上的消息服務的5672端口被拒絕訪問,配置防火牆容許便可。

添加計算節點到cell數據庫

操做在controller節點上

一、提供admin管理憑證以便操做命令,而後確認數據庫中有計算主機:

[root@Controller ~]# source  admin-openrc
[root@Controller ~]# openstack compute service list --service nova-compute

wKiom1nGW8ySAjqnAABVLb90gsQ144.png-wh_50

一、發現計算主機

[root@Controller /]# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

wKioL1nGW7KxHu94AACYPzb8a_8396.png-wh_50

當你添加新的計算節點,你必需要在控制節點上運行nova-manage cell_v2 discover_hosts」命令來註冊這些新的計算節點。或者,你能夠在配置文件中設置一個適當的時間間隔:/etc/nova/nova.conf,默認是不自動發現,單位是秒。

[scheduler]

discover_hosts_in_cells_interval = 300

wKiom1nGW_qwJcyZAAAkDZIhILo701.png-wh_50

檢查操做

  檢查計算服務的操做,在控制節點上執行如下命令:

一、執行admin命令行運行環境

[root@Controller ~]# source admin-openrc

一、列出服務組件,以驗證成功啓動和註冊的每一個進程

[root@Controller ~]# openstack compute service list

wKioL1nGW-LBB5bVAACGxikh3aY748.png-wh_50

其輸處中有3個服務組件是激活在控制節點,一個服務組件是激活在計算節點

一、列出身份服務中的API endpoints,以驗證與身份服務的連通性,顯示結果和安裝的組件有關。

[root@Controller ~]# openstack catalog list

wKioL1nGW_jDtELUAABrKhiMNaE296.png-wh_50

一、列出鏡像服務的列表,檢查和鏡像服務的連通性

[root@Controller ~]# openstack p_w_picpath list

wKiom1nGXEjjVEyYAAAzYJzW7tA858.png-wh_50

一、檢查cellsplacement API是否成功工做

[root@Controller ~]#  nova-status upgrade check

wKioL1nGXCSTMAusAABRh8Tl0Sw160.png-wh_50

後期更新OpenStack網絡neutron

相關文章
相關標籤/搜索