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

  • 相关阅读:
    metal的gpu query
    体积雾 global fog unity 及改进
    hdr rt format对颜色的影响
    unity deferred lighting
    unity linear space时 photoshop blend的正确设置
    unity linear work flow
    一些数据 bandwidth之类
    deferred rendering with msaa
    unity 显示mipmaplevel
    【转】在C#中使用SendMessage
  • 原文地址:https://www.cnblogs.com/zyd112/p/8657798.html
Copyright © 2011-2022 走看看