คำที่น่ากลัวนี้คือ "การจำลองเสมือน" โซลูชันของฉันใช้ KVM การวิเคราะห์ไฮเปอร์ไวเซอร์ KVM

คุณเคยสงสัยหรือไม่ว่าคลาวด์ทำงานอย่างไร? แนวโน้มด้านไอทีที่เติบโตเร็วที่สุดในการพัฒนาโดยใช้เงินลงทุนหลายพันล้านดอลลาร์ต่อปี จะต้องผ่านกระบวนการผลิตทางเทคโนโลยีของตัวเองก่อนที่จะกลายเป็นผลิตภัณฑ์หรือบริการสำเร็จรูปที่สามารถใช้งานได้ กระบวนการนี้สามารถให้รายละเอียดในรายละเอียดได้อย่างไม่มีกำหนด ดังนั้นเราจะพิจารณาเฉพาะขั้นตอนสุดท้ายเท่านั้น - การจำลองเสมือน ได้แก่ ผลิตภัณฑ์ซอฟต์แวร์หรือส่วนประกอบฮาร์ดแวร์ด้วยความช่วยเหลือของการจำลองเสมือน

วัสดุชิ้นแรกในซีรีส์ “เทคโนโลยี VPS/VDS” มีไว้สำหรับผลิตภัณฑ์ซอฟต์แวร์ KVM (Kernel-based Virtual Machine) โดยเฉพาะ เราเริ่มต้นด้วยมัน เนื่องจากเป็นไฮเปอร์ไวเซอร์ที่เราใช้ในคลาวด์ Tucha และแน่นอนว่าทัศนคติของเราที่มีต่อมันนั้นพิเศษมาก

ไฮเปอร์ไวเซอร์ KVM: คุณสมบัติและหลักการทำงาน

เทคโนโลยีเวอร์ช่วลไลเซชั่นกำลังถูกนำมาใช้มากขึ้นในระบบสมัยใหม่ เครื่องเสมือนเป็นวิธีที่ง่ายที่สุดในการมีระบบปฏิบัติการที่แตกต่างกันหลายระบบพร้อมกับสภาพแวดล้อมซอฟต์แวร์สำหรับการทำงานต่างๆ เช่น การทดสอบหรือการพัฒนาซอฟต์แวร์ การจัดระเบียบโฮสติ้งโดยใช้ VPS การจัดจำหน่ายผลิตภัณฑ์ดิจิทัล การฝึกอบรม ฯลฯ เพื่อให้การจัดการเครื่องเสมือนง่ายขึ้น จึงมีการใช้ไฮเปอร์ไวเซอร์ ซึ่งเป็นโซลูชันซอฟต์แวร์ที่ช่วยให้คุณสามารถเริ่มต้น หยุด และปรับใช้เครื่องเสมือนใหม่ภายในโฮสต์เดียวได้อย่างรวดเร็ว หนึ่งในไฮเปอร์ไวเซอร์ที่ได้รับความนิยมมากที่สุดสำหรับระบบที่คล้ายกับ UNIX คือ KVM

ไฮเปอร์ไวเซอร์ KVM: สถาปัตยกรรม

KVM (ตัวย่อสำหรับ Virtual Machine ที่ใช้เคอร์เนล) คือซอฟต์แวร์ที่ทำให้สามารถนำการจำลองเสมือนไปใช้กับคอมพิวเตอร์ที่ใช้ Linux และสิ่งที่คล้ายคลึงกัน มาระยะหนึ่งแล้ว KVM เป็นส่วนหนึ่งของเคอร์เนล Linux และดังนั้นจึงพัฒนาไปพร้อมกับมัน ใช้งานได้เฉพาะกับระบบที่รองรับฮาร์ดแวร์สำหรับการจำลองเสมือน – บนโปรเซสเซอร์ Intel และ AMD

ในการจัดระเบียบงาน KVM ใช้การเข้าถึงเคอร์เนลโดยตรงโดยใช้โมดูลเฉพาะโปรเซสเซอร์ (kvm-intel หรือ kvm-amd) นอกจากนี้คอมเพล็กซ์ยังรวมถึงองค์ประกอบหลัก - kvm.ko และ UI รวมถึง QEMU ยอดนิยม ไฮเปอร์ไวเซอร์ช่วยให้คุณทำงานกับไฟล์เครื่องเสมือนและดิสก์อิมเมจจากโปรแกรมอื่นได้โดยตรง พื้นที่แยกจะถูกสร้างขึ้นสำหรับแต่ละเครื่องโดยมีหน่วยความจำ ดิสก์ การเข้าถึงเครือข่าย การ์ดแสดงผล และอุปกรณ์อื่นๆ ของตัวเอง

ข้อดีและข้อเสียของ KVM

เช่นเดียวกับโซลูชันซอฟต์แวร์อื่นๆ KVM มีทั้งข้อดีและข้อเสีย ขึ้นอยู่กับว่าโฮสต์และผู้ใช้ปลายทางคนใดตัดสินใจใช้ซอฟต์แวร์นี้

ข้อดีหลักของไฮเปอร์ไวเซอร์คือ:

  • จัดสรรทรัพยากรอย่างอิสระ- เครื่องเสมือนแต่ละเครื่องที่ใช้ KVM จะได้รับ RAM และหน่วยความจำถาวรในจำนวนของตัวเอง และไม่สามารถ "ปีน" เข้าไปในพื้นที่อื่นได้ ซึ่งจะเพิ่มความเสถียร
  • รองรับระบบปฏิบัติการของแขกอย่างกว้างขวาง- นอกเหนือจากการรองรับระบบปฏิบัติการ UNIX อย่างเต็มรูปแบบ รวมถึง *BSD, Solaris, Linux แล้ว ยังสามารถติดตั้ง Windows และแม้แต่ MacOS ได้อีกด้วย
  • การโต้ตอบกับเคอร์เนลช่วยให้สามารถเข้าถึงฮาร์ดแวร์เวิร์กสเตชันได้โดยตรงซึ่งทำงานได้ เร็วขึ้น;
  • การสนับสนุนจากยักษ์ใหญ่ของตลาดซอฟต์แวร์(RedHat Linux, HP, Intel, IBM) ช่วยให้โครงการพัฒนาได้อย่างรวดเร็ว ครอบคลุมจำนวนฮาร์ดแวร์และระบบปฏิบัติการที่เพิ่มขึ้น รวมถึงเวอร์ชันล่าสุด
  • การดูแลระบบที่เรียบง่าย– ความเป็นไปได้ของการควบคุมระยะไกลผ่าน VNC และซอฟต์แวร์และส่วนเสริมของบุคคลที่สามจำนวนมาก

นอกจากนี้ยังมีข้อเสียบางประการ:

  • ความเยาว์วัยของไฮเปอร์ไวเซอร์ (เช่นเมื่อเปรียบเทียบกับ Xen) และการเติบโตอย่างรวดเร็วที่สอดคล้องกันทำให้เกิดปัญหาต่าง ๆ โดยเฉพาะอย่างยิ่งเมื่อเพิ่มการรองรับสภาพแวดล้อมฮาร์ดแวร์และซอฟต์แวร์ใหม่
  • ความซับซ้อนของการตั้งค่าโดยเฉพาะสำหรับผู้ใช้ที่ไม่มีประสบการณ์ จริงอยู่ที่ตัวเลือกส่วนใหญ่ไม่จำเป็นต้องเปลี่ยนแปลง - ได้รับการกำหนดค่าอย่างเหมาะสมที่สุดตั้งแต่แกะกล่อง

ฟังก์ชั่นและคุณสมบัติของไฮเปอร์ไวเซอร์

KVM คอมเพล็กซ์มีคุณสมบัติพื้นฐานดังต่อไปนี้ - ความปลอดภัย, การจัดการหน่วยความจำที่สะดวก, การจัดเก็บข้อมูลที่เชื่อถือได้, การโยกย้ายแบบไดนามิก, ประสิทธิภาพ, ความสามารถในการปรับขนาดและความเสถียร

ความปลอดภัย

ใน KVM แต่ละเครื่องเป็นกระบวนการของ Linux ดังนั้นจึงอยู่ภายใต้นโยบายความปลอดภัยมาตรฐานโดยอัตโนมัติ เช่นเดียวกับการแยกจากกระบวนการอื่นๆ ส่วนเสริมพิเศษ (เช่น SELinux) เพิ่มองค์ประกอบความปลอดภัยอื่น ๆ - การควบคุมการเข้าถึง การเข้ารหัส ฯลฯ

เนื่องจาก KVM เป็นส่วนหนึ่งของเคอร์เนล Linux ไฮเปอร์ไวเซอร์จึงสืบทอดเครื่องมือการจัดการหน่วยความจำอันทรงพลัง หน้าหน่วยความจำของแต่ละกระบวนการ เช่น เครื่องเสมือนสามารถคัดลอกและเปลี่ยนแปลงได้อย่างรวดเร็วโดยไม่กระทบต่อความเร็ว ด้วยการรองรับระบบมัลติโปรเซสเซอร์ KVM จึงมีความสามารถในการจัดการหน่วยความจำจำนวนมาก นอกจากนี้ยังรองรับการวางลักษณะทั่วไปของหน่วยความจำ - การรวมหน้าที่เหมือนกันและการออกสำเนาไปยังเครื่องเมื่อมีการร้องขอ เช่นเดียวกับวิธีการเพิ่มประสิทธิภาพอื่น ๆ

การจัดเก็บข้อมูล

