LXD 3.16 发布了,LXD 是下一代系统容器管理器,它提供类似于虚拟机的用户体验,但使用的是 Linux 容器。LXD 的核心是一个特权守护程序,它通过本地 unix 套接字以及网络暴露 REST API。随后客户端通过该 REST API 执行所有操作,这意味着无论是与本地主机还是远程服务器通信,都以相同的方式运行。LXD 附带提供命令行客户端。
此版本包括配置选项和命令行工具的改进,以及许多新功能:
磁盘设备的 shift 属性
现在可以在任何磁盘设备上请求 LXD 设置 shiftfs 覆盖。
这有效地允许将主机系统中的任何磁盘或目录暴露给无特权的容器,而不必依靠 ACL/chown 技巧来获得所有权。
注意:这需要一个 5.0 或更高版本的 Ubuntu 内核的 shiftfs,对于快照用户,必须通过快照配置选择。
自定义存储卷的 security.shifted 属性
构建磁盘设备的新移位逻辑,现在还可以使用 shiftfs 配置要附加到容器的自定义存储卷。
现在,可以将共享自定义卷附加到特权、非特权和隔离容器的混合。
同样,这也需要一个 5.0 或更高版本的 Ubuntu 内核的 shiftfs,对于快照用户,必须通过快照配置选择。
空容器创建
到目前为止,使用默认命令行工具创建新容器的唯一方法是使用现有映像,无论是本地映像还是远程映像。
LXD 长期以来一直支持创建一个空容器,但该机制只能通过 API 直接使用,并被许多数据迁移工具使用。
根据一些用户的请求,现在有一个 lxc init 的 –empty 选项,它允许创建一个空容器。这样的容器无法启动,并且必须通过 lxc 文件或直接在主机系统上修改它来手动填充其文件系统。
stgraber@castiana:~$ lxc init --empty c1
Creating c1
stgraber@castiana:~$ lxc list c1
+------+---------+------+------+------------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+------+---------+------+------+------------+-----------+
| c1 | STOPPED | | | PERSISTENT | 0 |
+------+---------+------+------+------------+-----------+
Syscall 拦截配置
系统调用拦截逻辑已扩展为在现有 mknod 之上支持 setxattr。同时,该功能在配置键下移动,每个系统调用都可单独切换。
这两个新选项是:
- security.syscall.intercept.mknod
- security.syscall.intercept.setxattr
它们都默认为 false,启用此功能需要 5.0 内核,LXC 3.2 和 libseccomp 的上游快照。
向资源 API 添加 infiniband 数据
借助 LXD 3.15 对资源 API 的返工,infiniband 设备现在可以报告更多信息,特别是用于驱动它们的字符设备。
在客户端重新运行 set 命令
为了在命令行工具中使事情更加一致,所有 set 命令现在都接受多个 key=value 选项。这样可以更轻松地设置需要同时更改多个键的配置,而无需依赖编辑命令和使用交互式文本编辑器。
新旧语法并行工作,key=value 现在是首选语法。
客户端中所有列表的格式(–format)选项
另一个命令行工具改进是所有列表命令现在表现相同并且支持相同的 –format 选项,允许输出:
- table (default)
- csv
- json
- yaml
支持简单流中的组合图像
现在可以使用文件类型 lxd_combined.tar.gz 在 simplestreams 图像服务器上发布 LXD 组合图像(单个 tarball)。
这是更常见(和灵活)拆分映像的替代方法,它由不同的元数据(lxd.tar.xz)和 rootfs(root.tar.xz 或 squashfs)文件组成。
此外还有大量 bug 修复与其它功能,详情查看发布公告。
下载地址:https://linuxcontainers.org/lxd/downloads/
转自 https://www.oschina.net/news/109040/lxd-3-16-released