在 Solaris 10 上无需重新启动即可删除 MPxIO 设备

在 Solaris 10 上无需重新启动即可删除 MPxIO 设备

我正在两个光纤通道连接的 EMC 阵列之间执行存储迁移。我已经将数据从旧阵列上的磁盘移动到新阵列上的磁盘。现在我想从操作系统中删除旧磁盘,这样就可以取消阵列分区,而操作系统不会注意到磁盘消失并发出警报。我真的不想为了实现这一点而重新启动。

对于非 MPxIO 磁盘,我可以毫无问题地执行此操作,但对于 MPxIO 磁盘,我的常用技术不起作用。

我通常的方法是使用

luxadm -e offline /dev/rdsk/cXtXdXs2
devfsadm -Cvc disk

这是一个例子。这是我的测试实验室,它没有连接到 EMC 阵列,而是连接到旧的 SENA (A5100),但它应该对任何 FC 连接的磁盘都有效。正如你所见,它根本不起作用

v480:root $ stmsboot -L | grep /dev/rdsk/c6t20000020371AC414d0
/dev/rdsk/c5t22d0       /dev/rdsk/c6t20000020371AC414d0
/dev/rdsk/c2t22d0       /dev/rdsk/c6t20000020371AC414d0
v480:root $ luxadm -e offline /dev/rdsk/c6t20000020371AC414d0s2
v480:root $ stmsboot -L | grep /dev/rdsk/c6t20000020371AC414d0
/dev/rdsk/c5t22d0       /dev/rdsk/c6t20000020371AC414d0
/dev/rdsk/c2t22d0       /dev/rdsk/c6t20000020371AC414d0

尝试移除底层设备也不起作用

v480:root $ luxadm -e offline /dev/rdsk/c5t22d0s2
Error: Invalid pathname (/dev/rdsk/c5t22d0s2)
v480:root $ luxadm -e offline /dev/rdsk/c2t22d0s2
Error: Invalid pathname (/dev/rdsk/c2t22d0s2)

有人知道这是怎么做的吗?

答案1

我在 Solaris 中找到了这个问题的答案文档。归根结底,就是cfgadm -c unconfigure使用 给出的设备 wwn 取消配置()设备,cfgadm -al然后使用 进行清理devfsadm。然后,困难在于识别与要删除的 MPxIO 设备相对应的 wwn。这个小脚本应该打印设备 wwn 及其对应的设备文件。

    fcinfo hba-port | awk '/HBA Port WWN: / { HBAwwn=$NF} /OS Device Name:/ {print $NF, HBAwwn}' | sed 's/\/dev\/cfg\///g' | while read ctlr HBAwwn
    do
      fcinfo remote-port -sp $HBAwwn  | awk '/Remote Port WWN: / {rpwwn=$NF} /OS Device Name/ {print "'$ctlr'::" rpwwn, $NF}'
    done

例如。

    c0::500000e010f3eaf2 /dev/rdsk/c0t1d0s2
    c0::500000e010f23c62 /dev/rdsk/c0t0d0s2
    c5::21000020371ac414 /dev/rdsk/c6t20000020371AC414d0s2
    c2::22000020371ac414 /dev/rdsk/c6t20000020371AC414d0s2

所以在这里放下/dev/rdsk/c6t20000020371AC414d0s2你会跑

    cfgadm -c unconfigure c5::21000020371ac414 c2::22000020371ac414
    devfsadm -Cvc disk

Oracle 将 MPxIO 称为“StorageTek Traffic Manager 软件”或 STMS,这使得文档更难找到。

Solaris 11 等效文档是这里。它们看起来几乎与 Solaris 10 相同。我无法找到早期版本的文档,但缺少命令fcinfo和 pre-leadville FC 驱动程序必定会让它成为一项真正的苦差事。

相关内容