ในการจัดเก็บอิมเมจเครื่องและข้อมูล KVM สามารถใช้สื่อใดๆ ที่ได้รับการสนับสนุนจากระบบปฏิบัติการหลัก เช่น ฮาร์ดไดรฟ์, NAS, ไดรฟ์แบบถอดได้ รวมถึงสื่อที่มี I/O แบบมัลติเธรด เพื่อเร่งความเร็วในการทำงาน นอกจากนี้ ไฮเปอร์ไวเซอร์ยังสามารถทำงานกับระบบไฟล์แบบกระจาย เช่น GFS2 ดิสก์ KVM มีรูปแบบเฉพาะของตัวเองที่รองรับการสร้างสแน็ปช็อตแบบไดนามิกในระดับต่างๆ การเข้ารหัส และการบีบอัด

คุณสมบัติที่สำคัญของ KVM คือการรองรับการโยกย้ายแบบสด: การย้ายเครื่องเสมือนระหว่างโฮสต์ที่แตกต่างกันโดยไม่หยุดมัน สำหรับผู้ใช้ การโยกย้ายดังกล่าวจะมองไม่เห็นโดยสิ้นเชิง - เครื่องยังคงทำงานอยู่ ประสิทธิภาพไม่ลดลง การเชื่อมต่อเครือข่ายยังทำงานอยู่ แน่นอนว่าการโยกย้ายยังเป็นไปได้ด้วยการบันทึกสถานะปัจจุบันของเครื่องเสมือนลงในสแน็ปช็อตและปรับใช้กับโฮสต์อื่น

ประสิทธิภาพและความสามารถในการขยายขนาด

ความสามารถในการปรับขนาดและประสิทธิภาพของคอมเพล็กซ์เนื่องจากการผสานรวมกับ Linux อย่างแน่นหนานั้นสืบทอดมาจากระบบปฏิบัติการนี้อย่างสมบูรณ์ ดังนั้นไฮเปอร์ไวเซอร์จึงรองรับโปรเซสเซอร์ได้สูงสุด 16 ตัว (เสมือนหรือฟิสิคัล) และ RAM สูงสุด 256 GB ในแต่ละเครื่องเสมือน ซึ่งช่วยให้สามารถใช้ไฮเปอร์ไวเซอร์ได้แม้บนระบบที่มีภาระงานหนักที่สุด

ความมั่นคง

แพคเกจซอฟต์แวร์ได้รับการปรับปรุงอย่างต่อเนื่อง - หากเริ่มแรกรองรับเฉพาะแพลตฟอร์ม Linux x86 ปัจจุบันจำนวนแพลตฟอร์มที่แตกต่างกันมีเป็นสิบๆ ซึ่งรวมถึงระบบปฏิบัติการเซิร์ฟเวอร์ยอดนิยมทั้งหมดด้วย นอกจากนี้ คุณยังสามารถปรับใช้เครื่องเสมือนด้วยบิลด์ระบบปฏิบัติการที่ได้รับการดัดแปลงได้อย่างง่ายดาย หากเข้ากันได้กับแพลตฟอร์มหลัก และด้วยความร่วมมือกับผู้ผลิตซอฟต์แวร์ชั้นนำ ทำให้ KVM Hypervisor เรียกได้ว่ามีเสถียรภาพและเชื่อถือได้มากที่สุดในตลาด

บันทึกนี้จะเป็นประโยชน์สำหรับทุกคนที่สนใจใช้ระบบเสมือนจริงในการทำงาน โซลูชันของฉันอาจมีคุณสมบัติเหมาะสมสำหรับการใช้งานในอุตสาหกรรม และจะเป็นประโยชน์สำหรับผู้ที่ต้องการลดต้นทุนด้านฮาร์ดแวร์ หากพวกเขาต้องการมีโครงสร้างพื้นฐานเครือข่ายที่กว้างขวาง ตัวอย่างเช่น โซลูชันบางอย่างจาก IBM จะใช้ตัวเลือกที่คล้ายกัน แต่โซลูชันเหล่านี้ไม่ได้เป็นมิตรกับงบประมาณและเป็นที่ต้องการเฉพาะในกรณีพิเศษเท่านั้น
ดังนั้น วันหนึ่งฉันจำเป็นต้องสร้างโครงสร้างพื้นฐานเครือข่ายที่ครอบคลุมซึ่งประกอบด้วยแพลตฟอร์มซอฟต์แวร์ต่างๆ ที่บ้าน เส้นทางเริ่มต้นจาก VMWare Workstation และสิ้นสุดด้วย KVM... ทำไม KVM และเกิดขึ้นได้อย่างไร อ่านด้านล่าง

1. ประวัติเล็กน้อยหรือจุดเริ่มต้นทั้งหมด
ในขณะที่ทำงานที่ธนาคาร ฉันได้พบกับระบบเสมือนจริงโดยตรง เป็นระบบปฏิบัติการ AIX ของ IBM ที่ทำงานบนเมนเฟรม ตั้งแต่แรกเริ่ม ฉันรู้สึกประหลาดใจกับพลังและความยืดหยุ่นของแนวทางนี้ และเมื่อฉันต้องการสร้างโครงสร้างพื้นฐานซอฟต์แวร์ขนาดใหญ่ที่บ้านเพื่อการทดสอบ ฉันก็ยึดหลักการของการจำลองเสมือนทันที ทำให้สามารถหลีกเลี่ยงค่าใช้จ่ายจำนวนมากสำหรับฮาร์ดแวร์และเพื่อให้พอดีกับทุกสิ่งที่มีขนาดกะทัดรัดในแง่ของพื้นที่
ผู้อ่านควรทราบว่าจริงๆ แล้วมีเครื่องมือการจำลองเสมือนมากมาย แต่ละคนมีรายละเอียดปลีกย่อยและความแตกต่างของตัวเอง เป้าหมายของฉันคือการพูดคุยเกี่ยวกับทางเลือกหนึ่งที่ฉันทำงานด้วยเป็นการส่วนตัว โดยอธิบายข้อบกพร่องและคุณลักษณะของตัวเลือกอื่นๆ หากเป็นไปได้
2. ตัวเลือกของฉันเรียกว่า KVM (หรือ Virtual Machine ที่ใช้เคอร์เนล)
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับตัวเลือกนี้ได้
แต่จะดีกว่าถ้านำเสนอทุกอย่างตามลำดับ ฉันจะเริ่มต้นด้วยเงื่อนไขการเลือก และตัวเลือกใดที่ฉันทราบไม่ตรงตามเงื่อนไขเหล่านี้:
— ระบบหลักจะต้องมีราคาไม่แพงและทรงพลัง

ในแง่ของฮาร์ดแวร์ฉันเลือกตัวเลือก AMD Phenom X4 9550 / Asus M3A78 / 2x2Gb DDR-II / 1x160Gb IDE + 2x1Tb SATA-II วิดีโอไม่สำคัญเลยที่นี่ ยกเว้นในกรณีของวิดีโอในตัว คุณจะต้องคำนึงว่ามันใช้ส่วนหนึ่งของ RAM ดังนั้นจะมีน้อยลงสำหรับเครื่องเสมือน ฉันจะบอกทันทีว่าการเลือกมาเธอร์บอร์ดที่มีคอนโทรลเลอร์ RAID ในตัวนั้นไม่ถูกต้องทั้งหมด ปรากฎว่า RAID นี้ใช้งานได้เฉพาะในโหมดซอฟต์แวร์เท่านั้น เช่น จำเป็นต้องมีไดรเวอร์สำหรับระบบ Windows แต่ใน Linux เอฟเฟกต์เดียวกันนี้สามารถทำได้ง่ายกว่ามากโดยใช้เครื่องมือมาตรฐาน
การใช้แพลตฟอร์มซอฟต์แวร์สำหรับระบบหลักเห็นได้ชัดว่าสนับสนุน GNU/Linux เนื่องจาก ทำให้สามารถรับสภาพแวดล้อมการจำลองเสมือนได้โดยไม่ต้องเสียค่าลิขสิทธิ์เพิ่มเติมและยังเบากว่าในแง่ของโหลด (ฉันจะไม่มีวันเข้าใจว่าทำไมจึงไม่สามารถติดตั้งและดำเนินการใด ๆ ใน Windows Server โดยไม่มีกราฟิก... โหลดที่ไม่มีความหมาย IMHO) ในตอนแรก มีการวางแผนที่จะใช้ตัวเลือก Ubuntu Server Hardy LTS แต่เกือบจะในทันทีที่มีการโยกย้ายไปยัง Debian Lenny (เพิ่งเปิดตัวในเวลานั้น) ฉันจะไม่ดูถูกข้อดีของ Ubuntu แต่อย่างใด แต่โดยส่วนตัวแล้ว Debian คือ มีเสถียรภาพและรวดเร็วยิ่งขึ้น

— ระบบเวอร์ช่วลไลเซชั่นจะต้องมีความเสถียร เข้าถึงได้แบบสาธารณะ และไม่ต้องการทรัพยากรมากนัก

