环境: raid1
查询 raid controll number
megacli -PDlist -aALL | grep "ID" | uniq | awk -F: '{print $2}' | awk '{print $1}'
查询当前磁盘数量
megacli -PDList -aALL | grep -E "DISK\ GROUP|Slot\ Number|postion:|Firmware\ state:" | grep Slot | awk -F[:\ ] '{print $NF}'
查询当前虚拟设备信息
megacli -cfgdsply -aALL | grep -v Information | grep -E "Virtual|Slot"
清除当前 raid 配置 (所有配置)
megacli -CfgLdDel -L0 -force -a0
清除当前 raid 中某个虚拟设备信息
megacli -cfglddel -L1 -a0
说明:
可能当前某个 raid (ex: raid1 ) 划分了两个磁盘, 那么第一个就是 L0 , 第二个就是 L1 ...
上述命令则删除了第二个虚拟设备
把所有空间都划分都某个 raid 中
megacli -CfgLdAdd -r1 [32:5,32:6] WB Direct -a0
说明:
当前把 slot: 5, 6 两个磁盘组合成为 raid1 并把所有磁盘空间划分到一个设备中
创建 raid 时, 创建多个虚拟磁盘
megacli -CfgLdDel -L0 -force -a0
megacli -CfgLdAdd -r1 [32:5,32:6] ra wb direct nocachedbadbbu sz300000 -a0
megacli -CfgLdAdd -r1 [32:5,32:6] ra wb direct nocachedbadbbu -a0
说明:
首先清除了当前 raid controller 中所有的 raid 配置
当前把 slot: 5, 6 两个磁盘组合成为 raid1 并把 300GB 磁盘空间划分到第一个设备中
当前把 slot: 5, 6 两个磁盘组合成为 raid1 并把剩余磁盘空间划分到第二个设备中
环境: raid10
说明:
1. 当前系统中具有 4 个 SSD 磁盘, (每个约 500GB)
2. 把4个 SSD 磁盘组件成 RAID10 设备
3. 划分出三个虚拟设备 ( 200GB, 200GB, 其余剩下的空间 )
参考步骤
1. 查询 RAID 主设备号
2. 清除当前的 RAID 设备配置
3. 重新进行 RAID 配置
参考脚本
#!/bin/bash
if [ ! -f "/sbin/megacli" ]
then
ln -s /opt/MegaRAID/MegaCli/MegaCli64 "/sbin/megacli"
fi
uiqnum=` megacli -PDlist -aALL | grep "ID" | uniq | awk -F: '{print $2}' | awk '{print $1}'`
disknum=`megacli -PDList -aALL | grep -E "DISK\ GROUP|Slot\ Number|postion:|Firmware\ state:" | grep Slot | awk -F[:\ ] '{print $NF}'`
disktotal=`megacli -PDList -aALL | grep -E "DISK\ GROUP|Slot\ Number|postion:|Firmware\ state:" | grep Slot | awk -F[:\ ] '{print $NF}' | wc -l`
if [ $disktotal -eq 4 ]
then
array=($disknum)
megacli -CfgLdDel -L0 -force -a0
megacli -CfgSpanAdd -r10 -Array0[$uiqnum:${array[0]},$uiqnum:${array[1]}] -Array1[$uiqnum:${array[2]},$uiqnum:${array[3]}] ra wb direct nocachedbadbbu sz200000 -a0 ; megacli -CfgSpanAdd -r10 -Array0[$uiqnum:${array[0]},$uiqnum:${array[1]}] -Array1[$uiqnum:${array[2]},$uiqnum:${array[3]}] ra wb direct nocachedbadbbu sz200000 -a0 ; megacli -CfgSpanAdd -r10 -Array0[$uiqnum:${array[0]},$uiqnum:${array[1]}] -Array1[$uiqnum:${array[2]},$uiqnum:${array[3]}] ra wb direct nocachedbadbbu -a0
fi