วิธีสร้างเครื่องเสมือนใน Linux โดยใช้ KVM (เครื่องเสมือนที่ใช้เคอร์เนล) - ตอนที่ 1
บทช่วยสอนนี้กล่าวถึงการแนะนำ KVM การปรับใช้ และวิธีใช้เพื่อสร้างเครื่องเสมือนภายใต้การกระจายแบบอิง RedHat เช่น RHEL/CentOS7 และ Fedora 21 .
KVM คืออะไร?
KVM หรือ (เครื่องเสมือนที่ใช้เคอร์เนล) เป็นโซลูชันการจำลองเสมือนเต็มรูปแบบสำหรับ Linux บนฮาร์ดแวร์ Intel 64 และ AMD 64 ที่รวมอยู่ในเคอร์เนล mainline Linux ตั้งแต่ 2.6.20 และมีเสถียรภาพและรวดเร็วสำหรับปริมาณงานส่วนใหญ่
คุณสมบัติ KVM
มีคุณสมบัติและข้อดีที่เป็นประโยชน์มากมายที่คุณจะได้รับเมื่อคุณใช้ KVM เพื่อปรับใช้แพลตฟอร์มเสมือนของคุณ ไฮเปอร์ไวเซอร์ KVM รองรับคุณสมบัติต่อไปนี้:
- การคอมมิตมากเกินไป : ซึ่งหมายถึงการจัดสรร CPU หรือหน่วยความจำเสมือนจริงมากกว่าทรัพยากรที่มีอยู่ในระบบ
- Thin Provisioning : ซึ่งช่วยให้สามารถจัดสรรพื้นที่จัดเก็บข้อมูลที่ยืดหยุ่นและปรับพื้นที่ว่างให้เหมาะสมสำหรับเครื่องเสมือนของแขกทุกเครื่อง
- การควบคุมปริมาณดิสก์ I/O : ให้ความสามารถในการตั้งค่าขีดจำกัดคำขอ I/O ดิสก์ที่ส่งจากเครื่องเสมือนไปยังเครื่องโฮสต์
- การปรับสมดุล NUMA อัตโนมัติ : ปรับปรุงประสิทธิภาพของแอปพลิเคชันที่ทำงานบนระบบฮาร์ดแวร์ NUMA
- ความสามารถเพิ่ม CPU เสมือนแบบ hot add : ให้ความสามารถในการเพิ่มพลังการประมวลผลตามความจำเป็นบนเครื่องเสมือนที่ทำงานอยู่ โดยไม่ต้องหยุดทำงาน
นี่คือซีรีส์ KVM (เครื่องเสมือนที่ใช้เคอร์เนล) ที่กำลังดำเนินการชุดแรกของเรา ในที่นี้เราจะกล่าวถึงบทความต่อไปนี้แบบทีละส่วน
ข้อกำหนดเบื้องต้น
ตรวจสอบให้แน่ใจว่าระบบของคุณมีส่วนขยายการจำลองเสมือนสำหรับฮาร์ดแวร์: สำหรับโฮสต์ที่ใช้ Intel ให้ตรวจสอบว่าส่วนขยายการจำลองเสมือนของ CPU [vmx] พร้อมใช้งานโดยใช้คำสั่งต่อไปนี้
[root@server ~]# grep -e 'vmx' /proc/cpuinfo
สำหรับโฮสต์ที่ใช้ AMD ให้ตรวจสอบว่าส่วนขยายการจำลองเสมือนของ CPU [svm] พร้อมใช้งาน
[root@server ~]# grep -e 'svm' /proc/cpuinfo
หากไม่มีเอาต์พุต ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานส่วนขยายการจำลองเสมือนใน BIOS แล้ว ตรวจสอบว่าโมดูล KVM ถูกโหลดในเคอร์เนล “ควรโหลดโดยค่าเริ่มต้น”
[root@server ~]# lsmod | grep kvm
ผลลัพธ์ควรมี kvm_intel สำหรับโฮสต์ที่ใช้ Intel หรือ kvm_amd สำหรับโฮสต์ที่ใช้ AMD
ก่อนที่จะเริ่มต้น คุณจะต้องมีบัญชีรูทหรือผู้ใช้ที่ไม่ใช่รูทที่มีสิทธิ์ sudo ที่กำหนดค่าไว้ในระบบของคุณ และตรวจสอบให้แน่ใจว่าระบบของคุณเป็นเวอร์ชันล่าสุด
[root@server ~]# yum update
ตรวจสอบให้แน่ใจว่า Selinux อยู่ในโหมดอนุญาต
[root@server ~]# setenforce 0
ขั้นตอนที่ 1: การติดตั้งและการปรับใช้ KVM
1. เราจะติดตั้งแพ็คเกจ qemu-kvm และ qemu-img ในตอนแรก แพ็คเกจเหล่านี้จัดเตรียม KVM ระดับผู้ใช้และตัวจัดการดิสก์อิมเมจ
[root@server ~]# yum install qemu-kvm qemu-img
2. ตอนนี้ คุณมีข้อกำหนดขั้นต่ำในการปรับใช้แพลตฟอร์มเสมือนบนโฮสต์ของคุณ แต่เรายังมีเครื่องมือที่มีประโยชน์ในการดูแลระบบแพลตฟอร์มของเรา เช่น:
- virt-manager มีเครื่องมือ GUI เพื่อจัดการเครื่องเสมือนของคุณ
- libvirt-client มีเครื่องมือ CL เพื่อจัดการสภาพแวดล้อมเสมือนของคุณ เครื่องมือนี้เรียกว่า virsh
- virt-install มีคำสั่ง “virt-install ” เพื่อสร้างเครื่องเสมือนของคุณจาก CLI
- libvirt จัดเตรียมเซิร์ฟเวอร์และไลบรารีฝั่งโฮสต์สำหรับการโต้ตอบกับไฮเปอร์ไวเซอร์และระบบโฮสต์
มาติดตั้งเครื่องมือด้านบนเหล่านี้โดยใช้คำสั่งต่อไปนี้
[root@server ~]# yum install virt-manager libvirt libvirt-python libvirt-client
3. สำหรับผู้ใช้ RHEL/CentOS7 ยังคงมีกลุ่มแพ็คเกจเพิ่มเติม เช่น Virtualization Client, Virtualization Platform และ Virtualization Tools ที่จะติดตั้ง
[root@server ~]#yum groupinstall virtualization-client virtualization-platform virtualization-tools
4. ภูตการจำลองเสมือนที่จัดการแพลตฟอร์มทั้งหมดคือ “libvirtd ” มารีสตาร์ทกันเถอะ
[root@server ~]#systemctl restart libvirtd
5. หลังจากรีสตาร์ท daemon แล้ว ให้ตรวจสอบสถานะโดยรันคำสั่งต่อไปนี้
[root@server ~]#systemctl status libvirtd
ผลลัพธ์ตัวอย่าง
libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled)
Active: active (running) since Mon 2014-12-29 15:48:46 EET; 14s ago
Main PID: 25701 (libvirtd)
ตอนนี้ สลับไปยังส่วนถัดไปเพื่อสร้างเครื่องเสมือนของเรา
ขั้นตอนที่ 2: สร้าง VM โดยใช้ KVM
ดังที่เราได้กล่าวไว้ข้างต้น เรามีเครื่องมือที่มีประโยชน์ในการจัดการแพลตฟอร์มเสมือนของเราและการสร้างเครื่องเสมือน หนึ่งในเครื่องมือที่เรียกว่า [virt-manager] ซึ่งเราใช้ในส่วนถัดไป
6. แม้ว่า virt-manager จะเป็นเครื่องมือที่ใช้ GUI แต่เราก็สามารถเปิด/เริ่มต้นจากเทอร์มินัลและจาก GUI ได้เช่นกัน
[root@server ~]#virt-manager
การใช้ GNOME
การใช้ GNOME คลาสสิก
7. หลังจากเริ่มใช้เครื่องมือ หน้าต่างนี้จะปรากฏขึ้น
8. ตามค่าเริ่มต้น คุณจะพบว่าผู้จัดการเชื่อมต่อโดยตรงกับ localhost โชคดีที่คุณสามารถใช้เครื่องมือเดียวกันนี้เพื่อจัดการโฮสต์อื่นจากระยะไกลได้ จากแท็บ “ไฟล์ ” เพียงเลือก “เพิ่มการเชื่อมต่อ ” และหน้าต่างนี้จะปรากฏขึ้น
ทำเครื่องหมายที่ตัวเลือก “เชื่อมต่อกับโฮสต์ระยะไกล ” จากนั้นระบุ ชื่อโฮสต์/IP ของเซิร์ฟเวอร์ระยะไกล หากคุณต้องการสร้างการเชื่อมต่อกับโฮสต์ระยะไกลทุกครั้งที่ผู้จัดการเริ่มต้น เพียงทำเครื่องหมายที่ตัวเลือก “เชื่อมต่ออัตโนมัติ ”
9. กลับมาที่โลคัลโฮสต์ของเราก่อนสร้างเครื่องเสมือนใหม่ คุณควรตัดสินใจว่าจะเก็บไฟล์ไว้ที่ใด! กล่าวอีกนัยหนึ่ง คุณควรสร้าง Volume Disk (ดิสก์เสมือน/อิมเมจของดิสก์ ) สำหรับเครื่องเสมือนของคุณ
โดยคลิกขวาที่ localhost แล้วเลือก “รายละเอียด ” จากนั้นเลือกแท็บ “ที่เก็บข้อมูล”
10. ถัดไป กดปุ่ม “ไดรฟ์ข้อมูลใหม่ ” จากนั้นป้อนชื่อของดิสก์เสมือนใหม่ของคุณ (ดิสก์ไดรฟ์ข้อมูล) และป้อนขนาดที่ คุณต้องการ/จำเป็นในส่วน “ความจุสูงสุด ”
ขนาดการจัดสรรคือขนาดจริงสำหรับดิสก์ของคุณซึ่งจะถูกจัดสรรจากฟิสิคัลดิสก์ของคุณทันทีหลังจากเสร็จสิ้นขั้นตอน
หมายเหตุ: นี่เป็นเทคโนโลยีที่สำคัญในด้านการดูแลระบบจัดเก็บข้อมูลซึ่งเรียกว่า “thin allowance ” ใช้เพื่อจัดสรรขนาดพื้นที่เก็บข้อมูลที่ใช้เท่านั้น ไม่ใช่ขนาดที่มีอยู่ทั้งหมด
ตัวอย่างเช่น คุณสร้างดิสก์เสมือนที่มีขนาด 60G แต่คุณใช้งานจริงเพียง 20G โดยใช้เทคโนโลยีนี้ ขนาดที่จัดสรรจากฮาร์ดดิสก์จริงของคุณจะเป็น 20G ไม่ใช่ 60G
กล่าวอีกนัยหนึ่งขนาดทางกายภาพที่จัดสรรจะถูกจัดสรรแบบไดนามิกขึ้นอยู่กับขนาดที่ใช้จริง คุณสามารถค้นหาข้อมูลเพิ่มเติมโดยละเอียดได้ที่ VMWare vStorage Thin Provisioning
11. คุณจะสังเกตว่าป้ายกำกับของ Volume Disk ใหม่ปรากฏอยู่ในรายการ
คุณควรสังเกตเส้นทางของดิสก์อิมเมจใหม่ (Volume Disk) โดยค่าเริ่มต้นจะอยู่ภายใต้ /var/lib/libvirt/images คุณสามารถตรวจสอบได้โดยใช้คำสั่งต่อไปนี้
[root@server Downloads]# ls -l /var/lib/libvirt/images
-rw-------. 1 root root 10737418240 Jan 3 16:47 vm1Storage.img
12. ตอนนี้เราพร้อมที่จะสร้างเครื่องเสมือนของเราแล้ว กดปุ่ม “VM” ในหน้าต่างหลัก หน้าต่างตัวช่วยสร้างนี้จะปรากฏขึ้น
เลือกวิธีการติดตั้งที่คุณจะใช้เพื่อสร้างเครื่องเสมือน ตอนนี้เราจะใช้สื่อการติดตั้งในเครื่อง หลังจากนั้นเราจะหารือเกี่ยวกับวิธีการที่เหลือ
13. ตอนนี้ถึงเวลาระบุสื่อการติดตั้งในเครื่องที่จะใช้ เรามีสองตัวเลือก:
- จากทางกายภาพ [ซีดีรอม/ดีวีดี]
- จากอิมเมจ ISO
สำหรับบทช่วยสอนของเรา ให้ใช้วิธีอิมเมจ ISO ดังนั้นคุณควรระบุเส้นทางของอิมเมจ ISO ของคุณ
ข้อสำคัญ: น่าเสียดายที่มีข้อผิดพลาดที่ไร้สาระมากสำหรับผู้ที่ใช้ RHEL/CentOS7 จุดบกพร่องนี้ป้องกันไม่ให้คุณติดตั้งโดยใช้ [CDROM/DVD] จริง คุณจะพบว่าตัวเลือกเป็นสีเทาเช่นนี้
และถ้าคุณกดเคอร์เซอร์ค้างไว้ ข้อความแสดงข้อผิดพลาดนี้จะปรากฏขึ้น
จนถึงขณะนี้ ยังไม่มีวิธีแก้ปัญหาอย่างเป็นทางการ/โดยตรงสำหรับข้อบกพร่องนี้ คุณสามารถดูข้อมูลเพิ่มเติมได้ที่ https://bugzilla.redhat.com
14. พื้นที่เก็บข้อมูลกลับมาแล้ว เราจะใช้ดิสก์เสมือนที่เราสร้างขึ้นตั้งแต่เนิ่นๆ เพื่อติดตั้งเครื่องเสมือนบนนั้น มันจะเป็นไปตามที่แสดง
15. ขั้นตอนสุดท้ายที่ถามคุณเกี่ยวกับชื่อเครื่องเสมือนของคุณและตัวเลือกขั้นสูงอื่นๆ เรามาพูดคุยกันในภายหลัง
หากคุณต้องการเปลี่ยนการกำหนดค่าหรือปรับแต่งบางอย่าง เพียงเลือกตัวเลือก “ปรับแต่งการกำหนดค่าก่อนติดตั้ง ” จากนั้นคลิกเสร็จสิ้นและรอสักครู่ คอนโซลควบคุมจะปรากฏขึ้นเพื่อให้ Guest OS ของคุณจัดการ
บทสรุป
ตอนนี้คุณได้เรียนรู้แล้วว่า KVM คืออะไร วิธีจัดการแพลตฟอร์มเสมือนของคุณโดยใช้เครื่องมือ GUI วิธีปรับใช้เครื่องเสมือนโดยใช้มัน และอีกมากมายที่ยอดเยี่ยม
แม้ว่าบทความนี้จะยังไม่จบ แต่ในบทความต่อๆ ไป เราจะพูดถึงหัวข้อสำคัญอื่นๆ ที่เกี่ยวข้องกับ KVM ทำให้มือสกปรกโดยใช้ความรู้เดิมและเตรียมพร้อมสำหรับส่วนต่อไป…..