在 CentOS 上安装和配置 OpenNebula

我们提到的云计算一般有三种类型:软件即服务(Software as a Service, SaaS),平台即服务(Platform as a Service, PaaS)和基础架构即服务(Infrastructure as a Service, IaaS)。云概念刚出来的时候被人说的云里雾里摸不着头,现在云技术已经深入人心,也许你正在使用云而自己没有察觉呢,比如每天使用的 Gmail 就在 Google 大云上。为了更好理解这三种不同的云,我们可以拿 Google 来举例,刚好这家公司提供了三种形式的云服务,首先看 SaaS,Google Gmail/Docs/Gtalk/Maps 这些 Apps 都运行在 Google 云上,所以他们为普通用户提供了 “软件即服务”;Google 同时提供面向开发人员的 AppEngine,可以让开发人员在他们的平台(Platform)上使用 Python, Java 等语言和他们提供的 API 开发软件和服务,所以他们为开发人员提供了 “平台即服务”;Google 自己内部构建了基于 GFS, BigTable, MapReduce 之上的庞大基础云设施,为自己内部人员提供了 “基础架构即服务”,这就是三种不同类型的云。

OpenNebula 是一套开源的云计算基础管理工具,用来方便管理员在数据中心统一部署、创建、分配和管理大量的虚拟机,企业数据中心可以利用这套工具搭建自己的私有云,为自己内部提供 IaaS 服务,类似的开源产品还有 Eucalyptus, openQRM 等。以下的安装过程在 VPSee 的两台装有 CentOS 5.5 系统的服务器上完成,一台服务器做 OpenNubula 前端(node00),另一台服务器用来做节点(node01),搭建一个最小的 “云”,如果想扩展这个云的话,只需要逐步增加节点(node02, node03, …)就可以了。如果对其他类似的开源云计算平台感兴趣的话可以看看:在 Ubuntu 上安装和配置 OpenStack Nova 见 .

安装和配置前端(Front-End)

增加 CentOS Karan 源:

# cd /etc/yum.repos.d
# wget
# 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
# 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_config
RSAAuthentication 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):

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/07403c2cba95a761f9f93b8a4fbeb652.html