การใช้ Virtualization with KVM
บทนำ
KVM (Kernel-based Virtual Machine) เป็นเทคโนโลยี virtualization ที่ใช้ในระบบปฏิบัติการ Linux โดยการใช้ฟีเจอร์ virtualization ที่มีอยู่ในโปรเซสเซอร์ (เช่น Intel VT-x หรือ AMD-V) KVM ช่วยให้ผู้ใช้สามารถสร้างและจัดการเครื่องเสมือน (Virtual Machine หรือ VM) บน Linux ได้อย่างมีประสิทธิภาพ
ในบทนี้, เราจะเรียนรู้วิธีการติดตั้ง KVM, การสร้างและจัดการเครื่องเสมือน, รวมถึงเครื่องมือที่ใช้ในการจัดการ KVM เช่น virt-manager, virsh, และ qemu.
1. การติดตั้ง KVM
1.1 การติดตั้ง KVM บน Ubuntu
เพื่อเริ่มต้นใช้งาน KVM บน Ubuntu, ทำตามขั้นตอนดังนี้:
# อัพเดตฐานข้อมูลแพ็คเกจ
sudo apt update
# ติดตั้ง KVM, QEMU, และ libvirt
sudo apt install qemu-kvm libvirt-bin bridge-utils virt-manager
# ตรวจสอบว่า KVM รองรับในระบบของคุณ
kvm-ok
คำสั่ง kvm-ok จะบอกว่าโปรเซสเซอร์ของคุณรองรับ KVM หรือไม่
1.2 การติดตั้ง KVM บน CentOS
# ติดตั้ง KVM, QEMU, และ libvirt
sudo yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install
# เริ่มต้นและเปิดใช้งานบริการ libvirtd
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
2. การตรวจสอบว่า KVM พร้อมใช้งาน
หลังจากติดตั้ง KVM เสร็จสิ้น, คุณสามารถตรวจสอบว่า KVM พร้อมใช้งานในระบบหรือไม่ด้วยคำสั่ง:
# ตรวจสอบสถานะของ libvirtd
sudo systemctl status libvirtd
หากแสดงว่า libvirtd กำลังทำงานอยู่, คุณก็สามารถเริ่มสร้างเครื่องเสมือนด้วย KVM ได้แล้ว
3. การสร้างเครื่องเสมือน (VM) ด้วย KVM
3.1 การใช้ virt-manager (GUI)
virt-manager เป็นเครื่องมือกราฟิกที่ช่วยให้คุณสามารถสร้างและจัดการเครื่องเสมือนด้วย KVM ได้อย่างสะดวกสบาย
-
เปิด
virt-managerโดยใช้คำสั่ง:virt-manager -
เลือก "New" เพื่อสร้างเครื่องเสมือนใหม่
-
ทำตามขั้นตอนในกราฟิกอินเตอร์เฟซ เช่น การเลือกแหล่งที่มาของ ISO image และการตั้งค่าพื้นที่ฮาร์ดดิสก์
-
หลังจากการตั้งค่าเสร็จสิ้น, คุณสามารถเริ่มต้นเครื่องเสมือนได้ทันที
3.2 การใช้ virt-install (Command-line)
virt-install เป็นเครื่องมือบรรทัดคำสั่งที่ช่วยให้คุณสร้างเครื่องเสมือนใหม่
ตัวอย่างการสร้างเครื่องเสมือนใหม่:
sudo virt-install \
--name ubuntu-vm \
--ram 2048 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/ubuntu-vm.qcow2,size=20 \
--cdrom /path/to/ubuntu.iso \
--os-type linux \
--os-variant ubuntu20.04 \
--network bridge=virbr0 \
--graphics vnc
คำอธิบาย:
--nameชื่อเครื่องเสมือน--ramขนาด RAM ที่จะมอบให้เครื่องเสมือน--vcpusจำนวน CPU ที่จะใช้--diskขนาดของดิสก์--cdromไฟล์ ISO ที่จะใช้ติดตั้งระบบปฏิบัติการ--os-typeและ--os-variantระบุประเภทของระบบปฏิบัติการ--networkการตั้งค่าเครือข่าย--graphicsใช้ VNC สำหรับกราฟิก
4. การจัดการเครื่องเสมือน (VM)
4.1 การใช้ virsh (Command-line)
virsh เป็นเครื่องมือบรรทัดคำสั่งที่สามารถใช้ในการจัดการเครื่องเสมือนของ KVM ได้ เช่น การเริ่มต้น, หยุด, และดูสถานะของ VM
การเริ่มต้นเครื่องเสมือน
sudo virsh start ubuntu-vm
การหยุดเครื่องเสมือน
sudo virsh shutdown ubuntu-vm
การรีสตาร์ทเครื่องเสมือน
sudo virsh reboot ubuntu-vm
การลบเครื่องเสมือน
sudo virsh undefine ubuntu-vm
4.2 การตรวจสอบสถานะของเครื่องเสมือน
sudo virsh list --all
5. การใช้ QEMU
QEMU เป็นเครื่องมือที่ช่วยให้คุณสามารถรันเครื่องเสมือนใน KVM ได้โดยไม่ต้องใช้เครื่องมือจัดการอื่นๆ เช่น virt-manager หรือ virsh
ตัวอย่างการใช้ QEMU เพื่อรันเครื่องเสมือน:
sudo qemu-system-x86_64 -m 2048 -cdrom /path/to/ubuntu.iso -boot d -hda /var/lib/libvirt/images/ubuntu-vm.qcow2
6. การทำงานกับ Storage และ Networking
6.1 การตั้งค่า Storage สำหรับ KVM
การตั้งค่าพื้นที่จัดเก็บของเครื่องเสมือนใน KVM สามารถทำได้โดยใช้คำสั่ง qemu-img หรือการใช้ virt-manager ในการจัดการพื้นที่เก็บข้อมูล
ตัวอย่างการสร้างดิสก์:
qemu-img create -f qcow2 /var/lib/libvirt/images/ubuntu-vm.qcow2 20G
6.2 การตั้งค่าเครือข่ายสำหรับ KVM
KVM สามารถใช้เครือข่ายแบบ bridge เพื่อให้เครื่องเสมือนสามารถเชื่อมต่อกับเครือข่ายภายนอกได้
ตัวอย่างการใช้ bridge network:
# สร้าง bridge network ใหม่
sudo virsh net-create /path/to/bridge-network.xml
6.3 การทำ Snapshot
คุณสามารถสร้าง Snapshot ของเครื่องเสมือนเพื่อกลับไปยังสถานะก่อนหน้านี้ได้โดยใช้ virsh หรือ virt-manager
ตัวอย่างการสร้าง Snapshot:
sudo virsh snapshot-create-as ubuntu-vm snapshot1
7. การตรวจสอบและแก้ไขปัญหา
7.1 การตรวจสอบ Log ของ KVM
การตรวจสอบ log ของ KVM สามารถทำได้จากไฟล์ log ของ libvirt:
sudo tail -f /var/log/libvirt/qemu/ubuntu-vm.log
7.2 การตรวจสอบประสิทธิภาพของเครื่องเสมือน
คุณสามารถใช้คำสั่ง top หรือ htop เพื่อตรวจสอบการใช้ CPU และ RAM ของเครื่องเสมือน
top -p <pid_of_vm>
สรุป
KVM เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการสร้างและจัดการเครื่องเสมือนบนระบบ Linux โดยใช้ทรัพยากรของฮาร์ดแวร์จริงอย่างมีประสิทธิภาพ การใช้งาน KVM ในการสร้าง VM สามารถทำได้ง่ายผ่านทั้ง GUI (virt-manager) และคำสั่งบรรทัดคำสั่ง (virt-install, virsh) ซึ่งเหมาะสมทั้งสำหรับผู้ใช้ที่ต้องการใช้งานผ่านกราฟิกและผู้ที่ชอบการทำงานในสภาพแวดล้อมคอมมานด์ไลน์