zoukankan      html  css  js  c++  java
  • Megacli查看Dell服务器Raid状态

    通常我们使用的DELL/HP/IBM三家的机架式PC级服务器阵列卡是从LSI的卡OEM出来的,DELL和IBM两家的阵列卡原生程度较高,没有做太多封装,可以用原厂提供的阵列卡管理工具进行监控;而HP的阵列卡一般都做过封装了,因此需要使用自身特有的管理工具来监控。
    MegaCli是一款管理维护硬件RAID软件,可以通过它来了解当前raid卡的所有信息,包括raid卡的型号、raid的阵列类型、raid上各磁盘状态等等。

    一般时候我们对硬盘当前的状态不太好确定,一般通过机房人员巡检来完成,有没有通过软件的方式来检查确定这个问题呢。MegaCli就可以做到,一般通过 MegaCli 的Media Error Count: 0 Other Error Count: 0 这两个数值来确定阵列中磁盘是否有问题;Medai Error Count 表示磁盘可能错误,可能是磁盘有坏道,这个值不为0值得注意,数值越大,危险系数越高,Other Error Count 表示磁盘可能存在松动,可能需要重新再插入。MegaCli 可以对阵列中所有的磁盘进行检测,我们可以通过脚本的方式来检测相关参数,从而通知管理人员。

    一.下载与安装

    线上使用的工具一定要确保来源的安全,尽量官网下载,虽然可能在找的时候稍微有点麻烦。如果有些技巧的话,可能会稍快,下面说两种方式。

    第一个下载方式:
    http://www.dell.com/support/article/cn/zh/cndhs1/SLN292232 #通过dell官网进行搜索找到包含有下载链接的页面

    第二个下载方式:
    https://www.broadcom.com/support/download-search #进入官网搜索页面,这是官网跳转过来的搜索页面

    安装(注意在安装megacli前需要先安装Lib_Utils-1.00-09.noarch.rpm)
    unzip 8-07-14_MegaCLI.zip
    rpm –ivh 8-07-14_MegaCLI.rpm

    #/opt/MegaRAID/MegaCli/MegaCli64 -help  #可以查看版本以及相关的命令使用说明。默认命令装在了:/opt/MegaRAID/MegaCli/MegaCli64这里
    #/opt/MegaRAID/MegaCli/MegaCli64  -cfgdsply -aALL|grep 'Product Name'  #通过命令可以看出我们的RAID卡的型号为:PERC H730 Mini
    Product Name: PERC H710P Mini

    二.MegaCli命令

    #/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL  #查看raid级别

    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aALL #查看raid卡信息

    #/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL #查看硬盘信息

    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -aAll #查看电池信息

    #/opt/MegaRAID/MegaCli/MegaCli64 -FwTermLog -Dsply -aALL #查看raid卡日志

    #/opt/MegaRAID/MegaCli/MegaCli64 -adpCount #显示适配器个数

    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpGetTime –aALL #显示适配器时间

    #/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LALL -aAll  #显示所有逻辑磁盘组信息

    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL |grep 'Charger Status' #查看电池充电状态

    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL #显示BBU状态信息

    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuCapacityInfo -aALL #显示BBU容量信息

    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuDesignInfo -aALL #显示BBU设计参数

    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuProperties -aALL #显示当前BBU属性

    #/opt/MegaRAID/MegaCli/MegaCli64 -cfgdsply -aALL #显示raid卡型号,raid设置,disk相关信息

    #/opt/MegaRAID/MegaCli/MegaCli64 -LDGetProp -Cache -L0 –a0 #查看磁盘的缓存策略

    #/opt/MegaRAID/MegaCli/MegaCli64 -LDGetProp -Cache -LALL -aALL  # 查看所有磁盘的缓存策略

    磁盘的缓存策略详解:

    # /opt/MegaRAID/MegaCli/MegaCli64 -LDGetProp -Cache -L0 -a0                    
      Adapter 0-VD 0(target id: 0): Cache Policy:WriteBack, ReadAdaptive, Direct, No Write Cache if bad BBU

    策略介绍:
    WriteBack与WriteThrough
    1.WriteBack:进行写操作时,将数据写入RAID卡缓存,并直接返回,RAID卡控制器将在系统负载低或者Cache满了的情况下把数据写 入 硬盘。该设置会大大提升RAID卡写性能,绝大多数的情况下会降低系统IO负载。 数据的可靠性由BBU(Battery Backup Unit)电池 进行保证
    2.WriteThrough: 数据写操作不使用缓存,数据直接写入磁盘。RAID卡写性能下降,在大多数情况下该设置会造成系统IO负载上升;

    ReadAheadNone, ReadAdaptive, ReadAhead.
    ReadAheadNone: 不开启预读。这是默认的设置
    ReadAhead: 在读操作时,预先把后面顺序的数据加载入Cache,在顺序读取时,能提高性能,相反会降低随机读的性能。
    ReadAdaptive: 自适应预读,当Cache memory和IO空闲时,采取顺序预读,平衡了连续读性能及随机读的性能,需要消耗一定的计算能力。

    WT(Write through),WB(Write back),NORA(No read ahead),RA(Read ahead),ADRA(Adaptive read ahead),Cached,Direct

    Write Policy(写入策略) 将高速缓存方法设置为回写或通过写。
    * 在Write-through(通过写)高速缓存中,当磁盘子系统已接收到一个事务中的所有数据时,该控制器将数据传输完成信号发送给主机。
    * 在Write-back(回写)高速缓存中,当控制器高速缓存已接收到某个事务中的所有数据时,该控制器将数据传输完成信号发送给主机。

    Read-ahead(预读)启用逻辑驱动器的SCSI预读功能。 可将此参数设为No-Read-Ahead(非预读)、Read-ahead(预读)或Adaptive(自适应)。 默认设置为Adaptive(自适应)。
    * No-Read-Ahead(非预读)指定控制器在当前逻辑驱动器中不使用预读方式。
    * Read-ahead(预读)在读操作时,预先把后面顺序的数据加载入Cache,在顺序读取时,能提高性能,相反会降低随机读的性能。
    * Adaptive(自适应)指定如果最近两次的磁盘访问出现在连续的扇区内,则控制器开始采用Read-ahead(预读)。 如果所有的读取请求都是随机的,则该算法回复到No-Read-Ahead(非预读),但仍要判断所有的读取请求是否有按顺序操作的可能。当Cache memory和IO空闲时,采取顺序预读,平衡了连续读性能及随机读的性能,需要消耗一定的计算能力。

    Cache Policy(高速缓存策略) 适合在特定逻辑驱动器上读取。 它并不影响Read ahead(预读)高速缓存。
    * Cached I/O(高速缓存I/O)指定所有读取数据在高速缓存存储器中缓存。
    * Direct I/O(直接I/O)指定读取数据不在高速缓存存储器中缓存。 此为默认设置。 它不会代替高速缓存策略设置。数据被同时传送到高速缓存和主机。 如果再次读取同一数据块,则从高速缓存存储器读取

    Write Cache OK if Bad BBU和 No Write Cache if Bad BBU
    No Write Cache if Bad BBU: 如果BBU出问题,则关闭Write Cache。由WriteBack自动切换到WriteThrough模式。如果没有特殊要求,强烈建议采用该设置,以确保数据的安全。
    Write Cache OK if Bad BBU: 如果BBU出问题,依然启用Write Cache. 这是不推荐的设置,BBU出问题将无法保证断电情况下数据的正常,如果此时依然采用WriteBack模式,遇到断电将发生数据丢失。除非有UPS作额外保证,不然不推荐采用这个设置。

    磁盘策略更改详解:

    修改WriteBack:
    /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp -WB -Lall -aAll

    修改WriteThrough:
    /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp -WT -Lall -aAll

    修改No Write Cache if Bad BBU:
    /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp -NoCachedBadBBU -Lall -aAll

    修改Write Cache OK if Bad BBU:
    /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp -CachedBadBBU -Lall -aAll

    或者其他:
    /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp WT|WB|NORA|RA|ADRA -L0 -a0
    /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp -Cached|-Direct -L0 -a0

    在线创建raid阵列,删除阵列:

    创建一个raid5阵列,由物理盘号为3,4,5构成,该阵列的热备盘是物理盘号6:
    /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r5 [32:3,32:4,32:5] WB Direct -Hsp[32:6] -a0
    #r5代表的就是raid5,[32:5]里面32代表的是Enclosure Device ID,5代表的是Slot Number,WB和Direct缓存策略前面提到了,Hsp[32:6] 指定第七块物理硬盘为热备盘,a0表示陈列卡号。

    在线更换raid0硬盘,原硬盘损坏。如盘号为5的硬盘损坏之前做了raid0,现在更换之后需要对新硬盘做raid0:
    /opt/MegaRAID/MegaCli/MegaCli64  -DiscardPreservedCache -L5 -a0

    #如果全是单盘raid0的话,清空磁盘组5的一般是第六块物理硬盘的raid缓存,不然就要重启服务器生效,L5是通过MegaCli64 -LDInfo -Lall -aALL得到的raid组对应的ID号,如Virtual Drive: 5 (Target Id: 5),ID号是从0开始的。
    #/opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0 [32:5] -a0 #将盘号为5的硬盘做成raid0模式,其他参数使用默认。

    清空所有的缓存:(一般不要这么干)
    #/opt/MegaRAID/MegaCli/MegaCli64 -DiscardPreservedCache -Lall -a0 -NoLOG

    删除raid阵列:
    #/opt/MegaRAID/MegaCli/MegaCli64 -CfgLdDel -L5 -a0  #删除阵列

    其他的一些raid操作:

    指定第 5 块盘作为全局热备
    #/opt/MegaRAID/MegaCli/MegaCli64 -PDHSP -Set [-EnclAffinity] [-nonRevertible] -PhysDrv[32:5] -a0

    指定为某个阵列的专用热备
    #/opt/MegaRAID/MegaCli/MegaCli64 -PDHSP -Set [-Dedicated [-Array1]] [-EnclAffinity] [-nonRevertible] -PhysDrv[32:5] -a0

    删除全局热备
    #/opt/MegaRAID/MegaCli/MegaCli64 -PDHSP -Rmv -PhysDrv[32:5] -a0

    将某块物理盘下线/上线
    #/opt/MegaRAID/MegaCli/MegaCli64 -PDOffline -PhysDrv [32:4] -a0
    #/opt/MegaRAID/MegaCli/MegaCli64 -PDOnline -PhysDrv [32:4] -a0

    手工配置初始化:

    #/opt/MegaRAID/MegaCli/MegaCli64 -LDInit  -start –L0  -a0               #快速初始化

    #/opt/MegaRAID/MegaCli/MegaCli64 -LDInit  -start  -full –L0 -a0        #完全初始化

    #/opt/MegaRAID/MegaCli/MegaCli64 -LDInit  -progdsply -L0 -a0        #显示初始化的进度

    #/opt/MegaRAID/MegaCli/MegaCli64 -LDInit  -abort  -L0  -a0               #结束完全初始化

    raid卡电池操作:

    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -BbuLearn a0  #手动充电

    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL #查看充电状态

    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL #查看充电进度百分比

    查看raid阵列中掉线的硬盘:
    #/opt/MegaRAID/MegaCli/MegaCli64 -pdgetmissing -a0

    查看Megacli的log:
    #/opt/MegaRAID/MegaCli/MegaCli64 -FwTermLog dsply -a0 > /tmp/Megacli.log

    查看磁盘的raid级别:

    RAID Level对应关系:
    RAID Level : Primary-1, Secondary-0, RAID Level Qualifier-0   #RAID 1
    RAID Level : Primary-0, Secondary-0, RAID Level Qualifier-0   #RAID 0
    RAID Level : Primary-5, Secondary-0, RAID Level Qualifier-3   #RAID 5

    如何判断磁盘的raid级别:

    双盘做了raid1的举例:

     1 #/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LAll -aAll                             
     2 
     3 Bash
     4 Adapter 0 -- Virtual Drive Information:
     5 Virtual Drive: 0 (Target Id: 0)
     6 Name                :raid1
     7 RAID Level          : Primary-1, Secondary-0, RAID Level Qualifier-0  #通过RAID Level可以看到这是raid1的盘
     8 Size                : 278.875 GB  #磁盘大小为300G
     9 State               : Optimal  #最佳状态
    10 Strip Size          : 64 KB
    11 Number Of Drives    : 2  #2 说明是两块盘组成
    12 Span Depth          : 1  #说明实际只是raid 1

    全盘做了raid5的举例:

     1 #/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LAll -aAll                                    
     2 
     3 Bash
     4 Adapter 0 -- Virtual Drive Information:
     5 Virtual Drive: 0 (Target Id: 0)
     6 Name                :raid5
     7 RAID Level          : Primary-5, Secondary-0, RAID Level Qualifier-3  #通过RAID Level  可以看出这是raid5
     8 Size                : 60.032 TB #总大小60T
     9 Sector Size         : 512
    10 Is VD emulated      : Yes  
    11 Parity Size         : 5.457 TB #单盘大小是6T
    12 State               : Optimal
    13 Strip Size          : 64 KB
    14 Number Of Drives    : 12  #由12块盘组成
    15 Span Depth          : 1  #深度为1

    注:如果是做了热备盘的情况呢,再最下面会有两行信息:
    Number of Dedicated Hot Spares: 1  #有1块盘做了热备
         0 : EnclId - 32 SlotId - 11   #[32:11]盘做的热备

    raid10的举例:

     1 #/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LAll -aAll
     2 
     3 Bash
     4 Virtual Drive: 1 (Target Id: 1)
     5 Name                :raid10-01
     6 RAID Level          : Primary-1, Secondary-0, RAID Level Qualifier-0
     7 Size                : 556.929 GB  #总大小600G
     8 State               : Optimal
     9 Strip Size          : 64 KB
    10 Number Of Drives per span:2  #表示每2个物理盘做成一个RAID1盘组
    11 Span Depth          : 2 #2个RAID1盘组做成了RAID10

    硬盘故障后一般操作方法:

    1.热备盘磁盘故障后,使用新硬盘替换,直接将新硬盘指定为热备盘:
    #/opt/MegaRAID/MegaCli/MegaCli64 -PDHSP -Set -PhysDrv[32:5] -a0

    2.热备盘磁盘故障后,如果使用有数据磁盘更换,首先清除Foreign配置,再将替换磁盘指定为热备盘:
    #/opt/MegaRAID/MegaCli/MegaCli64 -cfgforeign -scan -a0      #扫描外来配置的个数
    #/opt/MegaRAID/MegaCli/MegaCli64 -cfgforeign -clear -a0     #清除外来配置

    #/opt/MegaRAID/MegaCli/MegaCli64 -PDHSP -Set -PhysDrv[32:5] -a0

    3.如果确定就是本机磁盘,也可以直接导入来导入配置,恢复虚拟磁盘组:
    #/opt/MegaRAID/MegaCli/MegaCli64 -cfgforeign -import -a0  

    磁盘状态的变化(从拔盘,到插盘的过程):

    Device |Normal|Damage|Rebuild|Normal
    Virtual Drive |Optimal|Degraded|Degraded|Optimal
    Physical Drive |Online|Failed –> Unconfigured|Rebuild|Online

    查看磁盘同步进度:

    VD init

    阵列创建完后,会有一个初始化同步块的过程,可以看看其进度:
    #/opt/MegaRAID/MegaCli/MegaCli64 -LDInit -ShowProg -LALL -aALL

    以动态可视化文字界面显示 :
    #/opt/MegaRAID/MegaCli/MegaCli64 -LDInit -ProgDsply -LALL –aALL

    VD background init

    查看阵列后台初始化进度 :
    #/opt/MegaRAID/MegaCli/MegaCli64 -LDBI -ShowProg -LALL -aALL

    以动态可视化文字界面显示 :
    #/opt/MegaRAID/MegaCli/MegaCli64 -LDBI -ProgDsply -LALL -aALL

    Disk rebuid

    查看某个物理磁盘重建进度:
    #/opt/MegaRAID/MegaCli/MegaCli64 -PDRbld -ShowProg -PhysDrv [32:5] -a0

    以动态可视化文字界面显示:
    #/opt/MegaRAID/MegaCli/MegaCli64 -PDRbld -ProgDsply -PhysDrv [32:5] -a0

    Disk copyback

    查看某个物理磁盘回写进度:
    #/opt/MegaRAID/MegaCli/MegaCli64 -pdcpybk -showprog -physdrv[32:0] -a0 

    以动态可视化文字界面显示:
    #/opt/MegaRAID/MegaCli/MegaCli64  -pdcpybk -ProgDsply -PhysDrv [32:5] -a0

  • 相关阅读:
    [bzoj3218] a+b problem [最小割+数据结构优化建图]
    [bzoj3456] 城市规划 [递推+多项式求逆]
    [ARC068F] Solitaire [DP]
    [bzoj3601] 一个人的数论 [莫比乌斯反演+高斯消元]
    [中山市选2011][bzoj2440] 完全平方数 [二分+莫比乌斯容斥]
    [bzoj2159] Crash的文明世界 [斯特林数+树形dp]
    [bzoj2839] 集合计数
    通用解题方法—回溯法
    分支限界法—单源最短路径问题
    分支限界法
  • 原文地址:https://www.cnblogs.com/zyd112/p/8657798.html
Copyright © 2011-2022 走看看