一台DELL R710服务器,ubuntu server系统,基于自身6块硬盘,做了一个RAID5,但最近有一块硬盘坏掉了,让服务商换了一块上来。今天想远程看看这块硬盘是否起作用了,没有找到合适的方法,于是一通搜索开始学习。
1. 确认服务器上的阵列卡
lspci -v | grep LSI
如果能看到对应的输出,说明采用的是主板上的LSI RAID卡,需要megacli命令来控制。
2. 安装megacli命令
从LSI官网找到对应的下载链接,在本机下载后,再scp到服务器上(不能直接在服务器上wget获取),然后解压,进入Linux目录,有一个rpm安装文件。因为服务器是ubuntu,所以使用一个命令来进行处理:
apt-get install rpm2cpio
rpm2cpio MegaCli-*.rpm | cpio -idmv
即将rpm安装包的内容直接提取出来。进入提取后的目录,可以发现有一个opt/MegaRAID/MegaCli目录,将这个目录的MegaCli64命令拷贝到/usr/loca/sbin/目录下(服务器是64位系统)。
sudo cp MegaCli64 /usr/local/sbin/
然后还可以从参考1中添加一个lsi.sh脚本来更容易的和RAID交互(注意脚本中的参数需要和机器上的实际进行修改,即:
# The identifying number of the enclosure. Default for our systems is "8". Use
# "MegaCli64 -PDlist -a0 | grep "Enclosure Device"" to see what your number
# is and set this variable.
ENCLOSURE="8"
参考1中的默认值是8,服务器上的是32。
3. 使用和问题处理
sudo lsi.sh drives
发现有一个问题:
Slot Number: 0 - Online, Spun Up
Slot Number: 1 - Online, Spun Up
Slot Number: 2 - Online, Spun Up
Slot Number: 3 - Online, Spun Up
Slot Number: 4 - Online, Spun Up
Slot Number: 5 - Unconfigured(good), Spun Up
第6块硬盘,即slot5,是新加的,虽然识别了,但未配置。
sudo lsi.sh status
结果如下:
Adapter 0 -- Virtual Drive Information:
Virtual Drive: 0 (Target Id: 0)
Name :disk1
RAID Level : Primary-5, Secondary-0, RAID Level Qualifier-3
Size : 4.545 TB
Sector Size : 512
Parity Size : 931.0 GB
State : Degraded
注意,State这行的状态是degraded,说明raid5状态没有起来,新加的这块盘没有发挥作用。
于是继续搜索,寻找让其能rebuild的方法,从参考2中找到了一个对应的方法:
MegaCli64 -PdReplaceMissing -PhysDrv[32:5] -array0 -row5 -a0
MegaCli64 -PDRbld -Start -PhysDrv[32:5] -a0