萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux RAID 狀態檢測全攻略:軟 RAID、硬 RAID、廠商工具與通用命令

RAID 類型識別

類型實現層識別方法管理工具
軟 RAIDOS 內核 (md)/proc/mdstat, mdadmmdadm
硬 RAIDRAID 卡固件廠商工具, dmesg, lspci廠商 CLI/GUI (StorCLI, perccli, arcconf 等)
偽 RAID (FakeRAID)主板晶片組 + 驅動dmraid, lsblkdmraid, mdadm (imsm)

軟 RAID (mdadm) 完整檢測

核心命令

# 總覽所有陣列
cat /proc/mdstat

# 詳細掃描
mdadm --detail /dev/md0
mdadm --detail --scan

# 組件設備信息
mdadm --examine /dev/sd[a-z]1

# 監控模式
mdadm --monitor --scan --daemonise

/proc/mdstat 輸出解讀

Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sda1[0] sdb1[1]
      524224 blocks super 1.2 [2/2] [UU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

md1 : active raid5 sdc1[0] sdd1[1] sde1[2]
      10485760 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

unused devices: 
  • [UU]:U=正常,_=故障/缺失
  • [3/3]:活躍設備/總設備
  • recovery/resync/check:後台操作進度

硬 RAID:廠商專用工具(最準確)

主流廠商工具對照

廠商CLI 工具安裝包/來源關鍵命令
LSI/Broadcom/Avago (MegaRAID)StorCLI / MegaCLI官網、EPel、廠商 ISOstorcli /c0 show, /c0/v0 show
Dell PERC (LSI OEM)perccliDell 官網perccli /c0 show
HPE Smart Arrayssacli / hpssacliHPE 官網、SDRssacli ctrl all show config
Adaptec (Microsemi)arcconf / maxViewAdaptec 官網arcconf getconfig 1
Arecacli32/cli64Areca 官網cli64 rsf info
HighPointhptraidconfHighPoint 官網hptraidconf -q

StorCLI 實戰範例 (最常見)

# 控制器總覽
storcli /c0 show

# 虛擬磁盤(陣列)詳情
storcli /c0/vall show

# 物理磁盤詳情
storcli /c0/eall/sall show

# 重建進度
storcli /c0/v0 show rebuild

# 靜默告警
storcli /c0 set alarm=off

ssacli (HPE) 實戰

ssacli ctrl all show status
ssacli ctrl slot=0 ld all show
ssacli ctrl slot=0 pd all show status

無廠商工具時的通用檢測

1. 內核啟動日誌

dmesg -T | grep -i -e raid -e scsi -e megaraid -e mpt -e aacraid -e hpsa -e smartpqi

2. SCSI 子系統視圖

cat /proc/scsi/scsi
# 輸出包含 Vendor, Model, Rev, Type (RAID/磁盤)

3. lspci 識別 RAID 控制器

lspci -nn | grep -i raid
# 範例輸出:
# 03:00.0 RAID bus controller [0104]: Broadcom / LSI MegaRAID SAS-3 3108 [1000:005d]

4. lsblk 查看塊設備拓撲

lsblk -o +FSTYPE,LABEL,UUID,PARTTYPE,PARTUUID
# RAID 設備通常顯示為單一大塊設備,無分區或有分區

5. smartctl 檢測物理磁盤健康(直通模式)

# LSI MegaRAID 直通
smartctl -a -d megaraid,0 /dev/sda   # 物理磁盤 0
smartctl -a -d megaraid,1 /dev/sda   # 物理磁盤 1

# HPE Smart Array
smartctl -a -d cciss,0 /dev/sg0

# 通用 (無 RAID 卡或直通模式)
smartctl -a /dev/sda

主流服務器廠商整合管理

廠商帶外管理帶內工具備註
DelliDRACOpenManage Server Administrator (OMSA)perccli 整合在 OMSA
HPEiLOSmart Storage Administrator (SSA)ssacli 為 CLI
LenovoXClarity ControllerXClarity EssentialsOneCLI 包含 storcli
SupermicroIPMI/BMCSMCIPMITool, SUM常用標準 LSI 卡
華為iBMCFusionDirector支援標準 CLI
浪潮BMCISM支援標準 CLI

雲環境/虛擬機特殊情況

  • AWS EC2:EBS 卷本身有冗餘,無傳統 RAID,用 lsblk 看卷掛載
  • Azure VM:類似,托管磁盤三副本
  • VMware VM:虛擬磁盤由宿主機 RAID 保護,客體內無 RAID 卡
  • 裸金屬雲:可能直通 RAID 卡,按物理機方式檢測

自動化巡檢腳本範例

#!/bin/bash
# check_raid.sh - 每日巡檢

LOG="/var/log/raid_check.log"
echo "=== $(date) ===" >> $LOG

# 1. 軟 RAID
if [ -f /proc/mdstat ]; then
    if grep -q '_' /proc/mdstat; then
        echo "[ALERT] 軟 RAID 降級!" | tee -a $LOG
        cat /proc/mdstat >> $LOG
    else
        echo "[OK] 軟 RAID 正常" >> $LOG
    fi
fi

# 2. LSI MegaRAID (storcli)
if command -v storcli &>/dev/null; then
    if storcli /c0/vall show | grep -q -i 'degrad\|offlin'; then
        echo "[ALERT] 硬 RAID 降級!" | tee -a $LOG
        storcli /c0/vall show >> $LOG
    fi
fi

# 3. HPE (ssacli)
if command -v ssacli &>/dev/null; then
    if ssacli ctrl all show status | grep -q -v OK; then
        echo "[ALERT] HPE RAID 異常!" | tee -a $LOG
    fi
fi

# 4. 物理磁盤 SMART (需根據 RAID 卡調整 -d 參數)
for disk in /dev/sd[a-z]; do
    if smartctl -H $disk 2>/dev/null | grep -q "PASSED"; then
        : # OK
    else
        echo "[WARN] $disk SMART 異常" >> $LOG
    fi
done

總結建議

  1. 優先使用廠商官方工具,信息最全、最準(固件版本、電池狀態、重建進度、PD 風扇/溫度)
  2. 軟 RAID 用 mdadm,/proc/mdstat 為快速總覽入口
  3. 納入監控體系:Prometheus node_exporter + megacli_exporter / smartctl_exporter + Grafana 告警
  4. 定期驗證備份恢復,RAID 不是備份
  5. 記錄陣列拓撲圖:槽位、序列號、RAID 級別、熱備盤位置
copyright © 萬盛學電腦網 all rights reserved