Home | Back


การใช้ qemu เพื่อทำ Virtualization บนระบบ Ubuntu 13.04

Saturday, 13 July 2013



ปัจจุบันเทคโนโลยี Virtualization นิยมนำมาใช้กันมากเพราะสามารถช่วยประหยัดทรัพยากรต่าง ๆ และง่ายต่อการบริหารจัดการ โดยเฉพาะในเรื่องของการพัฒนาระบบเครื่องแม่ข่ายต่าง ๆ ซึ่งในการพัฒนาระบบ Cloud นั้น ระบบ Virtualization จัดเป็นหัวใจสำคัญเลยทีเดียว ในระบบ Ubuntu 13.04 เราสามารถใช้ qemu เพื่อสร้าง Virtual Computer ได้ง่าย ๆ ดังนี้

1. ลง package ที่เกี่ยวข้องดังนี้

โดย qemu-kvm คือตัวระบบ Virtualization ของเรา bridge-utils จะเป็น package สำหรับการสร้าง Bridge Network Interface ให้กับระบบ Virtualization ของเรา และสุดท้าย spice-client จะเป็นโปรแกรมสำหรับทำ remote console เข้าไปยังระบบ Virtualization ของเรานั่นเองครับ

2. สร้าง Bridge Network Interface ให้กับเครื่อง Host

ขั้นตอนต่อไปเราจะสร้าง Bridge Network Interface เพื่อใช้งานแทน eth0 เนื่องจากตัวระบบ Virtualization ของเราจะใช้ bridge เป็น Network Interface สำหรับติดต่อกับโลก Internet โดยเราสามารถแก้ไฟล์ /etc/network/interfaces เพื่อใช้ bridge ในกรณีที่ใช้ dhcp ได้ดังนี้

File : /etc/network/interfaces

จากตัวอย่างเป็นการนำ eth0 มาทำเป็น bridge ที่ชื่อ br0 และรับ config เครือข่ายทาง dhcp นั่นเอง แต่หากเราต้องการทำ static ip ทำได้ดังนี้ครับ

File : /etc/network/interfaces

จากนั้นทำการ restart ระบบ network ใหม่ดังนี้ครับ

3. สร้างไฟล์สำหรับจำลองเป็น harddisk ของระบบ Virtualization

ต่อไปเราจะทำการสร้างไฟล์เพื่อจำลองเป็น harddisk สำหรับใช้งานในระบบ Virtualization ของเราโดยสมมุติว่าเราจะสร้างไฟล์ไว้ในโฟลเดอร์ /home/moo/virtual เราสามารถสร้างไฟล์จำลองได้ด้วยคำสั่ง qemu-img โดยผมจะทำการสร้างไฟล์ขนาด 10G โดยจะตั้งชื่อว่า hd1.img ผมจะสร้างได้ดังนี้ครับ

4. รันระบบ Virtualization เพื่อติดตั้ง OS

จากนั้นเราจะรันระบบ Virtualization ของเรา เพื่อทำการติดตั้ง OS โดยสมมุติว่าผมได้ดาวน์โหลดไฟล์ Ubuntu server 13.04 มาแล้วและอยู่ในโฟล์เดอร์เดียวกัน ผมจะสามารถรันระบบเพื่อติดตั้ง OS ได้ดังนี้ครับ

เราจะใช้คำสั่ง qemu-system-x86_64 เพื่อรันระบบ Virtualization เนื่องจาก Host ของผมเป็น Ubuntu รุ่น 64 บิต แต่หากใช้ OS รุ่น 32 บิต ก็ให้ใช้คำสั่ง qemu-system-i386 โดยจะมีการใช้พารามิเตอร์ดังนี้ครับ

-hda hd1.img หมายถึงระบบของเราจะมี harddisk ก้อนแรกที่เป็น hda คือไฟล์จำลองที่ชื่อว่า hd1.img ถ้าหากมี harddisk หลายก้อนก็สามารถใช้ hdb hdc และ hdd ต่อไปได้ครับ

-cdrom ubuntu-13.04-server-amd64.iso จะเป็นการเชื่อมต่อไฟล์ iso ที่เป็นตัวติดตั้ง OS ของเรา ให้เชื่อมต่อเป็น cdrom นั่นเองครับ

-m 512M เป็นการกำหนด RAM ให้กับระบบของเราขนาด 512M นั่นเองครับ

-vga qxl เป็นการกำหนดชนิดของการ์ดจอของระบบเรา ซึ่งหากใช้ remote protocol แบบ spice ที่ผมใช้ก็ควรกำหนดเป็นชนิด qxl ครับ

-boot d เป็นการกำหนดให้มีการบูตระบบจากไดร์ฟ d ซึ่งหมายถึง cdrom หรือไฟล์ติดตั้ง OS ของเรานั่นเอง

-spice port=5900,addr=0.0.0.0,password=moo เป็นการกำหนดการ remote console โดยใช้ spice protocol โดยกำหนดให้เชื่อมต่อที่พอร์ต 5900 รอรับฟังจากทุก address และกำหนดรหัสผ่านคือ moo ครับ

-net nic -net tap กำหนดให้มีระบบ network โดยจะมีการเชื่อมต่อกับภายนอกด้วย bridge ที่เราสร้างขึ้นมาครับ

-smp 2 กำหนดให้ระบบมีจำนวน cpu เท่ากับ 2 ซีพียูครับ โดยในระบบ linux จะอนุญาตให้กำหนดได้สูงสุดแค่ 4 ซีพียูครับ

5. เปิด remote console ด้วย spicec

เมื่อเราทำการรันระบบ Virtualization แล้ว เราจะต้องใช้โปรแกรม remote console เพื่อทำการเปิดดูหน้าจอของระบบ Vitualization ของเรา โดยเราจะเปิด remote console ได้ดังนี้ครับ

เราใช้คำสั่ง spicec เพื่อเปิดหน้า console ขึ้นมา โดยจะมีพารามิเตอร์ดังนี้ครับ

-h 127.0.0.1 เป็นการกำหนด ip ของเครื่องที่เป็น host ให้กับระบบ Virtualization ของเราครับ

-p 5900 เป็นการกำหนดหมายเลขพอร์ตที่ใช้ทำการเชื่อมต่อ

-w moo เป็นการกำหนดรหัสผ่านเพื่อทำการเชื่อมต่อและเปิด console

จากนั้นหน้าจอ console จะปรากฏขึ้นเพื่อให้เราใช้งาน โดยหากเราคลิ๊กเมาส์ที่หน้าจอ console จะเป็นการเข้าไปใช้งาน หากต้องการดึงเมาส์คืนเพื่อกลับมาให้กด shift+F12 หากต้องการให้แสดงผลแบบ Full Screen ให้กด shift+F11 ครับ ที่เหลือก็ทดลองปรับใช้ดูนะครับ :)



Home | Back