คอนเทนเนอร์ Linux (LXC) บน Red Hat / CentOS EL6 - สร้าง lxc กับ libvirt หรือไม่?


13

มันเป็นเรื่องยากหากพยายามอยู่ในช่วงที่ดีของ Red Hat และยังคงวางแผนการใช้งานของระบบที่ยืนยาว ...

ฉันเป็นผู้สนับสนุนของLinux Containers (LXC)มานานกว่าหนึ่งปี การติดตั้งเริ่มต้นของฉันอยู่บนพื้นฐานของข้อมูลที่รวบรวมได้จากบทเรียนออนไลน์เช่นนี้และหนึ่งในนี้ นี้แน่นิ่งlxc-create, lxc-start|stopและlxc-destroyคำสั่งที่มีอยู่และการปรับเปลี่ยนแม่แบบ OpenVZ

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

ในไม่ RHEL 6 ให้เครื่องมือ LXC จำเป็นในการใช้ลินุกซ์คอนเทนเนอร์? , Red Hat อธิบาย LXC เป็นดูตัวอย่างเทคโนโลยีและแนะนำให้ใช้ libvirt ในการจัดการสร้างและจัดการตู้คอนเทนเนอร์

แต่ทว่าออราเคิลยังสนับสนุนเทคนิคการจัดตู้คอนเทนเนอร์ที่แตกต่างกันโดยสิ้นเชิงใน Unbreakable Linux

ดูเหมือนจะมีฟังก์ชั่นที่ขาดหายไปในวิธีการ libvirt แต่วิธีการเริ่มต้นของฉันกับคำสั่ง lxc- * เป็นกระบวนการแบบแมนนวล ... ฉันไม่สามารถบอกได้เลยว่าอะไรถูกหรือวิธีการ "ยอมรับ" ในการจัดการคอนเทนเนอร์บน EL6 .

  • อะไรคือภูมิปัญญาดั้งเดิมเกี่ยวกับระบบ LXC และ RHEL
  • วิธีที่คุณใช้พวกเขาในองค์กรของคุณ?
  • มีข้อดีสำหรับวิธีการหนึ่งเมื่อเทียบกับวิธีอื่นหรือไม่?
  • อยู่ร่วมกันเหล่านี้ได้หรือไม่

1
libvirtมีไดร์เวอร์คอนเทนเนอร์ LXCและควบคุมมันไม่ใช่โซลูชันการจำลองเสมือน
Cristian Ciupitu

คำตอบ:


7

อะไรคือภูมิปัญญาดั้งเดิมเกี่ยวกับระบบ LXC และ RHEL

โดยส่วนตัวฉันพบว่าการตั้งค่าปัจจุบันค่อนข้างขาดหายไป LXC ดูเหมือนจะอยู่แถวหน้ามากขึ้น - ได้รับการดูแลรักษามากกว่านี้อย่างแน่นอน

คุณใช้งานอย่างไร

ในแง่ของการเสนอเป็นตัวเลือกการจำลองเสมือนฉันไม่ได้ ฉันพบว่าการติดตั้งเทคโนโลยีในปัจจุบันขาดไป

  • ไม่มีชื่อผู้ใช้
  • จุดเมานต์บางอย่างไม่ได้รับการตระหนักถึงเนมสเปซ (cgroups, selinux)
  • ค่าใน / proc ทำให้ระบบเข้าใจผิดซึ่งไม่ได้คำนึงถึงการแบ่งทรัพยากรในเนมสเปซ
  • แบ่งการตรวจสอบ

ฉันพบว่ามันเป็นเครื่องมือที่ดีจริงๆสำหรับการบรรจุในระดับแอปพลิเคชัน เราใช้เนมสเปซและกลุ่ม cg โดยตรงเพื่อให้มีทรัพยากรเครือข่ายและ IPC สำหรับเว็บแอปพลิเคชันที่ผู้ใช้รัน เราให้ส่วนต่อประสานของเราเองในการควบคุม ใน RHEL7 ฉันกำลังพิจารณาที่จะย้ายฟังก์ชั่นนี้ไปlibvirt-lxcเป็นรุ่นใหม่ที่libvirtสนับสนุนแนวคิดของ ACL ผู้ใช้

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

จับตาดูsystemd-nspawnสิ่งที่บอกฉันในอีก 18 เดือนข้างหน้าหรืออาจเป็นเครื่องมือที่ดีที่สุดในการทำ linux ที่มี virtualization อย่างสมบูรณ์ไม่ว่าผู้เขียน systemd จะทำให้ชัดเจนว่ามันไม่ปลอดภัยในตอนนี้! ฉันจะไม่แปลกใจถ้าlibvirtหยดlibvirt-lxcในที่สุดและเพียงแค่เสนอเสื้อคลุมรอบsystemd-nspawnกับชิ้น systemd ที่กำหนดไว้

