HBA 与 RAID 卡的分工
HBA(主机总线适配器)只做协议转换与硬盘透传,不做 RAID 运算,操作系统能直接看到每块盘;RAID 卡自带处理器与缓存,承担校验计算、缓存加速、热备与重建,操作系统只看到一块逻辑盘。这个差别决定了两条完全不同的排障路径:HBA 上坏盘直接体现在内核日志与 /dev/sdX 上,RAID 卡上坏盘要先从卡的事件日志里看。
对照
| 维度 | HBA 卡 | RAID 卡 |
|---|---|---|
| 功能 | 透传硬盘(IT 模式) | RAID 运算、缓存、热备、重建 |
| 典型场景 | ZFS、Ceph 等软存储 | 传统数据库与虚拟化 |
| 掉盘可见性 | 操作系统直接看到 /dev/sdX | 操作系统只看到逻辑盘 /dev/sda |
| 定位方式 | 背板槽位与 lsscsi/sg_ses | 卡工具定位灯与槽位号 |
| 缓存保护 | 无,依赖上层软件 | 电池或超级电容保护写缓存 |
识别卡类型与模式
识别卡类型与模式
lspci -nn | grep -i -E "raid|sas|sata" # 看芯片与厂商
lsscsi -v | head -40 # 每块盘挂在哪个控制器上
cat /proc/scsi/scsi 2>/dev/null | head -40 # 老内核的 SCSI 层级
storcli show # 有 storcli 时能直接读出卡型号与模式
smartctl -i /dev/sda | grep -i -E "Product|Vendor"排障差异
| 日志位置 | HBA:内核 dmesg 直接报盘;RAID 卡:先看卡的事件日志 |
|---|---|
| SMART 读取 | HBA:直接 smartctl;RAID 卡:需 -d megaraid,N 透传 |
| 换盘操作 | HBA:卸载卷、离线换盘;RAID 卡:按卡工具流程热插拔换盘 |
| 状态核对 | HBA:/dev 与分区表;RAID 卡:卡工具的逻辑盘与物理盘状态 |
排障路径差异
- HBA 上的掉盘:先在 dmesg 里找 ata/scsi 报错,再看线缆与背板
- RAID 卡上的掉盘:先在卡工具里看物理盘状态与事件日志,再看系统侧
- SMART 读取失败:确认是否需要透传参数,别急着判定盘不支持
- 定位灯:RAID 卡有专用定位命令,HBA 环境要借助背板的 SES 功能
同一块卡刷不同固件可切换 IR 与 IT 模式:排障前先确认当前模式,模式不同时命令、盘可见性与日志含义都不一样。