前面已经配置好Opennebula环境(http://blog.csdn.net/thinkingmyl/article/details/6613051)现在开始使用Opennebula
Opennebula以配置文件的方式建立虚拟机环境
1. 在Opennebula中添加cluster-node
#onehost create cluster_node_name im_kvm vmm_kvm tm_nfs
这里使用的是kvm的驱动,如果用xen请查阅其他文档。cluster_node_name是cluster-node的域名,要求直接ping这个域名能ping通,如果ping不通,请在/etc/hosts添加相关条目。通过使用onehost show查看cluster-node状态,如果为monitoring为正常工作
2. 注册虚拟机镜像。
用kvm建立一个虚拟机,为了使我们能够定制虚拟机的IP地址,域名(官方称为Contextualization),需要修改/etc/rc.local文件(这个虚拟机是fedora,同样适用redhat,centos,Ubuntu需要查找对应的文件)
在虚拟机中/etc/rc.local添加如下:
mount /dev/sr0 /mntif [ -f /mnt/context.sh ]; then
. /mnt/init.sh
fi
umount /mnt
关闭虚拟机,然后找到该虚拟机存放的位置,复制到/srv/cloud/images,命名为 test.img (可以不用复制,只是为了方便说明)
建立一个文件image.one(虚拟机镜像的配置文件),在该文件中写入:
NAME = testPATH = "/srv/cloud/images/test.img"
TYPE = OS
这个文件就是虚拟机镜像的定义。参数很少。
使用
#oneimage register image.one
进行注册,如果文件比较大的话会注册很久。
输入oneimage show查看刚注册的镜像,记下ID号
2. 建立网络(需要先搭建网桥,具体参考http://blog.csdn.net/thinkingmyl/article/details/6613051)
建立网络配置文件test.net,在文件中写入
NAME = "Small network"
TYPE = FIXED
BRIDGE = virbr0 网桥的名称
LEASES = [ IP="125.216.0.5"]
LEASES = [ IP="125.216.0.6"]
LEASES = [ IP="125.216.0.7"] 具体的IP地址取决你的网络,这里设置的是虚拟机直连网络,也就是说这个IP地址是真实的IP地址
使用
#onevnet create test.net 注册网络
输入onevnet show查看刚建立的网络,记下ID号
3. 在Opennebula上运行虚拟机
在/srv/cloud/images建立init.sh文件,内容如下:
#/bin/sh
if [ -f /mnt/context.sh ]; then
. /mnt/context.sh
fi
hostname $HOSTNAME
ifconfig eth0 $IP_PUBLIC up
这个文件用于配置虚拟机的网络。其他初始化工作也可以放在这个文件中运行。
为init.sh添加执行权限
#chmod u+x init.sh
建立虚拟机配置文件test.one
NAME = virtualpc
CPU = 0.6
MEMORY = 250
OS=[
ARCH = "x86_64" 如果是32位,这里修改为ARCH = “i686”
]
DISK = [ IMAGE_ID = 10 ] 虚拟机镜像ID
NIC = [ NETWORK_ID = 10 ] 网络ID
GRAPHICS = [
TYPE = "vnc",
LISTEN = "127.0.0.1",
PORT = "50006"]
CONTEXT = [
hostname = "node1", 配置虚拟机域名
ip_public = "125.216.243.14", 虚拟机IP
files = "/srv/cloud/images/init.sh",
target = "hdb"
]
通过使用
#onevm create test.one 即可在Opennebula上运行虚拟机
注意,需要等到虚拟机状态变为runn的时候才能连接到虚拟机。实时查看虚拟机状态onevm top