นอกจากนี้ยังระวังให้มากพูดคุยในช่วง 6 เดือนที่ผ่านมาเกี่ยวกับการใช้ cgroups เป็นอินเตอร์เฟสโปรแกรมเมอร์เคอร์เนลมากกว่าอินเตอร์เฟซระบบไฟล์ (อาจใช้ netlink หรืออะไรบางอย่างไม่ได้ตรวจสอบ) ดังนั้น systemd ควรจะร้อนมาก บนหางของการทำให้ถูกต้องอย่างรวดเร็ว

มีข้อดีสำหรับวิธีการหนึ่งเมื่อเทียบกับวิธีอื่นหรือไม่?

ฉันคิดว่าตัวเลือก LXC (ไม่ใช่ libvirt-lxc) นั้นได้รับการดูแลให้ดีขึ้น เมื่ออ่านlibvirt-lxcซอร์สโค้ดมันจะรู้สึกรีบร้อน LXC ดั้งเดิมนั้นมีคุณสมบัติที่ใหม่กว่าซึ่งได้รับการทดสอบแล้ว ทั้งคู่ต้องการความเข้ากันได้ระดับหนึ่งโดยระบบเริ่มต้นที่กำลังรันอยู่ แต่ฉันสงสัยว่าคุณจะพบว่า "เทิร์นคีย์" LXC มากกว่าlibvirt-lxcตัวเลือกโดยเฉพาะอย่างยิ่งในเรื่องที่เกี่ยวกับการให้ distros ทำงานในพวกเขา

อยู่ร่วมกันเหล่านี้ได้หรือไม่

แน่นอนว่าโปรดจำไว้ว่าสำหรับทุกเจตนาและจุดประสงค์ทั้งสองกำลังทำสิ่งเดียวกัน การจัดระเบียบเนมสเปซกลุ่ม cg และจุดเชื่อมต่อ ดั้งเดิมทั้งหมดจะได้รับการจัดการโดยเคอร์เนลเอง lxcการประยุกต์ใช้งานทั้งสองนั้นเสนอกลไกสำหรับการเชื่อมต่อกับตัวเลือกเคอร์เนลที่มีอยู่


9

Red Hat กำลังผลักดันการบรรจุตู้คอนเทนเนอร์ขนาดใหญ่ พวกเขากำลังสร้างผลิตภัณฑ์ใหม่ทั้งหมดคือRed Hat Enterprise Linux Atomic Host ที่อยู่รอบ ๆ

สำหรับวิธีการที่รุนแรงน้อยกว่าที่จะดูที่ RHEL7 เบต้าของพวกเขาการจัดการทรัพยากรและ Linux คอนเทนเนอร์คู่มือ ; คุณจะสังเกตเห็นว่ามันผลักดัน libvirt-lxc และไม่พูดถึงเครื่องมือ lxc


1
ขอบคุณสำหรับสิ่งนี้. โฮสต์ RHEL Atomic ดูเหมือนจะต้องพึ่งพาDocker.io เป็นอย่างมาก นั่นแสดงว่านักเทียบท่าและเครื่องมือที่เกี่ยวข้องนั้นเป็นเส้นทางที่ถูกต้องหรือไม่
ewwhite

Red Hat ลงทุนอย่างหนักในนักเทียบท่า แต่พวกเขาก็เป็นนักพัฒนาหลักของ libvirt-lxc ด้วย ฉันจะดูความสามารถที่แต่ละคนมีให้และดูว่าแบบไหนที่เหมาะกับความต้องการของคุณมากขึ้น
sciurus

1
ใช่ @whwhite เอกสาร Redhat ต่อไปนี้ระบุไว้อย่างชัดเจนว่า: access.redhat.com/articles/1365153
Susinthiran

1

lxc- executables * จะบรรจุในLXCแพคเกจในEPEL อย่างไรก็ตามเป็นการเปิดตัว "การสนับสนุนระยะยาว" แบบเก่า คุณไม่มีแม้แต่ตัวเลือก "-f" ใน lxc-ls ฉันแค่ติดตั้ง Ubuntu สำหรับโฮสต์ LXC ของฉัน

วิธีการจัดการ RHEL LXC ดูเหมือนว่าจะผ่าน libvirt-LXC แต่ก็เลิกเห็นได้ชัด

พบว่า Ubuntu รองรับการพัฒนา lxc / lxd ใหม่จำนวนมากในขณะที่ Redhat กำลังมุ่งเน้นไปที่ KVM และนักเทียบท่า


คำถามคือ RHEL 6 ที่เกี่ยวข้องการคัดค้านย่อมาจาก RHEL 7 «แพคเกจ libvirt-lxc ต่อไปนี้ถูกคัดค้านเริ่มต้นด้วย Red Hat Enterprise Linux 7.1: »เพื่อให้สามารถใช้งานได้
taharqa
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.