ตัวเลือกนั้นเวียนหัว แต่หลังจากศึกษาบทวิจารณ์บนอินเทอร์เน็ตและพยายามใช้แล้วฉันก็มีความคิดเห็นส่วนตัว
ผลิตภัณฑ์ VMWare ไม่เหมาะสม ชำระค่าเวิร์คสเตชั่นแล้ว ไม่สามารถติดตั้ง ESXi บนระบบของฉันได้เนื่องจากชิปเซ็ตที่ไม่รองรับ (กลายเป็นว่าทันสมัยกว่า) VMWare Server น่าจะเป็นตัวเลือกที่ดี แต่เมื่อพิจารณาจากบทวิจารณ์แล้ว มันค่อนข้างหนักและขัดข้องเป็นระยะ ฉันไม่ได้ลองด้วยตัวเองหลังจากเกิดข้อผิดพลาดกับ ESXi ไม่เหมาะกับเหตุผลอื่นอีกประการหนึ่ง - บริษัทยังคงจำหน่ายผลิตภัณฑ์ของตนและมีเพียงบางส่วนเท่านั้นที่สามารถหาได้ฟรี
VirtualBox กลายเป็นตัวเลือกที่ดีมาก มีสองเวอร์ชัน - OSE และฟรีแวร์ แหล่งที่มาของเวอร์ชันฟรีแวร์ไม่ได้เปิดเผยต่อสาธารณะ แต่ได้รับการชดเชยด้วยฟังก์ชันการทำงาน ความแตกต่างที่ฉันรู้คือการขาดการรองรับ USB ในเวอร์ชัน OSE, ข้อจำกัดเมื่อทำงานกับเครือข่าย และการเร่งความเร็วกราฟิกไม่ได้รับการสนับสนุน (โดยวิธีนี้ ซึ่งช่วยเพิ่มความเร็วของเครื่องเสมือนได้อย่างเหมาะสม) VirtualBox เหมาะอย่างยิ่งสำหรับการใช้งานที่ง่ายที่สุด เนื่องจาก... ช่วยให้คุณได้รับเครื่องเสมือนที่ทำงานได้อย่างรวดเร็วโดยไม่มีการเคลื่อนไหวที่ไม่จำเป็นและศึกษาคู่มืออย่างละเอียด คุณสมบัติที่ดีคือการรองรับการทำงานจากคอนโซลซึ่งช่วยให้คุณหลีกเลี่ยงการใช้ส่วนเสริมแบบกราฟิกและด้วยเหตุนี้จึงลบภาระเพิ่มเติมบนเครื่องโฮสต์ สำหรับผู้เริ่มต้น “โฮมเวอร์ช่วลไลเซอร์” ฉันอยากจะแนะนำตัวเลือกนี้ โดยส่วนตัวแล้ว ฉันยังคงใช้มันบนแล็ปท็อปส่วนตัวของฉันเพื่อตั้งค่าสภาพแวดล้อมการทดสอบอย่างรวดเร็ว เช่นเดียวกับการทำงานใน Windows (Ubuntu ได้รับการยอมรับว่าเป็นระบบหลักมานานแล้ว) ตามความรู้สึกส่วนตัว VirtualBox ทำงานได้เร็วกว่า VMWare Workstation มาก และใช้พื้นที่น้อยลงทั้งบนดิสก์และในหน่วยความจำ แต่ละเครื่องมีการจัดสรรหน้าต่างแยกต่างหากและหากมีการติดตั้งไดรเวอร์ในระบบเกสต์ (มีให้ใช้งานทันที) ก็สามารถรวมไดรเวอร์เหล่านั้นเข้ากับโฮสต์เดสก์ท็อปได้ซึ่งสะดวกมากและช่วยให้คุณกระจายงานไปยังที่ต่างๆ เดสก์ท็อปเสมือน
QEMU เป็นสิ่งที่ทรงพลังมาก แต่เมื่อฉันจำได้ ฉันให้ความสนใจกับการจำลองเสมือนที่ใช้เคอร์เนลและข้อมูลเกี่ยวกับ Xen และ KVM แล้ว ดังนั้นฉันจึงไม่คุ้นเคยกับ QEMU เพียงอย่างเดียวมากนัก
Xen เป็นระบบในอุดมคติสำหรับการจำลองเสมือน แต่มีข้อเสียเปรียบที่สำคัญมาก - ต้องเตรียมระบบแขกล่วงหน้า
KVM ซึ่งใช้ QEMU นั้นเกือบจะเร็วเท่ากับ Xen แต่มีฟังก์ชันการทำงานที่ยืดหยุ่นมากกว่าและพลังทั้งหมดของการตั้งค่า QEMU (แม้ว่าสิ่งที่ฉันต้องการส่วนใหญ่อยู่ใน VirtualBOX) ทั้งสองตัวเลือก Xen และ KVM ได้รับการปรับใช้ในการแจกแจงสมัยใหม่ทั้งหมด และไม่ต้องใช้ความพยายามอย่างจริงจังในการใช้งาน แต่มีความแตกต่างพื้นฐานระหว่างพวกเขาซึ่งจะกล่าวถึงต่อไป

— จำเป็นต้องสามารถทำซ้ำแพลตฟอร์มซอฟต์แวร์ต่างๆ บนเครื่องเสมือนได้

แม้จะมีผลิตภัณฑ์ VMWare และ VirtualBOX ในเรื่องนี้ แต่ฉันปฏิเสธที่จะใช้ก่อนหน้านี้ ดังนั้นฉันจะไม่พิจารณาพวกเขา... แต่เกี่ยวกับ Xen และ KVM ฉันจะอธิบายรายละเอียดเพิ่มเติมเล็กน้อยเพราะ ฉันค้นหาข้อมูลด้วยตัวเองเป็นเวลานานมาก
Xen ไม่อนุญาตให้คุณรันระบบอื่นนอกเหนือจากระบบโฮสต์!!! หรือเป็นระบบที่ไม่ได้เตรียมไว้ล่วงหน้าสำหรับการทำงานในสภาพแวดล้อมเสมือนจริง และน่าเสียดาย (หรืออาจโชคดี) ไม่สามารถประมวลผลการแจกแจงของ Windows ด้วยวิธีนี้ได้ ซึ่งไม่เหมาะกับฉันเพราะท้ายที่สุดตัวเลือกก็ตกอยู่ที่ตัวเลือกการใช้ KVM ซึ่งไม่จำเป็นต้องเตรียมระบบแขกล่วงหน้า

เหตุผลในการเลือก KVM สั้น ๆ :

1. การใช้งานพร้อมใช้งานทันทีในการกระจายขนาดใหญ่
2. ใช้งานบนพื้นฐานของเคอร์เนล Linux จึงมีความเร็วสูง
3. ใช้โดยยักษ์ใหญ่เช่น RedHat และ Ubuntu ซึ่งบ่งบอกถึงความเสถียรและความยืดหยุ่นสูง
4. ไม่จำเป็นต้องมีการจัดการเพิ่มเติมกับระบบเกสต์สำหรับการติดตั้งในเครื่องเสมือน

3. ฉันทำมันบน Debian ได้อย่างไร
ถัดไปจะเป็นคำอธิบายทางเทคนิคเพิ่มเติม โดยอธิบายทีละขั้นตอนว่าฉันสร้างเซิร์ฟเวอร์ของฉันได้อย่างไร ซึ่งสามารถจัดการเซิร์ฟเวอร์เสมือนได้หลายสิบเซิร์ฟเวอร์ได้อย่างง่ายดาย
แม้ว่าที่จริงแล้วการกระจายที่ฉันชื่นชอบคือ Ubuntu แต่ท้ายที่สุดแล้ว Debian ก็ถูกเลือกให้เป็นระบบพื้นฐาน ภายในกรอบของบทความฉันจะไม่อธิบายรายละเอียดปลีกย่อยอะไรและอย่างไร แต่บนเดสก์ท็อปฉันยังคงชอบใช้ Ubuntu คำแนะนำส่วนใหญ่สำหรับ Ubuntu และ Debian นั้นเกี่ยวข้องกับทั้งสองตัวเลือก ดังนั้นเมื่อตั้งค่าฉันใช้ทั้งสองอย่าง
เรามาเริ่มตั้งค่าเซิร์ฟเวอร์กันดีกว่า
มาดูการแจกแจง Debian กัน เพื่อไม่ให้ดาวน์โหลดมากเกินไปในภายหลังและรับระบบใหม่ทันที ฉันจึงใช้ตัวเลือก netinstall ซึ่งฉันติดตั้งเฉพาะตัวเลือก "ระบบมาตรฐาน" เท่านั้น เราไม่ต้องการอะไรอีกแล้ว อย่างไรก็ตาม ฉันใช้รุ่น 64 บิตเพื่อรับการรองรับ RAM ที่มากขึ้น (>3GB) โดยไม่มีวิธีแก้ปัญหาและลูกเล่น (เช่น เคอร์เนลเซิร์ฟเวอร์ 32 บิตของการกระจาย Ubuntu รองรับมากกว่า 3GB แต่เฉพาะในกรณีที่มีเช่นนั้น ความเป็นไปได้ในชิปเซ็ต )
ฉันใช้ฮาร์ดไดรฟ์ IDE สำหรับพาร์ติชันระบบ (“/”, “/home”, swap) เพื่อไม่ให้เกิดปัญหากับระบบเมื่อติดตั้งบนอาร์เรย์ RAID (และมีบางส่วน) ระหว่างการติดตั้ง ฉันสร้าง RAID-1 โดยใช้ฮาร์ดไดรฟ์ SATA สองตัวทันทีเพื่อให้ข้อมูลมีความปลอดภัยมากขึ้น (ข้อมูลหลักจะถูกจัดเก็บไว้ในนั้น) ในอนาคต หากต้องการทำงานกับอาร์เรย์ RAID ของซอฟต์แวร์ คุณควรใช้ยูทิลิตี้ mdadm
ฉันกำลังรีทัชระบบที่ติดตั้งใหม่เล็กน้อย ก่อนอื่นฉันติดตั้ง ssh เพื่อให้ฉันสามารถถอดยูนิตระบบออกไปได้ทันทีและถอดจอภาพที่ไม่ต้องการอีกต่อไปออกจากมัน: sudo apt-get install ssh หลายคนแนะนำให้เปลี่ยนพอร์ตจากมาตรฐาน 22 เป็นพอร์ตอื่น แต่ควรทำก็ต่อเมื่อคุณมั่นใจในการกระทำของคุณและเซิร์ฟเวอร์ของคุณเชื่อมต่อกับอินเทอร์เน็ตโดยตรง อย่างไรก็ตามควรกล่าวถึงว่าหากใช้พอร์ตที่ไม่ได้มาตรฐานจะเกิดปัญหากับการจัดการ KVM virtualization จากระยะไกล ดังนั้นฉันจึงออกจากพอร์ตมาตรฐาน แต่ส่งต่อผ่านเราเตอร์ฮาร์ดแวร์ไปยังพอร์ตที่ไม่ได้มาตรฐานซึ่งสามารถเข้าถึงได้จากภายนอก

