为什么推荐 lxd 主机使用 zfs/btrfs?

为什么推荐 lxd 主机使用 zfs/btrfs?

请注意,为了获得最佳性能,建议在 btrfs 文件系统上安装 /var/lib/lxd 或设置 ZFS 或 LVM,并将 LXD 配置为使用 ZFS 池或 LVM VG。 来源

这是为什么呢?也就是说,这些文件系统(在主机上)如何等同于更好的容器性能?

它是计算性能吗?还是仅仅因为写时复制而减少了硬盘消耗?还是两者兼而有之?还是两者都不是?或者是其他什么?

编辑1

感谢@Sven 指出“LVM VG”是指逻辑卷管理器卷组。

答案1

除了@Sven所说的之外,ZFS、btrfs和LVM都提供了写时复制克隆/快照功能。这使得启动新容器的存储和时间非常便宜。如果将映像存储在常规ext2-4文件系统上,LXD必须自己复制所有数据,这会花费更多时间和存储空间。

答案2

首先,btrfs 和 ZFS 提供与 LVM 类似的功能,其中空间不是作为文件提供,而是作为具有直接块设备访问的设备提供。

当使用磁盘映像文件(例如qcow)时,容器中的文件系统操作将被翻译如下:

FS op.-> virtual block device -> FS op in the host on the container file 
     -> physical block device (or any number of  VFS layers like e.g. LVM)  

其中容器上的 FS 操作是比较昂贵的操作。使用某种逻辑卷而不是容器文件可以摆脱这种昂贵的 FS 操作:

FS op.-> virtual block device -> logical volume -> physical block device

其中逻辑卷操作比文件系统操作便宜得多。

相关内容