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 和挂载点。 cgroups 用于限制资源。 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 设备。
  • 即使无法建立网络连接,例如由于缺少必要的网络设备,也可以启动 LXD。 LXD 现在不会在启动时显示错误,而是在当前条件下启动尽可能多的环境,并在建立网络连接后启动其余环境。
  • 添加了集群成员的新角色——ovn-chassis,专为使用OVN(Open Virtual Network)进行网络交互的集群而设计(通过分配ovn-chassis角色,可以分配服务器充当OVN路由器)。
  • 提出了一种更新存储分区内容的优化模式。 在过去的版本中,更新包括首先复制容器实例或分区,例如,使用 zfs 或 btrfs 中的发送/接收功能,然后通过运行 rsync 程序同步创建的副本。 为了提高更新虚拟机的效率,新版本使用了高级迁移逻辑,其中如果源服务器和目标服务器使用相同的存储池,则会自动使用快照和发送/接收操作,而不是 rsync。
  • 重新设计了 cloud-init 中的环境标识逻辑:UUID 现在用作实例 ID,而不是环境名称。
  • 添加了对挂钩 sched_setscheduler 系统调用的支持,以允许非特权容器更改进程优先级。
  • 实现了 lvm.thinpool_metadata_size 选项来控制 thinpool 中的元数据大小。
  • 为 lxc 重新设计了网络信息文件格式。 添加了对接口绑定、网桥、VLAN 和 OVN 的支持。
  • 增加了对最低组件版本的要求:Linux 内核 5.4、Go 1.18、LXC 4.0.x 和 QEMU 6.0。
  • LXCFS 5 增加了对统一 cgroup 层次结构 (cgroup2) 的支持,实现了 /proc/slabinfo 和 /sys/devices/system/cpu,并使用 meson 工具包进行组装。

来源: opennet.ru

添加评论