ทดสอบ VM บนระบบ Private Cloud ด้วย Eucalyptus

ยังไม่เรียบร้อยครับ

การทดสอบ VM บนระบบ Private Cloud ด้วย Eucalyptus นี้เป็นเรื่องที่ต่อจาก สร้างระบบ Private Cloud ด้วย Eucalyptus หากยังไม่เข้าใจการติดตั้ง Eucalyptus กรุณาอ่านบทความนี้ก่อน
เนื่องจาก Eucalyptus ได้เตรียมอิมเมจของ debian ไว้ให้แล้ว เรื่องนี้จะไม่กล่าวถึงการสร้างอิจเมจเอง แต่จะเน่นให้ใช้งานอิมเมจจาก Eucalyptus โดยที่สามารถดาวน์โหลดอิมเมจจาก Eucalyptus ได้ที่ Image Creator's Guide ในที่นี้เน้นหารติดตั้งอิมเมจ debian รุ่น lenny สถาปัตยกรรม amd64 ก่อนเริ่มสร้างอิมเมจเพื่อทำงาน[o Eucalyptus ต้องมั่นใจก่อนว่าได้ติดตั้ง euca2ools และติดตั้ง certificates ไว้เรียบร้อยแล้ว

เริ่มต้นขยายไฟล์จากที่ดาวน์โหลดจาก Eucalyptus แล้วเพิ่ม kernel เข้าไปใน Walrus และลงทะเบียนกับ Eucalyptus ซึ่งขั้นตอนนี้จะได้หมายเลข eki สำหรับ debian-kernel-bucket คือชื่อ bucket สามารถตั้งเป็นชื่ออะไรก็ได้ที่ไม่ลงท้ายด้วย /

$ tar zxvf euca-debian-5.0-x86_64.tar.gz 
euca-debian-5.0-x86_64/
euca-debian-5.0-x86_64/xen-kernel/
euca-debian-5.0-x86_64/xen-kernel/vmlinuz-2.6.27.21-0.1-xen
euca-debian-5.0-x86_64/xen-kernel/initrd-2.6.27.21-0.1-xen
euca-debian-5.0-x86_64/kvm-kernel/
euca-debian-5.0-x86_64/kvm-kernel/vmlinuz-2.6.28-11-generic
euca-debian-5.0-x86_64/kvm-kernel/initrd.img-2.6.28-11-generic
euca-debian-5.0-x86_64/debian.5-0.x86-64.img
$ . $HOME/.euca/eucarc
$ euca-bundle-image -i euca-debian-5.0-x86_64/xen-kernel/vmlinuz-2.6.27.21-0.1-xen --kernel true
Checking image
Tarring image
Encrypting image
Splitting image...
Part: vmlinuz-2.6.27.21-0.1-xen.part.0
Generating manifest /tmp/vmlinuz-2.6.27.21-0.1-xen.manifest.xml
$ euca-upload-bundle -b debian-kernel-bucket -m /tmp/vmlinuz-2.6.27.21-0.1-xen.manifest.xml 
Checking bucket: debian-kernel-bucket
Uploading manifest file
Uploading part: vmlinuz-2.6.27.21-0.1-xen.part.0
Uploaded image as debian-kernel-bucket/vmlinuz-2.6.27.21-0.1-xen.manifest.xml
$ euca-register debian-kernel-bucket/vmlinuz-2.6.27.21-0.1-xen.manifest.xml
IMAGE	eki-830716CF

ขั้นตอนต่อไปเพิ่ม root filesystem image ให้ Walrus ซึ่งจะได้หมายเลข eri เพื่อนำไปเพิ่มอิมเมจ

