LXD 5.0 ​​савны менежментийн системийн хувилбар

Canonical нь контейнер менежер LXD 5.0 ​​болон виртуал файлын системийн LXCFS 5.0 хувилбарыг нийтлэв. LXD код нь Go дээр бичигдсэн бөгөөд Apache 2.0 лицензийн дагуу түгээгддэг. 5.0 салбарыг урт хугацааны дэмжлэг үзүүлэх хувилбар гэж ангилдаг - шинэчлэлтүүд 2027 оны XNUMX-р сар хүртэл хийгдэнэ.

Контейнеруудыг ажиллуулах ажлын цаг болгон LXC хэрэгслийг ашигладаг бөгөөд үүнд liblxc номын сан, хэрэгслүүдийн багц (lxc-create, lxc-start, lxc-stop, lxc-ls гэх мэт), контейнер барих загварууд болон Төрөл бүрийн програмчлалын хэлнүүдийн холболтын багц. Тусгаарлах ажлыг Linux цөмийн стандарт механизм ашиглан гүйцэтгэдэг. Процессуудыг тусгаарлахын тулд ipc сүлжээний стек, uts, хэрэглэгчийн ID болон холбох цэгүүд, нэрийн орон зайн механизмыг ашигладаг. бүлгүүдийг нөөцийг хязгаарлахад ашигладаг. Эрхүүдийг багасгах, хандалтыг хязгаарлахын тулд Apparmor болон SELinux профайл, Seccomp бодлого, Chroots (pivot_root) болон чадамж зэрэг цөмийн функцуудыг ашигладаг.

LXC-ээс гадна LXD нь CRIU болон QEMU төслүүдийн бүрэлдэхүүн хэсгүүдийг ашигладаг. Хэрэв LXC нь тусдаа контейнеруудын түвшинд удирдах доод түвшний хэрэгсэл юм бол LXD нь хэд хэдэн серверийн кластерт байрлуулсан контейнеруудыг төвлөрсөн удирдах хэрэгслээр хангадаг. LXD нь REST API-ээр дамжуулан сүлжээгээр дамжуулан хүсэлтийг хүлээн авч, янз бүрийн санах ойн арын хэсэг (сангийн мод, ZFS, Btrfs, LVM), төлөвийн зүсэлт бүхий хормын хувилбар, ажиллаж байгаа контейнеруудыг нэг машинаас нөгөө машин руу шууд шилжүүлэх, болон зургийн савыг хадгалах хэрэгслүүд. LXCFS нь псевдо-FS /proc ба /sys-ийг контейнерт дуурайлган дуурайхад ашигладаг бол виртуалчлагдсан дүрслэлийг cgroupfs нь чингэлэгт ердийн бие даасан системийн дүр төрхийг өгдөг.

Гол сайжруулалтууд:

  • Хөтчүүд болон USB төхөөрөмжүүдийг халуунаар залгах, салгах боломж. Виртуал машинд SCSI автобусанд шинэ төхөөрөмж гарч ирснээр шинэ дискийг илрүүлдэг бол USB төхөөрөмжийг USB hotplug үйл явдал үүсгэснээр илрүүлдэг.
  • Жишээлбэл, шаардлагатай сүлжээний төхөөрөмж байхгүйгээс сүлжээний холболт үүсгэх боломжгүй үед ч LXD-ийг эхлүүлэх боломжтой. Одоо LXD эхлүүлэх үед алдаа харуулахын оронд одоогийн нөхцөлд боломжтой хамгийн их орчныг ажиллуулж, сүлжээний холболт үүсгэсний дараа үлдсэн орчинг ажиллуулдаг.
  • Сүлжээний холболтод OVN (Нээлттэй Виртуал Сүлжээ) ашигладаг кластеруудад зориулагдсан ovn-явах эд анги гэсэн шинэ кластерын гишүүн үүрэг нэмэгдэв (ovn-явах эд ангиудын үүргийг оноосноор та OVN чиглүүлэгчийн үүргийг гүйцэтгэх серверүүдийг сонгож болно).
  • Хадгалах хэсгүүдийн агуулгыг шинэчлэх оновчтой горимыг санал болгов. Өмнөх хувилбаруудад шинэчлэлт нь эхлээд контейнерийн жишээ эсвэл хуваалтыг хуулж, тухайлбал, zfs эсвэл btrfs дахь илгээх/хүлээн авах функцийг ашиглан, дараа нь үүсгэсэн хуулбарыг rsync програмыг ажиллуулж синхрончлохоос бүрдсэн байв. Виртуал машиныг шинэчлэх үр ашгийг дээшлүүлэхийн тулд шинэ хувилбар нь дэвшилтэт шилжих логикийг ашигладаг бөгөөд хэрэв эх сурвалж болон очих серверүүд ижил хадгалах санг ашигладаг бол rsync-ийн оронд хормын хувилбарууд болон илгээх/хүлээн авах үйлдлүүд автоматаар ашиглагддаг.
  • Cloud-init дахь орчныг тодорхойлох логикийг дахин боловсруулсан: орчны нэрийн оронд UUID-г одоо instance-id болгон ашиглаж байна.
  • sched_setscheduler системийн дуудлагыг залгах дэмжлэгийг нэмсэн нь давуу эрхгүй контейнерүүдэд үйл явцын тэргүүлэх чиглэлийг өөрчлөх боломжийг олгосон.
  • Thinpool дахь мета өгөгдлийн хэмжээг хянахын тулд lvm.thinpool_metadata_size сонголтыг хэрэгжүүлсэн.
  • lxc-д зориулсан сүлжээний мэдээлэл бүхий файлын форматыг шинэчилсэн. Интерфейсийн холболт, сүлжээний гүүр, VLAN болон OVN сүлжээний талаарх өгөгдлийн дэмжлэгийг нэмсэн.
  • Хамгийн бага бүрэлдэхүүн хэсгийн хувилбаруудад тавигдах шаардлагыг нэмэгдүүлсэн: Linux kernel 5.4, Go 1.18, LXC 4.0.x болон QEMU 6.0.
  • LXCFS 5 нь нэгдмэл бүлгийн шатлалд (cgroup2) дэмжлэг нэмж, /proc/slabinfo болон /sys/devices/system/cpu-г хэрэгжүүлж, угсрахад meson toolkit ашигласан.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх