存储堆栈中的 VDO/虚拟磁盘优化器限制

Gio*_*Mac 5 storage thin-provisioning rhel7 centos7

嗯,RHEL 7.5 发布了重要的附加组件 VDO,它基本上增加了精简配置的压缩和重复数据删除卷,这很棒,我们也将通过衍生产品和其他发行版获得这些好处,因为技术是从 Permabit 获得的,并且是开源。

根据官方文档(https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/storage_administration_guide/vdo-qs-requirements),有一些注意事项(“在存储堆栈中放置 VDO”文档的部分):

作为一般规则,您应该将某些存储层放在 VDO 下,而将其他层放在 VDO 之上:

  • 在 VDO 下:DM-Multipath、DM-Crypt 和软件 RAID(LVM 或 mdraid)。
  • 在 VDO 之上:LVM 缓存、LVM 逻辑卷、LVM 快照和 LVM 精简配置。

嗯,因为这是“一般”规则 - 我认为这没有问题,一切都很好。接下来我们看到以下内容:

不支持以下配置:

  • VDO 卷之上的 VDO:存储?威迪欧?LVM ? 威迪欧
  • LVM 快照之上的 VDO
  • 位于 LVM 缓存之上的 VDO
  • 环回设备顶部的 VDO
  • LVM 精简配置之上的 VDO
  • VDO 之上的加密卷:存储?威迪欧?DM-Crypt
  • VDO 卷上的分区:fdisk、parted 和类似的分区
  • VDO 卷上的 RAID(LVM、MD 或任何其他类型)

这有点“可怕”,我们应该在设计时小心翼翼,因为看起来像以下内容将不被“支持”:

storage -> LVM PV -> LVM VG -> LVM Thin -> LVM LV -> Storage (in VM) -> VDO (in VM) -> EXT4 (in VM)
Run Code Online (Sandbox Code Playgroud)

请注意,VDO/EXT4,最终结果在 VM 中,LVM LV 直接附加到 VM,类似于:

storage -> LVM PV -> LVM VG -> LVM Thin -> LVM LV -> VDO -> Storage (in VM) -> EXT4 (in VM)
Run Code Online (Sandbox Code Playgroud)
  1. 这真的有问题或危险并且不受支持吗?
  2. 为什么?

在底层设备上创建所有内容并不总是好的选择,但我没有看到明确的解释为什么我们有这些限制。

也许是因为这些 VDO 卷将同时暴露给主机和来宾?

Str*_*ils 4

在 Thin LVM 之上创建 VDO 有何意义?VDO 已采用精简配置并可在 4kb 块上运行。

\n\n
    \n
  • VDO 位于 VDO 卷之上:存储 \xe2\x86\x92 VDO \xe2\x86\x92 LVM \xe2\x86\x92 VDO - 对重复数据删除没有意义
  • \n
  • LVM 快照之上的 VDO - 对已删除重复数据的快照没有意义
  • \n
  • LVM 缓存之上的 VDO - 您真的需要对缓存进行重复数据删除吗?
  • \n
  • LVM 精简配置之上的 VDO - 正如我上面所说,VDO 已经是精简设备。此外,如果底层存储没有可用空间,VDO 本身会将状态更改为只读,而如果将 VDO 放在 LVM Thin 之上,VDO 将不知道空间已结束,从而可能导致数据损坏
  • \n
  • VDO 之上的加密卷:存储 \xe2\x86\x92 VDO \xe2\x86\x92 DM-Crypt - 根据设计,不可能对加密数据进行重复数据删除(显然是因为加密数据/设备需要完全配置大小)\nRAID ( VDO 卷之上的 LVM、MD 或任何其他类型 - 为什么需要为重复数据删除对象创建 RAID 组?
  • \n
\n\n

关于您的场景,只需这样做(LVM在物理层面上必须是冗余的):
\nstorage \xe2\x86\x92 LVM PV \xe2\x86\x92 LVM VG \xe2\x86\x92 LVM LV \xe2\x86\ x92 VDO \xe2\x86\x92 存储(在虚拟机中) \xe2\x86\x92 EXT4(在虚拟机中)

\n\n

我在类似的场景中放置了一些测试虚拟机,一切正常。

\n