$ euca-bundle-image -i euca-debian-5.0-x86_64/xen-kernel/initrd-2.6.27.21-0.1-xen --ramdisk true
Checking image
Tarring image
Encrypting image
Splitting image...
Part: initrd-2.6.27.21-0.1-xen.part.0
Generating manifest /tmp/initrd-2.6.27.21-0.1-xen.manifest.xml
$ euca-upload-bundle -b debian-ramdisk-bucket -m /tmp/initrd-2.6.27.21-0.1-xen.manifest.xml
Checking bucket: debian-ramdisk-bucket
Uploading manifest file
Uploading part: initrd-2.6.27.21-0.1-xen.part.0
Uploaded image as debian-ramdisk-bucket/initrd-2.6.27.21-0.1-xen.manifest.xml
$ euca-register debian-ramdisk-bucket/initrd-2.6.27.21-0.1-xen.manifest.xml
IMAGE	eri-7D6F16B7

เพิ่มอิมเมจให้กับ Walrus และลงทะเบียนกับ Eucalyptus จะต้องใช้หมายเลข eki และ eri หากหมายเลขไม่ถูกต้องจะไม่สามารถลงทะเบียนอิมเมจในขั้นตอนสุดท้ายได้

$ euca-bundle-image -i euca-debian-5.0-x86_64/debian.5-0.x86-64.img --kernel eki-830716CF --ramdisk eri-7D6F16B7 
Checking image
Tarring image
Encrypting image
Splitting image...
Part: debian.5-0.x86-64.img.part.0
Part: debian.5-0.x86-64.img.part.1
Part: debian.5-0.x86-64.img.part.2
:
Part: debian.5-0.x86-64.img.part.19
Generating manifest /tmp/debian.5-0.x86-64.img.manifest.xml
$ euca-upload-bundle -b debian-image-bucket -m /tmp/debian.5-0.x86-64.img.manifest.xml
Checking bucket: debian-image-bucket
Creating bucket: debian-image-bucket
Uploading manifest file
Uploading part: debian.5-0.x86-64.img.part.0
Uploading part: debian.5-0.x86-64.img.part.1
Uploading part: debian.5-0.x86-64.img.part.2
:
Uploading part: debian.5-0.x86-64.img.part.19
Uploaded image as debian-image-bucket/debian.5-0.x86-64.img.manifest.xml
$ euca-register debian-image-bucket/debian.5-0.x86-64.img.manifest.xml 
IMAGE	emi-0B35155B

เมื่อเสร็จสิ้นขั้นตอนการลงเพิ่มและลงทะเบียนอิมเมจแล้ว ทดสอบดูว่ามีอิมเมจอยู่ใน Walrus ถูกต้องหรือไม่ และตรวจดูว่ามี instances ทำงานอยู่ก่อนหรือเปล่า หากไม่มีข้อความใดๆปรากฎแสดงว่าไม่มี instances ทำงานอยู่ หากจต้องการลบอิมเมจ สามารถทำได้โดยใช้คำสั่ง euca-deregister emi-0B35155B และ euca-delete-bundle -b {bucket name} -p {file prefix} --clear สามารถดูรายละเอียดเพิ่มเติมได้จาก Managing Eucalyptus Images

$ euca-describe-images	
IMAGE	eri-7D6F16B7	debian-ramdisk-bucket/initrd-2.6.27.21-0.1-xen.manifest.xml	admin	available	public		x86_64	ramdisk		
IMAGE	emi-0B35155B	debian-image-bucket/debian.5-0.x86-64.img.manifest.xml	admin	available	public		x86_64	machine	eri-7D6F16B7	eki-830716CF
IMAGE	eki-830716CF	debian-kernel-bucket/vmlinuz-2.6.27.21-0.1-xen.manifest.xml	admin	available	public		x86_64	kernel
$ euca-describe-instances 	

เพิ่ม keypairs เพื่อใช้สำหรับติดต่อกับเครื่องที่ต้องการสั่งให้ทำงาน

