Opennubula有兩個部分:front-end和cluster-node。front-end安裝Opennebula,用來監控安裝在cluster-node上的虛擬機器,虛擬機器鏡像以及cluster-node的狀態等。cluster-node安裝虛擬機器並負責運行虛擬機器(kvm,xen,vmware,本文使用kvm)。front-end和cluster-node是一對多的關係。
本文除非特別說明,否則都是說front-end。
本文使用Opennebula版本2.2.0
1. 安裝依賴包
#cd /etc/yum.repos.d/
#wget http://centos.karan.org/kbsingh-CentOS-Extras.repo
#wget http://centos.karan.org/kbsingh-CentOS-Misc.repo
編輯 kbsingh-CentOS-Extras.repo檔案,將它的測試庫開啟
其檔案如下:
[kbs-CentOS-Testing]
name=CentOS.Karan.Org-EL$releasever - Testing
gpgcheck=0
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
enabled=1 (將這個選項由0變為1)
baseurl=http://centos.karan.org/el$releasever/extras/testing/$basearch/RPMS/
更新庫:
#yum clean all
#yum makecache
#yum -y install glibc glibc-common glibc-devel cpp glibc-headers kernel-headers libgomp libstdc++-devel nscd gcc-c++ rpm-build yum-utils pkgconfig
#yum -y install libxml2 libxml2-devel expat expat-devel libxslt libxslt-devel openssl openssl-devel curl curl-devel
#yum -y install ruby ruby-libs ruby-devel ruby-irb ruby-docs ruby-rdoc ruby-ri rubygems cmake
2. 編譯sqlite3原始碼(版本3.6.17,沒試過其他版本)
#wget http://www.sqlite.org/sqlite-amalgamation-3.6.17.tar.gz
#tar xvzf /tmp/sqlite-amalgamation-3.6.17.tar.gz
#cd sqlite-3.6.17/
#./configure
#make
#make install
3. 安裝xmlrpc-c(如果通過yum安裝過xmlrpc*,請先卸載)
#wget http://centos.karan.org/el5/extras/testing/SRPMS/xmlrpc-c-1.06.18-1.el5.kb.src.rpm
#rpmbuild --rebuild xmlrpc-c-1.06.18-1.el5.kb.src.rpm
#yum -y --nogpgcheck localinstall /usr/src/redhat/RPMS/x86_64/xmlrpc-c-*.rpm
4. 安裝scons
#wget http://prdownloads.sourceforge.net/scons/scons-2.0.1-1.noarch.rpm
#yum -y --nogpgcheck localinstall scons-2.0.1-1.noarch.rpm
5. 安裝ruby(後續步驟用到。yum中沒有的高版本。只能再裝一個)
#wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p0.tar.gz
#tar zxvf ruby-1.9.1-p0.tar.gz
#cd ruby-1.9.1-p0
#./configure
#make
#make install
6. 安裝gems
#gem install nokogiri rake xmlparser
官網要求建立一個oneadmin的帳號,可惜後面會出現一系列許可權問題,建議直接用root安裝
7. 安裝Opennebula
#mkdir -p /srv/cloud/one
#mkidr -p /srv/cloud/images
下載Opennebula最新版本,解壓,並cd到原始碼目錄
#scons
# ./install.sh -u root -g root -d /srv/cloud/one
8. 配置環境
vim ~/.bashrc,在最後面添加
export ONE_LOCATION=/srv/cloud/one
export ONE_AUTH=$HOME/.one/one_auth
export ONE_XMLRPC=http://localhost:2633/RPC2
export PATH=/srv/cloud/one/bin:$PATH
修改完成後source ~/。bashrc使配置生效
9. 添加opennebula使用者
#mkdir ~/。one
vim ~/.one/one_auth,在裡面添加 使用者名稱:密碼,例如
cloud:cloudpassword
10. 修改Opennebula設定檔
#vi /srv/cloud/one/etc/oned.conf 將SCRIPTS_REMOTE_DIR=/srv/cloud/one/var
11. 啟動opennebula
one start
12. 啟動NFS服務
允許cluster-node掛載/srv/cloud
#yum install nfs
#vim /etc/exports,在檔案最後添加如下
/srv/cloud *(rw,sync,no_root_squash)
#exportfs -a
#/etc/rc.d/init.d/nfs restart
13.在cluster-node上安裝kvm
#yum groupinstall kvm
#reboot
(啟動後可以通過lsmod|grep kvm查看是否有啟動kvm模組)
14.在cluster-node上 安裝ruby(後續步驟用到。yum中沒有的高版本。只能再裝一個)
#wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p0.tar.gz
#tar zxvf ruby-1.9.1-p0.tar.gz
#cd ruby-1.9.1-p0
#./configure
#make
#make install
15. 在cluster-node上掛載nfs
#mount -t nfs front-end:/srv/cloud /srv/cloud (front-end替換為front-end伺服器的網域名稱或IP)
開機自動掛載
#vi /etc/fstab 在檔案最後添加上
front-end:/srv/cloud /srv/cloud nfs defaults 0 0
16. 在cluster-node上建立橋接器
為了讓front-end主機能夠連上虛擬機器,需要在cluster-node上建立橋接器
#brctl addbr virbr0 (如果kvm安裝的時候幫你建立了該橋接器,則會提示該橋接器已經存在)
i#fconfig eth0 0.0.0.0 up
#brctl addif virbr0 eth0
#ifconfig virbr0 <old_eth0_ip_address>
(這些操作要在cluster-node主機前運行,用遠端連線會掉)
到此,所有配置完成。