• 首页
  • Qt文档
  • DTK文档
  • 玲珑文档
  • 使用MegaCli做raid

    使用MegaCli做raid磁盘阵列

    需要注意的参数:

    Adapter #0 // 阵列卡号,适配器编号 Enclosure Device ID: 32 // raid卡的ID号 Slot Number: 0 // 物理磁盘的slot号,磁盘位置

    1、查看所有物理硬盘状态

    sudo  MegaCli_ls  -PDList  -aALL
    
    这里注意三个主要参数
    
    Adapter #0  								// 阵列卡号,适配器编号
    
    Enclosure Device ID: 252 		 // raid卡的ID号
    
    Slot Number: 1						   // 硬盘编号
    

    2、清除之前的配置信息,重新配置

    扫描配置信息个数: 
    
    sudo MegaCli_ls -cfgforeign -scan -a0 
    
    如果存在,则清除配置: 
    
    sudo MegaCli_ls -cfgforeign -clear -a0
    

    3、创建raid

    主要参数:
    -r :指定raid类型(例如:raid0,-r0)
    WB :缓存策略
    Direct:缓存策略
    [252:1]:指定要操作的硬盘。如要对多个硬盘操作,用逗号“,"隔开 [252:0,252,1]
    
    <1>创建raid0
    MegaCli_ls -CfgLdAdd -r0[252:1] WB Direct -a0 1
    
    <2>创建raid1
    MegaCli_ls -CfgLdAdd -r1[252:0,252:1] WB Direct -a0 1
    
    <3>创建raid5
    MegaCli_ls -CfgLdAdd -r5 [252:0,252:1,252:2] WB Direct -a0 1
    
    <4>创建raid10
    MegaCli_ls -CfgSpanAdd -r10 -Array0[252:0,252:1] -Array1[252:2,252:3] WB Direct -a0 1
    由于raid10为两个raid1组成一个raid0。上面的示例的含义为:将252:0,252:1做raid1组成Array0;252:2,252:3做raid1组成Array1,最后由Array0和Array1组成raid0。
    

    4、工具安装

    x86:

    添加megaraid源
    
    修改 /etc/apt/sources.list 在末尾添加
    
    deb http://hwraid.le-vert.net/ubuntu precise main
    
    然后执行:
    
    apt-get update
    
    apt-get install megacli megactl megaraid-status
    
    如果执行提示 GPG 错误,需要执行如下命令添加证书:
    
    wget -O - http://hwraid.le-vert.net/debian/hwraid.le-vert.net.gpg.key | sudo apt-key add -
    
    然后再次执行:
    
    apt-get install megacli megactl megaraid-status
    
    
    
    报错:
    
    W:GPG错误:http://hwraid.le-vert.net/ubuntu  precise  Release:由于没有公钥,无法验证下列签名:NO_PUBKEY  6005210E23B3D384
    
    解决方法:
    
    sudo apt-key adv –recv-keys –keyserver keyserver.ubuntu.com (上面公钥的后八位)
    
    

    arm64:

    安装压缩包中megacli_3.1-2_arm64.deb
    

    mips64el:

    解压raid-static-conf-v0.3.tar.gz
    
    进入解压目录执行installer安装后使用(可以在live环境中安装)
    

    5、常见问题解决

    <1>  Firmwarestate:Unconfigured(good), Spun down解决方法:
    
    重新热拔插指定硬盘,该状态会变成Firmware state:Unconfigured(good), Spun Up
    
    创建raid后磁盘状态也会由Spun down变成SpunUp
    
    
    
    <2>  Firmware state: Unconfigured(bad)解决办法:
    
    MegaCli64 -PDMakeGood -PhysDrv[E:S] -a0 固件状态会由Unconfigured(bad)变成Unconfigured(good), Spun Up
    
    \# MegaCli64 -PDMakeGood -PhysDrv[252:7] -a0
    
    
    
    <3>  Firmware state: failed解决办法:
    
    出现failed状态的硬盘大多已损坏,建议更换(或报修);但可以强制上线。
    
    强制上线步骤如下:
    
    可以先将磁盘下线。 # MegaCli64 -PDOffline-PhysDrv[E:S] -a0
    
    然后再上线。     # MegaCli64 -PDOnline -PhysDrv[E:S] -a0
    
    
    
    <4> 以下状态的解决办法:
    
    Foreign State: Foreign
    
    Foreign Secure: Drive is notsecured by a foreign lock key
    
    办法一:可以清除恢复状态(慎用)
    
    \# MegaCli64 -CfgForeign -Clear -a0
    
    办法二:导入配置,恢复虚拟磁盘组
    
    \# MegaCli64 -CfgForeign -import -a0
    
    
    
    <5>  如何定位设备/dev/sd*由哪些磁盘组成并点亮指定硬盘。
    
     udevadm info -q path -n /dev/sda
    
    可以看出设备/dev/sda是raid下的Virtual Drive: 0
    
    然后确定Virtual Drive: 0是由哪些磁盘组成,并点亮磁盘
    
    MegaCli64 -ldpdinfo -a0|grep -Ei "(Virtual Drive:|RAID Level|^Size|Enclosure Device|Slot Number)"
    
    
    
    参考:
    
    https://www.cnblogs.com/luxiaodai/p/9871612.html
    
    https://www.cnblogs.com/luckyall/p/10996663.html