เพื่อให้เครื่องเสมือน SLES 15 KVM เริ่มทำงานหลังจากรีบูตโฮสต์ ให้ติดตั้งส่วนประกอบการจัดการ KVM และ libvirt ทำเครื่องหมายเครื่องเสมือนนั้นให้เริ่มทำงานอัตโนมัติด้วยคำสั่ง `npm run autostart` virsh autostart VM_NAMEและตรวจสอบให้แน่ใจว่า daemon libvirt ที่ทำงานอยู่บนโฮสต์เริ่มทำงานระหว่างการบูต การตั้งค่าเริ่มทำงานอัตโนมัติเป็นการตั้งค่าต่อเครื่องเสมือน การติดตั้ง KVM หรือการเริ่มต้น libvirt เพียงอย่างเดียวไม่ได้ทำให้เครื่องเสมือนทุกเครื่องเริ่มทำงานโดยอัตโนมัติ
คำสั่งด้านล่างนี้เป็นไปตามคู่มือการจำลองเสมือนของ SUSE SLES 15 SP7 Service Pack เวอร์ชันก่อนหน้าอาจแตกต่างกัน ดังนั้นโปรดตรวจสอบคู่มือที่ตรงกันและหน่วย systemd ที่ติดตั้งไว้ก่อนที่จะใช้คำสั่งบริการ
คุณต้องการเซิร์ฟเวอร์ KVM, เครื่องมือ KVM หรือทั้งสองอย่าง?
สำหรับโฮสต์ที่จะรันและจัดการเกสต์ผ่าน libvirt ให้ติดตั้งทั้ง KVM server และ KVM tools SUSE กำหนดให้ KVM server เป็นสภาพแวดล้อม QEMU/KVM ขั้นต่ำ และ KVM tools เป็นชุดเครื่องมือการจัดการบนพื้นฐาน libvirt ซึ่งรวมถึงvirshเวิร์กโฟลว์ที่ใช้ในที่นี้ด้วย
ก่อนการติดตั้ง โปรดตรวจสอบให้แน่ใจว่าโปรเซสเซอร์และเฟิร์มแวร์ของเครื่องรองรับการจำลองเสมือนด้วยฮาร์ดแวร์ เอกสารของ SUSE เกี่ยวกับการรองรับ CPU และซอฟต์แวร์ที่จำเป็นอยู่ในคู่มือการจำลองเสมือน SLES 15 SP7หากการตรวจสอบพบปัญหาเกี่ยวกับฮาร์ดแวร์หรือการกำหนดค่า โปรดแก้ไขปัญหาในเฟิร์มแวร์หรือการกำหนดค่าโฮสต์ก่อนที่จะพยายามกำหนด VM แฟล็กการเริ่มต้นอัตโนมัติไม่สามารถชดเชยโฮสต์ที่ไม่สามารถใช้งาน KVM ได้
เรียกใช้ยูทิลิตี้ตรวจสอบความถูกต้องของโฮสต์ก่อนสร้างแขกรับเชิญ เทอร์มินัลจะแสดงคำสั่ง ไม่ใช่ผลการทดสอบ
วิธีการติดตั้ง KVM host stack สำหรับ SLES 15 ทำอย่างไร?
เส้นทางการติดตั้ง Zypper นี้เป็นทางเลือกเสริม โดยจะติดตั้งเซิร์ฟเวอร์ KVM และรูปแบบการจัดการ libvirt ตามที่ได้มีการบันทึกไว้
บนเซิร์ฟเวอร์ที่ติดตั้งไว้แล้ว ให้เปิด YaST และเลือกVirtualization > Install Hypervisor and Toolsหากโมดูล YaST Virtualization หายไป SUSE แจ้งว่ามีอยู่ในyast2-vmแพ็ก เกจอยู่แล้ว
เลือกเซิร์ฟเวอร์ KVMและเครื่องมือ KVMจากนั้นยอมรับการเปลี่ยนแปลงแพ็กเกจ YaST อาจเสนอให้กำหนดค่าบริดจ์เครือข่าย เลือกตัวเลือกนั้นเฉพาะเมื่อเหมาะสมกับการออกแบบเครือข่ายของโฮสต์เท่านั้น การเปลี่ยนแปลงเครือข่ายของโฮสต์ที่ใช้งานจริงอาจขัดขวางการเข้าถึงระยะไกล ดังนั้นควรวางแผนและกำหนดเวลาการเปลี่ยนแปลงบริดจ์ก่อนที่จะนำไปใช้
หลังจากตั้งค่าเสร็จสมบูรณ์แล้ว ให้สร้างหรือนำเข้าเครื่องเสมือน และตรวจสอบให้แน่ใจว่าได้กำหนดให้เป็นโดเมน libvirt แบบถาวรแล้ว คู่มือของ SUSE ระบุว่าการตั้งค่า KVM ผ่าน YaST ไม่จำเป็นต้องรีบูตเครื่องโฮสต์
หรืออีกทางเลือกหนึ่ง เอกสารของ SUSE อธิบายวิธีการติดตั้งแพทเทิร์นด้วย Zypper: sudo zypper install -t pattern kvm_server kvm_toolsเลือกวิธีการติดตั้งวิธีใดวิธีหนึ่งและตรวจสอบธุรกรรมแพ็กเกจก่อนยืนยัน หากกำลังติดตั้งโฮสต์ใหม่ทั้งหมด บทบาทระบบ KVM Virtualization Hostจะติดตั้งและกำหนดค่าตัวเลือกที่เหมาะสมระหว่างการติดตั้ง SLES
จะตั้งค่า VM เครื่องใดเครื่องหนึ่งให้เริ่มต้นทำงานโดยอัตโนมัติได้อย่างไร?
ขั้นแรก ให้แสดงรายการโดเมนผ่านการเชื่อมต่อ libvirt ของระบบ เพื่อให้คุณสามารถใช้ชื่อเครื่องเสมือนได้อย่างถูกต้อง:
แสดงรายการโดเมนทั้งหมดในการเชื่อมต่อระบบ และคัดลอกชื่อ VM ที่ถูกต้องก่อนตั้งค่าการเริ่มต้นอัตโนมัติ
sudo virsh -c qemu:///system list --all
ตัวเลือก นี้--allรวมถึงแขกที่ปิดใช้งานอยู่ เลือก VM ที่ต้องการจากผลลัพธ์ จากนั้นเปิดใช้งานการเริ่มต้นอัตโนมัติสำหรับโดเมนนั้น:
แทนที่ VM_NAME ด้วยชื่อโดเมน libvirt ที่ถูกต้องของเครื่องเสมือน เพื่อเปิดใช้งานแฟล็กการเริ่มต้นอัตโนมัติ
sudo virsh autostart VM_NAME
หากต้องการยกเลิกการตั้งค่าในภายหลัง ให้เรียกใช้sudo virsh autostart --disable VM_NAMEคำสั่งนี้ นี่ไม่ใช่การกู้คืนหน่วยความจำที่บันทึกไว้: เครื่องเสมือนจะบูตตามปกติจากดิสก์ที่กำหนดค่าไว้หลังจากที่โฮสต์เริ่มต้นทำงาน นอกจากนี้ยังไม่ได้เลือกเครื่องเสมือนทุกเครื่องโดยอัตโนมัติ ใช้คำสั่งนี้เฉพาะกับเครื่องเสมือนที่ควรทำงานบนโฮสต์นี้เท่านั้น
บริการ libvirt ใดที่ต้องเริ่มต้นทำงานเมื่อบูตเครื่อง?
ขึ้นอยู่กับว่าโฮสต์ SLES นี้ใช้ daemon แบบโมดูลาร์ของ libvirt หรือแบบ monolithic ดั้งเดิมlibvirtdเอกสารของ SUSE ระบุว่า daemon แบบโมดูลาร์เปิดใช้งานโดยค่าเริ่มต้นใน SLES 15 SP7 และแนะนำให้เริ่มบริการไดรเวอร์ที่เกี่ยวข้องเมื่อบูตเครื่องในกรณีที่ตั้งค่า guest ให้เริ่มต้นอัตโนมัติ บริการไดรเวอร์ QEMU คือvirtqemud.service. ในการตั้งค่าแบบ monolithic นั้น SUSE แนะนำให้ใช้libvirtd.serviceแทน อย่าเปิดใช้งานโหมดการปรับใช้ทั้งสองแบบเพียงเพราะชื่อหน่วยทั้งสองมีอยู่
ตรวจสอบหน่วยวัดบนเครื่องโฮสต์ของคุณก่อนทำการเปลี่ยนแปลง:
ตรวจสอบหน่วยดีมอน libvirt ที่มีอยู่เพื่อระบุโหมดการปรับใช้ของโฮสต์ก่อนที่จะเปิดใช้งานสิ่งใดๆ
systemctl status virtqemud.service libvirtd.service
หากโฮสต์ใช้ libvirt แบบโมดูลาร์และติดตั้งหน่วย QEMU แล้ว ให้เปิดใช้งานโดยใช้คำสั่ง:
sudo systemctl enable --now virtqemud.service
หากโฮสต์ได้รับการกำหนดค่าไว้สำหรับเดมอนแบบรวมศูนย์ ให้ใช้คำสั่งนี้แทน:
เปิดใช้งานหน่วยนี้เฉพาะบนโฮสต์ที่ใช้การติดตั้ง libvirtd แบบรวมศูนย์เท่านั้น โฮสต์แบบโมดูลาร์จะใช้ดีมอนไดรเวอร์ของตนเอง
sudo systemctl enable --now libvirtd.service
กำหนดให้เครือข่าย libvirt เริ่มต้นทำงานโดยอัตโนมัติเฉพาะในกรณีที่ VM ใช้เครือข่ายเสมือนนั้นเท่านั้น
ด้วย libvirt ที่เป็นแบบโมดูลาร์ การจัดการเครือข่ายเสมือนและการจัดเก็บข้อมูลสามารถใช้ daemon ไดรเวอร์หรือ socket ที่แยกจากกันได้ หากเครื่องเสมือนขึ้นอยู่กับเครือข่ายที่จัดการโดย libvirt ให้ตั้งค่าให้เครือข่ายนั้นเริ่มต้นทำงานโดยอัตโนมัติด้วย ตัวอย่างเช่น เอกสารของ SUSE sudo virsh net-autostart defaultเกี่ยวกับdefaultเครือข่ายที่กำหนดไว้ล่วงหน้า ทำเช่นนี้เฉพาะเมื่อเครื่องเสมือนใช้งานเครือข่ายนั้นจริง ๆ เท่านั้น บริดจ์ที่กำหนดค่าไว้ที่ระดับโฮสต์จะไม่ใช้การตั้งค่าเครือข่าย libvirt นี้ ตรวจสอบเครือข่ายที่เชื่อมต่อกับเครื่องเสมือนจริง ๆ แทนที่จะสันนิษฐานชื่อเครือdefaultข่าย
หากแขกใช้ดิสก์ภายนอกหรือดิสก์ที่เชื่อมต่อผ่านเครือข่าย โปรดตรวจสอบให้แน่ใจว่าพื้นที่จัดเก็บข้อมูลสำรองพร้อมใช้งานเมื่อบูตเครื่อง SUSE ระบุว่าสถานะการทำงานของพูลจัดเก็บข้อมูล libvirt ไม่ได้เปลี่ยนแปลงความพร้อมใช้งานของวอลุ่มที่เชื่อมต่อกับแขกอยู่แล้ว แต่การเปิดใช้งานการเริ่มต้นพูลอัตโนมัติจะมีประโยชน์เมื่อพูลต้องทำงานอยู่เพื่อการจัดการพูลฝั่งโฮสต์หรือการดำเนินการวอลุ่มในภายหลัง: sudo virsh pool-autostart POOLแทนที่POOLด้วยชื่อพูลจริง อย่าสร้างพูลใหม่เพียงเพื่อตั้งค่าการเริ่มต้น VM อัตโนมัติ
คุณจะตรวจสอบได้อย่างไรว่าเครื่องเสมือน (VM) จะกลับมาใช้งานได้อีกครั้ง?
ใช้ข้อมูลโดเมนของแขกเพื่อตรวจสอบการตั้งค่าการเริ่มต้นอัตโนมัติก่อนกำหนดเวลาการรีบูตโฮสต์
ก่อนทำการรีบูตเพื่อบำรุงรักษาตามแผน ให้ตรวจสอบการกำหนดค่าโดเมนและสถานะของเดมอน ใช้คำสั่งsudo virsh dominfo VM_NAMEเพื่อยืนยันว่าได้เปิดใช้งานการเริ่มต้นอัตโนมัติแล้ว หรือsystemctl is-enabled virtqemud.serviceใช้systemctl is-enabled libvirtd.serviceคำสั่งเพื่อตรวจสอบโหมดเดมอนที่คุณเลือก หากคำสั่งแรกไม่สำเร็จเนื่องจากไม่พบเครื่องเสมือน โปรดตรวจสอบให้แน่ใจว่าคุณกำลังสอบถามการเชื่อมต่อ libvirt เดียวกันกับที่สร้างเครื่องเสมือนนั้นไว้
จากนั้นทดสอบระหว่างช่วงเวลาการบำรุงรักษาที่ได้รับอนุมัติ หลังจากโฮสต์กลับมาทำงาน ให้เรียกใช้คำsudo virsh -c qemu:///system list --allสั่ง แขกที่เลือกควรแสดงสถานะว่ากำลังทำงาน ตรวจสอบเครือข่ายและบริการของแขกแยกต่างหาก หากยังคงปิดอยู่ ให้ตรวจสอบบันทึกการบูตของเดมอนที่ทำงานอยู่ด้วยคำสั่งjournalctl -b -u virtqemud.serviceหรือjournalctl -b -u libvirtd.serviceตามความเหมาะสม และตรวจสอบพื้นที่จัดเก็บข้อมูลที่ไม่พร้อมใช้งานหรือเครือข่ายเสมือนที่จำเป็น เงื่อนไขเหล่านี้ขึ้นอยู่กับการกำหนดค่าโฮสต์ ดังนั้นบันทึกของเดมอนและการกำหนดค่าอุปกรณ์จริงของ VM จะเป็นตัวกำหนดวิธีแก้ไขถัดไป
สำหรับรายละเอียดบริการเฉพาะเวอร์ชัน การตั้งค่าเครือข่าย และการจัดการเครื่องเสมือน โปรดดูเอกสารประกอบของ SUSE SLES 15 SP7 เกี่ยวกับ libvirt daemonและบทเกี่ยวกับการเตรียมโฮสต์เครื่องเสมือน