จากนั้นเราเปิดใช้งานการซิงโครไนซ์เวลาผ่านอินเทอร์เน็ต (ขอแนะนำอย่างยิ่งซึ่งจะมีประโยชน์)
sudo apt-get ติดตั้ง ntp ntpdate
วิธีตรวจสอบอุณหภูมิของชิปเซ็ต โปรเซสเซอร์ และฮาร์ดไดรฟ์:
sudo apt-get ติดตั้ง lm-เซ็นเซอร์ hddtemp
ยูทิลิตี้ hddtemp ทำงานได้ทันทีเพื่อกำหนดค่า lm-sensor ที่เราเรียกใช้หลังการติดตั้ง: sudo sensors-detect และตอบคำถามทุกข้อในเชิงยืนยัน
มันใช้งานง่ายมาก:
— ค้นหาอุณหภูมิของโปรเซสเซอร์ ชิปเซ็ต และคุณสมบัติอื่น ๆ ของเซ็นเซอร์ sudo ที่เราได้รับดังนี้:

it8712-isa-0290
อะแดปเตอร์: อะแดปเตอร์ ISA
VCore 1: +1.33 V (ต่ำสุด = +3.54 V, สูงสุด = +3.30 V) สัญญาณเตือน
VCore 2: +3.76 V (ต่ำสุด = +1.39 V, สูงสุด = +1.01 V) สัญญาณเตือน
+3.3V: +3.28 V (ต่ำสุด = +4.00 V, สูงสุด = +0.91 V) สัญญาณเตือน
+5V: +6.69 V (ต่ำสุด = +3.04 V, สูงสุด = +6.10 V) สัญญาณเตือน
+12V: +12.67 V (ต่ำสุด = +15.23 V, สูงสุด = +5.57 V) สัญญาณเตือน
-12V: -15.33 V (ต่ำสุด = -0.85 V, สูงสุด = -12.39 V) สัญญาณเตือน
-5V: +2.85 V (ต่ำสุด = +3.06 V, สูงสุด = +3.47 V) สัญญาณเตือน
แรงดันไฟฟ้าปกติ: +5.99 V (ต่ำสุด = +0.11 V, สูงสุด = +6.37 V)
Vแบต: +3.31 V
พัดลม 1: 2922 RPM (ต่ำสุด = 3260 RPM, div = 2)
fan2: 0 RPM (ต่ำสุด = 5400 RPM, div = 2) สัญญาณเตือน
fan3: 0 RPM (ต่ำสุด = 2732 RPM, div = 2) สัญญาณเตือน
อุณหภูมิ M/B: +44.0°C (ต่ำ = -73.0°C, สูง = -49.0°C) เซ็นเซอร์ = ทรานซิสเตอร์
อุณหภูมิ CPU: +32.0°C (ต่ำ = -65.0°C, สูง = -9.0°C) เซ็นเซอร์ = ทรานซิสเตอร์
อุณหภูมิ 3: +128.0°C (ต่ำ = +23.0°C สูง = -66.0°C) เซ็นเซอร์ = ปิดใช้งาน
cpu0_vid: +0.000 โวลต์

— ค้นหาอุณหภูมิของฮาร์ดไดรฟ์ SATA 1 ตัว — sudo hddtemp /dev/sda เราได้สิ่งที่ชอบ:

/dev/sda: WDC WD1001FALS-00J7B0: 33°C

สำหรับการทำงานเพิ่มเติม ฉันแนะนำให้ซื้อเซิร์ฟเวอร์ DHCP ของบริษัทอื่นและตั้งค่าอินเทอร์เฟซบริดจ์บนเซิร์ฟเวอร์การจำลองเสมือนของเรา
มาติดตั้งยูทิลิตี้ที่จำเป็น: sudo apt-get install bridge-utils
ฉันใช้เราเตอร์เป็นเซิร์ฟเวอร์ DHCP และสร้างอินเทอร์เฟซบริดจ์ตามคำแนะนำ คำแนะนำเดียวกันนี้จะบอกวิธีสร้างเครื่องเสมือน KVM ตามค่าเริ่มต้นโดยใช้วิธีการเชื่อมต่อนี้ เพื่อเร่งการรีบูต (ไม่ใช่สถานการณ์วิกฤติเลยหากเซิร์ฟเวอร์เปิดตลอด 24 ชั่วโมงทุกวัน) ฉันแนะนำให้คุณระบุที่อยู่คงที่สำหรับอินเทอร์เฟซล่วงหน้า แม้ว่า DHCP จะพร้อมใช้งานก็ตาม

และส่วนที่ดีที่สุดคือการติดตั้งโมดูล KVM และยูทิลิตี้ที่มีประโยชน์ มาเพิ่มผู้ใช้ปัจจุบันในกลุ่มที่เหมาะสมทันทีเพื่อให้พร้อมใช้งาน KVM คำอธิบายวิธีใช้ยูทิลิตี้สามารถพบได้ในคู่มือที่กล่าวถึงแล้ว sudo aptitude ติดตั้ง kvm libvirt-bin virtinst virt-top python-virtinst
sudo adduser softovick libvirt จริงๆ แล้วคุณสามารถใช้งานได้ทันที ฉันไม่เห็นประเด็นใดในการอธิบายคำสั่งทั้งหมด มีหน้าคู่มือสำหรับสิ่งนั้น แต่ฉันจะแสดงให้คุณเห็นว่าฉันสร้างเครื่องเสมือนได้อย่างไร:
สำหรับ Linux virt-install -n linux -r 512 -f linux.img -s 15 -c image.iso --accelerate --vnc --vncport=5900 --noautoconsole --os-type=linux --os-variant =ทั่วไป26
สำหรับ Windows virt-install -n windows -r 512 -f windows.img -s 15 -c image.iso --accelerate --vnc --vncport=5901 --noautoconsole --os-type=windows --os-variant =win2k3 --noacpi หลังจากนี้ ความคืบหน้าเพิ่มเติมของการติดตั้งและหน้าจอของเครื่องเกสต์สามารถควบคุมได้โดยการเชื่อมต่อโดยใช้ไคลเอนต์ VNC กับเซิร์ฟเวอร์บนพอร์ต 5900 และ 5901 (ฉันแนะนำให้กำหนดพอร์ต VNC สำหรับแต่ละเครื่องล่วงหน้า เพื่อให้สะดวกในการเชื่อมต่อ) มีตัวเลือกที่มีประโยชน์อื่น ๆ อีกมากมาย ฉันไม่ได้ใช้เพียงเพราะฉันไม่พบความต้องการเหล่านั้นเท่านั้น

และอีกหนึ่งสัมผัส แต่ไม่ใช่ครั้งสุดท้าย ฉันยังไม่ทราบวิธีเชื่อมต่อกับระบบเกสต์ความสามารถในการเขียนบางสิ่งโดยตรงไปยังฟิสิคัลพาร์ติชันหรือโฟลเดอร์ในการจู่โจมแม้ว่าฉันจะลองก็ตาม ดังนั้น ในกรณีของ Linux ฉันจะเชื่อมต่อกับข้อมูลบนเซิร์ฟเวอร์โดยใช้ nfs และในกรณีของ Windows โดยใช้ Samba การตั้งค่า Samba นั้นค่อนข้างจะเล็กน้อย ติดตั้ง sudo aptitude ติดตั้ง samba และแก้ไขไฟล์การกำหนดค่า /etc/samba/smb.conf เพื่อให้เหมาะกับงานของคุณ แต่การติดตั้งและกำหนดค่า nfs นั้นไม่ใช่เรื่องเล็กน้อยเลย ฉันใช้ตัวเลือกการติดตั้งนี้ ซึ่งอนุญาตให้ฉันเชื่อมต่อกับโฟลเดอร์ที่ต้องการจากที่อยู่ IP ของเครือข่ายท้องถิ่น (ประเภท 192.168.10.*): sudo aptitude install nfs-kernel-server portmap
perl -pi -e "s/^OPTIONS/#OPTIONS/" /etc/default/portmap.perl
echo "พอร์ตแมป: 192.168.10" >> /etc/hosts.allow
/etc/init.d/portmap รีสตาร์ท
echo "/media/raid 192.168.10.0/255.255.255.0(rw,no_root_squash,subtree_check)" >> /etc/exports
/etc/init.d/nfs-kernel-server รีโหลด
หลังจากขั้นตอนข้างต้น การดำเนินการนี้บนระบบเกสต์ก็เพียงพอแล้ว:
เซิร์ฟเวอร์เมานต์ sudo:/media/raid local_folder
หากจำเป็น คุณสามารถเปิดใช้งานการติดตั้งอัตโนมัติเมื่อบูตได้โดยแก้ไขไฟล์คอนฟิกูเรชัน /etc/fstab และเพิ่มบรรทัดดังนี้:
virtual:/media/raid /media/raid nfs เป็นค่าเริ่มต้น 0 2
โดยทั่วไปแล้ว การตั้งค่าเซิร์ฟเวอร์การจำลองเสมือนของเราเสร็จสมบูรณ์แล้ว คุณสามารถจัดการได้ทั้งในคอนโซลและใช้เครื่องมือกราฟิก virsh หรือ virtual manager

