使用 megacli 将 LSI RAID 磁盘由 RAID0 改为 JBOD 模式
起因
厂里几台 hadoop 应用是 dell R720 的机器,数据盘默认配置的是 单盘 raid0 。磁盘报修的时候,想通过盘符查出对应磁盘的 SN 无从下手。本来想指望 smartcl -d megaraid,N <device>
参数查看做过 raid0 磁盘的 SMART 信息。结果让观众失望了,指定的 盘符 根本没有半毛钱用,只和 slot ID 有关。应用日志报错显示的是盘符,要再去找 slot ID 和 盘符 的对应关系,,,得掰着指头数,一句话点评:反人类
经过
在一次更换 SSD 后发现,新换的 SSD 没有做 raid0 操作,直接就被系统识别到了,在 raid 配置界面看到 SSD 磁盘的状态是 Non-RAID
这个就是 megaraid 的 JBOD Mode
维基百科 对 JBOD 解释 Just a Bunch of Drives 感觉和 raid0 概念类似
http://en.wikipedia.org/wiki/Non-RAID_drive_architectures
megaraid 卡使用 JBOD 模式,磁盘可以直接被系统识别,使用 smartctl 查看 SMART 信息和 直连 SAS 卡一样。
如果 LSI megaraid 卡没有启用 JBOD 模式,磁盘必须做 raid 操作,才能被系统识别到 。
没有启动 JBOD 模式,没法使用 megacli 设置磁盘为 JBOD 。查看 JBOD 是否启用:
# megacli -AdpGetProp -enablejbod -aALL
Adapter 0: JBOD: Disabled
Exit Code: 0x00
没有开启,先启用该特性:
# megacli -h
... ...
MegaCli -AdpSetProp -EnableJBOD -val -aN|-a0,1,2|-aALL
val - 0=Disable JBOD mode.
1= Enable JBOD mode.
# megacli -AdpSetProp -EnableJBOD -1 -aALL
Adapter 0: Set JBOD to Enable success.
Exit Code: 0x00
先手动删掉 RAID0 :
# for i in {0..11}
> do
> megacli -CfgLdDel -L$i -a0 -Nolog
> done
Adapter 0: Deleted Virtual Drive-0(target id-0)
Exit Code: 0x00
... ...
删完 RAID0 后,磁盘状态会变成 Unconfigured(good), Spun Up
:
# megacli -PDList -aALL -Nolog|grep '^Firm'
Firmware state: Unconfigured(good), Spun Up
Firmware state: Unconfigured(good), Spun Up
Firmware state: Unconfigured(good), Spun Up
Firmware state: Unconfigured(good), Spun Up
Firmware state: Unconfigured(good), Spun Up
Firmware state: Unconfigured(good), Spun Up
Firmware state: Unconfigured(good), Spun Up
Firmware state: Unconfigured(good), Spun Up
Firmware state: Unconfigured(good), Spun Up
Firmware state: Unconfigured(good), Spun Up
Firmware state: Unconfigured(good), Spun Up
Firmware state: Unconfigured(good), Spun Up
Firmware state: Online, Spun Up
Firmware state: Online, Spun Up
此时就可以把磁盘改成 JBOD 模式了:
# for i in {1..11}
> do
> megacli -PDMakeJBOD -PhysDrv[32:${i}] -a0
> done
Adapter: 0: EnclId-32 SlotId-1 state changed to JBOD.
Exit Code: 0x00
...
完成后,再查看一下磁盘状态,已经变成了 JBOD 模式:
# megacli -PDList -aALL -Nolog|grep '^Firm'
Firmware state: JBOD
Firmware state: JBOD
Firmware state: JBOD
Firmware state: JBOD
Firmware state: JBOD
Firmware state: JBOD
Firmware state: JBOD
Firmware state: JBOD
Firmware state: JBOD
Firmware state: JBOD
Firmware state: JBOD
Firmware state: JBOD
Firmware state: Online, Spun Up
Firmware state: Online, Spun Up
之前要用 slot ID 才能查看 SMART 信息:
# smartctl -i -d sat+megaraid,6 /dev/sda
smartctl 5.42 2011-10-20 r3458 [x86_64-linux-2.6.32-279.23.1.mi5.el6.x86_64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Device Model: INTEL SSDSC2BB240G4
Serial Number: BTWL3332042L240NGN
LU WWN Device Id: 5 5cd2e4 04b4313be
Firmware Version: D2010355
User Capacity: 240,057,409,536 bytes [240 GB]
Sector Size: 512 bytes logical/physical
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: ATA-8-ACS revision 4
Local Time is: Thu Jan 15 11:50:22 2014 CST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
现在直接通过盘符即可识别到磁盘:
# smartctl -i /dev/sdm
smartctl 5.42 2011-10-20 r3458 [x86_64-linux-2.6.32-279.23.1.mi5.el6.x86_64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Device Model: INTEL SSDSC2BB240G4
Serial Number: BTWL3332042L240NGN
LU WWN Device Id: 5 5cd2e4 04b4313be
Firmware Version: D2010355
User Capacity: 240,057,409,536 bytes [240 GB]
Sector Size: 512 bytes logical/physical
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: ATA-8-ACS revision 4
Local Time is: Thu Jan 15 11:56:27 2014 CST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
本文标题 | 使用 megacli 将 LSI RAID 磁盘由 RAID0 改为 JBOD 模式 |
---|---|
原始链接 | https://lvii.github.io/hardware/2014-01-17-megaraid-change-raid0-to-jbod-mode/ |