您好,登錄后才能下訂單哦!
今天小編給大家分享一下CentOS下怎么安裝并配置OpenNebula的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
OpenNebula 是一款為云計算而打造的開源工具箱。它允許你和 Xen、KVM 或 VMware、ESX 一起建立和管理私有云, 同時還提供 Deltacloud 適配器與 Amazon EC2 相配合來管理混合云。
以下的安裝過程在 VPSee 的兩臺裝有 CentOS 5.5 系統的服務器上完成,一臺服務器做 OpenNubula 前端(node00),另一臺服務器用來做節點(node01),搭建一個最小的 “云”,如果想擴展這個云的話,只需要逐步增加節點(node02, node03, …)就可以了。
增加 CentOS Karan 源:
# cd /etc/yum.repos.d# wget http://centos.karan.org/kbsingh-CentOS-Extras.repo# yum update
安裝 OpenNebula 需要的軟件包以及編譯 OpenNebula 源代碼所需的工具:
# yum install gcc gcc-c++ make openssl-devel flex bison# yum install ruby ruby-devel ruby-docs ruby-ri ruby-irb ruby-rdoc# yum install rubygems# gem install nokogiri rake xmlparser# yum install scons# yum install xmlrpc-c xmlrpc-c-devel
CentOS 自帶的 sqlite 版本不行,需要下載和編譯 sqlite 3.6.17 版本:
# wget http://www.sqlite.org/sqlite-amalgamation-3.6.17.tar.gz# tar xvzf sqlite-amalgamation-3.6.17.tar.gz# cd sqlite-3.6.17/# ./configure; make; make install
下載和編譯 opennebula 2.0.1 源碼包后,解壓、編譯和安裝:
# tar zxvf opennebula-2.0.1.tar.gz# cd opennebula-2.0.1# scons# ./install.sh -d /srv/cloud/one# ls /srv/cloud/one/bin etc include lib share var
啟動 OpenNebula 前需要配置 ONE_AUTH 環境變量,這個環境變量從 $HOME/.one/one_auth 這個文件讀取,所以要先創建 one_auth 這個文件后再啟動 one(OpenNebula 服務程序):
# cd /root/# mkdir .one# cd .one/# echo "oneadmin:password" > one_auth# one start
OpenNebula 支持 KVM, Xen 和 VMware 三種虛擬技術,我們還需要告訴 OpenNebula 我們想用哪種,并重啟 one 以便配置生效:
# vi /etc/one/oned.conf... IM_MAD = [ name = "im_xen", executable = "one_im_ssh", arguments = "xen" ] VM_MAD = [ name = "vmm_xen", executable = "one_vmm_ssh", arguments = "xen", default = "vmm_ssh/vmm_ssh_xen.conf",type = "xen" ] ...# one stop# one start
安裝和配置節點(Compute Node)
需要在每個 node 上都安裝 Xen 或 KVM 的虛擬環境,具體請參考:在 CentOS 上安裝和配置 Xen 和 在 CentOS 上安裝和配置 KVM,還需要 ruby 運行環境:
# yum install ruby交換 ssh Key 因為 OpenNebula Front 和 Nodes 之間是通過 SSH 通訊的,所以 front 和 nodes 之間要設置成 SSH 無密碼登錄避免 front 運行 node 上腳本或克隆鏡像的時候輸入密碼,首先在 front 和 nodes 上配置 sshd:# vi /etc/ssh/sshd_configRSAAuthentication yes PubkeyAuthentication yes# /etc/init.d/sshd restart在 front (node00) 上創建 key 后拷貝到 node (node01):# ssh-keygen -t rsa# ssh-copy-id -i ~/.ssh/id_rsa.pub node01在1個 node (node01) 上創建 key 后拷貝到 front (node00):# ssh-keygen -t rsa# ssh-copy-id -i ~/.ssh/id_rsa.pub node00onehost front 和 每個 node 都能無密碼 ssh 溝通后,就可以在 front 上 onehost create 命令來逐個加入 node,并用 onehost list 來查看是否創建成功:# onehost create node01 im_xen vmm_xen tm_ssh# onehost listID NAME CLUSTER RVM TCPU FCPU ACPU TMEM FMEM stat1 node01 default 0 400 400 400 3.8G 383M on
如果執行 onehost create 報錯,查看 oned.log 日志發現 sudo: sorry, you must have a tty to run sudo 字樣,原因則是 OpenNebula 需要遠程 ssh/sudo 執行命令,而 CentOS 的 sudo 選項 requiretty 是默認打開的,ssh 需要一個 tty 才能執行,所以遠程 sudo 就會出錯:
# onehost create node01 im_xen vmm_xen tm_ssh# tail /var/log/one/oned.logTue Feb 22 11:08:58 2011 [InM][I]: command execution fail: 'if [ -x "/var/tmp/one/im/run_probes" ]; then /var/tmp/one/im/run_probes xen 172.16.39.111; else exit 42; fi'Tue Feb 22 11:08:58 2011 [InM][I]: STDERR follows. Tue Feb 22 11:08:58 2011 [InM][I]: sudo: sorry, you must have a tty to run sudo Tue Feb 22 11:08:58 2011 [InM][I]: Error executing xen.rb ...
解決辦法就是關閉(注釋掉) requiretty 這行:
# chmod 600 /etc/sudoers# vi /etc/sudoers#Defaults requiretty
因為 VPSee 的這兩臺服務器使用了 HTTP 代理上網,所以 OpenNebula 讀取了系統的 http_proxy 環境變量,在 sched.log 日志里發現了 HTTP response 錯誤,這時候需要關閉 http_proxy:
# cat /var/log/one/sched.logTue Feb 22 14:27:39 2011 [host][E]: Exception raised: Unable to transport XML to server and get XML response back. HTTP response: 504Tue Feb 22 14:27:39 2011 [POOL][E]: Could not retrieve pool info from ONE# unset http_proxyonevnet創建和編輯虛擬網絡配置文件,然后創建一個 OpenNebula 虛擬網絡:# vi small_network.netNAME = "Small network"TYPE = FIXEDBRIDGE = br0LEASES = [ ip="192.168.0.5"]LEASES = [ IP="192.168.0.6"]LEASES = [ IP="192.168.0.7"]# onevnet create small_network.net# onevnet listID USER NAME TYPE BRIDGE P #LEASES0 oneadmin Small network Fixed br0 N 0onevm
創建和編輯虛擬機的啟動配置文件,這里的 centos.5.5.x86.img 可以從 http://stacklet.com/ 下載(收費)或者自己利用 Xen 工具創建一個:
# wget http://stacklet.com/sites/default/files/centos/centos.5.5.x86.img.tar.bz2# tar jxvf centos.5.5.x86.img.tar.bz2# mv centos.5.5.x86.img /srv/cloud/one/var/images/# vi centos.oneNAME = centos CPU = 1 MEMORY = 256 DISK = [source = "/srv/cloud/one/var/images/centos.5.5.x86.img", target = "sda1",clone = "yes",readonly = "no" ] NIC = [ MAC = "00:16:3E:00:02:64", bridge = xenbr0 ] OS = [ bootloader = "/usr/bin/pygrub" ] 用 onevm create 命令啟動上面的 VM 配置文件,就會在 node01 上創建一個虛擬機,用 onevm list 查看會看到 prol 狀態,表示正在創建過程中,創建完畢后狀態會變成 runn:# onevm create centos.one# onevm listID USER NAME STAT CPU MEM hostname time 1 oneadmin centos prol 0 0K node01 00 00:09:09# onevm listID USER NAME STAT CPU MEM HOSTNAME TIME 1 oneadmin centos runn 0 0K node01 00 00:22:17
就這樣,我們在 node00 (front) 和 node01 (node) 這兩臺服務器上部署了一個最小的云,并且在 node01 上運行了一個基于 Xen 的虛擬機實例。
以上就是“CentOS下怎么安裝并配置OpenNebula”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。