ป.ล. :
เคล็ดลับที่เป็นประโยชน์:
1. หากคุณระบุพอร์ต VNC เฉพาะสำหรับเครื่องเกสต์ คุณจะไม่สามารถเปิดคอนโซลกราฟิกได้โดยอัตโนมัติผ่าน Virtual Manager
2. Virtual Manager จะไม่สามารถเชื่อมต่อได้หากคุณมีการลบล้างพอร์ต ssh แม่นยำยิ่งขึ้นสิ่งนี้จะต้องอาศัยความเข้าใจที่ยาวนานและน่าเบื่อ
3. ตรวจสอบให้แน่ใจว่าใช้โหมด --noacpi สำหรับแขก Windows Server เพื่อให้ติดตั้งได้ตามปกติ
4. ตั้งค่าโหมดประหยัดพลังงานบนระบบแขกอย่างระมัดระวัง ห้ามปิดหน้าจอ มิฉะนั้น คุณจะไม่สามารถเชื่อมต่อผ่าน VNC ในภายหลังได้
5. หากคุณต้องการปิดเครื่องจากระยะไกลและรีบูตเครื่องผ่าน Virtual Manager ให้ปิดการใช้งานโปรแกรมรักษาหน้าจอเพราะว่า มันบล็อกการจัดการพลังงาน

ไฮเปอร์ไวเซอร์ การจำลองเสมือน และคลาวด์

การวิเคราะห์ไฮเปอร์ไวเซอร์ KVM

ซีรี่ส์เนื้อหา:

เกี่ยวกับบทความชุดนี้

ซีรีส์นี้เริ่มต้นด้วยภาพรวมของประเภทของไฮเปอร์ไวเซอร์และระบบเสมือนจริง จากนั้นตรวจสอบคุณสมบัติของไฮเปอร์ไวเซอร์ทั้งห้า กระบวนการติดตั้ง และปัญหาการจัดการที่อาจเกิดขึ้น

คุณสามารถใช้ชุดบทความนี้เป็นจุดเริ่มต้นในการทำความเข้าใจบทบาทของไฮเปอร์ไวเซอร์ในระบบคลาวด์เสมือนจริง หรือเพื่อสำรวจบทความแต่ละบทความที่จะช่วยคุณพิจารณาว่าไฮเปอร์ไวเซอร์ตัวใดเหมาะสมที่สุดสำหรับปริมาณงานบนคลาวด์ที่เฉพาะเจาะจง

สิ่งที่คุณต้องรู้เพื่อเริ่มต้น

Kernel-based Virtual Machine (KVM) เป็นโซลูชันการจำลองเสมือนเฉพาะแพลตฟอร์มที่สมบูรณ์แบบสำหรับ Linux บนโปรเซสเซอร์ x86 พร้อมส่วนขยายการจำลองเสมือน (Intel VT หรือ AMD-V) การสนับสนุน paravirtualization แบบจำกัดสำหรับ Linux และ Windows ยังมีให้สำหรับผู้เยี่ยมชมในรูปแบบของไดรเวอร์เครือข่าย paravirtual

ปัจจุบัน KVM สื่อสารกับเคอร์เนลผ่านโมดูลเคอร์เนลที่โหลดได้ รองรับระบบปฏิบัติการเกสต์ที่หลากหลาย เช่น Linux, BSD, Solaris, Windows, Haiku, ReactOS และ AROS Research Operating System KVM เวอร์ชันแก้ไข (qemu) สามารถทำงานบน Mac OS X ได้

หมายเหตุ: KVM จะไม่ดำเนินการจำลองตัวเองใดๆ แต่โปรแกรมที่ทำงานในพื้นที่ผู้ใช้จะใช้อินเทอร์เฟซ /dev/kvm เพื่อกำหนดค่าพื้นที่ที่อยู่ของเซิร์ฟเวอร์เสมือนของแขก ใช้ทรัพยากร I/O จำลอง และแมปอิมเมจกับอิมเมจโฮสต์

สถาปัตยกรรม KVM แสดงในรูปที่ 1

รูปที่ 1. สถาปัตยกรรม KVM
พาราเวอร์ชวลไลเซชัน

Paravirtualization เป็นเทคนิคการจำลองเสมือนที่ให้เครื่องเสมือนมีอินเทอร์เฟซซอฟต์แวร์ที่คล้ายกัน แต่ไม่เหมือนกันกับฮาร์ดแวร์พื้นฐาน วัตถุประสงค์ของอินเทอร์เฟซที่ได้รับการปรับเปลี่ยนนี้คือเพื่อลดเวลาที่ใช้โดยระบบปฏิบัติการเกสต์ในการดำเนินการที่ยากต่อการดำเนินการในสภาพแวดล้อมเสมือนจริงมากกว่าในสภาพแวดล้อมที่ไม่เสมือนจริง

มี "ตะขอ" พิเศษที่ช่วยให้แขกและระบบโฮสต์สามารถร้องขอและยืนยันวิธีแก้ปัญหาของงานที่ซับซ้อนเหล่านี้ที่สามารถทำได้ในสภาพแวดล้อมเสมือนจริง แต่ในอัตราที่ช้ากว่ามาก

ในสถาปัตยกรรม KVM เครื่องเสมือนจะทำงานเป็นกระบวนการ Linux ปกติ ซึ่งกำหนดตารางเวลาโดยตัวกำหนดตารางเวลา Linux มาตรฐาน อันที่จริงแล้ว โปรเซสเซอร์เสมือนแต่ละตัวจะปรากฏเป็นกระบวนการ Linux ปกติ สิ่งนี้ทำให้ KVM สามารถใช้ประโยชน์จากคุณสมบัติทั้งหมดของเคอร์เนล Linux

การจำลองอุปกรณ์ถูกควบคุมโดย qemu เวอร์ชันดัดแปลง ซึ่งจัดให้มีการจำลอง BIOS, บัส PCI, บัส USB รวมถึงชุดอุปกรณ์มาตรฐาน เช่น ตัวควบคุมดิสก์ IDE และ SCSI การ์ดเครือข่าย ฯลฯ

ฟังก์ชั่นการทำงาน

คุณสมบัติหลักของ KVM มีดังต่อไปนี้

ความปลอดภัย

เนื่องจากเครื่องเสมือนถูกนำมาใช้เป็นกระบวนการ Linux จึงใช้โมเดลความปลอดภัยของ Linux มาตรฐานเพื่อแยกและจัดการทรัพยากร ด้วย SELinux (Security-Enhanced Linux) เคอร์เนล Linux จะเพิ่มการควบคุมการเข้าถึงที่จำเป็น การควบคุมความปลอดภัยแบบเป็นชั้นและสมบูรณ์ และจัดการนโยบายความปลอดภัย SELinux ให้การแยกทรัพยากรที่เข้มงวดและจำกัดการเคลื่อนที่ของกระบวนการที่ทำงานในเคอร์เนล Linux

โครงการ SVirt ซึ่งเป็นความพยายามของชุมชนในการผสานรวมฟีเจอร์ความปลอดภัย Mandatory Access Control (MAC) และการจำลองเสมือนบน Linux (KVM) สร้างขึ้นบน SELinux เพื่อจัดเตรียมโครงสร้างพื้นฐานที่ช่วยให้ผู้ดูแลระบบสามารถกำหนดนโยบายการแยกเครื่องเสมือนได้ SVirt ได้รับการออกแบบมาเพื่อให้แน่ใจว่าทรัพยากรเครื่องเสมือนไม่สามารถเข้าถึงได้โดยกระบวนการอื่น (หรือเครื่องเสมือน) ผู้ดูแลระบบสามารถขยายนโยบายนี้ได้โดยการกำหนดสิทธิ์แบบละเอียด ตัวอย่างเช่น ต้องการให้กลุ่มของเครื่องเสมือนใช้ทรัพยากรเดียวกันร่วมกัน

การจัดการหน่วยความจำ

KVM สืบทอดคุณสมบัติการจัดการหน่วยความจำอันทรงพลังจาก Linux หน่วยความจำของเครื่องเสมือนจะถูกจัดเก็บเหมือนกับหน่วยความจำของกระบวนการ Linux อื่นๆ และสามารถสลับ คัดลอกไปยังหน้าขนาดใหญ่เพื่อปรับปรุงประสิทธิภาพ แบ่งปัน หรือจัดเก็บไว้ในไฟล์บนดิสก์ การสนับสนุนเทคโนโลยี NUMA (การเข้าถึงหน่วยความจำแบบไม่สม่ำเสมอ ซึ่งเป็นสถาปัตยกรรมหน่วยความจำสำหรับระบบมัลติโปรเซสเซอร์) ช่วยให้เครื่องเสมือนสามารถเข้าถึงหน่วยความจำจำนวนมากได้อย่างมีประสิทธิภาพ

KVM รองรับคุณสมบัติการจำลองเสมือนหน่วยความจำล่าสุดจากผู้ผลิตโปรเซสเซอร์ เช่น Intel Extended Page Table (EPT) และ AMD Rapid Virtualization Indexing (RVI) เพื่อลดภาระของโปรเซสเซอร์และให้ปริมาณงานสูง

รองรับการแชร์เพจหน่วยความจำโดยใช้ฟังก์ชันเคอร์เนล Kernel Same-page Merging (KSM) KSM สแกนหน่วยความจำของเครื่องเสมือนแต่ละเครื่อง และหากหน้าหน่วยความจำบางหน้าของเครื่องเสมือนเหมือนกัน ก็จะรวมหน้าเหล่านั้นเป็นหน้าเดียว ซึ่งจะกลายเป็นเรื่องธรรมดาสำหรับเครื่องเสมือนเหล่านี้และจะถูกจัดเก็บไว้ในสำเนาเดียว หากแขกพยายามแก้ไขเพจที่แชร์นี้ ก็จะได้รับสำเนาของตัวเอง

การจัดเก็บข้อมูล

