最近在给一台联想SR550 7X04装openEuler-24.03,折腾了一套“RAID1引导 + RAID5底层 + LVM”的组合拳。这套方案的思路并不复杂,但要把阵列卡配置、系统安装、LVM布局串起来一次做对,中间还是有不少坑。如果你也正准备给SR550这类双路机架服务器装国产化系统,或者手头正好有台戴尔R740、浪潮NF5280M5想跑openEuler,这篇文章应该能帮你省掉不少试错时间。
先说清楚这套组合解决了什么问题。SR550 7X04作为联想ThinkSystem家族里的主力机型,磁盘位多、硬盘种类杂,既能装SATA/SAS盘也能上NVMe。很多人拿到手直接全部盘做一个RAID5,系统也塞进去,看起来省事,但一旦盘阵扩容、单盘故障重建,系统很容易跟着遭殃;还有人嫌RAID1浪费容量,结果引导盘坏了只能重装系统。我的选择是把系统引导和业务数据彻底分开:两个小容量盘组RAID1专门扛系统,剩下的大容量盘组RAID5承载数据,再通过LVM把RAID5卷切出若干逻辑卷,方便以后动态调整。这套结构对数据库、虚拟化宿主机、文件服务器都很通用,尤其是那种“系统要稳、数据要大、以后要扩”的场景。
下面我把整个部署过程拆成几个阶段讲,包括我踩过的坑、为什么这样分区、以及每一步的命令和界面操作,希望能帮你一次装到位。
1. 双卷组阵列怎么分盘?先想清楚“引导+数据”的边界
1.1 为什么引导盘不跟数据盘混在一起
很多人装服务器系统时习惯把操作系统直接装到整个RAID卷上。比如8块盘全部做成RAID5,然后安装器里分一个/boot、一个/,完事。这个做法不是说不行,而是有两个隐患。第一,RAID5卷在做扩容、迁移或者某个盘掉线重建的时候,控制器和驱动的压力会突然变大,这时候万一掉电或者出现逻辑错误,系统分区首当其冲。第二,RAID5卷的空间非常大,而系统本身占用空间很小,把几百GB甚至几TB的空间划给根分区纯属浪费,如果不做LVM或者不细分,后续想调整空间非常痛苦。
把引导放在RAID1上,逻辑就清晰多了:操作系统、引导记录、/boot这类“启动链路”相关的数据,用两块小盘镜像,坏一块盘系统照样起,不会因为单盘数据丢失导致整个服务器失联。数据盘则单独组RAID5,故障盘换掉后重建也只影响数据卷,跟系统引导互不干扰。这个“把系统的命根子和数据仓库物理隔离”的思路,是我认为比纯RAID1或纯RAID5更实用的原因。
1.2 容量账:5块盘怎么分配最稳妥
以SR550常见的盘位配置来说,2.5寸机型通常有8个盘位,3.5寸机型有4到8个盘位。假设你有5块同容量硬盘,比较稳妥的做法是:
- 拿2块盘做RAID1,容量等于单块盘的容量,专门给系统、日志、临时文件用。
- 剩下3块盘做RAID5,可用容量是2块盘的容量,专门放业务数据。
- 如果盘位更多,比如8盘位,还可以考虑把RAID5卷再做出一块全局热备盘,或者干脆分两组RAID5。
- 如果数据量极大且对随机写性能要求很高,可以考虑RAID10,但盘的成本会翻倍,SR550如果只有4块盘,我更推荐RAID5把容量利用率拉起来。
容量计算这里可以给个实例。假设5块2.4TB SAS盘,RAID1卷可用约2.4TB,RAID5卷可用约7.2TB(3盘×2.4TB,扣除校验盘)。系统盘分个200GB给根分区、32GB给swap、剩余做/var和/opt都绰绰有余;数据卷用LVM管理,想扩容随时加PV或扩LV。如果换成8盘位,可以做成2块盘RAID1 + 4块盘RAID5 + 2块盘热备,或者2块盘RAID1 + 5块盘RAID6 + 1块热备,完全取决于你对数据安全等级的要求。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. SR550 7X04的BIOS与RAID卡准备:别让安装器卡在“找不到磁盘”
2.1 开机进的是什么界面,按什么键
联想SR550 7X04开机自检时,和普通台式机不太一样,它默认走的是UEFI启动流程。看到ThinkSystem的Logo后,需要按F1进入UEFI Setup界面(有的型号是F2或者F12,建议看屏幕提示)。在这个界面里主要确认两件事:
- 启动方式是不是UEFI模式。现在openEuler-24.03对UEFI支持已经很成熟,开机的时候会多出一个EFI System Partition分区来存放引导项,如果你之前的服务器是Legacy模式,建议统一改成UEFI,避免后面出现GPT分区表引导不了的问题。
- SATA/RAID模式是否设置正确。如果你的SR550用的是板载SATA控制器(AHCI模式),不经过独立RAID卡,那开机会直接识别到单块硬盘;但如果你插了独立RAID卡(很多SR550标配ThinkSystem RAID 530-8i或5350-8i),磁盘要由RAID卡接管,而不是让主板SATA控制器去认盘,这两者需要区分清楚。
2.2 启动模式确认与阵列卡固件版本
在UEFI Setup的“Storage”或“RAID”相关菜单里,能看到RAID卡的型号和固件版本。我第一次装的时候没注意固件版本,结果发现安装器能识别到卡,但看不到创建的虚拟磁盘。后来才意识到是RAID卡固件太老,对Linux内核的枚举支持有点问题,升级固件之后一切正常。所以准备工作里最好先去联想官网查一下SR550 7X04对应RAID卡的最新固件,有更新就刷一下,别等到系统装一半再返工。
另外注意一点:如果你这台机器之前装过Windows Server或VMware ESXi,阵列卡里可能已经存在旧的虚拟磁盘配置。这时候新装openEuler之前必须把原有配置清掉,不然安装器看到的是残留的VD信息,分区时容易误操作。
2.3 外插卡与板载SATA的识别差异
SR550的板载SATA控制器和独立RAID卡在openEuler安装器里显示的设备名不一样。板载的一般会显示为类似“ATA”设备,独立RAID卡则会显示为“LSI Logic / Symbios Logic”之类的厂商名。如果你的服务器用的是CPU直通NVMe盘,那又是另一套逻辑,这里不展开。重点是想提醒:如果安装openEuler时磁盘列表为空,先确认你是不是插了独立RAID卡但没在卡上做VD,而不是怀疑ISO有问题。这个问题在论坛上非常常见,十个人里至少有两三个卡在这一步。
3. 用RAID卡创建VD:先做RAID1引导卷,再做RAID5数据卷
3.1 进入MegaRAID配置界面的完整步骤
SR550 7X04配的RAID卡大多是MegaRAID系列,开机自检阶段屏幕上会提示“Press Ctrl+H to enter WebBIOS”或者“Press Ctrl+C to enter Configuration Utility”。有的新固件改成按F12进入启动管理器再选择RAID配置选项。我的操作习惯是看到提示后立刻连续按Ctrl+H,成功率最高。
进入WebBIOS后,会显示所有物理磁盘。此时如果你是第一次配置,建议先到“Configuration Wizard”里选“New Configuration”,然后选“Manual”而不是“Reduced”模式。Manual模式能让你手动挑盘、指定RAID级别、设置热备盘,Reduced模式虽然快,但很多细节不让你改。
3.2 创建RAID1引导卷
在配置界面里,我一般先把两块打算做系统的硬盘勾上,然后选RAID1。这里有三个关键参数需要手动设置一下:
- Array Size不需要手动填,系统会根据磁盘容量自动算出RAID1可用空间。如果你只想给系统分一部分空间,可以在这里手动设置虚拟磁盘大小,但我建议直接把整块RAID1卷全部分给系统,以后别再折腾系统盘空间。
- Initialization选择“Fast Initialization”还是“Full Initialization”?Fast会立刻把VD状态变成Ready,后台慢慢初始化,但RAID1在初始化没完成之前性能会受影响。Full初始化耗时长,但更稳。如果机器不急着上线,我建议Full。
- Stripe Size对RAID1来说影响相对小,默认64KB即可。
创建完成后,可以看到VD0就是那块RAID1卷。给这个VD起个名字,比如“VD_System”,方便以后识别。
3.3 创建RAID5数据卷并设置热备盘
回到Configuration Wizard,继续用剩余磁盘创建第二个VD。RAID5最少需要3块盘,容量=磁盘数量减去1。这里有个细节要注意:RAID5的Stripe Size建议设置成256KB或更高,因为数据卷通常是连续大文件读写为主,较大的条带能提升顺序IO性能。如果是数据库的redo log这类随机小IO场景,反而可以用64KB,这个可以按业务调。
Write Policy建议选“Write Back”。Write Back模式性能好,但因为数据先在缓存里,存在掉电丢数据的可能。如果服务器配了RAID卡的BBU电池或Flash Cache模块,选Write Back是安全的;如果没有电池保护,建议老老实实用Write Through。看到网上有人问“为什么RAID5写入速度这么慢”,八成就是Write Policy被默认设成了Write Through。
创建完RAID5之后,如果磁盘还有剩余,我会再选一块做Global Hot Spare(全局热备盘)。这样无论是RAID1还是RAID5里的一块盘挂了,热备盘都会自动顶上重建,不用你半夜爬起来换盘。
3.4 记录VD编号和启动顺序
两个VD创建好后,到Virtual Drive Management里看一下总览,确认VD0是RAID1、VD1是RAID5。然后进UEFI Setup,把启动顺序调整成从RAID1卷(VD0)启动。有些机器如果在BIOS里设成从RAID控制器启动,实际上会按照VD0优先的顺序来找引导,只要VD0是RAID1就对了。这一步别偷懒,装完系统想再改启动顺序比较麻烦。
4. openEuler-24.03安装遇到RAID驱动坑:从“看不到盘”到“正常安装”
4.1 制作openEuler-24.03安装U盘
openEuler-24.03的ISO可以在官网下载,x86_64版本即可。制作启动盘我用的是dd命令,在Linux环境下一行搞定:
bash复制sudo dd if=/path/to/openEuler-24.03-x86_64.iso of=/dev/sdX bs=4M status=progress && sync
替换/dev/sdX为你U盘的设备名。用dd写入的U盘是raw格式,兼容性最好。如果你在Windows环境下,用Rufus写入也是可以的,但要选择“DD镜像”模式而不是“ISO镜像”模式,因为openEuler的ISO用了较新的isolinux引导结构,普通UEFI写入方式有时会起不来。
4.2 安装器识别不到阵列的排查链路
把U盘插到SR550上,开机选U盘启动,进入openEuler安装界面。正常情况下安装器会直接识别出/dev/sda(RAID1卷)和/dev/sdb(RAID5卷)。如果识别不到,不要慌,按照下面的链路排查:
- 确认RAID卡里确实创建了VD,并且VD状态是Ready。有的RAID卡创建完VD后没做初始化,需要等一段时间才能被系统识别。
- 在安装界面按Ctrl+Alt+F2切到shell,运行:
bash复制lspci | grep -i raid
ls /dev/sd*
如果lspci能看到RAID卡,但/dev下没有磁盘设备,说明内核没有加载对应驱动。SR550配的MegaRAID卡一般用megaraid_sas驱动模块,openEuler-24.03的内核默认是带这个模块的,所以多数情况不会出问题。如果是比较冷门的卡或者新固件,可以用modprobe手动加载:
bash复制modprobe megaraid_sas
加载完了再用ls /dev/sd*确认。如果还是不行,那基本就是驱动版本跟阵列卡固件不匹配,需要走驱动补丁注入流程。
- 还有一种情况是安装器能看到/dev/sda和/dev/sdb但打开分区软件时却提示“没有可用设备”,这通常是因为磁盘上残留了旧分区表或LVM元数据导致安装器报错。解决办法是先用parted命令清干净磁盘:
bash复制parted /dev/sda mklabel gpt
parted /dev/sdb mklabel gpt
4.3 手动加载megaraid_sas模块与驱动补丁注入
关于“官方ISO缺RAID驱动”这个问题,我想多说两句。很多讨论具体机器型号装ESXi或者Linux的帖子,都在抱怨官方ISO缺驱动,比如戴尔R740装ESXi、浪潮NF5280M5装某系统识别不了RAID。实际上openEuler-24.03的内核已经包含绝大多数主流RAID卡驱动,尤其联想SR550原厂RAID卡(530-8i/5350-8i)用的都是LSI芯片,驱动兼容性没什么大问题。但如果你遇到确实加载不了的场景,可以准备一个驱动盘镜像。操作思路是:
- 在能联网的机器上下载对应RAID卡的openEuler驱动RPM包。
- 把RPM解包,提取包含驱动模块的目录,用
dracut工具制作一个包含驱动的initramfs镜像。 - 安装启动时,在GRUB菜单里按下e,在内核命令行参数中追加
inst.dd指定驱动盘位置,或者直接替换initramfs。
这个方法比较进阶,我第一次遇到新RAID卡时试过一次,过程比预想中麻烦,但结果很顺利。如果你只是给SR550 7X04装机,大概率用不上,不过知道有这条路能走,心里会踏实很多。
5. LVM在RAID5之上的布局:手动分区、创建PV/VG/LV
5.1 安装器手动分区要点
进入openEuler安装器的“安装目标”界面,选“自定义分区”。此时应该能看到两块虚拟磁盘:
plaintext复制/dev/sda <-- RAID1卷,约2.4TB
/dev/sdb <-- RAID5卷,约7.2TB
分区的基本策略是:
-
/dev/sda(RAID1):
如果UEFI引导,创建一个500MB的/boot/efi,格式为EFI System Partition;再创建一个1GB的/boot,格式为ext4或xfs。剩下的空间不急着分,可以留给系统目录,我通常把根分区/放在/dev/sda上,因为系统稳定优先,根分区不跟数据抢IO。但这里有个取舍问题:如果根分区也放在RAID1上,那RAID1卷的容量利用率会更高,而RAID5卷完全留给数据。如果你的业务数据占大头,推荐把根分区和/var都放在RAID1上,让整个系统盘自成一个整体;如果你的机器内存小、swap需要很大,根分区可以小一点,把更多空间留给/var/log和/tmp。
-
/dev/sdb(RAID5):
不要直接在这里创建固定的/home、/data分区,应该把它初始化为LVM物理卷(PV),再创建卷组(VG),最后在VG里划分逻辑卷(LV)。这才是“RAID5底层 + LVM”的真正含义:RAID5解决的是硬件层面的容错和性能,LVM解决的是软件层面的灵活划分。
5.2 PV/VG/LV的命名与容量分配
安装器图形界面里可以直接选“LVM”作为分区方案,但如果你想自己掌控所有细节,也可以在安装前先用shell手动建好PV/VG/LV,然后在安装器里直接挂载。我更推荐后者,因为这样所有逻辑卷名称都在自己控制之下,不会出现安装器自动生成一堆莫名其妙的名字。
手动创建的命令大致如下:
bash复制# 在RAID5卷上创建物理卷
pvcreate /dev/sdb
# 创建卷组,名字可以自定义,比如vg_data
vgcreate vg_data /dev/sdb
# 依次创建逻辑卷
lvcreate -L 64G -n lv_root vg_data
lvcreate -L 32G -n lv_swap vg_data
lvcreate -L 512G -n lv_home vg_data
lvcreate -l 100%FREE -n lv_data vg_data
这里我给的只是一个示例。lv_root如果放根分区,64GB满足大多数生产环境需求;lv_swap看内存大小,一般跟内存容量一致或者一半;lv_home看用户目录需要多大,如果是虚拟化存储或者数据库文件目录,可以建一个大的lv_data,剩下的空间全部给它。
文件系统方面,openEuler默认推荐xfs,容量大、在线扩容也方便,根分区和/home我用xfs,swap就用swap。ext4也可以用,但xfs在红帽系里的兼容性和工具链支持更好,没必要纠结。
5.3 /boot单独放RAID1上的原因
这里必须解释清楚为什么/boot不能放进LVM的LV里,或者说为什么不要把/boot和/挤在同一个RAID5上的LV里。因为GRUB引导加载器在启动早期,需要读取/boot目录下的内核文件,而GRUB对LVM的支持虽然已经有了,但多了一层逻辑卷映射,就多一分引导失败的风险。尤其SR550这种服务器配了独立RAID卡,RAID卡驱动加载、VD枚举、LVM scan、内核文件读取,每一步都依赖时序正确,任何一环出问题都可能直接卡在GRUB界面。
所以我的习惯是把/boot/efi和/boot都放在RAID1卷上,让引导链路走最简单的路径,根分区和数据分区再放LVM。这样即使后面数据卷出问题、LVM元数据损坏,系统照样能起来,你有机会慢慢修复数据卷。这个经验我在多台联想、戴尔服务器上验证过,性价比极高。
6. 装机完成后的健壮性验证与日常维护
6.1 storcli / MegaRAID离线命令验证阵列状态
系统装完后,别急着把U盘拔了重启就完事。我习惯第一时间进入系统,确认阵列状态和LVM状态都正常。openEuler-24.03的软件源里可能没有MegaCLI/storcli命令,你需要从联想或Broadcom官网下载对应工具。storcli是新一代的命令行工具,兼容MegaRAID卡,用法如下:
bash复制# 查看控制器状态
/opt/MegaRAID/storcli/storcli64 /c0 show
# 查看所有虚拟磁盘状态
/opt/MegaRAID/storcli/storcli64 /c0/vall show
# 查看物理磁盘状态
/opt/MegaRAID/storcli/storcli64 /c0/eall/sall show
重点看Virtual Drive的状态是不是“Optl”(Optimal),物理盘是不是“Onln”(Online)。如果看到“Rbld”(Rebuilding)说明有盘挂着但在重建,属于正常修复流程;如果看到“Offln”(Offline)就要当心了,说明RAID卷已经失效。RAID1引导卷如果有一块盘掉线,VD还会是Optl,但物理盘会显示“Rdy”,需要尽快换盘重建。
6.2 LVM扩容/缩容实操
LVM最大的价值就是扩容方便。比如lv_data空间不够了,如果你还有新的物理硬盘,可以直接把新盘加入卷组:
bash复制# 新盘或新RAID卷初始化为PV
pvcreate /dev/sdc
# 扩展到卷组
vgextend vg_data /dev/sdc
# 将新空间全部加到lv_data
lvextend -l 100%FREE /dev/vg_data/lv_data
# xfs文件系统在线扩容
xfs_growfs /data
注意xfs文件系统不支持缩容,所以如果你一开始把lv_data建得过大,后面想减小是没办法的,只能在创建时预留好空间,或者对不需要缩容的目录用ext4。对生产环境,我的建议是:先按实际需求把各LV建好,多余的空间建一个独立的lv_free或者干脆保留为VG的free空间,别一股脑全部塞给某个LV。这样以后哪个分区不够用了,可以从VG剩余空间里划,免去文件系统缩容的麻烦。
6.3 阵列卡告警与引导恢复提示
最后分享一个运维习惯:SR550的RAID卡可以通过管理界面配置磁盘报警,当RAID降级或磁盘离线时,服务器前面板的硬盘状态灯会变成琥珀色或红色闪烁。生产环境建议把RAID卡的SMTP告警也配一下,或者用storcli脚本定时巡检,把状态输出到监控系统。
万一真遇到系统引导故障,比如RAID1里一块盘坏了,开机可能会停顿在RAID卡自检阶段。这时候不要直接进系统,而是进入RAID配置界面,查看VD0的状态。如果VD0显示“Degraded”但还在,说明系统盘阵列还能工作,抓紧换掉故障盘、手动重建;如果VD0都没了,大概率是两块盘同时损坏或者控制器坏了,这种“双盘同时故障”在RAID1里虽然在概率上小,但还是会发生,所以数据盘和系统盘分开仍然能保证数据不丢,系统重装就行。
关于RAID5底层的数据卷,重建时压力会比较大,建议不要立刻高强度读写数据,让RAID卡慢慢重建完成。SR550的RAID卡支持后台重建,系统可以继续用,只是性能会有所下降。
我个人的实际体会是,这套“RAID1引导 + RAID5底层 + LVM”的组合装openEuler-24.03,一次打通之后,后续运维非常省心。尤其是LVM层带来的灵活性,在系统装完后遇到分区不够用的情况时,你就能感受到当初多花那几分钟配好VG/LV到底有多值。最后再提醒一句:在操作RAID阵列前,把数据备份好,阵列卡配置和分区表一旦搞错,恢复成本远高于重新安装的时间成本。如果你也正在折腾SR550或者类似的ThinkSystem机型,希望这篇能帮你少走点弯路。
