คอนเทนเนอร์ Linux และไฮเปอร์ไวเซอร์ Linux คืออะไร


10

ฉันดูไซต์ stackexchange แต่ไม่พบอะไรเลย ฉันดูรายการ wikipedia บน Linux container https://en.wikipedia.org/wiki/LXCและ hypervisor https://en.wikipedia.org/wiki/Hypervisorแต่คำอธิบายของทั้งคู่นั้นเกินกว่าบุคคลที่ ไม่ได้ทำงานอย่างใดอย่างหนึ่งจะเข้าใจ ฉันเห็นhttp://www.linux.com/news/enterprise/cloud-computing/785769-containers-vs-hypervisors-the-battle-has-just-begunแต่นั่นก็ไม่ได้อธิบาย

ฉันได้เล่นกับ VM เช่น virtualbox หนึ่งในแนวคิดเริ่มต้นสำหรับความเข้าใจที่ จำกัด ของฉันอาจเป็นเพราะ Virtual Machines อาจจะทดสอบซอฟต์แวร์ในสภาพแวดล้อม sandbox (มีกล่อง Solaris เมื่อคุณไม่สามารถซื้อ / ซื้อได้ที่จะมีเครื่องและยังมีความคิดว่าซอฟต์แวร์ที่คุณพัฒนาอยู่ สำหรับฮาร์ดแวร์เป้าหมายนั้นใช้งานได้) ในขณะที่มีข้อ จำกัด ก็ใช้ นี่อาจเป็นหนึ่งในวิธีที่ทำให้การประมวลผลแบบคลาวด์กระโดดได้เช่นกัน คำถามกว้างดังนั้นนี่คือวิธีที่ฉันกลั่นมัน -

บางคนสามารถอธิบายได้ว่าไฮเปอร์ไวเซอร์และคอนเทนเนอร์ * nix คืออะไร (มีความคล้ายคลึงถ้าเป็นไปได้)
* nix hypervisor เหมือนกับเครื่องเสมือนหรือมีความแตกต่างหรือไม่?

คำตอบ:


9

เครื่องเสมือน (VM) ค่อนข้างเป็นคำทั่วไปสำหรับเทคโนโลยีเวอร์ช่วลจำนวนมาก

virtualisation มีหลายรูปแบบ แต่สิ่งที่สำคัญคือ:

  • การจำลองเสมือนระดับฮาร์ดแวร์
  • ระบบปฏิบัติการระดับเสมือนจริง

qemu-kvmและVMWareเป็นตัวอย่างของคนแรก พวกเขาใช้ไฮเปอร์ไวเซอร์เพื่อจัดการสภาพแวดล้อมเสมือนจริงที่ระบบปฏิบัติการเต็มรูปแบบทำงาน ตัวอย่างเช่นบนqemu-kvmระบบคุณสามารถมี VM หนึ่งตัวที่กำลังใช้งาน FreeBSD, อีกอันที่ใช้ Windows และ Linux ตัวอื่นกำลังทำงานอยู่

เครื่องเสมือนที่สร้างขึ้นโดยเทคโนโลยีเหล่านี้จะทำตัวเหมือนคอมพิวเตอร์แยกเดี่ยวกับแขก สิ่งเหล่านี้มี CPU เสมือน, RAM, NIC, กราฟิก ฯลฯ ซึ่งแขกเชื่อว่าเป็นของแท้ ด้วยเหตุนี้จึงสามารถติดตั้งระบบปฏิบัติการที่แตกต่างกันจำนวนมากบน VMs และทำงานได้ "ไม่ต้องมีกล่อง" โดยไม่จำเป็นต้องทำการดัดแปลงใด ๆ

แม้ว่าจะสะดวกมาก แต่ในหลาย ๆ OS นั้นจะติดตั้งโดยไม่ต้องใช้ความพยายามมากนัก แต่ก็มีข้อเสียเปรียบที่ hypervisor ต้องจำลองฮาร์ดแวร์ทั้งหมดซึ่งอาจทำให้สิ่งต่าง ๆ ช้าลง อีกทางเลือกหนึ่งคือฮาร์ดแวร์เสมือนจริงซึ่งอุปกรณ์และไดรเวอร์เสมือนใหม่ได้รับการพัฒนาสำหรับแขกที่ได้รับการออกแบบมาเพื่อประสิทธิภาพในสภาพแวดล้อมเสมือนจริง qemu-kvmจัดหาvirtioช่วงของอุปกรณ์และไดรเวอร์สำหรับสิ่งนี้ ข้อเสียของสิ่งนี้คือต้องรองรับระบบปฏิบัติการ guest แต่ถ้าได้รับการสนับสนุนประโยชน์ด้านประสิทธิภาพก็ยอดเยี่ยม


