1.opennebula簡介
OpenNebula是一款為雲計算而打造的開源工具箱。它允許你與Xen,KVM或VMware ESX一起建立和管理私有雲,同時還提供Deltacloud擴充卡與Amazon EC2相配合來管理混合雲。
目前可支援XEN、KVM和VMware,以及實時存取EC2和 ElasticHosts,它也支援印象檔的傳輸、複制和虛拟網絡管理網絡。
OpenNebula可以建構私有雲、混合雲、公開雲。
Opennebula總體架構圖:

關于opennebula更加詳細介紹請參考:http://www.open-open.com/news/view/1e4272e
2.opennebula的搭建
環境:Centos6.4 x86_64
需要源碼包:ruby-2.0.0-p247.tar.gz opennebula-4.2.0.tar.gz
控制節點主機IP:192.168.0.127
計算節點主機IP:192.168.0.204
(1)在控制節點和計算節點主機上:
建立oneadmin使用者和屬組,并且設定oneadmin使用者的密碼:
groupadd -g 600 oneadmin
useradd -u 600 -g oneadmin oneadmin
設定oneadmin使用者的密碼(這裡設為:oneadmin):
passwd oneadmin
配置oneadmin使用者,使其具有sudo權限:
vim /etc/sudoers
#在原來的root使用者下,增加如下一行
oneadmin ALL=(ALL) NOPASSWD: ALL
#注釋掉
#Defaults requiretty
(2)配置控制節點和計算節點之間的互信,即ssh不要密碼即可互相通信:
# su - oneadmin
$ssh-keygen -t rsa #出現提示一路回車即可
此時在.ssh目錄下生成兩個檔案,即公鑰和私鑰:
$ cat .ssh/id_dsa.pub >> .ssh/authorized_keys
$ chmod 644 ~/.ssh/authorized_keys
$ chmod 755 ~/.ssh
$vi ~/.ssh/config
StrictHostKeyChecking no
$ chmod 600 ~/.ssh/config
$sudo scp -r ~/.ssh [email protected]:~/
//拷貝過程需要輸入密碼,輸入oneadmin即可
(3)測試兩台主機的互通性:
不需要輸入密碼即可登入192.168.0.204主機。
(4)在控制節點安裝需要的軟體包:
# yum install gcc gcc-c++ make openssl-devel flex bison og4cpp log4cpp-devel
# yum install xmlrpc-c xmlrpc-c-devel libxslt scons
# yum install mysql-server mysql-devel.x86_64 sqlite-devel.x86_64
(5)控制節點環境變量設定:
#su - oneadmin
$ mkdir ~/.one
$ vi ~/.one/one_auth //登入密碼存放位置
oneadmin:oneadmin
$ vim ~/.bash_profile
export ONE_LOCATION=/opt/nebula/ONE
export ONE_AUTH=$HOME/.one/one_auth
export ONE_XMLRPC=http://localhost:2633/RPC2
export PATH=$ONE_LOCATION/bin:$PATH:.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:.
(6)在控制節點和計算節點上執行如下操作,用sda3作為datastore,可以根據自己實際情況而定:
# mkdir /data0
# mount /dev/sda3 /data0
# chown oneadmin:oneadmin /data0 -R
(7)編譯安裝opennebula:
ruby安裝:
由于直接yum install ruby,由于版本低的原因,可能導緻opennebula無法正常安裝,需要從http://www.ruby-lang.org/en/downloads下載下傳ruby-2.0.0-p247.tar.gz進行源碼編譯安裝:
$tar -xvf ruby-2.0.0-p247.tar.gz
$cd ruby-2.0.0-p247
$./configure
$make && make install
opennebula安裝:
$tar -xvf opennebula-4.2.0.tar.gz
$cd opennebula-4.2.0
$scons -j2 mysql=yes syslog=yes
$/install.sh -d /opt/nebula/ONE
$cd share/install_gems
$./install_gems sunstone
出現如下安裝界面:
根據實際情況選擇操作。
注意:如果gem install --no-ri --no-rdoc rack sinatra thin sqlite3 nokogiri出現問題或者長時間沒反映,查了一下,說是被和諧了,建議使用使用taobao的,具體操作如下:
$ gem sources --remove https://rubygems.org/
$ gem sources -a http://ruby.taobao.org/
$ gem sources -l
然後重新執行$./install_gems sunstone,即可完成安裝。
(8)啟動mysql服務,并建立opennebula庫:
#service mysqld start
#mysqladmin -uroot password '123456' // 設定mysql登入密碼
(9)修改opennebula的配置檔案
vim /opt/nebula/ONE/etc/oned.conf //opennebula的主要配置檔案
#DB = [ backend = "sqlite" ]
# Sample configuration for MySQL // 修改資料庫為mysql,并修改mysql的通路密碼
DB = [ backend = "mysql",
server = "localhost",
port = 0,
user = "root",
passwd = "123456",
db_name = "opennebula" ]
修改datastores的路徑:
DATASTORE_LOCATION = /data0
儲存退出。
vim /opt/nebula/ONE/etc/sunstone-server.conf //web登入管理界面配置檔案
修改host即可。
然後以oneadmin使用者啟動:
$one start
$sunstone-server start
檢視程序:
(10)浏覽器登入:http://192.168.0.127:9869
會出現如下界面:
輸入使用者名和密碼,即可完成登入。
管理界面如下圖,預設為英文界面,4.2版本支援中文設定。
3.實體主機的添加:
在計算節點主機上:
(1)建立oneadmin使用者和屬組
設定oneadmin使用者的密碼(這裡設為:oneadmin)
配置oneadmin使用者,使其具有sudo權限
建立組 "libvirt"
groupadd libvirt
将oneadmin 添加到組 libvirt
usermod -a -G libvirt oneadmin
(2)安裝kvm
#yum install ruby kvm
#ln -sf /usr/libexec/qemu-kvm /usr/bin/kvm
(3)安裝libvirt:
#wget http://libvirt.org/sources/libvirt-1.0.6.tar.gz
#tar zxf libvirt-1.0.6.tar.gz
#cd libvirt-1.0.6
#yum -y install libnl-devel libxml2-devel device-mapper-devel libpciaccess-devel python-devel
#yum -y remove libvirt
#./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc
#make; make install; ldconfig; cd ..
#service libvirtd start
#chkconfig libvirtd on
(4)修改配置檔案:
vim /etc/libvirt/libvirtd.conf
unix_sock_group = "libvirt"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
(5)建立新政策檔案
#mkdir -p /etc/polkit-1/localauthority/50-local.d/
#vi /etc/polkit-1/localauthority/50-local.d/org.libvirt.unix.monitor.pkla
[Allow fred libvirt management permissions]
Identity=unix-user:oneadmin
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes
儲存退出
#/etc/init.d/libvirtd restart
(6)進行實體主機的添加,此過程可在web界面操作:
在基礎設施欄選擇實體機,進行主機添加: