[[PageOutline]] = OpenNEbula Operation = == 1. Requirement == * Xen & [wiki:GTD_Cloud_One OpenNEbula] already installation * Already have Xen Cluster (or [wiki:jazz/DRBL_Xen using DRBL to deploy Xen Cluster]) [[BR]] == 2. System Configuration == * '''''__2.1 NIS Setup__''''' {{{ // Server $ sudo groupadd xen $ sudo useradd -m -G xen oneadmin $ cd /var/yp ; sudo make $ id oneadmin uid=1001(oneadmin) gid=1002(oneadmin) groups=1002(oneadmin),1001(xen) // Client, create local group "rootxen" include local root & shared GID $ echo "rootxen:x::root >> /etc/group ($ echo "rootxen:x:1001:root >> /etc/group) }}} * '''''__2.2 SSH Setup__''''' {{{ // Server $ su oneadmin $ ssh-keygen // Client (cp id_rsa.pub from Server) $ echo /home/oneadmin/.ssh/id_rsa.pub >> authorized_keys }}} * '''''__2.3 Stroage__''''' * [http://www.opennebula.org/doku.php?id=documentation:rel1.2:sm Storage Guide 1.2] * We used Lustre to be image stroage, set VM_DIR=''{Lustre_Path}'' {{{ $ vim $ONE_LOCATIOB/etc/oned.conf 25 VM_DIR=/home/xenfs }}} * '''''__2.4 Network__''''' * [http://www.opennebula.org/doku.php?id=documentation:rel1.2:nm Networking Guide 1.2] * '''''__2.5 Virtualizer__''''' [[BR]] == 3. Host Add & VM submit == * '''''__3.1 Add Host__''''' {{{ $ onehost create xen101 im_xen vmm_xen tm_ssh $ onehost list HID NAME RVM TCPU FCPU ACPU TMEM FMEM STAT 0 xen101 0 400 400 400 6216704 130048 on }}} * '''''__3.2 Submit vm__''''' * Create Image (Using xen-tools) {{{ $ sudo vim /etc/xen-tools $ sudo xen-create-image --hostname test1 --ip 140.X.X.X }}} * Configuration {{{ $ vim /home/images/domains/test1/test1.cfg MEMORY=128 CPU=4 OS=[ kernel="/boot/vmlinuz-2.6.18.8", initrd="/boot/initrd.img-2.6.18.8", root="sda1", boot="hd"] DISK=[ source="/home/images/domains/vm01/disk.img", target="sda1", readonly=no] NIC=[mac="00:16:3e:01:01:03"] }}} * Submit vm {{{ $ sudo onevm submit test1.cfg $ sudo onevm list ID NAME STAT CPU MEM HOSTNAME TIME 0 one-0 runn 0 131072 one 00 00:05:24 $ sudo xm list Name ID Mem VCPUs State Time(s) Domain-0 0 5840 4 r----- 307.8 one-0 2 128 1 -b---- 1.6 $ sudo xm console one-0 }}} == 4. 指令介紹 == * OpenNEbula 提供類似XEN指令的方式來管理虛擬機器,OpenNEbula也可以支援Amazon EC2和KVM(Kenrel-based Virtual Machine)的虛擬機器,不過在此處是以OpenNEbula來管理Cluster環境上得XEN虛擬機器。OpenNEbula主要有三個指令: * [wiki:GTD_Cloud_One_oper_onehost onehost]: 用來增加、刪除和監控實體機器 (也就是可以監控所有位於Cluster上的Dom0) * [wiki:GTD_Cloud_One_oper_onevm onevm]: 用來submit、控制和監控位於實體機器上的虛擬機器 (也就是可以監控所有位於Cluster上Dom0的虛擬機器) * pnevnet: to add, delete and monitor hosts (尚未使用過) [[BR]] == 5. Programming with OpenNEbula == * OpenNEbula 提供一些API讓Client可以透過自行撰寫的程式碼來管理虛擬機器,它採用XML-RPC機制來完成動作。 [[BR]] == 6. Reference == * [http://www.opennebula.org/doku.php?id=documentation:rel1.2:cli OpenNebula CLI 1.2] * [http://www.opennebula.org/doku.php?id=documentation:rel1.2:api OpenNebula Client API 1.2] * [http://www.opennebula.org/doku.php?id=documentation:rel1.2:api_examples OpenNebula Programming examples]