KVM สามารถใช้สื่อที่รองรับ Linux เพื่อจัดเก็บอิมเมจเครื่องเสมือน รวมถึงดิสก์ IDE, SCSI และ SATA ภายในเครื่อง, Network Attached Storage (NAS) รวมถึง NFS และ SAMBA/CIFS หรือ SAN พร้อมรองรับ iSCSI และ Fibre Channel I/O แบบมัลติเธรดสามารถใช้เพื่อปรับปรุงปริมาณงานการจัดเก็บข้อมูลและความซ้ำซ้อน

ขอย้ำอีกครั้ง เนื่องจาก KVM เป็นส่วนหนึ่งของเคอร์เนล Linux จึงสามารถใช้โครงสร้างพื้นฐานการจัดเก็บข้อมูลที่ได้รับการพิสูจน์และเชื่อถือได้ โดยได้รับการสนับสนุนจากผู้จำหน่ายชั้นนำทั้งหมด คุณสมบัติการจัดเก็บข้อมูลที่หลากหลายได้รับการพิสูจน์แล้วในการติดตั้งที่ใช้งานจริงจำนวนมาก

KVM รองรับอิมเมจเครื่องเสมือนบนระบบไฟล์แบบกระจาย เช่น Global File System (GFS2) เพื่อให้สามารถแชร์ข้ามโฮสต์หลายเครื่องหรือแชร์โดยใช้โลจิคัลวอลุ่ม สนับสนุน การปรับแต่งอย่างละเอียด(การจัดเตรียมแบบบาง) ของดิสก์อิมเมจช่วยให้คุณสามารถเพิ่มประสิทธิภาพการใช้ทรัพยากรการจัดเก็บข้อมูล โดยไม่ได้จัดสรรทั้งหมดล่วงหน้าในครั้งเดียว แต่จะเฉพาะเมื่อเครื่องเสมือนต้องการเท่านั้น รูปแบบดิสก์ที่เป็นเอกสิทธิ์ของ KVM คือ QCOW2 รองรับสแน็ปช็อตและให้สแน็ปช็อต การบีบอัด และการเข้ารหัสหลายระดับ

การโยกย้ายสด

KVM รองรับการย้ายข้อมูลแบบสด ช่วยให้เครื่องเสมือนที่ทำงานอยู่สามารถย้ายระหว่างโฮสต์จริงได้โดยไม่ขัดจังหวะบริการ การโยกย้ายแบบสดนั้นโปร่งใสสำหรับผู้ใช้: เครื่องเสมือนยังคงเปิดอยู่ การเชื่อมต่อเครือข่ายยังคงทำงานอยู่ และแอปพลิเคชันผู้ใช้ยังคงทำงานต่อไปในขณะที่เครื่องเสมือนถูกย้ายไปยังเซิร์ฟเวอร์จริงใหม่

นอกเหนือจากการย้ายข้อมูลแบบสดแล้ว KVM ยังสนับสนุนการบันทึกสำเนาของสถานะปัจจุบันของเครื่องเสมือนลงในดิสก์ ซึ่งช่วยให้คุณสามารถจัดเก็บและกู้คืนได้ในภายหลัง

ไดรเวอร์อุปกรณ์

KVM รองรับการจำลองเสมือนแบบไฮบริดเมื่อมีการติดตั้งไดรเวอร์พาราเวอร์ชวลไลซ์ในระบบปฏิบัติการเกสต์ ทำให้เครื่องเสมือนใช้อินเทอร์เฟซ I/O ที่ปรับให้เหมาะสมแทนที่จะใช้อุปกรณ์จำลอง โดยให้ประสิทธิภาพ I/O สูงสำหรับเครือข่ายและอุปกรณ์บล็อก

ไฮเปอร์ไวเซอร์ KVM ใช้มาตรฐาน VirtIO ที่พัฒนาโดย IBM และ Red Hat ร่วมกับชุมชน Linux สำหรับไดรเวอร์พาราเวอร์ชวลไลซ์ เป็นอินเทอร์เฟซที่ไม่ขึ้นกับไฮเปอร์ไวเซอร์สำหรับสร้างไดรเวอร์อุปกรณ์ ช่วยให้ไฮเปอร์ไวเซอร์หลายรายแชร์ไดรเวอร์อุปกรณ์ชุดเดียวกันได้ ปรับปรุงการทำงานร่วมกันระหว่างแขก

ไดรเวอร์ VirtIO จะรวมอยู่ในเคอร์เนล Linux เวอร์ชันใหม่ (ล่าสุดคือ 2.6.25) ซึ่งรวมอยู่ใน Red Hat Enterprise Linux 4.8+ และ 5.3+ และยังพร้อมใช้งานสำหรับ Red Hat Enterprise Linux 3 ด้วย Red Hat ได้พัฒนาไดรเวอร์ VirtIO สำหรับ ระบบปฏิบัติการแขกของ Microsoft Windows เพิ่มประสิทธิภาพการทำงานของเครือข่ายและดิสก์ I/O ไดรเวอร์เหล่านี้ได้รับการรับรองโดยโปรแกรมการรับรอง Microsoft Windows Hardware Quality Labs (WHQL)

ประสิทธิภาพและความสามารถในการขยายขนาด

KVM สืบทอดประสิทธิภาพและความสามารถในการปรับขนาดของ Linux โดยรองรับเครื่องเสมือนที่มีโปรเซสเซอร์เสมือน 16 ตัวและ RAM ขนาด 256 GB รวมถึงระบบโฮสต์ที่มี 256 คอร์และ RAM มากกว่า 1 TB มันสามารถให้:

  • ประสิทธิภาพ 95-135% เมื่อเทียบกับ Bare Metal ในแอปพลิเคชันระดับองค์กรจริง เช่น SAP, Oracle, LAMP และ Microsoft Exchange
  • มากกว่าหนึ่งล้านข้อความต่อวินาทีและเวลาแฝงน้อยกว่า 200 ไมโครวินาทีในเครื่องเสมือนที่ทำงานบนเซิร์ฟเวอร์มาตรฐาน
  • ระดับสูงสุดของการรวมเข้ากับเครื่องเสมือนมากกว่า 600 เครื่องที่ใช้งานแอปพลิเคชันระดับองค์กรบนเซิร์ฟเวอร์เดียว

ซึ่งหมายความว่า KVM สามารถจำลองเวิร์กโหลดที่มีความต้องการมากที่สุดได้

การปรับใช้ระบบเสมือนจริง

การปรับใช้ KVM เป็นกระบวนการที่ค่อนข้างซับซ้อน เต็มไปด้วยข้อกำหนดการกำหนดค่าพิเศษ ดังนั้น โปรดดูข้อมูลเพิ่มเติมในส่วนนี้

การจัดการเครื่องเสมือน

มีผู้จัดการเครื่องเสมือนหลายเครื่อง ในหมู่พวกเขา:

  • ผู้จัดการเสมือนของ Univention;
  • qemu/KVM: ทำงานโดยตรงจากบรรทัดคำสั่งในเครื่อง KVM
  • Virsh: เชลล์ขั้นต่ำสำหรับการจัดการเครื่องเสมือน
  • Virtual Machine Manager: หรือที่รู้จักกันในชื่อ virt-manager ซึ่งเป็นส่วนต่อประสานผู้ใช้สำหรับจัดการเครื่องเสมือน

การเลือก KVM

ข้อดี:

  • แม้ว่า KVM จะเป็นไฮเปอร์ไวเซอร์ที่ค่อนข้างใหม่ แต่ก็เป็นโมดูลขนาดกะทัดรัดที่เมื่อใช้ร่วมกับเคอร์เนล Linux จะให้ความสะดวกในการใช้งานในขณะที่ยังคงรองรับ Linux รุ่นใหญ่อยู่
  • KVM มีความยืดหยุ่น เนื่องจากระบบปฏิบัติการของแขกสื่อสารกับไฮเปอร์ไวเซอร์ที่รวมอยู่ในเคอร์เนล Linux พวกเขาจึงสามารถเข้าถึงฮาร์ดแวร์ได้โดยตรงในทุกกรณีโดยไม่จำเป็นต้องแก้ไขระบบปฏิบัติการเสมือนจริง สิ่งนี้ทำให้ KVM เป็นโซลูชั่นที่รวดเร็วยิ่งขึ้นสำหรับเครื่องเสมือน
  • โปรแกรมแก้ไข KVM เข้ากันได้กับเคอร์เนล Linux KVM ถูกนำไปใช้ในเคอร์เนล Linux ซึ่งทำให้ง่ายต่อการจัดการกระบวนการเวอร์ช่วลไลเซชั่น

จุดด้อย:

  • ไม่มีเครื่องมือที่มีประสิทธิภาพสำหรับการจัดการเซิร์ฟเวอร์และเครื่องเสมือน KVM
  • KVM จำเป็นต้องปรับปรุงการสนับสนุนสำหรับเครือข่ายเสมือนและระบบจัดเก็บข้อมูลเสมือน เสริมสร้างความปลอดภัย ปรับปรุงความน่าเชื่อถือและความทนทานต่อข้อผิดพลาด การจัดการพลังงาน การสนับสนุนสำหรับระบบ HPC/เรียลไทม์ ความสามารถในการปรับขนาดโปรเซสเซอร์เสมือน ความเข้ากันได้ระหว่างผู้จำหน่าย ความสามารถในการพกพา VM และการสร้าง ระบบนิเวศของบริการคลาวด์

ใน Ubuntu ขอแนะนำให้ใช้ไฮเปอร์ไวเซอร์ KVM (ตัวจัดการเครื่องเสมือน) และไลบรารี libvirt เป็นเครื่องมือการจัดการ Libvirt ประกอบด้วยชุดซอฟต์แวร์ API และแอปพลิเคชันผู้ใช้สำหรับการจัดการเครื่องเสมือน (VM) virt-manager (อินเทอร์เฟซแบบกราฟิก, GUI) หรือ virsh (บรรทัดคำสั่ง, CLI) ในฐานะผู้จัดการทางเลือก คุณสามารถใช้ convirt (GUI) หรือ convirt2 (อินเทอร์เฟซเว็บ)

