1.opennebula简介

OpenNebula是一款为云计算而打造的开源工具箱。它允许你与Xen,KVM或VMware ESX一起建立和管理私有云,同时还提供Deltacloud适配器与Amazon EC2相配合来管理混合云。

目前可支持XEN、KVM和VMware,以及实时存取EC2和 ElasticHosts,它也支持印象档的传输、复制和虚拟网络管理网络。

OpenNebula可以构建私有云、混合云、公开云。

Opennebula总体架构图:

opennebula搭建之初尝试_linux kvm 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目录下生成两个文件,即公钥和私钥:

opennebula搭建之初尝试_linux kvm opennebula_02


$ 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 oneadmin@192.168.0.204:~/

//拷贝过程需要输入密码,输入oneadmin即可

(3)测试两台主机的互通性:

opennebula搭建之初尝试_linux kvm opennebula_03

不需要输入密码即可登录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进行源码编译安装:

#su - oneadmin

$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  

出现如下安装界面:

opennebula搭建之初尝试_linux kvm opennebula_04

根据实际情况选择操作。

注意:如果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登录密码

opennebula搭建之初尝试_linux kvm opennebula_05

(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登录管理界面配置文件

opennebula搭建之初尝试_linux kvm opennebula_06

修改host即可。

然后以oneadmin用户启动:

$one start

$sunstone-server start

opennebula搭建之初尝试_linux kvm opennebula_07

查看进程:

opennebula搭建之初尝试_linux kvm opennebula_08

(10)浏览器登录:http://192.168.0.127:9869

会出现如下界面:

opennebula搭建之初尝试_linux kvm opennebula_09


输入用户名和密码,即可完成登录。

管理界面如下图,默认为英文界面,4.2版本支持中文设置。

opennebula搭建之初尝试_linux kvm opennebula_10


3.物理主机的添加:

在计算节点主机上:

(1)创建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

新建组 "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界面操作:

在基础设施栏选择物理机,进行主机添加:

opennebula搭建之初尝试_linux kvm opennebula_11

ps:opennebula安装操作过程对用户的要求比较严格,一定注意root和oneadmin用户之间的切换。后续会继续介绍虚拟主机的安装及操作。