存储驱动程序

Incus 支持以下存储驱动程序来存储镜像、实例和自定义卷

有关特定于驱动程序的信息和配置选项,请参阅相应的页面。

功能比较

在可能的情况下,Incus 使用每个存储系统的先进功能来优化操作。

功能

目录

Btrfs

LVM

ZFS

Ceph RBD

CephFS

Ceph 对象

优化的镜像存储

不适用

不适用

优化的实例创建

不适用

不适用

优化的快照创建

不适用

优化的镜像传输

不适用

不适用

优化的卷传输

不适用

不适用

写时复制

不适用

基于块的

不适用

即时克隆

不适用

可在容器内使用的存储驱动程序

[1]

不适用

不适用

从较旧的快照(不是最新的)恢复

不适用

存储配额

[2]

incus admin init 中可用

对象存储

优化的镜像存储

除了目录驱动程序之外,所有存储驱动程序都具有一些优化的镜像存储格式。为了使实例创建几乎瞬时完成,Incus 在创建实例时克隆预制镜像卷,而不是从头开始解压缩镜像 tarball。

为了防止在可能永远不会使用该镜像的存储池上准备此类卷,该卷是在需要时生成的。因此,第一个实例的创建时间比后续实例长。

优化的卷传输

Btrfs、ZFS 和 Ceph RBD 具有允许优化卷传输的内部发送/接收机制。

当在使用相同存储驱动程序的存储池之间传输实例和快照时,如果存储驱动程序支持优化传输并且优化传输确实更快,则 Incus 使用此优化传输。否则,Incus 使用 rsync 传输容器和文件系统卷,或使用原始块传输传输虚拟机和自定义块卷。

优化传输使用底层存储驱动程序的本机功能来传输数据,这通常比使用 rsync 快。但是,优化传输的全部潜力在刷新使用定期快照的实例或自定义卷的副本时变得显而易见。使用优化传输,Incus 基于最新的快照进行刷新,这意味着

  • 当您拍摄第一个快照并刷新副本时,传输将花费与完整复制大致相同的时间。Incus 传输新的快照以及快照和主卷之间的差异。

  • 对于后续快照,传输速度要快得多。Incus 不会传输完整的新的快照,而只会传输新的快照与目标上已存在的最新快照之间的差异。

  • 在没有新的快照的情况下刷新时,Incus 只会传输主卷与目标上最新快照之间的差异。此传输通常比使用 rsync 快(只要最新快照不是太旧)。

另一方面,刷新没有快照的实例的副本(无论是由于实例没有任何快照还是由于刷新使用 --instance-only 标志)实际上会比使用 rsync 慢。在这种情况下,优化传输将传输(不存在的)最新快照和主卷之间的差异,因此是整个卷。因此,Incus 使用 rsync 而不是优化传输来刷新没有快照的副本。

安全注意事项

当前,Linux 内核可能会静默忽略挂载选项,并且在已使用不同的挂载选项挂载基于块的文件系统(例如 ext4)时不会应用这些选项。这意味着当专用磁盘设备在具有不同挂载选项集的不同存储池之间共享时,第二个挂载可能没有预期的挂载选项。例如,当一个存储池应该提供 acl 支持而第二个存储池应该不提供 acl 支持时,这与安全相关。

因此,目前建议为每个存储池使用专用磁盘设备,或者确保共享相同专用磁盘设备的所有存储池都使用相同的挂载选项。