บริษัท Canonical
LXC เป็นรันไทม์สำหรับการรันทั้งคอนเทนเนอร์ระบบและคอนเทนเนอร์ OCI LXC ประกอบด้วยไลบรารี liblxc ชุดยูทิลิตี้ (lxc-create, lxc-start, lxc-stop, lxc-ls ฯลฯ) เทมเพลตสำหรับการสร้างคอนเทนเนอร์ และชุดการเชื่อมโยงสำหรับภาษาการเขียนโปรแกรมต่างๆ การแยกจะดำเนินการโดยใช้กลไกเคอร์เนล Linux มาตรฐาน ในการแยกกระบวนการ จะใช้กลไกเนมสเปซที่ใช้สแต็กเครือข่าย ipc, uts, ID ผู้ใช้ และจุดเชื่อมต่อ cgroups ใช้เพื่อจำกัดทรัพยากร เพื่อลดสิทธิ์และจำกัดการเข้าถึง จะใช้ฟีเจอร์เคอร์เนล เช่น โปรไฟล์ Apparmor และ SELinux, นโยบาย Seccomp, Chroots (pivot_root) และความสามารถต่างๆ รหัส LXC
LXD เป็นส่วนเสริมของ LXC, CRIU และ QEMU ที่ใช้ในการจัดการคอนเทนเนอร์และเครื่องเสมือนจากส่วนกลางบนเซิร์ฟเวอร์ตั้งแต่หนึ่งเครื่องขึ้นไป หาก LXC เป็นชุดเครื่องมือระดับต่ำสำหรับการจัดการในระดับคอนเทนเนอร์แต่ละรายการ LXD จะถูกนำไปใช้เป็นกระบวนการเบื้องหลังที่ยอมรับคำขอผ่านเครือข่ายผ่าน REST API และช่วยให้คุณสร้างการกำหนดค่าที่ปรับขนาดได้ซึ่งปรับใช้บนคลัสเตอร์ของเซิร์ฟเวอร์หลายเครื่อง
รองรับแบ็กเอนด์พื้นที่จัดเก็บข้อมูลต่างๆ (แผนผังไดเร็กทอรี, ZFS, Btrfs, LVM), สแน็ปช็อตพร้อมการแบ่งสถานะ, การโยกย้ายคอนเทนเนอร์ที่ทำงานอยู่จากเครื่องหนึ่งไปยังอีกเครื่องหนึ่ง และเครื่องมือสำหรับการจัดระเบียบพื้นที่จัดเก็บรูปภาพ รหัส LXD
สำคัญ
- ไดรเวอร์ได้รับการเขียนใหม่ทั้งหมดเพื่อทำงานร่วมกับ cgroup เพิ่มการสนับสนุนสำหรับลำดับชั้น cgroup แบบรวม (cgroup2) เพิ่มฟังก์ชันการทำงานของตัวควบคุมตู้แช่แข็ง ซึ่งคุณสามารถหยุดการทำงานในกลุ่ม c และเพิ่มทรัพยากรบางส่วนชั่วคราว (CPU, I/O และแม้กระทั่งหน่วยความจำ) เพื่อทำงานอื่น ๆ
- ใช้โครงสร้างพื้นฐานสำหรับการสกัดกั้นการโทรของระบบ
- เพิ่มการรองรับระบบย่อยเคอร์เนล "pidfd" ซึ่งออกแบบมาเพื่อจัดการกับสถานการณ์การนำ PID มาใช้ซ้ำ (pidfd เชื่อมโยงกับกระบวนการเฉพาะและไม่มีการเปลี่ยนแปลง ในขณะที่ PID สามารถเชื่อมโยงกับกระบวนการอื่นได้หลังจากกระบวนการปัจจุบันที่เกี่ยวข้องกับ PID นั้นสิ้นสุดลง) ;
- ปรับปรุงการสร้างและการลบอุปกรณ์เครือข่าย รวมถึงการเคลื่อนไหวระหว่างเนมสเปซของระบบย่อยเครือข่าย
- ความสามารถในการย้ายอุปกรณ์เครือข่ายไร้สาย (nl80211) ลงในคอนเทนเนอร์ได้ถูกนำมาใช้แล้ว
สำคัญ
- เพิ่มการรองรับสำหรับการเปิดตัวไม่เพียงแต่คอนเทนเนอร์เท่านั้น แต่ยังรวมถึงเครื่องเสมือนด้วย
- ในการแบ่งกลุ่มเซิร์ฟเวอร์ LXD มีการเสนอแนวคิดโครงการที่ทำให้การจัดการกลุ่มคอนเทนเนอร์และเครื่องเสมือนง่ายขึ้น แต่ละโปรเจ็กต์สามารถรวมชุดคอนเทนเนอร์ เครื่องเสมือน รูปภาพ โปรไฟล์ และพาร์ติชั่นการจัดเก็บข้อมูลของตัวเองได้ ในส่วนที่เกี่ยวข้องกับโปรเจ็กต์ คุณสามารถกำหนดข้อจำกัดของคุณเองและเปลี่ยนแปลงการตั้งค่าได้
- เพิ่มการรองรับการสกัดกั้นการเรียกระบบสำหรับคอนเทนเนอร์
- ดำเนินการสร้างสำเนาสำรองของสภาพแวดล้อมและการกู้คืนจากสิ่งเหล่านั้น
- การสร้างสแน็ปช็อตของสภาพแวดล้อมและพาร์ติชั่นการจัดเก็บข้อมูลโดยอัตโนมัตินั้นมาพร้อมกับความสามารถในการกำหนดอายุการใช้งานของสแน็ปช็อต
- เพิ่ม API สำหรับการตรวจสอบสถานะเครือข่าย (ข้อมูลเครือข่าย lxc);
- เพิ่มการสนับสนุน
กะ , FS เสมือนสำหรับการแมปจุดเมานต์กับเนมสเปซของผู้ใช้ - มีการเสนออะแดปเตอร์เครือข่ายประเภทใหม่ "ipvlan" และ "กำหนดเส้นทาง"
- เพิ่มแบ็กเอนด์สำหรับการใช้ที่เก็บข้อมูลบน CephFS
- มีการรองรับการจำลองแบบอิมเมจและการกำหนดค่าหลายสถาปัตยกรรมสำหรับคลัสเตอร์
- เพิ่มการควบคุมการเข้าถึงตามบทบาท (RBAC)
- เพิ่มการสนับสนุนสำหรับ CGroup2;
- เพิ่มความสามารถในการกำหนดค่าที่อยู่ MAC และกำหนดที่อยู่ต้นทางสำหรับ NAT
- เพิ่ม API สำหรับจัดการการเชื่อมโยง DHCP (สัญญาเช่า);
- เพิ่มการรองรับ Nftables
ที่มา: opennet.ru