在Ubuntu上安裝和配置OpenStack Nova
OpenStack 是由 Rackspace 和 NASA 共同開發(fā)的云計算平臺,幫助服務(wù)商和企業(yè)內(nèi)部實現(xiàn)類似于 Amazon EC2 和 S3 的云基礎(chǔ)架構(gòu)服務(wù)(Infrastructure as a Service, IaaS)。OpenStack 包含兩個主要模塊:Nova 和 Swift,前者是 NASA 開發(fā)的虛擬服務(wù)器部署和業(yè)務(wù)計算模塊;后者是 Rackspack 開發(fā)的分布式云存儲模塊,兩者可以一起用,也可以分開單獨用。OpenStack 是開源項目,除了有 Rackspace 和 NASA 的大力支持外,后面還有包括 Dell、Citrix、 Cisco、 Canonical 這些重量級公司的貢獻(xiàn)和支持,發(fā)展速度非???,有取代另一個業(yè)界領(lǐng)先開源云平臺 Eucalyptus 的態(tài)勢。

OpenStack 是 Python 2.6 寫的,CentOS 5.6 上默認(rèn)的是 Python 2.4 的環(huán)境并且還有很多依賴關(guān)系不容易升級到 2.6,所以在 Ubuntu 上安裝會簡單一些,而且 Ubuntu 是 OpenStack 的官方首選系統(tǒng),文檔都是按 Ubuntu 寫的,所以這里 VPSee 采用最新的 Ubuntu 11.04 Server 64bit 版本來安裝和配置 OpenStack Nova. 如果對其他類似的開源云計算平臺感興趣的話可以看看:在 CentOS 上安裝和配置 OpenNebula.
配置網(wǎng)絡(luò)
在安裝完基本的 Ubuntu 11.04 Server 系統(tǒng)后升級和更新整個系統(tǒng),安裝完 bridge-utils 包后重啟系統(tǒng):
$ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install bridge-utils $ sudo reboot
配置網(wǎng)橋:
$ sudo vi /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 172.16.39.111 netmask 255.255.254.0 gateway 172.16.38.1 auto br100 iface br100 inet static bridge_ports eth1 bridge_stp off bridge_maxwait 0 bridge_fd 0 address 192.168.0.1 netmask 255.255.0.0 broadcast 192.168.255.255
安裝 NTP 服務(wù)
OpenStack Nova 需要 NTP 服務(wù)器來保持所有節(jié)點服務(wù)器(Cloud Compute)的時間同步,所以需要在前端控制服務(wù)器(Cloud Controller)上安裝 NTP 服務(wù)器,然后在節(jié)點服務(wù)器上安裝 NTP 客戶端保持與前端的同步:
$ sudo apt-get install ntp $ sudo vi /etc/ntp.conf server 127.127.1.0 fudge 127.127.1.0 stratum 10 $ sudo /etc/init.d/ntp restart
#p#
安裝和配置 MySQL 數(shù)據(jù)庫
OpenStack Nova 需要數(shù)據(jù)庫的支持,這里選用 MySQL(當(dāng)然也可以用其他的數(shù)據(jù)庫,比如 PostgreSQL 等):
$ sudo apt-get install mysql-server
修改 MySQL 綁定地址,以便其他的節(jié)點服務(wù)器也能訪問這個數(shù)據(jù)庫:
$ sudo vi /etc/mysql/my.cnf ... #bind-address = 127.0.0.1 bind-address = 0.0.0.0 ... $ sudo /etc/init.d/mysql restart
創(chuàng)建一個名為 nova 的數(shù)據(jù)庫,并設(shè)置 root 從任何 IP 訪問的權(quán)限和密碼:
$ sudo mysql -uroot -ppassword -e 'CREATE DATABASE nova;' $ sudo mysql -uroot -ppassword -e "GRANT ALL PRIVILEGES ON *.* TO \ 'root'@'%' WITH GRANT OPTION;" $ sudo mysql -uroot -ppassword -e "SET PASSWORD FOR \ 'root'@'%' = PASSWORD('password');"
安裝 Glance 鏡像服務(wù)
Glance 是個鏡像服務(wù)器,用來給 OpenStack Nova 提供操作系統(tǒng)鏡像(image)服務(wù),提供可選擇的操作系統(tǒng)模版(鏡像)。
$ sudo apt-get install glance
安裝 OpenStack Nova
OpenStack Nova 已經(jīng)進(jìn)入 Ubuntu 11.04 源,所以直接安裝就可以了,不必源碼安裝:
$ sudo apt-get install rabbitmq-server nova-common nova-doc python-nova nova-api nova-network nova-volume nova-objectstore nova-scheduler nova-compute $ sudo apt-get install -y euca2ools $ sudo apt-get install -y unzip
配置 Nova:
$ sudo vi /etc/nova/nova.conf --dhcpbridge_flagfile=/etc/nova/nova.conf --dhcpbridge=/usr/bin/nova-dhcpbridge --logdir=/var/log/nova --state_path=/var/lib/nova --lock_path=/var/lock/nova --verbose --s3_host=172.16.39.111 --rabbit_host=192.168.0.1 --cc_host=192.168.0.1 --ec2_url=http://172.16.39.111:8773/services/Cloud --fixed_range=192.168.0.0/16 --network_size=8 --FAKE_subdomain=ec2 --routing_source_ip=192.168.0.1 --sql_connection=mysql://root:password@172.16.39.111/nova --glance_host=192.168.0.1 --image_service=nova.image.glance.GlanceImageService
重啟 nova 相關(guān)服務(wù)以便設(shè)置生效:
$ sudo restart libvirt-bin; sudo restart nova-network; sudo restart nova-compute; sudo restart nova-api; sudo restart nova-objectstore; sudo restart nova-scheduler; sudo restart nova-volume; sudo restart glance-api; sudo restart glance-registry
#p#
使用 Nova
開始使用 Nova 前需要創(chuàng)建 nova 數(shù)據(jù)庫表、創(chuàng)建網(wǎng)絡(luò)、創(chuàng)建管理員帳號、創(chuàng)建云并聯(lián)到剛才創(chuàng)建的管理員上:
$ sudo nova-manage db sync $ sudo nova-manage network create 192.168.0.0/24 1 255 $ sudo nova-manage floating create 10.10.10.2 10.10.10.224/27 $ sudo nova-manage user admin vpsee $ sudo nova-manage project create mycloud vpsee
因為多個管理員可以創(chuàng)建多個不同的云,所以某個云的管理員需要特定的權(quán)限才能訪問和管理自己的 Nova 云,創(chuàng)建權(quán)限信息,并解壓到自己的目錄里,需要注意的是每次使用 nova 管理云的時候都需要讀取 novarc 里面的配置信息:
$ mkdir /home/vpsee/creds $ sudo nova-manage project zipfile mycloud vpsee /home/vpsee/creds/novacreds.zip $ cd /home/vpsee/creds $ unzip novacreds.zip $ sudo chown -R vpsee:vpsee /home/vpsee/creds/ $ source /home/vpsee/creds/novarc
每次用 nova 的時候都要用到 novarc 里面的環(huán)境變量,每次 source novarc 很麻煩,所以最好加到 .bashrc 里面:
$ cat /home/vpsee/creds/novarc >> /home/vpsee/.bashrc $ source /home/vpsee/.bashrc
再次重啟 nova 相關(guān)的所有服務(wù):
$ sudo restart libvirt-bin; sudo restart nova-network; sudo restart nova-compute; sudo restart nova-api; sudo restart nova-objectstore; sudo restart nova-scheduler; sudo restart nova-volume; sudo restart glance-api; sudo restart glance-registry
如果一切正常的話,應(yīng)該可以打印出如下的類似信息:
$ euca-describe-availability-zones verbose AVAILABILITYZONE nova available AVAILABILITYZONE |- node00 AVAILABILITYZONE | |- nova-scheduler enabled :-) 2011-05-22 10:32:31 AVAILABILITYZONE | |- nova-network enabled :-) 2011-05-22 10:32:32 AVAILABILITYZONE | |- nova-compute enabled :-) 2011-05-22 10:32:24
啟動第一個實例
啟動實例之前需要先上傳一個系統(tǒng)模版,我們稱之為鏡像(image),自己制作操作系統(tǒng)鏡像有點麻煩,這里直接使用一個已經(jīng)做好的 Ubuntu 10.10 版本鏡像,下載已經(jīng)做好的鏡像文件并上傳到鏡像服務(wù)器(這里鏡像服務(wù)器和前端服務(wù)器在同一臺物理服務(wù)器上):
$ wget http://c0179148.cdn1.cloudfiles.rackspacecloud.com/ubuntu1010-UEC-localuser-image.tar.gz $ uec-publish-tarball ubuntu1010-UEC-localuser-image.tar.gz ubuntu1010-bucket x86_64
列出云里現(xiàn)有的可以加載的鏡像,并以某個鏡像(比如編號為 ami-00000003)為模版啟動一個實例(操作系統(tǒng)):
$ euca-describe-images IMAGE aki-00000001 ubuntu1010-bucket/vmlinuz-2.6.32-28-server.manifest.xml available public x86_64 kernel IMAGE ari-00000002 ubuntu1010-bucket/initrd.img-2.6.32-28-server.manifest.xmavailable public x86_64 ramdisk IMAGE ami-00000003 ubuntu1010-bucket/maverick-server-uec-amd64.img.manifest.xml available public x86_64 machine aki-00000001 ari-00000002 $ euca-run-instances -k mykey -t m1.tiny ami-00000003
檢查一下實例是否成功啟動和運行:
$ virsh list Id Name State ---------------------------------- 1 instance-00000001 running
訪問實例
啟動實例后怎么訪問呢?和訪問 VPS 一樣,需要 IP 地址然后 ssh 訪問,還記得上面的網(wǎng)絡(luò)配置么,新創(chuàng)建的系統(tǒng)將按照 192.168.0.x 的形式分配 IP,所以 192.168.0.3 就是剛剛 euca-run-instances 創(chuàng)建的實例的 IP 地址:
$ ssh ubuntu@192.168.0.3
原文:http://www.vpsee.com/2011/05/install-openstack-nova-on-ubuntu/
【編輯推薦】