Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

板載 SAS RAID 在 RedHat Linux 下管理軟件無法識別的驅動更新解決方案

編輯:Linux 教學

問題現象

  • LSI MegaRAID Storage Manager (MSM) 等管理軟件啟動後無法顯示板載 SAS RAID 控制器信息
  • 設備管理中缺少物理磁盤、虛擬磁盤、BBU 等狀態數據
  • CLI 工具 storcli/megacli 返回 "No controllers found"

根因分析

導航光盤/ISO 自帶的板載 SAS RAID 驅動版本過低(通常為 2.x/3.x 早期版本),與管理軟件要求的固件接口版本不匹配,導致用戶空間工具無法通過 /dev/megaraid_sas_ioctl_node 與內核驅動正確通信。

解決方案:驅動就地升級

前置條件

  • 已安裝 LSI 管理軟件(生成 /opt/LSILogic/ 或 /usr/local/LSILogic/ 目錄)
  • 確認內核版本:uname -r (2.4 系列或 2.6 系列)
  • 安裝內核開發包:kernel-devel-$(uname -r) kernel-headers-$(uname -r)

具體操作步驟 (以 RHEL 5/6, 2.6 內核為例)

# 1. 進入驅動源碼 RPM 目錄
cd /opt/LSILogic/MegaRAID/MegaCLI/LinuxRPM/Kernel_2.6/
# 或
cd /usr/local/LSILogic/Mystorage/LinuxRPM/Kernel2.6/

# 2. 安裝源碼 RPM(生成 SPEC 文件與源碼樹)
rpm -ivh mptlinux-3.02.68-1.src.rpm
# 注:版本號隨發布更新,以實際文件為準

# 3. 進入 SPEC 目錄構建二進制 RPM
cd /usr/src/redhat/SPECS/
rpmbuild -bb mptlinux.spec

# 4. 安裝構建好的內核模塊 RPM
cd /usr/src/redhat/RPMS/i386/  # 或 x86_64/
rpm -ivh mptlinux-3.02.68-1.x86_64.rpm

# 5. 重啟系統生效
reboot

RHEL 4/2.4 內核適配版本

cd /opt/LSILogic/.../Kernel2.4/
rpm -ivh mptlinux-2.06.38-1.src.rpm
cd /usr/src/redhat/SPECS/
rpmbuild -bb mptlinux.spec
cd /usr/src/redhat/RPMS/i386/
rpm -ivh mptlinux-2.06.38-1.i386.rpm
reboot

驗證升級結果

# 1. 查看驅動版本
cat /proc/mpt/version
# 輸出應包含:
# MPT Version: 3.02.68 (2.6 內核) 或 2.06.38 (2.4 內核)

# 2. 檢查模塊加載
lsmod | grep mpt
# mptbase, mptscsih, mptsas 等

# 3. 測試管理工具
/opt/MegaRAID/MegaCLI/storcli64 show
# 或
megacli -AdpAllInfo -aALL

# 4. 確認設備節點
ls -l /dev/megaraid_sas_ioctl_node
crw------- 1 root root 10, 251 Jan 1 00:00 /dev/megaraid_sas_ioctl_node

常見問題與規避

問題原因解決
rpmbuild 失敗:缺少 kernel-devel內核頭文件不匹配yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
升級後仍無法識別固件版本過舊更新控制器固件:storcli /c0 download file=firmware.rom
多內核共存環境模塊編釆對特定內核為每個內核版本單獨構建安裝,或使用 DKMS 自動化
SELinux 拒絕訪問設備節點上下文錯誤restorecon -v /dev/megaraid_sas_ioctl_node

現代替代方案:DKMS 自動化管理

# 1. 安裝 DKMS
yum install -y dkms

# 2. 將驅動源碼添加到 DKMS 樹
# 假設源碼解壓在 /usr/src/mptlinux-3.02.68/
dkms add -m mptlinux -v 3.02.68 -k $(uname -r)

# 3. 構建並安裝當前內核
dkms build -m mptlinux -v 3.02.68 -k $(uname -r)
dkms install -m mptlinux -v 3.02.68 -k $(uname -r)

# 4. 以後內核升級自動重構
# /etc/kernel/postinst.d/dkms 會自動觸發

硬件兼容性備註

  • 適用控制器:LSI SAS 1064/1068/1068E (LSI Logic / Dell PERC 5/i / HP P400 等)
  • 驅動模塊名演進:mptsas (舊) → megaraid_sas (新,現代內核主線)
  • RHEL 7+/內核 3.10+ 已主線化 megaraid_sas,通常無需手動編譯,僅需更新固件
Copyright © Windows教程網 All Rights Reserved