[FrontPage] [TitleIndex] [WordIndex

This is a read-only archived version of wiki.centos.org

<!> 这是一份草稿

OpenNebula 4.4

OpenNebula 是一个成熟及稳定的云端管理软件,它可从一个云端节点延展至数千个实体节点。你可用它来创建私人、公共或混合式云端。此指南会协助你在 CentOS 上著手创建一个 OpenNebula 云端。

整个安装过程中共有两个独立角色:前端点节。前端服务器负责执行 OpenNebula 服务,而节点是用来运行虚拟机器。请注意你可以遵照此指引在一台主机上集前端及点节的角色于一身。然而我们推荐在拥有虚拟扩展的主机上运行虚拟机器。若要测试你的主机是否支持虚拟扩展,请执行:

grep -E 'svm|vmx' /proc/cpuinfo

假如你看不见任何输出,你的服务器多数不支持/未启用虚拟扩展。

OpenNebula 内的命令行工具及其它资源都统称为 one 工具。

1. 组件安排

OpenNebula 提供这些主要组件:

除此以外还有 opennebula-commonopennebula-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


2023-09-11 07:23