- 前言
- 读者对象
- 如何阅读本书
- 勘误和支持
- 致谢
- 第 1 篇 高性能网站构建
- 第 1 章 深入理解 DNS 原理与部署 BIND
- 第 2 章 全面解析 CDN 技术与实战
- 第 3 章 负载均衡和高可用技术
- 第 4 章 配置及调优 LVS
- 第 5 章 使用 HAProxy 实现 4 层和 7 层代理
- 第 6 章 实践 Nginx 的反向代理和负载均衡
- 第 7 章 部署商业负载均衡设备 NetScaler
- 第 8 章 配置高性能网站
- 第 9 章 优化 MySQL 数据库
- 第 2 篇 服务器安全和监控
- 第 10 章 构建企业级虚拟专用网络
- 第 11 章 实施 Linux 系统安全策略与入侵检测
- 第 12 章 实践 Zabbix 自定义模板技术
- 第 13 章 服务器硬件监控
- 第 3 篇 网络分析技术
- 第 14 章 使用 tcpdump 与 Wireshark 解决疑难问题
- 第 15 章 分析与解决运营商劫持问题
- 第 16 章 深度实践 iptables
- 第 4 篇 运维自动化和游戏运维
- 第 17 章 使用 Kickstart 完成批量系统安装
- 第 18 章 利用 Perl 编程实施高效运维
- 第 19 章 精通 Ansible 实现运维自动化
- 第 20 章 掌握端游运维的技术要点
- 第 21 章 精通手游运维的架构体系
最佳实践 69:服务器硬盘监控
对于有状态的业务服务器,通常对于服务器硬盘会做 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 非常简单,笔者就不再提供了。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论