• MegaCli 简易使用介绍


    查看帮助

    MegaCli64 -h

    适配卡配置

    查看RAID控制器的数量

    MegaCli64 -adpCount

    查看所有raid卡详细信息

     MegaCli64 -AdpAllInfo -aALL

    查看 RAID 卡 Rebuild 参数

    重建在IO资源使用中的百分比,默认为30%

     MegaCli64 -AdpAllinfo -aALL |grep -i rebuild

    设置RAID 卡 Rebuild 参数

    MegaCli64 -AdpSetProp { RebuildRate -60} -aALL

     磁盘配置

    查看连接RAID卡的全部硬盘详细信息

    MegaCli64 -PDList -aALL    ----其中ALL意思是所有的控制器,此处也可以用0表示

    MegaCli64 -PDList -aN   N可以根据Adapter #0来确定

    磁盘的信息如下:

    磁盘信息过滤

    由于磁盘信息较多,所有可以根据自己的需要来过滤得到自己想要的信息

    MegaCli64 -PDList -aAll| grep -Ei "(Enclosure Device|Slot Number|Raw Size|Firmware state)"  ---粗过滤

    grep是过滤的意思

    -E参数是使用扩展正则表达式来过滤

    -i参数是不区分大小写来过滤

    Enclosure Device过滤出raid卡的ID;Slot Number过滤出磁盘的槽号;RawSize过滤出磁盘的大小;Firmware state过滤出磁盘的状态。

    获取指定磁盘信息

    MegaCli -pdInfo -PhysDrv[E0:S0,E1:S1,...] -aN|-a0,1,2|-aALL

    N表示raid卡编号,0表示第一块raid卡;ALL表示所有的raid卡 ;E和S代表Enclosure Device和Slot Number

    磁盘上下线

    MegaCli64 -PDOffline/PDOnline -PhysDrv [E:S] -a0

    磁盘点灯

    MegaCli64 -PDLocate -start -physdrv[58:17] -a0

    MegaCli64 -PDLocate -stop -physdrv[58:17] -a0

     

    RAID组基础配置

    创建RAID组

    MegaCli64 -CfgLdAdd -r(0|1|5) [E:S, E:S, ...] -aN

    N表示raid卡编号,0表示第一块raid卡;ALL表示所有的raid卡 ;E和S代表Enclosure Device和Slot Number

     

    下面是一个创建raid5例子,属性为默认       固件状态会由Unconfigured变成Online

     下面给出一个创建raid10的例子,并设置属性

    删除RAID组

    MegaCli64 -CfgLdDel -LX -a0

    查看RAID组信息

    MegaCli64 -LDInfo -Lall -aALL (创建的示例已经使用过了)

    MegaCli64 -LdPdInfo -aALL   -----查看raid信息及raid组成磁盘信息。

     

    RAID Level对应关系:RAID级别一般通过 Primary 字段值来判断

    还需要结合Span Depth的值来判断值为1表示为 RAID-1,不为1表示 RAID-10; 还有一种情况:Primary-1, Secondary-3, RAID LevelQualifier-0 也是表示 RAID-10;

    RAIDLevel : Primary-0, Secondary-0, RAID Level Qualifier-0    对应RAID 0

    RAIDLevel : Primary-1, Secondary-0, RAID Level Qualifier-0    对应RAID 1

    RAIDLevel : Primary-5, Secondary-0, RAID Level Qualifier-3    对应RAID 5

    RAIDLevel : Primary-1, Secondary-3, RAID Level Qualifier-0    对应RAID 10

    修改RAID组属性

    MegaCli -LDGetProp -Cache -L0 -a0  获取cache属性

    WriteBack:写缓存策略

    WriteThrough:直接写入磁盘,不适用RAID卡缓存。

    ReadAheadNone:不开启预读

    ReadAhead:开启预读,在读操作的时候,预先把后面顺序的数据载入raid卡缓存,在顺序读的环境中能提供很好的性能,但是在随机读的环境中反而降低读的性能(适合文件系统,不适合数据库系统)

    ReadAdaptive:自适应预读,在缓存和I/O空闲时选择预读,默认策略。

    Direct:读操作不缓存到RAID卡缓存。

    Cached:读操作缓存到RAID卡缓存。

    如果BBU(电池)出现问题是否启用WriteCache

    No Write Cache if Bad BBU:如果BBU出现问题不使用WriteCache,从WriteBack自动切换到WriteThrough,默认配置。

    Write Cache OK if Bad BBU: 如果BBU出现问题仍启用WriteCache,这种配置是非常不安全的,除非是有UPS或者双电源的情况下。

    缓存策略解释:

    WT (WriteThrough)

    WB (WriteBack)

    NORA (ReadAheadNone)

    RA (ReadAhead)

    ADRA (ReadAdaptive)

    Cached

    Direct

    修改属性
    MegaCli64 -LDSetProp WT -L0 -a0    
    MegaCli64 -LDSetProp RA -L0 -a0
    MegaCli64 -LDSetProp Cached -L0 -a0

    清除RAID配置(慎用)

    MegaCli -CfgClr [-Force] -aN|-a0,1,2|-aALL

    RAID组扩展配置

    1.扩容过程中无法新建RAID组

    2.扩容过程中无法对其余RAID组扩容

    下面示例一个RAID5扩容:

    MegaCli64 -LDRecon -Start -r5 -Add -PhysDrv[58:7, 58:11] -L0 -a0

    查看扩容的进度(真的是超级慢)

    MegaCli64 -LDRecon -ShowProg -L0 -a0  显示扩容进度

    MegaCli64 -LDRecon -progdsply -L0 -a0  动态显示扩容进度

     好了,我终于等到1%了

    RAID组热备配置

    全局热备

    MegaCli64 -PDHSP -set -PhysDrv[E:S] -a0     添加全局热备

    MegaCli64 -PDHSP -rmv -PhysDrv[E:S] -a0  删除全局热备

    添加全局热备后,状态如下:

    此时下线成员盘,RAID组进入重构

     MegaCli64 -PDRbld -ShowProg -PhysDrv[E:S] -aALL 查看磁盘重构进度

     MegaCli64 -PDRbld -ProgDsply -PhysDrv[E:S] -aALL  动态显示重构进度

    局部热备

    在创建时添加局部热备

    MegaCli64 -CfgLdAdd -r1 [58:7,58:11] -Hsp[58:17] -a0

    查看RAID组信息:

    然后再添加一块全局热备

    准备工作完毕!现在下线成员盘,下线之后局部热备替换到成员组

    RAID组状态也变为降级

    rebuild的时间也很长,但此期间可以创建新的RAID组

    等待ing~~~~~~~~~~

    此时另一块盘也可以下线,不过下线rebuild就凉凉了…… 

    第二种是创建成功之后,给特定RAID组添加热备盘

    MegaCli64 -CfgLdAdd -r5 [58:7,58:11,58:17] -a0

    MegaCli64 -CfgLdAdd -r1 [58:19,58:23] -a0

    首先创建两个RAID组,然后把热备添加到第二个RAID组里(局部热备可以同时添加到多个RAID组)

    局部热备里的Array计算比较麻烦,这里就要用到上面提到的DG,要按DG的排序累加,一直累加到要添加热备的VD(要添加热备的VD也要计算)。
    1. 默认设Array为-1。
    2. 如果是RAID0,1,5,6,则Array加1。
    3. 如果是RAID10,50,则Array加2。
    4. 如果是RAID0,1,5,6,则返回Array最后计算的值。
    5. 如果是RAID10,50,则返回Array-1,Array。

    MegaCli64 -PDHSP -set -Dedicated [-Array1] -PhysDrv[58:18] -a0

    常见问题处理

    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)"

    参考:

    MegaCli使用手册

    MegaCli和storcli设置热备盘

  • 相关阅读:
    psy & vr
    psy 2
    psy
    linux c中select使用技巧
    hostent h_addr_list
    gethostbyname() -- 用域名或主机名获取IP地址
    c_select 调用参数说明
    [NYOJ 737] 石子合并(一)
    [HDU 1059] Dividing
    [HDU 1789] Doing Homework again
  • 原文地址:https://www.cnblogs.com/luxiaodai/p/9871612.html
Copyright © 2020-2023  润新知