当系统在 2 个虚拟机上启动时出现错误。
dm-0: WRITE SAME failed. Manually zeroing.
操作系统:CentOS 7.1 VMware ESXI 5.5
第一个虚拟机具有 LSI 逻辑并行类型,用于 HDD 数据存储上的 SCSI 控制器。
第二个 VM 具有 SSD 数据存储上 SCSI 控制器的准虚拟类型。
正常还是不正常?以及如何处理这个错误?
答案1
在这两种情况下,这可能都与 VMware 的海量存储有关。基本上,它是说它试图执行一个名为 的 SCSI 命令,WRITE SAME
该命令用于写入相同的数据块X连续磁盘块的数量。它通常用于将磁盘上的特定区域清零。
如果实际的清零操作没有失败,那么这里最大的问题是操作系统必须手动说“好吧,现在写这这里的零块”等等,直到清零操作完成。这可能会增加清零操作期间进出存储的带宽。对于大多数工作负载来说,这不是一个非常常见的操作,因此您可以忽略它。
如果它给您带来了问题,您必须检查 VMWare 资源以找出需要执行哪些操作才能获得WRITE SAME
VMWare 磁盘的支持。
答案2
至少在 ESXi 6 上,这是可以预料到的,不是一个错误(而是信息性的),通常在 Linux VM 启动后每个文件系统发生一次,并且来自 Linux 内核文件系统(根据我的经验通常是 ext4)探测“硬件”支持 WRITE SAME 功能,然后在找不到该功能时返回到通常的手动归零行为。看https://unix.stackexchange.com/a/244150/134856了解更多详情。
如果您曾经查看 VMkernel 日志以查找附加到非早期 Linux VM 的数据存储 VMDK(即不是原始磁盘映射或 VVol 等),您会发现 VSCSI 驱动程序不支持客人VM 发送 WRITE SAME(我相信我的 ESXi 日志提到它发送了无效的 SCSI 操作码 0x41)。完全不用担心!