将 Solaris 10 服务器移至新计算机后,rpool 磁盘现在为 c1t0d0。我们有一些第三方应用程序硬编码为 c0t0d0。我如何更改此计算机上的控制器枚举?不再有 c0。
我尝试重建 /etc/path_to_inst,但实例编号似乎与控制器编号不匹配。此外,不清楚 i86pc 平台是否使用此文件。
我已尝试使用 devfsadm -C 来清除悬空链接,但我不确定如何使 devfsadm 重新从 0 开始编号(或强制树中的某些设备为特定的控制器编号)。
接下来我将尝试在 /dev/dsk 和 rdsk 中手动创建符号链接以指向正确的 /devices。
我感觉我在这里走得太远了。有什么建议吗?
谢谢
更新:
这是在具有附加直通 HBA 的虚拟 ESXi 硬件上。机器上肯定没有控制器 0。devfsadm -C 清除所有 c0 设备符号链接,但将已链接的控制器保留在其当前 ID。
答案1
让应用程序关心磁盘设备名称似乎很奇怪,但撇开这一点不谈,听起来在 rpool 磁盘所在的控制器之前可能还有另一个控制器被发现。可能的嫌疑人是板载 IDE 或 SATA 端口,也许是 CDROM 设备。CDROM 和其他非磁盘设备不会显示在“格式”中。
i86pc 平台确实使用 path_to_inst,但它是附加到特定驱动程序实例的硬件列表,而“控制器”是一个可能涵盖多个驱动程序的通用标识符。我会查看“iostat -En”的输出,看看它是否在 c0 上列出了任何内容。这可能会给你一个提示。如果那里有东西,你可能需要禁用该端口,否则它将继续显示并占用该控制器编号。控制器按定义的顺序枚举,虽然各种 PC BIOS 之间必然存在差异,但我的经验是,板载控制器在 PCI/PCI-X/PCIe 插槽中的附加控制器之前被发现。
您也可以尝试重新配置启动:“touch /reconfigure”并重新启动。
答案2
物理上将磁盘移动到控制器 0,Solaris 将相应地更新它(可能必须重新配置)。
如果您要创建符号链接,请注意它们将来可能会发生变化,而 devfsadm 不会关心这一点。