返回介绍

最佳实践 69:服务器硬盘监控

发布于 2025-04-20 17:44:48 字数 2506 浏览 0 评论 0 收藏

对于有状态的业务服务器,通常对于服务器硬盘会做 RAID,目前常用的有 RAID10 和 RAID6,性能上 RAID10 要优于 RAID6,但是硬盘容量损失较大。RAID5 现在使用的越来越少。因其重构过程对其他硬盘会造成较大压力,且此时如果再有硬盘发生故障,数据将全部丢失。下面就对这 3 种 RAID 的优缺点做简单介绍。

RAID10:细分为普通的 RAID10 与 RAID10(ADM),ADM 的全称是 Advanced Data Mirroring,RAID(ADM)副本总数比 RAID10 多一份,所有 RAID 级别中 RAID10(ADM)性能最佳,RAID10 其次。容错性 RAID10(ADM)也是最好的,RAID10 其次,缺点是 RAID10(ADM)容量损失 2/3。

RAID6:安全性较高,最多允许坏两块硬盘。缺点是并非所有 RAID 卡都支持,RAID6 写入性能比 RAID5 差。

RAID5:容量损失最小,读取性能较高。缺点是最多仅允许坏一块盘,如果在第一个故障硬盘重构过程中出现第二块硬盘故障,数据会丢失,RAID5 写入性能较低。

通常情况下,使用哪种 RAID 级别,取决于业务需要,读者朋友可以根据上述 RAID 级别的优缺点自行选择。在条件允许的情况下,推荐使用 RAID10。

因为服务器硬盘一般都做了 RAID,所以在系统里面查看磁盘的时候,只能看到逻辑磁盘,比如 had、hdb、sda、sdb 等,需要再深入地查看物理硬盘的状态信息就必须透过 RAID,不过还好,目前主流的 RAID 卡厂商都提供了对应的工具,比如 HP 的 RAID 卡工具 hpacucli 或者 hpssacli、LSI MegaRAID 的 RAID 卡工具 MegaCli。

注意

hpacucli 与 hpssacli 都是 HP RAID 自带的 RAID 卡命令行工具,区别在于在 hpssacli 支持新版本 RAID 卡,在较老的 HP 服务器中,仅支持 hpacucli,命令格式参数基本相同。

HP 的 RAID 卡使用 hpacucli ctrl slot=0 pd all show status 查看硬盘状态,输出如下:

[root@localhost ~]#hpacucli ctrl slot=0 pd all show status   
   physicaldrive 1I:1:1 (port 1I:box 1:bay 1, 600 GB): OK
   physicaldrive 1I:1:2 (port 1I:box 1:bay 2, 600 GB): OK
   physicaldrive 1I:1:3 (port 1I:box 1:bay 3, 600 GB): OK
   physicaldrive 1I:1:4 (port 1I:box 1:bay 4, 600 GB): OK

从命令输出的结果来看,此服务器有 4 块硬盘,且状态都是 OK,如果有硬盘出现问题时,状态会出现 Failed。

LSI MegaRAID 的 RAID 卡,使用/bin/MegaCli64-PdGetMissing-aALL 查看 RAID 组中是否有硬盘损坏。输出如下:

[root@gcloud-wgq-taobao-112 ~]# /bin/MegaCli64 -PdGetMissing -aALL
    Adapter 0 - Missing Physical drives   
    No.   Array   Row   Size Expected  //表示丢失一块 146G 的硬盘,可能是损坏或被拔出
    0     0       3     139236 MB  
Exit Code: 0x00

使用/bin/MegaCli64-PDList-aALL 查看所有硬盘状态:

[root@ localhost ~]# /bin/MegaCli64 -PDList -aALL
Adapter #0     //RAID 卡编号
Enclosure Device ID: 252   //设备 ID
Slot Number: 0  //硬盘槽位
...
Media Error Count: 0   //扇区错误数量
Other Error Count: 0    //除磁盘坏块之外的其他错误,比如:硬盘松动,iscsi 连接错误
Predictive Failure Count: 0   //预测的磁盘坏块数量
...
Firmware state: Online, Spun Up //磁盘状态
...

以上命令将输出所有磁盘的详细信息,重点关注 Slot Number,硬盘槽位,从 0 开始定位硬盘的位置,非常重要;Media Error Count 表示错误扇区数、Predictive Failure Count 表示预测磁盘坏块,这两项有值,说明硬盘即将坏或没坏,通常这种情况下,从服务器外观看不到硬盘亮红灯。Firmware state 硬盘状态,正常是 Online,如果坏了会是 Failed,重构时为 Rebuild。

通过编写脚本直接调用 hpacucli,MegaCli64 可以比较方便地实现服务器硬盘状态的监控和报警,以上列举的这些关键项都可以作为判断的条件。具体脚本,使用 shell 非常简单,笔者就不再提供了。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。