心得:不同于X86服务器的硬盘更换,一般的小型机不使用RAID卡进行管理,故更换硬盘前需要先写好更换的步骤,可能根据标准流程进行适当的修改,如果自己没有把握,可以找有经验的同事审核下步骤。大概的更换硬盘步骤如下:

一、首先确认状态信息

metadb #查看状态数据状态

metastat -pc 

metastat     #查看SVM镜像对应关系。

iostat -En   #查看硬盘的型号信息以及是否存在报错

二、移除需更换硬盘上的镜像信息(坏盘)

1 使用"metadetach"命令将需要更换的硬盘的submirror从metadevices中移除 # metadetach -f    
2 使用"metaclear"命令删除状态为failed的submirror # metaclear   
3 使用"metadb -d"命令删除状态为failed磁盘上的metadb复本,并进行确认 

# metadb -i  
# metadb -d c#t#d#s# 

# metadb
4 使用""prtvtoc"命令保存分区表 # prtvtoc /dev/rdsk/c#t#d#s2 > file  

三、更换硬盘(这里要注意FC硬盘与SAS硬盘的操作方式不一样,V440,V890一般是FC盘,新机器都用SAS盘了)

(一)、如果是FC硬盘,使用如下命令:

a.使用"luxadm"命令移除状态为failed的FC磁盘,执行成功后会亮移队灯# luxadm remove_device -F /dev/rdsk/c#t#d#s2  
b. 从主机中物理移除FC磁盘,并运行"devfsadm"命令重建设备树 # /usr/sbin/devfsadm -C -c disk  
c. 插入新FC磁盘,重建设备树 # /usr/sbin/devfsadm -Cv 或者 
d. /usr/sbin/luxadm insert_device  

e.metadevadm -u c1t0d0  #更新下硬盘信息。


(二)、如果是SAS硬盘,使用如下命令:

a). cfgadm -al |grep dsk     #用于查看对应的硬盘

b). cfgadm -c unconfigure c#::dsk/c#t#d#        #取消硬盘的配置状态

    官方手册上有个移除命令(cfgadm -x remove_device c#::dsk/c#t#d#),执行后硬盘会亮起***移除灯帮助我们定位硬盘,但实          际中基本没有用,因为该硬盘需要将c#控制器所连的硬盘全部挂起,例如c0t0d0 c0t1d0,而一般这两盘刚好是镜像关系,无法暂挂。如果需要定位硬盘,可以用DD进行测试。

dd if=/dev/rdsk/c#t#d#s2 of=/dev/null        #从硬盘中读取数据然后丢弃,会观察到硬盘读写灯会狂闪,达到定位的目的。

c). 更换硬盘,运行"devfsadm"命令重建设备树 # devfsadm -Cc disk  

d). 查看是否识别到了新盘,cfgadm -al |grep dsk 

e). metadevadm -u c1t0d0   #更新下硬盘信息。


四、对硬盘进行重新分区并重新添加镜像
8 使用"format" 或 "fmthard"对新FC磁盘进行分区 # fmthard -s file /dev/rdsk/c#t#d#s2  
9 使用"metainit" 和"metattach"命令新建submirror,并加入metadevices进行数据同步

 # metainit  1 1 c#t#d#s#

 # metattach    
10 使用"metadb -afc 3"命令重建metadb复本 

# metadb -afc3 c#t#d#s#  


11 如果更换的是root磁盘,使用"EEPROM"命令更改"boot-device"(多用于V440级别的旧机器) 
# eeprom "boot-device=/pci@8,600000/SUNW,qlc@2/fp@0,0/ssd@w21000004cfa19920,0:a"

或者使用installboot命令(建议使用这个,特别是在型号较新的机器上)

# installboot /usr/platform/`uname -m`/lib/fs/ufs/bootblk /dev/rdsk/c1t2d0s0