lxcเป็นตัวอย่างของ Virtualisation ระดับระบบปฏิบัติการหรือคอนเทนเนอร์ ภายใต้ระบบนี้มีเพียงหนึ่งเคอร์เนลติดตั้ง - โฮสต์เคอร์เนล แต่ละคอนเทนเนอร์เป็นเพียงการแยกกระบวนการ userland ตัวอย่างเช่นapacheมีการติดตั้งเว็บเซิร์ฟเวอร์ (เช่น) ในคอนเทนเนอร์ เท่าที่เว็บเซิร์ฟเวอร์นั้นเกี่ยวข้องเซิร์ฟเวอร์ที่ติดตั้งเพียงตัวเดียวนั้นเอง คอนเทนเนอร์อื่นอาจใช้เซิร์ฟเวอร์ FTP เซิร์ฟเวอร์ FTP นั้นไม่ทราบถึงการติดตั้งเว็บเซิร์ฟเวอร์ - เป็นของตัวเองเท่านั้น คอนเทนเนอร์อื่นสามารถมีการติดตั้ง userland แบบเต็มของ Linux distro (ตราบใดที่ distro นั้นสามารถทำงานกับเคอร์เนลของระบบโฮสต์)

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

chrootภาชนะบรรจุที่มักจะถูกสร้างขึ้นโดยใช้ สิ่งนี้จะสร้าง root ส่วนตัวที่แยกต่างหาก ( /) เพื่อให้กระบวนการทำงาน โดยการสร้างรากส่วนตัวของแต่ละบุคคลกระบวนการ (เว็บเซิร์ฟเวอร์หรือลินุกซ์ distro ฯลฯ ) ทำงานในระบบไฟล์แยก เทคนิคขั้นสูงเพิ่มเติมเช่นcgroupsสามารถแยกทรัพยากรอื่น ๆ เช่นเครือข่ายและ RAM


มีข้อดีข้อเสียของการอภิปรายทั้งยาวและยาวซึ่งเป็นเรื่องที่ดีที่สุด

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

2

คอนเทนเนอร์เป็นบิตเช่นสภาพแวดล้อม chrootยกเว้นว่าจะประสบความสำเร็จในการแยก userpace ที่สมบูรณ์มากขึ้น มันไม่ได้ให้ VM จริง แต่เป็นระบบปฏิบัติการเสมือน VMs สร้างภาพลวงตาของเครื่องหลายเครื่องภายในแต่ละระบบปฏิบัติการจริงที่สมบูรณ์อาจทำงานราวกับอยู่บนโลหะเปลือย "ระบบปฏิบัติการที่สมบูรณ์" ที่นี่มีเคอร์เนล VMs บางตัว (เช่นQEMU ) ยอมให้มีการกระตุ้นสถาปัตยกรรมประเภท "โลหะเปลือย" ที่แตกต่างกัน

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

ดังนั้นความจริงของวีเอ็มจึงมีราคาแพงกว่าฉลาดกว่าทรัพยากร หากคุณไม่ต้องการเมล็ดที่แตกต่างกันในแต่ละ VM คุณอาจใช้คอนเทนเนอร์

มีระบบเสมือนจริงอื่น ๆ ที่ทำบางสิ่งที่คล้ายกับ LXE เช่นopenVZซึ่งใช้กันอย่างแพร่หลายโดยผู้ขาย VPS openVZ VPS เป็น userland อิสระที่ใช้เคอร์เนลของโฮสต์ระบบปฏิบัติการ นี่คือเหตุผลที่ VPSs ดังกล่าวมีหลายรสชาติของลินุกซ์ แต่ไม่มีอะไรอื่น พวกเขาจะต้องเข้ากันได้กับโฮสต์เคอร์เนล

OpenVZ และ LXC virtualization สไตล์ที่เรียกว่าการดำเนินงานระดับระบบการทำงานแบบเสมือน

ไฮเปอร์ไวเซอร์เป็นระบบที่จัดการเครื่องเสมือนเช่นVirtualBox , QEMU หรือXen ไฮเปอร์ไวเซอร์บางตัวเช่น Xen ทำงานบนโลหะเปลือยและไม่ต้องการโฮสต์ระบบปฏิบัติการ (แม้ว่าพวกเขาอาจต้องการระบบปฏิบัติการโฮสต์เพื่อทำหน้าที่เป็นส่วนต่อประสานการควบคุม) อื่น ๆ เช่น VirtualBox และ QEMU ทำงานภายในโฮสต์ OS บางคนเช่น QEMU อนุญาตให้จำลองสถาปัตยกรรมเครื่องที่แตกต่างกัน อื่น ๆ เช่น VirtualBox ไม่ (เช่นสถาปัตยกรรม VM มักจะเหมือนกับโฮสต์จริงเสมอ) การจำลองสถาปัตยกรรมต้องการทรัพยากรมากขึ้นเช่นเดียวกับ VM ที่แท้จริงต้องการทรัพยากรมากกว่าคอนเทนเนอร์

virtualization hypervisor สไตล์ที่เรียกว่าแพลตฟอร์มระดับ virtualization

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.