zoukankan      html  css  js  c++  java
  • storcli64和smartctl定位硬盘的故障信息

    storcli64可对LSIRAID卡基本操作进行管理,本文主要是对LSIRAID卡常使用到的命令进行介绍

    https://www.cnblogs.com/wangl-blog/archive/2019/05/09/10839635.html

    https://blog.csdn.net/itzhangdaopin/article/details/77746608

    https://www.cnblogs.com/diyunpeng/p/8051749.html

    strocli是megacli的升级版本,针对于戴尔服务器是perccli,用法完全一致

    smartctl可以查看磁盘的主控芯片smart信息

    lsscsi可以查看系统的scsi信息,数据来源/proc/scsi/scsi相关,该文档此处暂不介绍

    这些工具都是查看磁盘相关信息的常用工具,对于排查磁盘状态和raid卡问题都有帮助

    安装一下storcli或者perccli,并且将命令软连接到/usr/bin/目录下,方便使用命令:

    ln -s /opt/MegaRAID/storcli/storcli64 /usr/bin/

    ln -s /opt/MegaRAID/perccli/percclie64 /usr/bin/

    Centos安装:
    yum -y install smartmontools

    smartctl 
    -i 指定设备
    -d 指定设备类型,例如:ata, scsi, marvell, sat, 3ware,N
    -a 或A 显示所有信息
    -l 指定日志的类型,例如:TYPE: error, selftest, selective, directory,background, scttemp[sts,hist]
    -H 查看硬盘健康状态
    -t short 后台检测硬盘,消耗时间短
    -t long 后台检测硬盘,消耗时间长
    -C -t short 前台检测硬盘,消耗时间短
    -C -t long 前台检测硬盘,消耗时间长
    -X 中断后台检测硬盘
    -l selftest 显示硬盘检测日志
    HP硬盘:
    smartctl -s on -d  cciss,0 /dev/cciss/c0d0 开启SMART
    smartctl  -a  -d cciss,0 -i /dev/cciss/c0d0  显示所有SMART信息
    smartctl  -l error  -d cciss,0 -i /dev/cciss/c0d0 查看磁盘错误日志
    +++++++++++++++++++++++smarted服务+++++++++++++++++

    简单说下smartctl:smartd由kernel-utils包缺省安装。用命令 rpm -ql kernel-utils 可以列出kernel-utils包中的文件
    它是一个守护进程(一个帮助程序),它能监视拥有自我监视,分析和汇报技术(Self-Monitoring, Analysis, and Reporting Technology - SMART)的硬盘。
    主配置文件:/etc/smartd.conf 
    添加一行/dev/cciss/c0d0 -H -m sys@5iqiong.com
    上边的配置表示smartd以静默状态工作,当SMART中报告PASSED的时候不理睬一旦出现Failure,立刻用邮件通知用户指定的邮箱

    1.2 基本语法

    获取控制器号:storcli64 /call show all

    /c 控制器号 输出结果中的Controller 值

    /v  RAID号

    /e 背板号  输出结果EID值

    /f 外部配置

    /s 槽位号 输出结果的Slt值

    1.3 系统

    查看RAID控制器摘要信息

    storcli64 show

    查看详细RAID控制器信息

    storcli64 show all

    查看帮助文档

    storcli64 -h

    1.4 控制器

    查看属性语法:storcli64 /cx show <properties>

    如查看蜂鸣器状态:strocli64 /c0 show alarm

    设置某个属性语法:storcli64 /cx set <properties>

    如设置蜂鸣器开启:storcli64 /cx set alarm=on

    1.5 物理磁盘

    可查看磁盘的健康状态,对不健康的磁盘进行替换,设置磁盘状态,设置磁盘初始化,对磁盘进行定位

    1.5.1 查看磁盘健康状态

    storcli64 -PDList -aALL

    对于每块物理磁盘的描述信息,主要关注一下几项:

    Slot Number : 表示磁盘的插槽位置,可以根据Slot Number序列值推断是否有磁盘离线

    Medai Error Count : 表示磁盘可能错误,可能是磁盘有坏道,这个值不为0值得注意,数值越大,危险系数越高

    Other Error Count : 表示磁盘可能存在松动,可能需要重新再插入

    Predictive Failure Count : ( 预测性失败统计)

    Firmware state : 表示磁盘的状态,可以判断磁盘是否损坏。正常状态是Online, Spun Up

    1.5.2 查看磁盘

    查看控制器为0 背板为36槽位号为1的磁盘

    storcli64 /c0/e36/s1 show 

    查看控制器0 所有背板及背板上的所有磁盘信息

    storcli64 /c0/eall/sall show

    查看所有控制器 所有背板 背板上的所有磁盘的详细信息

    storcli64 /call/eall/sall show all

    1.5.3 设置磁盘状态

    设置控制器 0 背板36 槽位号为1的磁盘状态为good

    storcli64 /c0/e36/s1 set good

    设置控制器 0 背板36 槽位号为1的磁盘状态为offline

    storcli64 /c0/e36/s1 set offline

    设置控制器为0 背板为36 槽位号为1的磁盘状态为online

    storcli64 /c0/e36/s1 set online

    1.5.4 磁盘初始化

    磁盘在其他系统中使用过磁盘不干净的情况下需对磁盘进行初始化,初始化会清理掉磁盘上的所有数据

    查看正在初始化的磁盘

    storcli64 /cx/ex/sx show initialization

    磁盘开始初始化

    storcli64 /cx/ex/sx start initialization

    停止磁盘的初始化

    storcli64 /cx/ex/sx stop initialization

    1.5.5 磁盘定位

    开始定位

    storcli64 /cx/ex/sx start locate

    停止定位

    storcli64 /cx/ex/sx stop locate

    1.6 RAID

    1.6.1 新建RAID

    必须含有的参数 RAID类型 RAID大小 RAID名称 和包含的磁盘

    storcli64 /cx add RAID r 0|1|5|6|10|50|60 Size=<RAID1_Sz>,<RAID2_Sz>,..|*all name=<RAIDNAME1>,drives=e:s|e:s-x|e:s-x,y;e:s-x,y,z

    例子:

    使用默认参数创建的RAID5 读策略为ra: Read ahead 写策略wt io策略为direct 条带大小为256

     storcli64 /c0 add RAID r5 size=all name=diskarray01 drives=36:15-16,36:18

    设置读写策略条带大小的RAID5

    storcli64 /c0 add vd r5 size=all name=diskarray01 drives=50:5-7,50:9 awb ra cached strip=256

    参数

    描述

    type

    RAID 0|1|5|6|10|50|60

    RAID配置

    size

    最大不超过所能设置的最大值

    虚拟磁盘的大小,多个值逗号分开

    name

    最大15位字节

    RAID名称

    drives

    e:s|e:s-x|e:s-x,y:

    有效的enclosure和slot号

    e enclosure ID

    .e:s-x enclosure中的slot号.

    direct|cached

    cached

    direct

    IO策略,默认为direct

    wt|wb

    wt: Write through.

    wb: Write back.

    awb:Always Write back带电池的情况

    写策略,默认为wt

    nora|ra

    ra: Read ahead.

    nora: No read ahead.

    读策略,默认为ra

    1.6.2 热备

    查看磁盘状态:storcli64 /c0 /eall/sall show 磁盘状态为UGOOD空闲盘,磁盘状态为DHS为专属热备,磁盘状态为GHS为全局热备

    添加专属热备

    1. 获得dgs号 storcli64 /call/vall show 可看到DG及dgs的值为特定的DG配置热备
    2. 获取空闲磁盘storcli64 /c0 /eall/sall show 磁盘状态为UGOOD

    c.   语法storcli64 /cx/ex/sx add hotsparedrive dgs=x

    例:storcli64 /c0/e3/s6 add hotsparedrive dgs=0 背板为3,槽位为6的磁盘做 dgs为0的RAID的专属热备

    添加全局热备

    1. 查看空闲磁盘storcli64 /c0 /eall/sall show  磁盘状态为UGOOD
    2. storcli64 /cx/ex/sx add hotsparedrive

       如:storcli64 /c0/e3/s6 add hotsparedrive    背板为3,槽位为6的磁盘作为全局热备

    删除热备

    1. 查看热备盘  storcli64 /c0 /eall/sall show  磁盘状态为DHS,GHS

             b.   删除热备盘 storcli /c0/ex/sx delete hotsparedrive 

    1.6.3 删除RAID

    先查看要删除的RAID 查看到对应的VD号 storcli64 /c0/vall show

    删除RAID

    storcli64 /cx/vx del

    例:storcli64 /c0/v1 del 删除虚拟设备号为1的RAID

    删除含有用户数据(MBR或者分区信息)的RAID

    storcli64 /cx/vx del force

    1.6.4 查看RAID

    查看控制器上的所有

    RAID storcli64 /call/vall show

    查看具体的RAID虚拟设备号为1的详细信息

    storcli64 /c0/v1 show all

    1.6.5 RAID缓存设置

    设置写缓存语法:storcli64 /cx/vx set wrcache=wt|wb|awb  wt 是关闭缓存wb 在RAID卡没有电池的情况下开启写缓存 awb在RAID卡含有电池的情况下开启写缓存

    设置读缓存语法:storcli64 /cx/vx set racache=nora|ra nora不会读缓存里面内容 ra 先读缓存里有的内容

    设置io 优先级的语法:storcli64 /cx/vx set iopolicy=direct|cached

    开启读缓存

    storcli64 /call/v1 set rdcache=ra 

    开启写缓存

    开启写缓存需要先设置IO优先级为缓存 storcli /c0/v1 set iopolicy=cached

    storcli64 /call/v1 set wrcache=wb

    或者 storcli64 /call/v1 set wrcache=awb

    关闭读缓存

    storcli64 /call/v1 set rdcache=nora

    关闭写缓存

    storcli64 /call/v1 set wrcache=wt

    1.6.6 RAID初始化

    查看快速初始化

    storcli64 /cx/vx show init  

    开启快速初始化

    storcli64 /cx/vx start init

    开启完全初始化

    storcli64 /cx/vx start init full

    停止初始化

    storcli64 /cx/vx stop init

     RAID5(5块以上)和RAID6(6块以上)在进行快速初始化时会转到后台进行初始化

    查看后台初始化

    storcli64 /cx/vx show bgi

    停止初始化

    storcli64 /call/v1 stop bgi

    挂起初始化

    storcli64 /call/v1 suspend bgi

    1.6.7 RAID一致性校验

    查看初始化

    storcli64 /cx/vx show cc

    开启初始化

    storcli64 /cx/vx start cc

    停止初始化

    storcli64 /cx/vx stop cc

    smartor基本设置下一致性校验 是在特定的时间执行一致性校验,在页面设置即可

    LSIRAID卡自带的一致性校验

    查看一致性校验执行的具体时间

    storcli64 /cx show cc

    设置卡自带的一致性校验方式顺序或者并发

    storcli64 /cx set consistencycheck=seq|con

    关闭卡自带的一致性校验 

    storcli64 /cx set cc=off

    1.6.8  copyback

     

    1.7 日志

    storcli64支持的日志

    清除所有日志事件 

    storcli64 /cx clear events

    删除TTY(用于故障定位的固件输出信息) 日志  

    storcli64 /cx delete termlog

    将日志信息保存到指定文件 

    storcli64 /cx show events file=<absolute path>

    查看产生日志文件的历史信息  

    storcli64 /cx show eventloginfo

    查看term log 日志配置或者日志信息 

    storcli64 /cx show termlog type=config|contents

    1.8 异常情况

    1.8.1 异常断电对初始化影响

    RAID0,RAID1,RAID5(小于5块盘)RAID(小于6块盘)RAID10,RAID50,RAID60在重启之后不会再进行初始化

    RAID5(5块以上)和RAID6(6块以上)会停止前台初始化,在后台进行初始化,使用命令 storcli64 /c0 show bgi可以查看到

    1.8.2 拔盘热备和1块数据盘恢复

    将盘插回去 查看磁盘状态 storcli64 /cx/ex/sall show all 磁盘状态为ubad

                设置磁盘状态为good  storcli64 /c0/ex/sx set good

    查看磁盘状态 storcli64 /cx/ex/sx show  磁盘状态为 UGOOD -F

    导入磁盘  storcli64 /cx/fall import

    查看磁盘状态 storcli64 /cx/ex/sx show 磁盘状态为 UGOOD -

    磁盘为可用状态

    1.8.3 RAID 以损坏恢复磁盘可用

    卸载已损坏raid上建的文件系统:umount  ....

    删除已顺坏raid上的lvm管理映射:

    dmsetup remove /dev/p1/*    (p1为raid上存储池名)

    echo 1 > /sys/block/sdb/device/delete (sdb为实际区下)

    删除损坏的raid: storcli64  /cx/vx del

  • 相关阅读:
    【手机网络游戏 编程】C#异步socketAPI调用 处理数据的流程
    【已解决】unity4.2.0f4 导出Android工程报错:Error building Player: ArgumentException: Illegal characters in path. [unity导出android工程 报错,路径含有非法字符]
    【已解决】Android微信开放平台,申请移动应用的 应用签名 如何获取
    【keytool jarsigner工具的使用】Android 使用JDK1.7的工具 进行APK文件的签名,以及keystore文件的使用
    JavaScript闭包浅谈
    C#接口和抽象类的区别
    .NET中的垃圾回收
    访问修饰符(public,private,protected,internal,sealed,abstract)
    C#.NET里面抽象类和接口有什么区别?
    在 ASP.NET 中执行 URL 重写的方法
  • 原文地址:https://www.cnblogs.com/klb561/p/11530523.html
Copyright © 2011-2022 走看看