ปัจจุบันมีเพียงไฮเปอร์ไวเซอร์ KVM เท่านั้นที่ได้รับการสนับสนุนอย่างเป็นทางการบน Ubuntu ไฮเปอร์ไวเซอร์นี้เป็นส่วนหนึ่งของรหัสเคอร์เนลของระบบปฏิบัติการ Linux KVM ไม่รองรับ Paravirtualization ซึ่งแตกต่างจาก Xen ซึ่งหมายความว่า CPU ของคุณต้องรองรับเทคโนโลยี VT เพื่อใช้งาน คุณสามารถตรวจสอบว่าโปรเซสเซอร์ของคุณรองรับเทคโนโลยีนี้หรือไม่โดยการรันคำสั่งในเทอร์มินัล:

หากคุณได้รับข้อความต่อไปนี้:

ข้อมูล: /dev/kvm มีอยู่ สามารถใช้การเร่งความเร็ว KVM ได้

ซึ่งหมายความว่า KVM จะทำงานได้โดยไม่มีปัญหา

หากคุณได้รับข้อความต่อไปนี้ที่ทางออก:

CPU ของคุณไม่รองรับส่วนขยาย KVM การเร่งความเร็ว KVM ไม่สามารถใช้งานได้

คุณยังคงสามารถใช้เครื่องเสมือนได้ แต่จะช้ากว่ามาก

    ติดตั้งระบบ 64 บิตในฐานะแขก

    จัดสรร RAM มากกว่า 2 GB ให้กับระบบของแขก

การติดตั้ง

Sudo apt-get ติดตั้ง qemu-kvm libvirt-bin ubuntu-vm-builder สะพาน-utils

นี่คือการติดตั้งบนเซิร์ฟเวอร์ที่ไม่มี X กล่าวคือ ไม่มีอินเทอร์เฟซแบบกราฟิก คุณสามารถติดตั้งได้ด้วยคำสั่ง

Sudo apt-get ติดตั้ง virt-manager

หลังจากนี้รายการ "Virtual Machine Manager" จะปรากฏในเมนูและทุกอย่างจะทำงานได้ด้วยความน่าจะเป็นระดับสูง หากยังคงเกิดปัญหาใดๆ คุณจะต้องอ่านคำแนะนำในวิกิภาษาอังกฤษ

การสร้างระบบแขก

ขั้นตอนการสร้างระบบเกสต์โดยใช้ GUI นั้นค่อนข้างง่าย

แต่สามารถอธิบายโหมดข้อความได้

qcow2

เมื่อสร้างระบบโดยใช้อินเทอร์เฟซแบบกราฟิกเป็นฮาร์ดไดรฟ์ คุณจะได้รับแจ้งให้เลือกไฟล์รูปภาพหรืออุปกรณ์บล็อกที่มีอยู่ หรือสร้างไฟล์ใหม่ด้วยข้อมูลดิบ (RAW) อย่างไรก็ตาม นี่ยังห่างไกลจากรูปแบบไฟล์เดียวที่มีอยู่ ในบรรดาดิสก์ทุกประเภทที่แสดงอยู่ใน man qemu-img ดิสก์ที่ยืดหยุ่นและทันสมัยที่สุดคือ qcow2 รองรับสแน็ปช็อต การเข้ารหัส และการบีบอัด ต้องสร้างขึ้นก่อนสร้างแขกใหม่

Qemu-img สร้าง -o การจัดสรรล่วงหน้า = ข้อมูลเมตา -f qcow2 qcow2.img 20G

ตามชายคนเดียวกัน qemu-img การจัดสรรข้อมูลเมตาล่วงหน้า (-o preallocation=metadata) ทำให้ดิสก์ใหญ่ขึ้นเล็กน้อยในตอนแรก แต่ให้ประสิทธิภาพที่ดีขึ้นเมื่อรูปภาพจำเป็นต้องขยาย ในกรณีนี้ ตัวเลือกนี้ช่วยให้คุณหลีกเลี่ยงข้อผิดพลาดอันไม่พึงประสงค์ได้ รูปภาพที่สร้างขึ้นเริ่มแรกใช้พื้นที่น้อยกว่าหนึ่งเมกะไบต์และขยายเป็นขนาดที่ระบุตามความจำเป็น ระบบแขกควรเห็นขนาดที่ระบุสุดท้ายนี้ทันที อย่างไรก็ตาม ในระหว่างขั้นตอนการติดตั้ง ระบบอาจเห็นขนาดจริงของไฟล์ โดยปกติแล้วจะปฏิเสธที่จะติดตั้งบนฮาร์ดไดรฟ์ขนาด 200 KB ข้อผิดพลาดไม่เฉพาะเจาะจงกับ Ubuntu อย่างน้อยก็ปรากฏใน RHEL

นอกจากประเภทของรูปภาพแล้ว คุณสามารถเลือกวิธีการเชื่อมต่อได้ในภายหลัง - IDE, SCSI หรือ Virtio Disk ประสิทธิภาพของระบบย่อยของดิสก์จะขึ้นอยู่กับตัวเลือกนี้ ไม่มีคำตอบที่ถูกต้องแน่นอน คุณต้องเลือกตามงานที่จะกำหนดให้กับระบบแขก หากระบบแขกถูกสร้างขึ้น "เพื่อดู" วิธีการใดๆ ก็ตามจะทำได้ โดยทั่วไป I/O มักเป็นจุดคอขวดของเครื่องเสมือน ดังนั้นเมื่อสร้างระบบที่มีการโหลดสูง ปัญหานี้จะต้องได้รับการปฏิบัติอย่างมีความรับผิดชอบมากที่สุด

ฉันกำลังเขียนบันทึกนี้เพื่อสาธิตการติดตั้งและการกำหนดค่าเครื่องเสมือนที่ใช้ KVM ใน Linux ทีละขั้นตอน ก่อนหน้านี้ฉันเคยเขียนเกี่ยวกับการจำลองเสมือนซึ่งฉันใช้ไฟล์ .

ตอนนี้ฉันกำลังเผชิญกับคำถามในการเช่าเซิร์ฟเวอร์ที่ดีซึ่งมี RAM จำนวนมากและฮาร์ดไดรฟ์ขนาดใหญ่ แต่ฉันไม่ต้องการรันโปรเจ็กต์บนเครื่องโฮสต์โดยตรง ดังนั้นฉันจะแยกโปรเจ็กต์ออกเป็นเซิร์ฟเวอร์เสมือนขนาดเล็กแยกกันที่ใช้ Linux หรือคอนเทนเนอร์ Docker (ฉันจะพูดถึงพวกมันในบทความอื่น)

โฮสติ้งคลาวด์สมัยใหม่ทั้งหมดทำงานบนหลักการเดียวกัน นั่นคือ ผู้ให้บริการโฮสต์บนฮาร์ดแวร์ที่ดีจะยกเซิร์ฟเวอร์เสมือนจำนวนหนึ่ง ซึ่งเราใช้เรียก VPS/VDS และแจกจ่ายให้กับผู้ใช้ หรือทำให้กระบวนการนี้เป็นไปโดยอัตโนมัติ (สวัสดี DigitalOcean)

KVM (เครื่องเสมือนที่ใช้เคอร์เนล) เป็นซอฟต์แวร์สำหรับ Linux ที่ใช้ฮาร์ดแวร์ของโปรเซสเซอร์ที่รองรับ x86 เพื่อทำงานร่วมกับเทคโนโลยีการจำลองเสมือน Intel VT/AMD SVM

การติดตั้ง KVM

ฉันจะดำเนินการสร้างเครื่องเสมือนบน Ubuntu 16.04.1 LTS OS ทั้งหมด หากต้องการตรวจสอบว่ากระบวนการของคุณรองรับการจำลองเสมือนสำหรับฮาร์ดแวร์ที่ใช้ Intel VT/AMD SVM หรือไม่ ให้รัน:

Grep -E "(vmx|svm)" /proc/cpuinfo

หากเทอร์มินัลไม่ว่างเปล่า แสดงว่าทุกอย่างเป็นไปตามลำดับและสามารถติดตั้ง KVM ได้ Ubuntu รองรับเฉพาะไฮเปอร์ไวเซอร์ KVM อย่างเป็นทางการ (ส่วนหนึ่งของเคอร์เนล Linux) และแนะนำให้ใช้ไลบรารี libvirt เป็นเครื่องมือในการจัดการ ซึ่งเป็นสิ่งที่เราจะทำต่อไป

คุณสามารถตรวจสอบการสนับสนุนการจำลองเสมือนของฮาร์ดแวร์ใน Ubuntu ได้โดยใช้คำสั่ง:

หากสำเร็จคุณจะเห็นสิ่งนี้:

ข้อมูล: /dev/kvm มีอยู่ สามารถใช้การเร่งความเร็ว KVM ได้

ติดตั้งแพ็คเกจสำหรับการทำงานกับ KVM:

Sudo apt-get ติดตั้ง qemu-kvm libvirt-bin ubuntu-vm-builder สะพาน-utils

หากคุณมีสิทธิ์เข้าถึงเชลล์กราฟิกของระบบ คุณสามารถติดตั้งตัวจัดการ libvirt GUI ได้:

Sudo apt-get ติดตั้ง virt-manager

การใช้ virt-manager นั้นค่อนข้างง่าย (ไม่ยากไปกว่า VirtualBox) ดังนั้นในบทความนี้เราจะพูดถึงตัวเลือกคอนโซลสำหรับการติดตั้งและกำหนดค่าเซิร์ฟเวอร์เสมือน

การติดตั้งและกำหนดค่าเซิร์ฟเวอร์เสมือน

