前言
一般的业务服务器硬盘都做了raid5或raid10等,出现硬盘故障,直接热插拔换新硬盘,自动rebuild就完事了,但是分布式存储却不同,一般是数据盘以多个单盘raid0的形式同时读写来提升存储性能,但出现硬盘故障就无法简单的热插拔替换,需要关机重启在bios中清缓存,删raid0组,加raid0组,对于无法停机的业务,我们可以借助megacli工具实现不重启在线更换硬盘
操作
- 安装megacli
rpm -ivh http://rpmfind.net/linux/Mandriva/devel/cooker/x86_64/media/non-free/release/megacli-8.02.21-1-mdv2012.0.x86_64.rpm
- 查看磁盘信息
[root@ceph01 ceph-cluster]# megacli -PDList -aALL
Adapter #0
Enclosure Device ID: 32
Slot Number: 0
Drive's position: DiskGroup: 7, Span: 0, Arm: 0
Enclosure position: 1
Device Id: 0
WWN: 5000C5006C366D48
Sequence Number: 2
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
PD Type: SAS
Raw Size: 279.396 GB [0x22ecb25c Sectors]
Non Coerced Size: 278.896 GB [0x22dcb25c Sectors]
Coerced Size: 278.875 GB [0x22dc0000 Sectors]
Sector Size: 0
Firmware state: Online, Spun Up
- 拔出故障硬盘
- 插入新硬盘
- 清除raid缓存并新增raid组
#新插入的硬盘会有foreign信息,需要手动清除,-a0代表第一块raid卡
megacli -cfgforeign -scan -a0
megacli -cfgforeign -clear -a0
#旧硬盘的缓存需要手动清除,-L7代表Slot Number 7
megacli -GetPreservedCacheList -a0
megacli -DiscardPreservedCache -L07 -a0
#将新硬盘添加到新raid0组,r0代表raid0,32代表Enclosure Device ID: 32
megacli -CfgLdAdd -r0 [32:7] WB Direct -a0
在线更换硬盘完成