在CentOS上安裝和配置OpenStack Nova
因?yàn)?Python 的版本問(wèn)題,在 CentOS 5.6 上安裝 OpenStack 不是件容易的事情,因?yàn)?OpenStack 是 Python 2.6 寫(xiě)的,CentOS 5.6 上默認(rèn)的是 Python 2.4 的環(huán)境,一些關(guān)鍵工具(比如 yum 等)和依賴關(guān)系都需要 2.4,不容易直接升級(jí)到 2.6,所以要在 CentOS 上安裝 OpenStack 的話簡(jiǎn)單的辦法是直接用 CentOS 6.0(默認(rèn)是 Python 2.6). OpenStack 的基本介紹以及如何在 Ubuntu 上安裝 OpenStack Nova 可以看:在 Ubuntu 上安裝和配置 OpenStack Nova. 對(duì)云計(jì)算平臺(tái)感興趣的朋友可以看看另一個(gè)開(kāi)源的云計(jì)算系統(tǒng):在 CentOS 上安裝和配置 OpenNebula.
安裝和配置基本系統(tǒng)
在安裝完基本的 CentOS 6.0 系統(tǒng)后(最小化安裝)升級(jí)和更新整個(gè)系統(tǒng),然后關(guān)閉 SELINUX 后重啟,為了簡(jiǎn)單方便最好也關(guān)閉 iptables:
# yum update # yum upgrade # vi /etc/sysconfig/selinux SELINUX=disabled # chkconfig iptables off # service iptables stop # shutdown -r now
安裝 OpenStack Nova
下載和安裝 OpenStack 源:
# wget http://yum.griddynamics.net/yum/diablo-3/openstack/openstack-repo-2011.3-0.3.noarch.rpm # rpm -ivh openstack-repo-2011.3-0.3.noarch.rpm
OpenStack Nova 需要在控制結(jié)點(diǎn)(Cloud Controller)和計(jì)算結(jié)點(diǎn)(Cloud Compute)上都安裝和啟用 libvirtd:
# yum install libvirt # chkconfig libvirtd on # service libvirtd start
如果服務(wù)器用來(lái)做 Cloud Controller 結(jié)點(diǎn)需要安裝(OpenStack Nova 云里至少要有一臺(tái)服務(wù)器作為控制結(jié)點(diǎn)):
# yum install euca2ools openstack-nova-node-full unzip
如果服務(wù)器只是做計(jì)算結(jié)點(diǎn)則需要在每個(gè) Cloud Compute 結(jié)點(diǎn)上都安裝(理論上 OpenStack Nova 云里可以有無(wú)數(shù)個(gè)計(jì)算結(jié)點(diǎn)):
# yum install euca2ools openstack-nova-node-full
配置 MySQL 數(shù)據(jù)庫(kù)
OpenStack Nova 需要數(shù)據(jù)庫(kù)的支持,這里用的是 MySQL:
# service mysqld start # chkconfig mysqld on # service rabbitmq-server start # chkconfig rabbitmq-server on
修改 MySQL 綁定地址,以便其他的節(jié)點(diǎn)服務(wù)器也能訪問(wèn)這個(gè)數(shù)據(jù)庫(kù):
# vi /etc/my.cnf ... #bind-address = 127.0.0.1 bind-address = 0.0.0.0 ... # service mysql restart
創(chuàng)建一個(gè)名為 nova 的數(shù)據(jù)庫(kù),并設(shè)置 root 從任何 IP 訪問(wèn)的權(quán)限和密碼:
# mysql -uroot -ppassword -e 'CREATE DATABASE nova;' # mysql -uroot -ppassword -e "GRANT ALL PRIVILEGES ON *.* TO \ 'root'@'%' WITH GRANT OPTION;" # mysql -uroot -ppassword -e "SET PASSWORD FOR \ 'root'@'%' = PASSWORD('password');"
配置 Nova:
$ sudo vi /etc/nova/nova.conf --verbose=false --ec2_url=http://172.16.39.111:8773/services/Cloud --s3_host=172.16.39.111 --cc_host=172.16.39.111 --rabbit_host=172.16.39.111 --sql_connection=mysql://nova:nova@172.16.39.111/nova --glance_api_servers=172.16.39.111:9292 --use_s3=true --libvirt_type=kvm --use_syslog=false --node_availability_zone=nova --logdir=/var/log/nova --logging_context_format_string=%(asctime)s %(name)s: %(levelname)s [%(request_id)s %(user)s %(project)s] %(message)s --logging_default_format_string=%(asctime)s %(name)s: %(message)s --logging_debug_format_suffix= --use_cow_images=true --auth_driver=nova.auth.dbdriver.DbDriver --network_manager=nova.network.manager.VlanManager --scheduler_driver=nova.scheduler.zone.ZoneScheduler --image_service=nova.image.glance.GlanceImageService --use_ipv6=false --ca_path=/var/lib/nova/CA --keys_path=/var/lib/nova/keys --images_path=/var/lib/nova/images --buckets_path=/var/lib/nova/buckets --instances_path=/var/lib/nova/instances --networks_path=/var/lib/nova/networks --dhcpbridge_flagfile=/etc/nova/nova.conf --dhcpbridge=/usr/bin/nova-dhcpbridge --injected_network_template=/usr/share/nova/interfaces/ --libvirt_xml_template=/usr/share/nova/libvirt.xml.template --vpn_client_template=/usr/share/nova/client.ovpn.template --credentials_template=/usr/share/nova/novarc.template --state_path=/var/lib/nova --lock_path=/var/lib/nova/tmp --vnc_enabled=true --vncproxy_url=http://172.16.39.111:6080 --vncserver_host=0.0.0.0 --vnc_token_ttl=300
每次重啟一堆服務(wù)很麻煩,寫(xiě)個(gè)腳本方便重啟 nova 所有服務(wù):
# vi nova-restart-all.sh #!/bin/bash for n in api compute network objectstore scheduler vncproxy; do service openstack-nova-$n restart; done service openstack-glance-api restart service openstack-glance-registry restart # chmod +x nova-restart-all.sh # ./nova-restart-all.sh
使用 Nova
接下來(lái)的步驟和在 Ubuntu 上安裝和配置 OpenStack Nova 差不多,這里就不再贅述:
# nova-manage db sync # nova-manage network create 192.168.0.0/24 1 255 # nova-manage floating create 10.10.10.2 10.10.10.224/27 # nova-manage user admin vpsee # nova-manage project create mycloud vpsee
導(dǎo)出權(quán)限信息:
# mkdir /home/vpsee/creds # nova-manage project zipfile mycloud vpsee /home/vpsee/creds/novacreds.zip # cd /home/vpsee/creds # unzip novacreds.zip # chown -R vpsee:vpsee /home/vpsee/creds/ # source /home/vpsee/creds/novarc
再次重啟 nova 相關(guān)的所有服務(wù):
# ./nova-restart-all.sh
如果一切正常的話,應(yīng)該可以看到下面的類似信息,這樣 OpenStack Nova 就成功安裝了:
# euca-describe-availability-zones verbose AVAILABILITYZONE nova available AVAILABILITYZONE |- node00 AVAILABILITYZONE | |- nova-network enabled :-) 2011-08-16 19:28:13 AVAILABILITYZONE | |- nova-compute enabled :-) 2011-08-16 19:28:22 AVAILABILITYZONE | |- nova-scheduler enabled :-) 2011-08-16 19:28:14
啟動(dòng)第一個(gè)實(shí)例
啟動(dòng)實(shí)例之前需要先上傳一個(gè)系統(tǒng)模版(稱之為鏡像 image),自己制作 image 有點(diǎn)麻煩,可以參考:為 OpenStack Nova 制作 Ubuntu 鏡像 和 為 OpenStack Nova 制作 Windows 鏡像。
有了 image 后就可以啟動(dòng)實(shí)例了,就像在 C++/Java 等面向?qū)ο笳Z(yǔ)言里面有了類(class)以后可以創(chuàng)建實(shí)例(instance)一樣,這里有了 OS image 以后就可以創(chuàng)建 OS instance 了。啟動(dòng)和訪問(wèn)實(shí)例可以看這篇的相關(guān)部分。
原文:http://www.vpsee.com/2011/08/install-openstack-nova-on-centos/
【編輯推薦】