LXD 3.16 發布了,LXD 是下一代系統容器管理器,它提供類似於虛擬機的用戶體驗,但使用的是 Linux 容器。LXD 的核心是一個特權守護程序,它通過本地 unix 套接字以及網路暴露 REST API。隨後客戶端通過該 REST API 執行所有操作,這意味著無論是與本地主機還是遠程伺服器通信,都以相同的方式運行。LXD 附帶提供命令行客戶端。
此版本包括配置選項和命令行工具的改進,以及許多新功能:
現在可以在任何磁碟設備上請求 LXD 設置 shiftfs 覆蓋。
這有效地允許將主機系統中的任何磁碟或目錄暴露給無特權的容器,而不必依靠 ACL/chown 技巧來獲得所有權。
注意:這需要一個 5.0 或更高版本的 Ubuntu 內核的 shiftfs,對於快照用戶,必須通過快照配置選擇。
構建磁碟設備的新移位邏輯,現在還可以使用 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 | +------+---------+------+------+------------+-----------+
系統調用攔截邏輯已擴展為在現有 mknod 之上支持 setxattr。同時,該功能在配置鍵下移動,每個系統調用都可單獨切換。
這兩個新選項是:
security.syscall.intercept.mknod
security.syscall.intercept.setxattr
它們都默認為 false,啟用此功能需要 5.0 內核,LXC 3.2 和 libseccomp 的上游快照。
藉助 LXD 3.15 對資源 API 的返工,infiniband 設備現在可以報告更多信息,特別是用於驅動它們的字元設備。
為了在命令行工具中使事情更加一致,所有 set 命令現在都接受多個 key=value 選項。這樣可以更輕鬆地設置需要同時更改多個鍵的配置,而無需依賴編輯命令和使用互動式文本編輯器。
新舊語法并行工作,key=value 現在是首選語法。
另一個命令行工具改進是所有列表命令現在表現相同並且支持相同的 --format 選項,允許輸出:
table (default)
csv
json
yaml
現在可以使用文件類型 lxd_combined.tar.gz 在 simplestreams 圖像伺服器上發布 LXD 組合圖像(單個 tarball)。
這是更常見(和靈活)拆分映像的替代方法,它由不同的元數據(lxd.tar.xz)和 rootfs(root.tar.xz 或 squashfs)文件組成。
此外還有大量 bug 修復與其它功能,詳情查看發布公告。
[admin
]