为什么我在 ESXi RDM 上遇到 ZFS 文件系统校验和错误?

Jos*_*osh 6 zfs corruption vmware-esxi nexenta

我有一台 VMware ESXi 4.1 服务器,我最近在其中添加了 2x1TB SATA 驱动器。这台机器运行一个NexentaStor Community VM,它承载 ZFS 文件系统。在添加新驱动器之前,所有 ZFS zpool 都驻留在虚拟磁盘(VMDK 文件)中,该磁盘驻留在服务器的 Vmware 数据存储中,该数据存储位于硬件 RAID10 上。

新的 SATA 驱动器没有硬件冗余,所以我的目标是将它们直接连接到 NexentaStor VM 并从中创建一个 RAID1 zpool。

按照这些说明为新的 SATA 驱动器创建了两个物理 RDM 文件,使用vmkfstools -z /vmfs/devices/disks/idnumber RDM1.vmdk -a lsilogic

将两个 RDM 磁盘添加到 VM 并在其上创建 raidz1 zpool 后,我开始将数据复制到 zpool。该池已脱机,我被告知有数千个校验和错误。

我在网上搜索,发现很多人抱怨同样的情况。(示例)我已经放弃使用 RDM 并创建了两个数据存储和两个 930GB VMDK 文件,我将把它们放在 RAIDz1 中。但是我想知道我哪里出错了。网上很多人说他们有这个配置工作。

我使用 RDM 而不是 VMDK 的目标是:

  1. 使 VM 能够监视 SMART 状态
  2. 允许 ZFS 访问整个磁盘(因为我知道这些不会用于其他任何事情)
  3. 使驱动器在出现故障时易于热插拔
  4. 如果需要,请允许我删除这些驱动器并将它们放置在另一个 ZFS 服务器中

我曾计划在我将在本周晚些时候设置的全新 ESXi 5.1 服务器中使用相同的设置。在这种情况下,#4 特别重要,因为我想将现有 zpool 添加到新 VM。为什么我会收到这些校验和错误?是否与 ESXi 4.1 相关?我做错了什么吗?

编辑:我已经使用 VMware ESXi 5.1 创建了相同的设置,到目前为止没有任何问题。我将对此进行非常彻底的测试,但到目前为止,这似乎是 ESXi 4.1 问题。

eww*_*ite 5

强烈建议避免为此目的使用 RDM。

使用“PCI Passthrough”将您的 SATA 控制器传递到虚拟化的 NexentaStor 实例。这需要一个合理电流的处理器来做到这一点。

请参阅:将 ZFS 服务器作为虚拟来宾托管

也就是说,如果您有一个底层硬件 RAID,那么在 VMDK 上运行 ZFS 没有什么大问题。您能否提供有关硬件解决方案的更多信息?


Jos*_*osh 0

据我所知,这是由 VMware ESXi 4.1 中的 RDM 实现中的错误引起的。使用 VMware ESXi 5.1,我发现 RDM 没有任何问题。我仍然想更多地了解 RDM 为何没有按我的预期工作或它们的用途,但在 5.1 上使用 RDM 非常稳定,可以让我实现我的目标。