我有一台 VMware ESXi 4.1 服务器,最近我为其添加了 2 个 1TB SATA 驱动器。这台机器运行NexentaStor 社区托管 ZFS 文件系统的 VM。在添加新驱动器之前,所有 ZFS zpools 都驻留在虚拟磁盘(VMDK 文件)内,该虚拟磁盘位于服务器的 Vmware 数据存储区中,该数据存储区位于硬件 RAID10 上。
新的 SATA 驱动器没有硬件冗余,所以我的目标是将它们直接连接到 NexentaStor VM 并用它们创建 RAID1 zpool。
我遵循这些说明使用以下方法为新的 SATA 驱动器创建两个物理 RDM 文件vmkfstools -z /vmfs/devices/disks/idnumber RDM1.vmdk -a lsilogic
在将两个 RDM 磁盘添加到虚拟机并在其上创建 raidz1 zpool 后,我开始将数据复制到 zpool。该池已下线,我被告知有数千个校验和错误。
我在网上搜索,发现很多人抱怨同样的情况。(例子) 从那时起,我就不再使用 RDM,而是创建了两个数据存储和两个 930GB VMDK 文件,我将把它们放在 RAIDz1 中。但是我想知道我哪里做错了。网上有很多人说他们已经成功使用了这种配置。
我使用 RDM 而不是 VMDK 的目的是:
- 使虚拟机能够监控 SMART 状态
- 允许 ZFS 访问整个磁盘(因为我知道这些不会用于其他任何用途)
- 如果某个驱动器出现故障,可以轻松进行热插拔
- 如果需要,请允许我移除这些驱动器并将其放置在另一台 ZFS 服务器中
我原本计划在本周晚些时候设置的全新 ESXi 5.1 服务器中使用相同的设置。在这种情况下,#4 尤为重要,因为我想将现有 zpool 添加到新 VM。为什么我会收到这些校验和错误?这与 ESXi 4.1 有关吗?我做错了什么吗?
编辑:我已经使用 VMware ESXi 5.1 创建了相同的设置,并且不到目前为止的问题。我要测试一下极其彻底但到目前为止这似乎是 ESXi 4.1 的问题。
答案1
使用“PCI 直通”将您的 SATA 控制器传递到虚拟化的 NexentaStor 实例。这需要一个相当先进的处理器才能实现。
话虽如此,如果您有底层硬件 RAID,在 VMDK 上运行 ZFS 不会有什么大问题。您能提供有关硬件解决方案的更多信息吗?
答案2
据我所知,这是由 VMware ESXi 4.1 中的 RDM 实现中的一个错误引起的。使用 VMware ESXi 5.1 时,我发现 RDM 根本没有问题。我仍然想更多地了解为什么 RDM 不能按我预期的方式工作或它们的用途,但在 5.1 上使用 RDM 非常稳定,让我能够实现我的目标。