1. RAID技术基础:从磁盘阵列到数据安全
在开始联想服务器上的Ubuntu安装与RAID配置之前,我们需要先理解RAID技术的核心概念。RAID(Redundant Array of Independent Disks)即独立磁盘冗余阵列,是一种将多个物理磁盘组合成一个逻辑单元的技术方案。这种技术最早由加州大学伯克利分校的研究人员在1987年提出,目的是通过并行I/O提高性能,同时利用数据冗余增强可靠性。
1.1 RAID级别详解与选型指南
RAID 0采用条带化(striping)技术,将数据均匀分布在所有磁盘上。例如,当我们写入一个100MB的文件到由4块磁盘组成的RAID 0阵列时,每个磁盘只需存储25MB数据。这种并行读写带来的性能提升非常显著,特别是在处理大型连续文件时。但RAID 0没有任何冗余机制,任何一块磁盘故障都会导致整个阵列数据丢失。因此它最适合需要极致性能但对数据安全性要求不高的场景,比如视频编辑的临时工作区。
RAID 1则采用镜像(mirroring)技术,所有数据都会被完整复制到每块磁盘上。在2块磁盘的RAID 1配置中,实际可用容量只有单块磁盘的大小。这种配置提供了极高的数据安全性——即使一块磁盘完全损坏,系统仍可继续运行。RAID 1的读取性能有所提升(可从多块磁盘并行读取),但写入性能会略有下降(需要写入所有副本)。它非常适合存储关键系统文件或数据库事务日志。
RAID 5结合了条带化与分布式奇偶校验。它需要至少3块磁盘,可用容量为(N-1)×单盘容量。奇偶校验信息被均匀分布在所有磁盘上,这样任何一块磁盘故障时,系统仍可通过剩余磁盘上的数据和奇偶校验信息重建丢失的内容。RAID 5在性能与安全性之间取得了很好的平衡,特别适合存储中等重要性的数据。但需要注意的是,当磁盘容量较大时(如超过2TB),重建过程可能需要数小时甚至数天,期间如果再发生磁盘故障将导致数据永久丢失。
RAID 10(也称为RAID 1+0)先做镜像再做条带化,需要至少4块磁盘。它将磁盘两两配对做镜像(RAID 1),然后在这些镜像对上做条带化(RAID 0)。这种配置既能提供与RAID 0相当的读写性能,又能像RAID 1那样允许部分磁盘故障(每组镜像中最多坏一块)。RAID 10的可用容量为总磁盘数的一半,虽然成本较高,但非常适合对性能和可靠性都有极高要求的应用,如金融交易系统或高负载数据库。
实际选型建议:对于联想服务器的Ubuntu系统安装,如果预算允许,推荐采用RAID 10配置系统盘,数据盘则根据应用需求选择RAID 5或RAID 1。单盘容量建议不超过2TB以避免重建时间过长。
1.2 硬件RAID vs 软件RAID
联想服务器通常配备硬件RAID卡(如LSI MegaRAID系列),这种方案的优势在于:
- 完全独立于操作系统,配置界面统一
- 具有专用处理器和缓存,性能影响小
- 支持缓存电池保护,意外断电不会丢失数据
- 提供高级功能如热备盘、在线扩容等
而软件RAID(如Linux的mdadm)则依赖主机CPU处理RAID运算,其特点是:
- 成本低,不需要额外硬件
- 配置灵活,可随时调整阵列参数
- 与系统深度集成,便于监控和管理
- 性能受主机负载影响较大
对于生产环境的联想服务器,强烈建议使用硬件RAID方案。这不仅能够减轻CPU负担,还能获得更稳定的性能和更完善的管理功能。特别是当服务器需要运行关键业务时,硬件RA卡提供的缓存保护机制可以避免因意外断电导致的数据不一致问题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 联想服务器RAID配置实战
2.1 进入RAID配置界面
联想服务器的RAID配置通常在开机自检(POST)阶段进行。具体步骤如下:
-
开机后注意观察屏幕提示,当出现"Press <Ctrl+H> for WebBIOS"或类似信息时(不同型号快捷键可能不同,常见的有Ctrl+H、Ctrl+R、F10等),立即按下相应组合键。
-
如果错过提示窗口,可以尝试以下方法:
- 重启服务器并持续按相应快捷键
- 在BIOS中查找"Boot Mode"设置,确保为"Legacy"模式(某些新机型UEFI模式下快捷键可能不同)
- 检查服务器文档确认具体型号的进入方式
-
成功进入WebBIOS界面后,首先查看物理磁盘状态。确保所有磁盘都被正确识别,没有"Foreign"或"Unconfigured Bad"等异常状态。联想服务器常用的磁盘指示灯状态:
- 蓝色常亮:磁盘正常在线
- 蓝色闪烁:磁盘活动
- 黄色常亮:磁盘预测故障
- 黄色闪烁:磁盘重建中
- 红色常亮:磁盘故障
2.2 创建RAID阵列
以配置RAID 5为例,详细步骤如下:
-
在WebBIOS主界面选择"Configuration Wizard" → "New Configuration"
-
选择"Manual Configuration"进入手动配置模式。系统会显示所有可用的物理磁盘。
-
按住Ctrl键选择要加入阵列的磁盘(至少3块),然后点击"Add to Array"。此时可以在右侧看到创建的磁盘组(Disk Group)。
-
点击"Accept DG"确认磁盘组,然后点击"Next"进入阵列配置页面。
-
关键参数设置:
- RAID Level:选择RAID 5
- Strip Size:条带大小,通常选择256KB或512KB(较大文件选大条带,小文件选小条带)
- Read Policy:建议"Always Read Ahead"(预读)
- Write Policy:生产环境选择"Write Through with BBU",有电池保护时可选"Write Back"
- IO Policy:选择"Direct IO"(直接IO)
- Drive Cache:设为"Disabled"以避免缓存不一致
- Initialize:选择"Fast Init"(快速初始化)
-
点击"Accept"确认配置,系统会提示保存。此时建议为阵列设置一个有意义的名称(如"System_RAID5")。
-
最后选择"Home"返回主界面,在"Virtual Drives"中应能看到新建的虚拟磁盘。
特别注意:某些联想服务器型号(如SR650)在创建RAID后需要手动设置启动项。在BIOS的"Boot Manager"中,确保将刚创建的虚拟磁盘设为第一启动设备。
2.3 高级配置技巧
-
热备盘(Hot Spare)配置:
- 选择未使用的磁盘,右键点击"Assign as Global Hot Spare"
- 建议为每5-8块数据磁盘配置一块热备盘
- 全局热备盘可以为所有阵列提供保护,专用热备盘则只保护指定阵列
-
阵列监控设置:
- 在"Management"菜单中配置SMTP报警
- 设置磁盘预测故障阈值(通常为媒体错误计数>5)
- 启用自动重建功能
-
性能优化:
- 对于SSD阵列,将Strip Size设为128KB或更小
- 数据库应用建议关闭Read Ahead
- 视频处理应用可启用Drive Cache
-
常见问题处理:
- 如果看到"Foreign Configuration"提示,表示检测到之前配置的RAID信息
- 确认是否需要保留原有数据
- 如需清除,选择"Foreign Config" → "Clear"
- 磁盘显示为"Unconfigured Bad"时,尝试重新插拔或更换背板插槽
- 如果看到"Foreign Configuration"提示,表示检测到之前配置的RAID信息
3. Ubuntu系统安装详解
3.1 制作启动盘与引导设置
-
下载Ubuntu Server LTS镜像:
- 推荐22.04或24.04 LTS版本
- 从官网或国内镜像站(如阿里云镜像)下载
- 校验SHA256确保文件完整
-
制作启动U盘:
bash复制# Linux下使用dd命令 sudo dd if=ubuntu-22.04.4-live-server-amd64.iso of=/dev/sdX bs=4M status=progress && sync # Windows推荐使用Rufus工具,选择"DD模式"写入 -
服务器引导设置:
- 插入U盘后重启服务器
- 按F12进入启动菜单
- 选择UEFI: [你的U盘名称] 或 Legacy: [U盘名称]
- 如果无法识别U盘,检查BIOS中的"Secure Boot"状态(建议禁用)
3.2 安装过程中的关键步骤
-
语言和键盘布局选择:
- 建议选择English(避免后续终端字符问题)
- 键盘布局根据实际选择(通常US或Chinese)
-
网络配置:
- 建议手动设置静态IP(生产环境重要)
- 记录MAC地址与端口的对应关系(联想服务器通常有4个以上网口)
-
存储配置:
- 选择"Custom storage layout"
- 应该能看到之前创建的RAID虚拟磁盘(如/dev/sda)
- 分区方案建议:
code复制/boot 1G ext4 (必须单独分区) / 50G ext4 (系统根目录) /var 20G ext4 (日志和可变数据) /home 剩余空间 ext4 (用户数据) swap 内存大小的1-2倍 (休眠需要,服务器通常不需要)
-
用户设置:
- 设置root密码(生产环境必须)
- 创建普通用户并加入sudo组
- 禁用SSH密码登录(后续配置密钥认证)
-
软件选择:
- 必选:OpenSSH server
- 可选:Docker(如需容器支持)
- 避免安装桌面环境(服务器不需要GUI)
3.3 安装后必须的配置
-
更新系统并安装必要工具:
bash复制sudo apt update && sudo apt upgrade -y sudo apt install -y htop iotop tmux lshw smartctl mdadm -
配置RAID监控:
- 安装MegaCLI工具(联想官网提供):
bash复制wget https://download.lenovo.com/servers/mig/utilities/8-07-14_MegaCLI.zip unzip 8-07-14_MegaCLI.zip sudo dpkg -i Linux/MegaCli-8.07.14-1.noarch.rpm - 创建监控脚本:
bash复制#!/bin/bash STATUS=$(sudo /opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aAll | grep "State") if [[ $STATUS != *"Optimal"* ]]; then echo "RAID状态异常: $STATUS" | mail -s "RAID告警" admin@example.com fi - 添加到cron定时任务:
bash复制(crontab -l 2>/dev/null; echo "0 * * * * /path/to/raid_monitor.sh") | crontab -
- 安装MegaCLI工具(联想官网提供):
-
性能调优:
- 调整I/O调度器(RAID卡下建议使用deadline):
bash复制echo 'ACTION=="add|change", KERNEL=="sd*[!0-9]", ATTR{queue/scheduler}="deadline"' | sudo tee /etc/udev/rules.d/60-ioscheduler.rules - 优化文件系统挂载参数(/etc/fstab):
code复制UUID=xxx / ext4 defaults,noatime,nodiratime,errors=remount-ro 0 1
- 调整I/O调度器(RAID卡下建议使用deadline):
4. 常见问题与深度排错
4.1 安装阶段典型问题
-
无法识别RAID虚拟磁盘:
- 检查是否启用了RAID模式(某些联想服务器需要在BIOS中单独设置)
- 尝试在安装界面按F6加载RAID驱动
- 对于较新机型,可能需要下载并注入驱动:
bash复制# 将驱动放入U盘根目录的firmware文件夹 mkdir /cdrom/firmware cp mpt3sas-xx.ko /cdrom/firmware/
-
分区失败报错:
- "Unable to install grub to /dev/sda":
- 尝试在安装前清除磁盘:
sudo sgdisk -Z /dev/sda - 检查BIOS启动模式(UEFI/Legacy)与分区表类型(GPT/MBR)是否匹配
- 尝试在安装前清除磁盘:
- "No root file system defined":
- 确保为/分区设置了挂载点
- 检查文件系统类型是否为ext4
- "Unable to install grub to /dev/sda":
-
安装后无法启动:
- GRUB rescue> 提示:
- 使用LiveCD启动,chroot修复:
bash复制sudo mount /dev/sda2 /mnt sudo mount /dev/sda1 /mnt/boot sudo chroot /mnt grub-install /dev/sda update-grub
- 使用LiveCD启动,chroot修复:
- 卡在"Started User Manager for UID 121":
- 可能是显卡驱动问题,尝试添加内核参数
nomodeset
- 可能是显卡驱动问题,尝试添加内核参数
- GRUB rescue> 提示:
4.2 RAID相关故障处理
-
磁盘故障替换流程:
- 确认故障磁盘位置(通过LED灯或MegaCLI):
bash复制sudo /opt/MegaRAID/MegaCli/MegaCli64 -PDList -aAll | grep -E "Slot|Firmware state" - 物理更换磁盘(联想服务器支持热插拔):
- 按下磁盘托架释放按钮
- 等待30秒让磁盘完全停止
- 拉出托架更换新磁盘
- 标记新磁盘为热备或加入阵列:
bash复制sudo /opt/MegaRAID/MegaCli/MegaCli64 -PDMakeGood -PhysDrv[32:5] -a0 sudo /opt/MegaRAID/MegaCli/MegaCli64 -PdReplaceMissing -Array1 -PhysDrv[32:5] -a0 sudo /opt/MegaRAID/MegaCli/MegaCli64 -PDRebuild -Start -PhysDrv[32:5] -a0
- 确认故障磁盘位置(通过LED灯或MegaCLI):
-
性能下降排查:
- 检查磁盘SMART状态:
bash复制sudo smartctl -a /dev/sdX - 查看RAID卡缓存策略:
bash复制sudo /opt/MegaRAID/MegaCli/MegaCli64 -LDGetProp -Cache -LAll -aAll - 监控磁盘延迟:
bash复制sudo iostat -x 1
- 检查磁盘SMART状态:
-
数据恢复场景:
- 当RAID卡故障需要更换时:
- 记录原RAID配置参数(条带大小、磁盘顺序等)
- 更换同型号RAID卡后导入原配置
- 或使用
MegaCli -CfgForeign -Import -a0导入外部配置
- 软件层面数据恢复:
bash复制sudo mdadm --assemble --scan # 尝试重组软件RAID sudo fsck /dev/md0 # 修复文件系统
- 当RAID卡故障需要更换时:
4.3 系统优化与维护
-
定期维护任务:
- 每月检查磁盘坏块:
bash复制sudo badblocks -sv /dev/sdX - 每季度更新RAID卡固件:
- 从联想官网下载对应型号的固件包
- 通过MegaCLI刷写:
bash复制sudo /opt/MegaRAID/MegaCli/MegaCli64 -AdpFwFlash -f firmware.rom -a0
- 每月检查磁盘坏块:
-
性能监控工具:
- 综合监控:
bash复制sudo apt install -y nmon nmon - RAID特定监控:
bash复制watch -n 1 "sudo /opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LAll -aAll | grep -E 'State|Strip'"
- 综合监控:
-
备份策略实施:
- 系统配置备份:
bash复制sudo tar czvf /backup/system_config_$(date +%F).tgz /etc /var/lib/dpkg - 关键数据备份(结合RAID级别):
- RAID 0:必须实施完整备份方案
- RAID 1/5/10:仍需定期异地备份
- 推荐使用BorgBackup或Restic进行增量备份
- 系统配置备份:
在实际运维中,我发现联想服务器的磁盘托架编号与系统识有时存在差异。一个实用的技巧是:在服务器前面板贴上物理标签,记录每个槽位对应的操作系统设备名(如sda、sdb等)。这在进行磁盘更换时可以节省大量排查时间。
对于生产环境,建议每季度进行一次完整的灾难恢复演练。包括模拟磁盘故障、RAID卡更换、系统恢复等场景。这不仅能验证备份的有效性,也能让运维团队熟悉应急流程。我在多个项目中的经验表明,事先演练过的团队在实际故障中的平均恢复时间(MTTR)能缩短60%以上。
