在 Solaris 中,如果我在机器运行时拔掉几个磁盘,则检查每个磁盘的某些功能将需要一段时间,因为它必须等待超时。
例如format
,或者zpool import
两者都将读取所有磁盘作为他们做的第一件事之一。
我有时会通过以下方式来解决这个问题:(我当然会用正确的数字替换零)
cd /dev/dsk
,,,,,,。mkdir offline
mv c0t0d0* offline
cd ../rdsk
mkdir offline
mv c0t0d0* offline
此时我可以用它做任何我想做的事情format
,zpool import
而且速度会快得多。
重新插入磁盘后,我可以使用
cd /dev/dsk
,,,,,,。mv offline/* .
rmdir offline
cd ../rdsk
mv offline/* .
rmdir offline
有这个命令吗?暂时删除指定磁盘的符号链接,并将它们恢复?
我对自己找到的解决方案非常满意。尤其是因为这台机器是离线机器,我可以冒这种程度的操纵风险。(例如,如果我在真实机器中输入了零,就会有麻烦)
然而,如果有的话,我想知道更好的方法。
答案1
正确的方法是在拔下设备之前使用cfgadm
命令取消配置设备。ZFS 管理指南有此过程的一个例子(当然,如果您不使用 ZFS,则可以忽略 ZFS 步骤)。
以下粘贴的是指南中的示例:
# zpool offline tank c1t3d0
# cfgadm | grep c1t3d0
sata1/3::dsk/c1t3d0 disk connected configured ok
# cfgadm -c unconfigure sata1/3
Unconfigure the device at: /devices/pci@0,0/pci1022,7458@2/pci11ab,11ab@1:3
This operation will suspend activity on the SATA device
Continue (yes/no)? yes
# cfgadm | grep sata1/3
sata1/3 disk connected unconfigured ok
<Physically replace the failed disk c1t3d0>
# cfgadm -c configure sata1/3
# cfgadm | grep sata1/3
sata1/3::dsk/c1t3d0 disk connected configured ok
# zpool online tank c1t3d0