1. 项目概述:为什么今天还要折腾LSI阵列卡?
如果你最近在二手市场淘服务器配件,或者想给家里的老工作站升级存储性能,大概率会听到“LSI阵列卡”这个名字。这东西在专业圈子里,尤其是数据中心和影视后期工作室,曾经是绝对的存储性能标杆。现在虽然NVMe固态硬盘大行其道,但对于海量数据存储、低成本搭建多盘位NAS、或者给老服务器续命来说,一张几十到几百块的LSI阵列卡,依然是性价比极高的选择。它能让你把多块普通的SATA或SAS硬盘“捆绑”在一起,变成一个逻辑上的大硬盘,不仅容量翻倍,还能通过RAID技术实现数据冗余保护或者速度翻倍。
我手头这张LSI 9260-8i,就是当年的经典款,现在在二手市场依然很活跃。很多人拿到手,插上电脑,发现要么不认盘,要么进不了系统,折腾半天最后只能吃灰。这其实不怪卡,而是因为从固件模式到驱动,再到RAID配置,每一步都有“坑”。这篇教程,就是把我这些年从踩坑到熟练,从只会用官方工具到玩转命令行的心得,系统地梳理出来。无论你是想用它在TrueNAS/Unraid里做直通,还是在Windows Server下组建高性能存储池,跟着步骤走,都能让你少走至少80%的弯路。
2. 核心概念与准备工作:理解“IT模式”与“IR模式”的区别
在真正动手之前,我们必须搞清楚LSI阵列卡(现在属于Broadcom旗下)最核心的两个概念:IT模式(Initiator Target)和IR模式(Integrated RAID)。这直接决定了你拿到这张卡后,它能干什么、该怎么用。
2.1 两种模式的核心差异与应用场景
简单来说,IR模式是阵列卡的“完全体”。在这种模式下,阵列卡自己就是一个功能完整的硬件RAID控制器。它有自己的处理器(ROC芯片)和缓存(通常带电池或电容保护),所有RAID的计算、数据条带化、奇偶校验都在卡上完成。你需要在卡自带的配置界面(Ctrl+H进入的WebBIOS)里创建虚拟磁盘(VD),然后操作系统看到的就是这个已经组好RAID的“大硬盘”。它的优势是性能强、不占用主机CPU资源、配置直观。缺点是,一旦卡坏了,数据恢复相对麻烦,需要同型号或兼容的卡才能识别。
而IT模式,你可以理解为阵列卡的“直通模式”或“HBA(主机总线适配器)模式”。在这种模式下,阵列卡退化成一块纯粹的SAS/SATA扩展卡,它的作用只是把连接在其上的每一块物理硬盘,原封不动地、一个一个地“透传”给操作系统。操作系统看到的是每一块独立的物理硬盘。此时,所有的RAID功能(如果你想做的话)将由操作系统层面的软件来实现,例如Windows的存储池、Linux的mdadm、或者TrueNAS/Unraid的ZFS/阵列管理。
那么,到底该选哪种模式?
- 选IR模式,如果你:需要在Windows/Linux系统下直接使用硬件RAID,追求极致的阵列性能(尤其是写性能,因为有缓存加速),并且希望配置管理相对独立于操作系统。
- 选IT模式,如果你:计划将卡用于TrueNAS Core/Scale、Unraid、Proxmox VE(做直通)等系统。这些系统强烈推荐甚至要求使用HBA卡(IT模式)来直接管理硬盘,以便实现其高级的文件系统功能(如ZFS的纠错、快照)或灵活的存储方案。
注意:市面上流通的二手LSI卡,很多默认是IR模式。而像9207-8i这类纯HBA卡,则出厂就是IT模式且无法刷成IR。购买前一定要问清楚。
2.2 工具准备与固件/驱动下载
工欲善其事,必先利其器。玩转LSI卡,你需要准备以下工具,并强烈建议在开始前下载好。
- 一台用于操作的电脑:最好是一台带有PCIe插槽的台式机。笔记本通常无法操作。
- 一个可启动的U盘(≥1GB):用于制作DOS或Linux启动盘,进行刷写固件等底层操作。
- 所需软件包(请从Broadcom官方支持网站搜索对应型号下载,以下以LSI 9260-8i为例):
- 固件(Firmware):这是写入阵列卡芯片里的底层程序。不同模式对应不同的固件包。例如,
9200_8i_Package_P20_IR_IT_FW_BIOS_for_MSDOS_Windows这样的包就同时包含了IR和IT模式的固件。 - BIOS:用于在开机自检(POST)时显示阵列卡信息并进入配置界面(Ctrl+H)。如果不需要开机配置,可以刷掉以加快启动速度。
- 管理工具:
- MegaCLI / storcli:这是在操作系统(Windows/Linux)下管理阵列卡的神器。可以查看阵列状态、重建阵列、设置报警等。
storcli是新一代工具,更推荐。 - sas2flash / sas3flash:这是在DOS或EFI Shell下刷写固件和BIOS的命令行工具。根据卡是SAS2(如9260)还是SAS3(如9300)系列选择。
- MegaCLI / storcli:这是在操作系统(Windows/Linux)下管理阵列卡的神器。可以查看阵列状态、重建阵列、设置报警等。
- 驱动程序:用于让操作系统识别阵列卡或由它创建的虚拟磁盘。Windows可以在设备管理器里在线更新,但提前下载好更稳妥。Linux内核通常已包含驱动(
megaraid_sas)。
- 固件(Firmware):这是写入阵列卡芯片里的底层程序。不同模式对应不同的固件包。例如,
实操心得:我习惯在开始前,建立一个清晰的文件夹,把DOS启动工具、固件包、管理工具分门别类放好。比如LSI_Tools/9260-8i/Firmware/,LSI_Tools/9260-8i/StorCLI/。避免刷机时手忙脚乱找错文件。
3. 固件刷写与模式切换实战
这是新手遇到的第一道坎,也是最重要的一步。我们将以将一张LSI 9260-8i从默认的IR模式刷写成IT模式为例,演示完整过程。
3.1 制作DOS启动盘并刷写IT模式固件
为什么用DOS?因为官方提供的刷写工具(sas2flash)在DOS环境下最稳定、兼容性最好。
- 制作DOS启动U盘:使用工具如Rufus。选择你的U盘,引导类型选择“FreeDOS”,其他默认,点击开始即可。完成后,将下载好的固件包里的所有文件(特别是
sas2flash.efi或sas2flash_dos.exe,以及.rom和.bin固件文件)拷贝到U盘根目录。 - 引导至DOS环境:将U盘插入要操作阵列卡的电脑,开机进入BIOS设置启动顺序为U盘优先,保存重启。成功后会进入一个黑色的
C:\>或A:\>命令行界面。 - 备份原有固件(非常重要!):在DOS提示符下,切换到U盘盘符(比如
U:),然后输入sas2flash_dos.exe -o -sasadd 0(具体命令可能因工具版本略有不同,请参考固件包内说明)。这个命令会列出当前卡的信息,包括SAS地址。务必记录下这个SAS地址!如果刷写失败,这是救砖的关键。 - 清除原有固件:输入
sas2flash_dos.exe -o -e 6。-e 6参数表示擦除整个Flash芯片(包括固件和BIOS)。执行后会提示确认,输入y回车。这个过程很快。 - 刷入IT模式固件:输入
sas2flash_dos.exe -o -f 文件名.bin -b 文件名.rom。这里,文件名.bin是IT模式的固件文件(如IT文件夹下的mptsas2.rom),文件名.rom是BIOS文件(如果不需要BIOS可以不加-b参数)。命令执行后,会显示刷写进度。 - 验证刷写结果:刷写完成后,输入
sas2flash_dos.exe -o -listall。你应该能看到控制器型号,并且Firmware Product ID会显示为IT字样,而不是IR。同时,检查SAS地址是否与你之前记录的一致。
踩坑记录:刷写时最常见的错误是“Failed to initialize PAL”。这通常是因为你用的
sas2flash工具版本与你的卡不匹配(比如用SAS3的工具刷SAS2的卡)。务必确认工具版本。另一个坑是,有些主板UEFI BIOS下,传统的DOS启动盘可能无法工作,此时需要制作UEFI Shell的启动盘,并使用.efi格式的工具进行刷写,原理类似。
3.2 在操作系统内使用工具切换模式(进阶)
对于某些型号(如某些9211-8i),如果已经能在系统内识别,也可以尝试在操作系统内使用更安全的方式切换。例如在Linux下,可以使用megarec工具,但步骤更为复杂且有风险。对于新手,强烈推荐上述的DOS/UEFI Shell刷机法,这是最彻底、最标准的方法。
刷写完成后的直观变化:刷成IT模式后,开机自检时,阵列卡的信息显示会变得非常简短,通常只有一行SAS控制器初始化的提示,而不会出现漫长的RAID BIOS初始化过程,也无法再按Ctrl+H进入WebBIOS配置界面。因为此时它已经是一块纯粹的HBA卡了。
4. 系统安装与驱动配置
固件刷好后,接下来就是让操作系统正确识别和使用这张卡。
4.1 Windows系统下的安装与配置
- 物理连接:将阵列卡插入主板PCIe插槽(最好是x8或x16),使用SAS转SATA线(Forward Cable)或SAS线连接硬盘。开机。
- 系统识别:如果刷的是IT模式,进入Windows磁盘管理,你应该能看到所有连接的物理硬盘,就像直接接在主板上一样。如果刷的是IR模式,此时硬盘是“裸盘”,需要先配置RAID。
- 配置IR模式RAID(如需):开机自检时,看到LSI卡信息提示按
Ctrl+H(或其他指定键)进入WebBIOS配置界面。这是一个图形化界面(虽然很复古)。- 步骤:进入后,在
Configuration Wizard中选择New Configuration。 - 选择硬盘:在左边的物理硬盘列表中,勾选你想要加入阵列的硬盘,点击
Add To Array添加到右边的Drive Group。 - 创建虚拟磁盘:将
Drive GroupAdd to Span,然后点击Next。接下来是关键步骤:选择RAID级别(如RAID0, RAID1, RAID5, RAID10),设置条带大小(Stripe Size,通常256KB或1MB对性能影响较大,一般选默认或256KB),设置读写策略(Read Policy: Always Read Ahead; Write Policy: Write Back with BBU if battery is good, else Write Through)。 - 初始化:创建完成后,建议进行
Full Initialization(完全初始化),虽然耗时较长(数小时到数十小时),但能确保阵列稳定性。也可以选择Fast Initialization(快速初始化),仅需几分钟,但某些极端情况下可能不如完全初始化稳定。
- 步骤:进入后,在
- 安装驱动与管理工具:无论哪种模式,都建议安装Broadcom提供的Windows驱动和管理工具(
storcli)。驱动可以通过设备管理器自动更新,或者手动安装inf文件。storcli安装后,可以在命令行(以管理员身份运行)使用storcli /c0 show查看控制器0的信息,功能非常强大。
4.2 Linux系统下的安装与配置(以Ubuntu为例)
Linux对LSI卡的支持通常非常好。
- 驱动:对于主流内核,
megaraid_sas驱动模块已经内置。启动后,使用lspci | grep -i lsi或lspci | grep -i raid命令,应该能看到你的阵列卡信息。使用lsmod | grep megaraid检查驱动是否加载。 - 识别磁盘:使用
lsblk或fdisk -l命令,可以看到所有连接的物理硬盘(IT模式)或虚拟磁盘(IR模式)。在IT模式下,硬盘名通常是/dev/sda,/dev/sdb...;在IR模式下,虚拟磁盘通常是/dev/sda。 - 安装管理工具:从Broadcom官网下载对应Linux版本的
storcli工具包(通常是.rpm或.deb包,也有提供二进制文件)。例如对于Ubuntu(Debian系),可以下载.deb包后用sudo dpkg -i storcli_xxx.deb安装。安装后,使用sudo storcli /c0 show来管理。 - 配置软件RAID(IT模式下):如果你在IT模式下想用Linux做RAID,可以使用
mdadm工具。例如,将/dev/sdb和/dev/sdc组成RAID1:sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc。然后对/dev/md0进行分区和格式化即可。
实操心得:在Linux服务器上,我更喜欢用IT模式,然后结合ZFS或mdadm。这样数据层的控制权完全在操作系统,迁移和恢复更灵活。storcli工具在Linux下同样不可或缺,我通常会设置一个crontab定时任务,定期运行storcli /c0 /eall /sall show来检查所有物理硬盘的健康状态(SMART信息),并将输出重定向到日志文件,便于监控。
5. 高级管理与维护技巧
阵列卡不是设置好就一劳永逸的,日常的监控和维护同样重要,尤其是用于存放重要数据时。
5.1 使用StorCLI进行命令行管理
storcli是比老款MegaCLI更强大、语法更清晰的工具。以下是一些常用命令示例:
- 查看控制器信息:
storcli /c0 show - 查看所有物理硬盘:
storcli /c0 /eall /sall show - 查看虚拟磁盘:
storcli /c0 /vall show - 查看物理硬盘详细状态(包括SMART):
storcli /c0 /e32 /s0 show all(这里/e32是Enclosure 32,/s0是Slot 0,请根据实际情况替换) - 设置硬盘为JBOD模式(仅IR模式卡支持):
storcli /c0 /e32 /s0 set jbod(将某块盘设为直通,不参与RAID) - 启动阵列重建:如果RAID1/5/10中有一块盘坏了,换上新盘后,需要手动触发重建。首先找到新盘的Enclosure和Slot号,然后执行:
storcli /c0 /e32 /s1 start insert(假设新盘在/e32/s1)。 - 设置蜂鸣器报警:
storcli /c0 set alarm=on
5.2 监控、报警与故障排查
- 健康状态监控:定期检查
storcli输出的Drive Temperature和SMART警告。温度过高是硬盘故障的前兆。 - 事件日志:使用
storcli /c0 show events可以查看控制器事件日志,里面会记录硬盘掉线、重建开始/完成、电池状态变化等重要信息。 - 电池/电容学习周期:带缓存(CacheCade)的IR模式卡(如9260),其缓存电池或电容需要定期进行“学习周期”(Learn Cycle)来校准电量,确保意外断电时能将缓存中的数据安全写回硬盘。这个周期通常是每90天左右自动进行一次,期间缓存会暂时禁用(写入策略从Write Back变为Write Through),可能导致性能短暂下降。你可以用
storcli /c0 show bbustatus查看电池状态,并用storcli /c0 start bbulearn手动启动学习(建议在业务空闲时进行)。 - 常见故障排查表:
| 现象 | 可能原因 | 排查步骤 |
|---|---|---|
| 系统不认卡/硬盘 | 1. 卡未插紧或PCIe插槽故障 2. 固件损坏或模式不对 3. 线缆故障 | 1. 重新插拔卡,更换PCIe插槽 2. 尝试进入卡的BIOS(Ctrl+H),进不去则可能需重刷固件 3. 更换SAS/SATA数据线或背板 |
| RAID阵列降级(Degraded) | 1. 物理硬盘掉线或故障 2. 线缆接触不良 | 1. 使用storcli查看哪个盘状态为Frn(Foreign)或UGood(Unconfigured Good)2. 重新插拔故障硬盘的线缆 3. 替换故障硬盘并启动重建 |
| 阵列卡缓存策略失效 | 1. 电池/电容电量低或故障 2. 学习周期正在进行 | 1.storcli /c0 show bbustatus检查电池状态2. 如果电池故障,需更换,否则缓存只能工作在Write Through模式,影响写入性能 |
| 在IT模式下,系统内看不到硬盘 | 1. 硬盘未初始化(有残留RAID信息) 2. 操作系统驱动问题 | 1. 在IR模式下,进入WebBIOS,将硬盘标记为“Unconfigured Good”或使用storcli的/c0 /ex /sx set good命令清除配置2. 检查并安装正确的HBA驱动 |
5.3 性能调优建议
- 条带大小(Stripe Size):这是影响RAID性能最关键参数之一。小文件多(如虚拟机硬盘、数据库日志),选择较小的条带(如64KB、128KB);大文件顺序读写多(如视频编辑、备份仓库),选择较大的条带(如512KB、1MB)。没有绝对标准,需要根据负载测试。
- 读写策略:
- Read Policy(读策略):
Always Read Ahead(预读)对顺序读取性能提升明显,建议开启。 - Write Policy(写策略):
Write Back with BBU(回写+电池保护)能提供最高的写入性能,数据先写入缓存即返回成功。但前提是电池/电容必须健康!如果电池故障,务必切换到Write Through(直写)模式,否则断电会丢失数据。
- Read Policy(读策略):
- I/O策略(I/O Policy):通常选择
Cached(缓存)。
最后一点个人体会:LSI阵列卡,尤其是这些经典的SAS2代产品,在今天依然有强大的生命力。它的稳定性和性价比是很多消费级产品无法比拟的。玩转它的关键,不在于死记命令,而在于理解其背后的架构逻辑——IR和IT模式的区别,硬件RAID与软件RAID的取舍。把这张卡用好了,你搭建的不仅仅是一个存储系统,更是一套对数据中心级硬件原理的深刻理解。无论是组一台安静省电的家用NAS,还是搭建一台用于渲染的小型工作站,这张小小的卡都能成为你可靠的数据基石。如果在操作过程中遇到任何奇怪的问题,第一反应应该是去Broadcom官网搜索对应型号的“Release Notes”和“User Guide”,官方文档往往能提供最准确的答案。