$ euca-describe-keypairs 
KEYPAIR	mykey	4c:6d:85:a3:62:bb:c7:ac:7f:ca:30:66:e6:b1:9a:e9:a5:52:7a:38
$ euca-add-keypair 4c:6d:85:a3:62:bb:c7:ac:7f:ca:30:66:e6:b1:9a:e9:a5:52:7a:38 > mykey.private
$ chmod 0600 mykey.private

ตรวจสอบดูความพร้อมของทรัพยากรทั้งหมดที่มี

$ euca-describe-availability-zones verbose
AVAILABILITYZONE	cc01	172.30.143.162
AVAILABILITYZONE	|- vm types	free / max   cpu   ram  disk
AVAILABILITYZONE	|- m1.small	0006 / 0006   1    128     2
AVAILABILITYZONE	|- c1.medium	0006 / 0006   1    256     5
AVAILABILITYZONE	|- m1.large	0003 / 0003   2    512    10
AVAILABILITYZONE	|- m1.xlarge	0003 / 0003   2   1024    20
AVAILABILITYZONE	|- c1.xlarge	0001 / 0001   4   2048    20

เริ่มการทำงานของ VM โดยใช้คำสั่ง $ euca-run-instances -k {mykey} -n {number of instances to start} {emi-id}

$ euca-run-instances -k 4c:6d:85:a3:62:bb:c7:ac:7f:ca:30:66:e6:b1:9a:e9:a5:52:7a:38 -n 1 emi-0B35155B
RESERVATION	r-34B00779	admin	admin-default
INSTANCE	i-44CE082B	emi-0B35155B	0.0.0.0	0.0.0.0	pending	4c:6d:85:a3:62:bb:c7:ac:7f:ca:30:66:e6:b1:9a:e9:a5:52:7a:38	2010-08-19T05:51:05.007Zeki-830716CF	eri-7D6F16B7

ตรวจสอบการทำงานของ VM ต้องรอจนกว่าสถานะ pending เปลี่ยนเป็น running หากสั่ง euca-describe-availability-zones verbose ทรัพยากรจะเปลี่ยนไป และแสดง ip ตามที่ได้กำหนดไว้ หากต้องการ terminate instance ให้ใช้คำสั่ง euca-terminate-instances {instance-id1}

$ euca-describe-instances 
RESERVATION	r-3D1107C9	admin	default
INSTANCE	i-53820920	emi-0B35155B	172.30.143.91	172.30.143.91	running 	4c:6d:85:a3:62:bb:c7:ac:7f:ca:30:66:e6:b1:9a:e9:a5:52:7a:38 	1 	m1.small 	2010-08-19T05:53:14.477Z 	cc01 	eki-830716CF 	eri-7D6F16B7
$ euca-describe-availability-zones verbose
AVAILABILITYZONE	cc01	172.30.143.162
AVAILABILITYZONE	|- vm types	free / max   cpu   ram  disk
AVAILABILITYZONE	|- m1.small	0005 / 0006   1    128     2
AVAILABILITYZONE	|- c1.medium	0005 / 0006   1    256     5
AVAILABILITYZONE	|- m1.large	0002 / 0003   2    512    10
AVAILABILITYZONE	|- m1.xlarge	0002 / 0003   2   1024    20
AVAILABILITYZONE	|- c1.xlarge	0000 / 0001   4   2048    20

หากต้องการ ssh เข้าไปใช้งาน VM ที่ได้สร้างไว้

$ ssh -i mykey.private root@172.30.143.91

หมายเหตุ

  • ทดสอบโดยใช้ front-end เป็น VirtualBox และ NC ใช้เครื่องจริง เนื่องจากหากใช้ VirtualBox เป็น NC VirtualBox จะแฮงค์ไม่สามารถทำงานต่อไปได้
  • เคอร์เนลไม่สามารถอัพเกรดได้

อ้างอิง
Managing Eucalyptus Images (1.6)
Getting Started Using Eucalyptus (1.6)
Setting up Eucalyptus 1.6.2 with ORCA 2.x

Topic: 
Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้