![如何让 Solaris 在热插拔后重新扫描磁盘信息?](https://linux22.com/image/621474/%E5%A6%82%E4%BD%95%E8%AE%A9%20Solaris%20%E5%9C%A8%E7%83%AD%E6%8F%92%E6%8B%94%E5%90%8E%E9%87%8D%E6%96%B0%E6%89%AB%E6%8F%8F%E7%A3%81%E7%9B%98%E4%BF%A1%E6%81%AF%EF%BC%9F.png)
我正在运行基于 SmartOS 的 ZFS NAS,其中有一堆 SATA 磁盘直接连接到逻辑板(没有花哨的磁盘控制器/背板或任何东西)。
我的 zpool 中的一个 1.5 TB 磁盘最近出现故障。 iostat
说:
# iostat -En c2t5d0
c2t5d0 Soft Errors: 0 Hard Errors: 8 Transport Errors: 21
Vendor: ATA Product: ST31500341AS Revision: SD17 Serial No: [...]
Size: 1500.30GB <1500301910016 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
Illegal Request: 89040 Predictive Failure Analysis: 0
我用新的 2.0 TB 磁盘热交换该磁盘,但iostat
仍然显示同样的信息 — Size: 1500.30GB
。
我如何告诉系统重新扫描磁盘以便它识别正确的磁盘大小?(我希望它探测正确的大小,以便我最终可以扩展我的 zpool。)
已经尝试过
devfsadm -c disk
按照建议类似的问题- 没有效果。cfgadm -c configure sata0/5::dsk/c2t5d0
— 它只是说Device already configured
;没有效果。
答案1
您需要首先启动 devfsadm 清理子例程。
# devfsadm -C -c disk -v
然后,配置并创建设备路径
# devfsadm -c disk -v
如果不成功,那么......
移除磁盘。
# cfgadm -c unconfigure sata0/5::dsk/c2t5d0
启动 devfsadm 清理子例程。
# devfsadm -C -c disk -v
确认磁盘已被移除。
# cfgadm -al
# ls -ld /dev/dsk/c2t5d0*
配置并创建设备路径
# devfsadm -c -v
# cfgadm -c configure sata0/5::dsk/c2t5d0
验证磁盘
# cfgadm -al
# ls -ld /dev/dsk/c2t5d0*