这是一份草稿
OpenNebula 4.4
OpenNebula 是一个成熟及稳定的云端管理软件,它可从一个云端节点延展至数千个实体节点。你可用它来创建私人、公共或混合式云端。此指南会协助你在 CentOS 上著手创建一个 OpenNebula 云端。
整个安装过程中共有两个独立角色:前端及点节。前端服务器负责执行 OpenNebula 服务,而节点是用来运行虚拟机器。请注意你可以遵照此指引在一台主机上集前端及点节的角色于一身。然而我们推荐在拥有虚拟扩展的主机上运行虚拟机器。若要测试你的主机是否支持虚拟扩展,请执行:
grep -E 'svm|vmx' /proc/cpuinfo
假如你看不见任何输出,你的服务器多数不支持/未启用虚拟扩展。
OpenNebula 内的命令行工具及其它资源都统称为 one 工具。
1. 组件安排
OpenNebula 提供这些主要组件:
opennebula-server:OpenNebula 守护程序
opennebula:OpenNebula 命令行的指令
opennebula-sunstone:OpenNebula 网页使用界面
opennebula-ozones: OpenNebula 网页使用界面
opennebula-java:OpenNebula Java API
opennebula-node-kvm:安装 OpenNubla 在点节上所依赖的组件
opennebula-gate: 从虚拟机器发放信息给 OpenNebula
opennebula-flow: 管理 OpenNebula 服务
opennebula-context: OpenNebula 客端组件
除此以外还有 opennebula-common 及 opennebula-ruby,但他们的用途是作为依赖性组件。opennebula-occi,一个管理云端的表征状态转移(RESTful)服务,已经包含在 opennebula-sunstone 组件内。
2. 前端上的安装
2.1. 安装软件库
TODO: 软件库数据。
要确保该软件库已顺利地安装,你可执行:
# yum repolist
2.2. 安装所须组件
完整安装后的 OpenNebula 至少包括 opennebula-server 及 opennebula-sunstone 组件:
# yum install opennebula-server opennebula-suntone
2.3. 设置及引导服务
你必须引导两个主程序:OpenNebula 的守护程序 oned 及图像界面 sunstone。
基于安全性理由,Sunstone 缺省只会在 loopback 界面上聆听。要更改的话,你可编辑 /etc/one/sunstone-server.conf 并把 :host: 127.0.0.1 改为 :host: 0.0.0.0。
现在我们可以引导服务:
# service opennebula start # service opennebula-sunstone start
3. 设置 NFS
如果你以同一台服务器扮演前端及工作节点的角色,你可略过这部份。
从前端输出 /var/lib/one/ 至工作节点。要这样做,把以下内容加进前端的 /etc/exports 档内:
/var/lib/one/ *(rw,sync,no_subtree_check,root_squash)
更新 NFS 输出的文件:
# service rpcbind restart # service nfs restart
4. 设置 SSH 公钥
OpenNebula 要求在无需口令的情况下从任何一个节点(包括前端)SSH 至另一个节点。
以 oneadmin 的身份把以下内容加进 ~/.ssh/config 内,防止它提示你把金钥加进 known_hosts 档内:
# su - oneadmin $ cat << EOT > ~/.ssh/config Host * StrictHostKeyChecking no UserKnownHostsFile /dev/null EOT $ chmod 600 ~/.ssh/config
5. 节点上的安装
5.1. 安装软件库
TODO: 软件库数据。
要确保该软件库已顺利地安装,你可执行:
# yum repolist
5.2. 安装所须组件
# yum install opennebula-node-kvm
引导所须的服务:
# service messagebus start # service libvirtd start
5.3. 设置网络
请先备份此部份所修改的每个文件,然后才作出改动。
你须要把你的主界面,一般是 eth0,连接至一道桥。该道桥的名称在所有节点上都必须是相同的。
要这样的话,请把 /etc/sysconfig/network-scripts/ifcfg-eth0 变为:
DEVICE=eth0 BOOTPROTO=none NM_CONTROLLED=no ONBOOT=yes TYPE=Ethernet BRIDGE=br0
然后新增一个 /etc/sysconfig/network-scripts/ifcfg-br0 文件。
如果你的 eth0 采用 DHCP,请使用这个范本:
DEVICE=br0 TYPE=Bridge ONBOOT=yes BOOTPROTO=dhcp NM_CONTROLLED=no
假若你采用固定 IP 位置,请使用以下范本:
DEVICE=br0 TYPE=Bridge IPADDR=<YOUR_IPADDRESS> NETMASK=<YOUR_NETMASK> ONBOOT=yes BOOTPROTO=static NM_CONTROLLED=no
完成这些改动后,重新引导网络:
# service network restart
6. 设置 NFS
<1> 如果你以同一台服务器扮演前端及工作节点的角色,你可略过这部份。
挂载被输出的存储区。在你的 /etc/fstab 内加入以下内容:
192.168.1.1:/var/lib/one/ /var/lib/one/ nfs soft,intr,rsize=8192,wsize=8192,noauto
以前端的 IP 取代 192.168.1.1。
挂载 NFS 共享文件:
# mount /var/lib/one/
7. 基本操作
此部份中所有操作均能以 Sunstone 代替命令行来完成。请把你的浏览器指向:http://frontend:9869。
oneadmin 用户的缺省口令已收录在 ~/.one/one_auth,它是在安装时随机产生出来的。
要操作 OpenNebula,你需要通过 oneadmin 帐户来进行。我们会假设以下所有指令都是在该帐户下执行的。请执行 su - oneadmin 来登录为 oneadmin。
7.1. 新增主机
要开始使用虚拟机器,你首先要在 OpenNebula 登记工作节点。
你要替每个节点执行这个指令。请以节点的主机名称取代 localhost。
$ onehost create localhost -i kvm -v kvm -n dummy
执行 onehost list 直至节点已被引导。要是它失败了,你大概是在 ssh 设置上出了错。请检查 /var/log/one/oned.log。
7.2. 新增虚拟资源
当一切能运作后,你必须创建一个网络范本、一个映像范本、及一个虚拟机器范本。
创建网络时,我们要先创建一个名为 mynetwork.one 的网络范本档,当中含有:
NAME = "private" TYPE = FIXED BRIDGE = br0 LEASES = [ IP=192.168.0.100 ] LEASES = [ IP=192.168.0.101 ] LEASES = [ IP=192.168.0.102 ]
请以主机网络内的空置 IP 取代上述租约。租约的数量不限。
现在我们可以进一步在 OpenNebula 下创建资源:
$ onevnet create mynetwork.one $ oneimage create --name "CentOS-6.4_x86_64" \ --path "http://us.cloud.centos.org/i/one/c6-x86_64-20130910-1.qcow2.bz2" \ --driver qcow2 \ --datastore default $ onetemplate create --name "CentOS-6.4" --cpu 1 --vcpu 1 --memory 512 \ --arch x86_64 --disk "CentOS-6.4_x86_64" --nic "private" --vnc \ --ssh
你必须等待至该映像成为可用为止。请执行 oneimage list 来监视它的状况。
为求能随时把 ssh 金钥加进虚拟机器内,我们必须编辑用户范本并把自己的 ssh 金钥新增至其中:
$ EDITOR=vi oneuser update oneadmin
请在范本内加入如下的一行:
SSH_PUBLIC_KEY="ssh-dss AAAAB3NzaC1kc3MAAACBANBWTQmm4Gt..."
请以 cat ~/.ssh/id_dsa.pub 的输出取代上述的值。
7.3. 执行一台虚拟机器
要引导一台虚拟机器,你必须把范本实例化:
$ onetemplate instantiate "CentOS-6.4" -n "My Scratch VM"
执行 onevm list 并显示虚拟机器由 PENDING 转为 PROLOG 再转为 RUNNING。假若虚拟机器失效,请在日志内寻找原因:/var/log/one/<VM_ID>/vm.log。
8. 支持及排除疑难
日志的位置在 /var/log/one。排除疑难时切记要检查它们。如果你需要协助,上游可通过他们的主要http://opennebula.org/support:社群支持渠道来帮你。
9. 更多信息
Translation of revision 10