心得:不同于X86服务器的硬盘更换,一般的小型机不使用RAID卡进行管理,故更换硬盘前需要先写好更换的步骤,可能根据标准流程进行适当的修改,如果自己没有把握,可以找有经验的同事审核下步骤。大概的更换硬盘步骤如下:
一、首先确认状态信息
metadb #查看状态数据状态
metastat -pc
metastat #查看SVM镜像对应关系。
iostat -En #查看硬盘的型号信息以及是否存在报错
二、移除需更换硬盘上的镜像信息(坏盘)
1 使用"metadetach"命令将需要更换的硬盘的submirror从metadevices中移除 # metadetach -f <mirror> <submirror>
2 使用"metaclear"命令删除状态为failed的submirror # metaclear <submirror>
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 <submirror> 1 1 c#t#d#s#
# metattach <mirror> <submirror>
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