11.7. 容器存储

Proxmox VE LXC容器存储模型比传统的容器存储模型更灵活。一个容器可以有多个挂载点。这能为每个应用程序使用最适合的存储空间.

例如,容器的根文件系统可以使用慢速、经济的存储,而数据库可以通过第二个挂载点使用快速的分布式存储。有关更多详细信息,请参阅Mount Points部分。

任何被Proxmox VE支持的存储类型都可以被容器使用。也就是说,你可以将容器保存在本地lvmthin或zfs上,共享iSCSI存储或ceph分布式存储服务上。进一步,还可以利用存储服务的高级特性,比如快照和克隆。vzdump也可以利用快照特性实现一致的容器备份。

此外,可以使用绑定装载直接装载本地设备或本地目录。这使得访问容器内的本地资源几乎没有开销。绑定挂载可以作为在容器之间共享数据的简单方法。

11.7.1 FUSE挂载

  • 警告

    鉴于当前Linux内核的冻结子系统的问题,而以挂起或快照模式备份时需要将容器冻结,所以强烈反对在容器中使用FUSE挂载。

如果实在不能用其他挂载机制或存储技术替代FUSE挂载,万不得已时,仍然可以在Proxmox服务器创建FUSE挂载,并通过绑定挂载提供给容器使用。

11.7.2 容器内设置存储配额

在容器内设置存储配额能够有效限制每个用户可以使用的硬盘空间大小。

  • 注意

    这需要使用 legacy cgroups。只有基于ext4文件系统的容器上可以使用,并且不能用于非特权容器。

激活quota选项后,挂载点会增加以下挂载参数项:

srjquota=aquota.user,grpjquota =aquota.group,jqfmt=vfsv0

这些参数让你能够像在其他系统上一样使用存储配额功能。你可以用如下命令初始化 /aquota.user和/aquota.group文件:

quotacheck -cmug /
quotaon /

然后可以通过edquota命令编辑配额。具体配置可以参考容器所采用的Linux发行版镜像自带的技术文档。

  • 注意

    你需要对每个挂载点执行以上命令,并用实际挂载点路径替代根路径 /。

11.7.3 容器内设置访问控制列表

容器内可以配置使用标准Posix Access Control Lists。通过ACLs能够详尽地控制文件属主,其细致程度远胜传统的user/group/others模型。

11.7.4 备份容器挂载点

要在备份中包括挂载点,请在容器配置中为其启用备份选项。对于现有装载点mp0

mp0: guests:subvol-100-disk-1,mp=/root/files,size=8G

添加 backup=1 以启用备份功能。

mp0: guests:subvol-100-disk-1,mp=/root/files,size=8G,backup=1
  • 注意:

    当在GUI上创建新的挂载点时,备份功能将自动启用。

要禁用备份,请在上面的配置选项中添加backup=0,或者GUI面板上取消勾选backup。

11.7.5 复制容器挂载点

默认情况下,在根磁盘被调度复制时,容器的其他挂载点也会被复制。如过其他挂载点不需要被复制,可以勾选挂载点的Skip replication选项。

在Proxmox VE 5.0中,调度复制只能用于zfspool类存储,所以当容器设置了调度复制,同时又挂在了其他类存储时,需要在相应挂载点设置Skip replication。