我有一个 VMware ESXi 4.1 服务器,我最近在其中添加了 2x1TB SATA 驱动器。该机器运行托管 ZFS 文件系统的NexentaStor Community VM。在添加新驱动器之前,所有 ZFS zpool 都驻留在虚拟磁盘(VMDK 文件)中,该磁盘位于硬件 RAID10 上服务器的 Vmware 数据存储上。
新的 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 的目标是:
- 赋予 VM 监控 SMART 状态的能力
- 允许 ZFS 访问整个磁盘(因为我知道这些不会用于其他任何用途)
- 如果一个坏了,使驱动器易于热插拔
- 如果需要,请允许我删除这些驱动器并将它们放置在另一个 ZFS 服务器中
我曾计划在我将在本周晚些时候设置的全新 ESXi 5.1 服务器中使用相同的设置。在那种情况下,#4 特别重要,因为我想将现有的 zpool 添加到新的 VM。为什么我会收到这些校验和错误?它与 ESXi 4.1 有关吗?我做错了什么吗?
编辑:我已经使用 VMware ESXi 5.1 创建了相同的设置,到目前为止没有任何问题。我将对此进行极其彻底的测试,但到目前为止,这似乎是 ESXi 4.1 问题。
是否强烈建议避免为此目的使用 RDM。
使用“PCI 直通”将您的 SATA 控制器传递到虚拟化的 NexentaStor 实例。这需要一个合理的当前处理器来执行此操作。
请参阅:将 ZFS 服务器作为虚拟来宾托管
也就是说,如果您有底层硬件 RAID,则在 VMDK 上运行 ZFS 没有大问题。您能否提供有关硬件解决方案的更多信息?
据我所知,这是由 VMware ESXi 4.1 中 RDM 实现中的错误引起的。使用 VMware ESXi 5.1 我发现 RDM 没有任何问题。我仍然想了解更多关于为什么 RDM 没有像我预期的那样工作或者它们的用途,但是在 5.1 上使用 RDM 一直非常稳定并且允许我实现我的目标。