在 Virtuozzo 中运行 LXD 并不完全有效(它可能类似于在另一个 LXD 中运行 LXD)。
Virtuozzo 主机是 VPS 主机服务(不受我控制)。
VPS 客户端正在运行 Ubuntu Server 16.04,我成功安装了 LXD 并对其进行了初始化,直到它显示为空的lxc list
.
然后我尝试启动一个图像:lxc launch images:ubuntu/artful artful
,但它失败了抱怨:
错误:LXD 没有 uid/gid 分配。在此模式下,仅支持特权容器。
其中cat /var/log/lxd/lxd.log
报告:
lvl=warn msg="Couldn't find the CGroup pids controller, process limits will be ignored." t=2017-07-26T10:11:35+0900
lvl=info msg="Kernel uid/gid map:" t=2017-07-26T10:11:35+0900
lvl=info msg=" - u 0 0 0" t=2017-07-26T10:11:35+0900
lvl=info msg=" - g 0 0 0" t=2017-07-26T10:11:35+0900
lvl=info msg="Configured LXD uid/gid map:" t=2017-07-26T10:11:35+0900
lvl=info msg=" - u 0 100000 65536 (unusable)" t=2017-07-26T10:11:35+0900
lvl=info msg=" - g 0 100000 65536 (unusable)" t=2017-07-26T10:11:35+0900
lvl=warn msg="One or more uid/gid map entry isn't usable (typically due to nesting)" t=2017-07-26T10:11:35+0900
lvl=warn msg="Only privileged containers will be able to run" t=2017-07-26T10:11:35+0900
lvl=info msg="Connecting to a remote simplestreams server" t=2017-07-26T10:11:35+0900
然后我尝试以特权模式运行容器:
lxc launch images:ubuntu/artful artful -c security.nesting=true -c security.privileged=true
它安装成功,但无法启动:
error: Error calling 'lxd forkstart artful /var/lib/lxd/containers /var/log/lxd/artful/lxc.conf': err='Failed to run: /usr/bin/lxd forkstart artful /var/lib/lxd/containers /var/log/lxd/artful/lxc.conf: '
lxc 20170726020609.465 ERROR lxc_cgfs - cgroups/cgfs.c:lxc_cgroupfs_create:901 - Could not find writable mount point for cgroup hierarchy 4 while trying to create cgroup.
lxc 20170726020609.465 ERROR lxc_cgfs - cgroups/cgfs.c:cgroup_rmdir:209 - Device or resource busy - cgroup_rmdir: failed to delete /sys/fs/cgroup/systemd//system.slice/lxd.service
这一切都表明 Virtuozzo 容器正在运行unprivileged
,因此 LXD 失败了。
我想知道在这种情况下这是否是 LXD 的死胡同,或者是否有机会让它发挥作用?
Virtuozzo 基于 OpenVZ(您可以查看https://wiki.openvz.org/FAQ)。他们使用旧内核(基于 2.6),没有 Docker/LXC/LXD 所需的 cgroups 功能。所以你的尝试是行不通的。Virtuozzo 已经在使用容器技术 (OpenVZ),但并未与主线内核代码合并。