ในการติดตั้ง การกำหนดค่า และการจัดการระบบเวอร์ชันคอนโซล เครื่องมือที่ขาดไม่ได้คือยูทิลิตี้ virsh (ส่วนเสริมสำหรับไลบรารี libvirt) มีตัวเลือกและพารามิเตอร์จำนวนมาก สามารถรับคำอธิบายโดยละเอียดได้ดังนี้:

แมน เวอร์ช

หรือเรียกมาตรฐาน "ช่วยเหลือ":

เวียร์ช่วยด้วย

ฉันปฏิบัติตามกฎต่อไปนี้เสมอเมื่อทำงานกับเซิร์ฟเวอร์เสมือน:

  1. ฉันเก็บอิมเมจ ISO OS ไว้ในไดเร็กทอรี /var/lib/libvirt/boot
  2. ฉันจัดเก็บอิมเมจเครื่องเสมือนไว้ในไดเร็กทอรี /var/lib/libvirt/images
  3. ฉันกำหนดที่อยู่ IP แบบคงที่ให้กับเครื่องเสมือนใหม่แต่ละเครื่องอย่างชัดเจนผ่านทางเซิร์ฟเวอร์ DHCP ของไฮเปอร์ไวเซอร์

มาเริ่มการติดตั้งเครื่องเสมือนเครื่องแรกกัน (เซิร์ฟเวอร์ 64 บิต Ubuntu 16.04 LTS):

ซีดี /var/lib/libvirt/boot sudo wget http://releases.ubuntu.com/16.04/ubuntu-16.04.1-desktop-amd64.iso

หลังจากดาวน์โหลดอิมเมจแล้ว ให้เริ่มการติดตั้ง:

Sudo virt-install \ --virt-type=kvm \ --name ubuntu1604\ --ram 1024 \ --vcpus=1 \ --os-variant=ubuntu16.04 \ --hvm \ --cdrom=/var/ lib/libvirt/boot/ubuntu-16.04.1-server-amd64.iso \ --network network=default,model=virtio \ --graphics vnc \ --disk path=/var/lib/libvirt/images/ubuntu1604 img,size=20,bus=virtio

การแปลพารามิเตอร์เหล่านี้ทั้งหมดเป็น "ภาษามนุษย์" ปรากฎว่าเรากำลังสร้างเครื่องเสมือนด้วยระบบปฏิบัติการ Ubuntu 16.04, RAM 1024 MB, โปรเซสเซอร์ 1 ตัว, การ์ดเครือข่ายมาตรฐาน (เครื่องเสมือนจะเข้าถึงอินเทอร์เน็ตราวกับว่าเป็นเพราะ NAT ), ฮาร์ดดิสก์ 20GB

ควรให้ความสนใจกับพารามิเตอร์ --os-ตัวแปรโดยจะแจ้งไฮเปอร์ไวเซอร์ว่าควรปรับการตั้งค่าระบบปฏิบัติการใด
สามารถรับรายการตัวเลือกระบบปฏิบัติการที่มีอยู่ได้โดยการรันคำสั่ง:

Osinfo-แบบสอบถามระบบปฏิบัติการ

หากยูทิลิตี้ดังกล่าวไม่ได้อยู่ในระบบของคุณ ให้ติดตั้ง:

Sudo apt-get ติดตั้ง libosinfo-bin

หลังจากเริ่มการติดตั้ง ข้อความต่อไปนี้จะปรากฏขึ้นในคอนโซล:

การติดตั้งโดเมนยังคงอยู่ในระหว่างดำเนินการ คุณสามารถเชื่อมต่อกับคอนโซลอีกครั้งเพื่อให้กระบวนการติดตั้งเสร็จสมบูรณ์

นี่เป็นสถานการณ์ปกติ เราจะดำเนินการติดตั้งผ่าน VNC ต่อไป
มาดูกันว่าพอร์ตใดถูกยกขึ้นบนเครื่องเสมือนของเรา (เช่นในเทอร์มินัลถัดไป):

Virsh dumpxml ubuntu1604... ...

พอร์ต 5900 ตามที่อยู่ในท้องถิ่น 127.0.0.1 หากต้องการเชื่อมต่อกับ VNC คุณต้องใช้การส่งต่อพอร์ตผ่าน ssh ก่อนดำเนินการนี้ ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานการส่งต่อ TCP ใน ssh daemon แล้ว โดยไปที่การตั้งค่า sshd:

แมว /etc/ssh/sshd_config | grep อนุญาต TcpForwarding

หากไม่พบสิ่งใดหรือคุณเห็น:

อนุญาตหมายเลขการส่งต่อ Tcp

จากนั้นเราแก้ไขการกำหนดค่าเป็น

อนุญาต TcpForwarding ใช่

และรีบูต sshd

การตั้งค่าการส่งต่อพอร์ต

เราดำเนินการคำสั่งบนเครื่องท้องถิ่น:

Ssh -fN -l เข้าสู่ระบบ -L 127.0.0.1:5900:localhost:5900 server_ip

ที่นี่เราได้กำหนดค่าการส่งต่อพอร์ต ssh จากพอร์ตโลคัล 5900 ไปยังพอร์ตเซิร์ฟเวอร์ 5900 ตอนนี้คุณสามารถเชื่อมต่อกับ VNC โดยใช้ไคลเอนต์ VNC ใดก็ได้ ฉันชอบ UltraVNC เพราะมันเรียบง่ายและสะดวกสบาย

หลังจากเชื่อมต่อสำเร็จ หน้าต่างต้อนรับมาตรฐานสำหรับเริ่มการติดตั้ง Ubuntu จะแสดงบนหน้าจอ:

หลังจากการติดตั้งเสร็จสมบูรณ์และรีบูตตามปกติ หน้าต่างเข้าสู่ระบบจะปรากฏขึ้น หลังจากเข้าสู่ระบบ เราจะกำหนดที่อยู่ IP ของเครื่องเสมือนที่สร้างขึ้นใหม่เพื่อที่จะทำให้มันคงที่ในภายหลัง:

ถ้ากำหนดค่า

เราจำได้และไปที่เครื่องโฮสต์ เราดึงที่อยู่ mac ของการ์ด "เครือข่าย" ของเครื่องเสมือนออก:

Virsh dumpxml ubuntu1604 | grep "ที่อยู่ mac"

จำที่อยู่ mac ของเรา:

การแก้ไขการตั้งค่าเครือข่ายของไฮเปอร์ไวเซอร์:

Sudo virsh net-edit ค่าเริ่มต้น

เรามองหา DHCP และเพิ่มสิ่งนี้:

มันควรมีลักษณะดังนี้:

เพื่อให้การตั้งค่ามีผล คุณต้องรีสตาร์ทเซิร์ฟเวอร์ DHCP ของไฮเปอร์ไวเซอร์:

Sudo virsh net-destroy เริ่มต้น sudo virsh net-start เริ่มต้น sudo service libvirt-bin รีสตาร์ท

หลังจากนี้เราจะรีบูทเครื่องเสมือนตอนนี้จะมีที่อยู่ IP ที่กำหนดไว้เสมอ - 192.168.122.131

มีวิธีอื่นๆ ในการตั้งค่า IP แบบคงที่สำหรับเครื่องเสมือน โดยการแก้ไขการตั้งค่าเครือข่ายภายในระบบเกสต์โดยตรง แต่นี่คือสิ่งที่คุณปรารถนา ฉันเพิ่งแสดงตัวเลือกที่ฉันชอบใช้

หากต้องการเชื่อมต่อกับเทอร์มินัลเครื่องเสมือน ให้รัน:

เอสเอสเอช 192.168.122.131

รถพร้อมสำหรับการรบ

Virsh: รายการคำสั่ง

หากต้องการดูโฮสต์เสมือนที่ทำงานอยู่ (สามารถรับได้ทั้งหมดโดยการเพิ่ม --all):

รายการ Sudo virsh

คุณสามารถรีบูตโฮสต์ได้:

Sudo virsh รีบูต $VM_NAME

หยุดเครื่องเสมือน:

Sudo virsh หยุด $VM_NAME

ดำเนินการหยุด:

Sudo virsh ทำลาย $VM_NAME

Sudo virsh เริ่มต้น $VM_NAME

ปิดการใช้งาน:

Sudo virsh ปิดระบบ $VM_NAME

เพิ่มในการทำงานอัตโนมัติ:

Sudo virsh เริ่มอัตโนมัติ $VM_NAME

บ่อยครั้งที่จำเป็นต้องโคลนระบบเพื่อใช้เป็นเฟรมเวิร์กสำหรับระบบปฏิบัติการเสมือนอื่น ๆ ในอนาคต สำหรับสิ่งนี้จึงใช้ยูทิลิตี้ virt-clone

Virt-clone -- ช่วยด้วย

โดยจะโคลนเครื่องเสมือนที่มีอยู่และเปลี่ยนแปลงข้อมูลที่ละเอียดอ่อนของโฮสต์ เช่น ที่อยู่ Mac รหัสผ่าน ไฟล์ และข้อมูลเฉพาะของผู้ใช้อื่นๆ ในโคลนยังคงเหมือนเดิม หากที่อยู่ IP บนเครื่องเสมือนโคลนถูกลงทะเบียนด้วยตนเอง ปัญหาเกี่ยวกับการเข้าถึง SSH สำหรับโคลนอาจเกิดขึ้นเนื่องจากข้อขัดแย้ง (2 โฮสต์ที่มี IP เดียวกัน)

นอกเหนือจากการติดตั้งเครื่องเสมือนผ่าน VNC แล้ว ยังสามารถใช้ X11Forwarding ผ่านยูทิลิตี้ virt-manager ได้อีกด้วย ตัวอย่างเช่น บน Windows คุณสามารถใช้ Xming และ PuTTY ได้