规范公司
LXC 是用于运行系统容器和 OCI 容器的运行时。 LXC 包括 liblxc 库、一组实用程序(lxc-create、lxc-start、lxc-stop、lxc-ls 等)、用于构建容器的模板以及一组针对各种编程语言的绑定。 隔离是使用标准 Linux 内核机制来执行的。 为了隔离进程、ipc 网络堆栈、uts、用户 ID 和挂载点,使用了命名空间机制。 cgroup 用于限制资源。 为了降低权限和限制访问,使用了 Apparmor 和 SELinux 配置文件、Seccomp 策略、Chroot (pivot_root) 和功能等内核功能。 代码 LXC
LXD 是 LXC、CRIU 和 QEMU 的附加组件,用于集中管理一台或多台服务器上的容器和虚拟机。 如果 LXC 是一个用于在单个容器级别进行操作的低级工具包,那么 LXD 就会实现为一个后台进程,它通过 REST API 接受网络上的请求,并允许您创建部署在由多个服务器组成的集群上的可扩展配置。
支持各种存储后端(目录树、ZFS、Btrfs、LVM)、带有状态切片的快照、正在运行的容器从一台机器到另一台机器的实时迁移以及用于组织映像存储的工具。 代码 LXD
钥匙
- 该驱动程序已完全重写,可以与 cgroup 一起使用。 添加了对统一 cgroup 层次结构 (cgroup2) 的支持。 添加了冷冻机控制器功能,您可以使用该功能停止 cgroup 中的工作并暂时释放一些资源(CPU、I/O,甚至可能是内存)来执行其他任务;
- 实施拦截系统调用的基础设施;
- 添加了对“pidfd”内核子系统的支持,旨在处理 PID 重用的情况(pidfd 与特定进程关联并且不会改变,而 PID 可以在与 PID 关联的当前进程终止后与另一个进程关联) ;
- 改进了网络设备的创建和删除,以及它们在网络子系统名称空间之间的移动;
- 将无线网络设备 (nl80211) 移动到容器中的功能已经实现。
钥匙
- 不仅支持启动容器,还支持启动虚拟机;
- 为了对 LXD 服务器进行分段,提出了一个项目概念来简化容器和虚拟机组的管理。 每个项目都可以包含自己的一组容器、虚拟机、映像、配置文件和存储分区。 对于项目,您可以设置自己的限制并更改设置;
- 添加了对拦截容器系统调用的支持;
- 实现了环境备份副本的创建并从中恢复;
- 自动创建环境和存储分区的快照,并能够设置快照的生命周期;
- 添加了用于监控网络状态的API(lxc网络信息);
- 添加了支持
移位文件系统 ,用于将挂载点映射到用户命名空间的虚拟FS; - 新型网络适配器“ipvlan”和“routed”已被提出;
- 添加了使用基于 CephFS 的存储的后端;
- 集群实现了镜像复制和多架构配置的支持;
- 添加基于角色的访问控制(RBAC);
- 增加了对CGroup2的支持;
- 新增配置MAC地址和确定NAT源地址的功能;
- 添加了用于管理 DHCP 绑定(租用)的 API;
- 添加了对 Nftables 的支持。
来源: opennet.ru