歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux配置

CentOS下OpenStack Nova安裝和配置

      OpenStack 是由 Rackspace 和 NASA 共同開發的雲計算平台,幫助服務商和企業內部實現類似於 Amazon EC2 和 S3 的雲基礎架構服務(Infrastructure as a Service, IaaS)。OpenStack 包含兩個主要模塊:Nova 和 Swift,前者是 NASA 開發的虛擬服務器部署和業務計算模塊;後者是 Rackspack 開發的分布式雲存儲模塊,兩者可以一起用,也可以分開單獨用。OpenStack 是開源項目,除了有 Rackspace 和 NASA 的大力支持外,後面還有包括 Dell, Citrix, Cisco, Canonical 這些重量級公司的貢獻和支持,發展速度非常快,有取代另一個業界領先開源雲平台 Eucalyptus 的態勢。

      因為 Python 的版本問題,在 CentOS 5.6 上安裝 OpenStack 不是件容易的事情,因為 OpenStack 是 Python 2.6 寫的,CentOS 5.6 上默認的是 Python 2.4 的環境,一些關鍵工具(比如 yum 等)和依賴關系都需要 2.4,不容易直接升級到 2.6,所以要在 CentOS 上安裝 OpenStack 的話簡單的辦法是直接用 CentOS 6.0(默認是 Python 2.6)

安裝和配置基本系統

在安裝完基本的 CentOS 6.0 系統後(最小化安裝)升級和更新整個系統,然後關閉 SELINUX 後重啟,為了簡單方便最好也關閉 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 需要在控制結點(Cloud Controller)和計算結點(Cloud Compute)上都安裝和啟用 libvirtd:
# yum install libvirt
# chkconfig libvirtd on
# service libvirtd start

如果服務器用來做 Cloud Controller 結點需要安裝(OpenStack Nova 雲裡至少要有一台服務器作為控制結點):
# yum install euca2ools openstack-nova-node-full unzip

如果服務器只是做 Cloud Compute 結點則需要在每個計算結點上都安裝(理論上 OpenStack Nova 雲裡可以有無數個計算結點):
# yum install openstack-nova-node-compute

配置 MySQL 數據庫

OpenStack Nova 需要數據庫的支持,這裡用的是 MySQL:

# service mysqld start
# chkconfig mysqld on
# service rabbitmq-server start
# chkconfig rabbitmq-server on

修改 MySQL 綁定地址,以便其他的節點服務器也能訪問這個數據庫:
# vi /etc/my.cnf
...
#bind-address           = 127.0.0.1
bind-address            = 0.0.0.0
...

# service mysql restart

創建一個名為 nova 的數據庫,並設置 root 從任何 IP 訪問的權限和密碼:
# 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:[email protected]/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

每次重啟一堆服務很麻煩,寫個腳本方便重啟 nova 所有服務:
# 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

# 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

導出權限信息:
# 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 相關的所有服務:
# ./nova-restart-all.sh

如果一切正常的話,應該可以看到下面的類似信息,這樣 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
Copyright © Linux教程網 All Rights Reserved