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 ครับ ที่เหลือก็ทดลองปรับใช้ดูนะครับ :)