上一篇 下一篇 分享链接 返回 返回顶部

服务器还在正常运行,RAID却可能已经降级?硬盘冗余状态这样查

发布人:Minchunlin 发布时间:2026-06-15 10:09 阅读量:479

服务器还能正常登录、网站也没有报错,并不代表 RAID 阵列一定正常。

很多 RAID 1、RAID 5 或 RAID 10 阵列在损坏一块硬盘后,系统仍然可以继续运行。真正危险的是,管理员没有及时发现阵列已经进入“降级”状态,直到第二块硬盘出现问题,业务才突然中断,甚至造成数据无法恢复。

因此,检查服务器硬盘冗余不能只看磁盘是否挂载、容量是否正常,还要确认阵列状态、成员盘状态和重建进度。

先看一个实际存储服务器案例

以一台用于企业备份和文件归档的香港存储服务器为例,配置如下:

  • CPU:Intel Xeon E5-2695 V4,18 核 36 线程

  • 内存:64GB DDR4

  • 硬盘:4×14TB 企业级 7.2K 机械硬盘

  • 阵列卡:Dell PERC H730

  • 带宽:25Mbps 直连 CN2

  • IP 与防护:5 个 IP、5G DDoS 防护

这类服务器通常会根据业务需求配置 RAID 5 或 RAID 10。

如果用于网站备份、图片归档和下载资源存储,可以考虑 RAID 5,4 块 14TB 硬盘的标称可用容量约为 42TB;如果用于企业资料库、文件同步和频繁读写业务,则更适合 RAID 10,标称可用容量约为 28TB。

无论选择哪一种 RAID,都不能只在服务器开通时检查一次。硬盘可能在运行数月后出现坏扇区、掉线、预测故障或接口异常,因此需要定期检查阵列状态。

RAID 正常、降级和故障分别是什么意思

在不同阵列卡和管理工具中,状态名称可能略有差异,但基本可以分成以下几类。

Optimal、Online、Ready:通常表示正常

如果虚拟磁盘显示为:

Optimal

成员硬盘显示为:

Online

通常说明 RAID 阵列结构完整,所有成员盘均正常参与工作。

不过,“Optimal”只代表当前阵列没有掉盘,并不等于所有硬盘完全健康。还应继续检查硬盘是否出现介质错误、预测故障和异常延迟。

Degraded:阵列已经降级

如果状态显示:

Degraded

说明阵列中至少有一块硬盘已经掉线、损坏或被移出,但 RAID 依靠剩余硬盘仍然能够提供数据。

例如:

  • RAID 1 损坏一块盘后,另一块镜像盘仍可工作;

  • RAID 5 损坏一块盘后,可通过其余硬盘和校验数据继续读取;

  • RAID 10 某个镜像组损坏一块盘后,阵列通常仍可运行。

这时服务器可能没有明显异常,但硬盘冗余已经减少。尤其是 RAID 5,如果重建完成前再损坏一块盘,整个阵列可能直接失效。

Rebuild:正在重建

更换故障盘后,阵列一般会进入:

Rebuild

这表示阵列正在把数据恢复到新硬盘中。

重建期间不要把“服务器还能用”理解为已经恢复正常。此时剩余硬盘负载较高,业务读写也可能变慢,应持续监控重建百分比、磁盘错误和系统 I/O。

Failed、Offline:阵列或硬盘已经离线

如果虚拟磁盘显示 Failed,或者多块成员盘显示 OfflineMissing,说明情况已经比较严重。

此时不要随意执行初始化、清除阵列配置、强制上线硬盘或重新创建 RAID,否则可能覆盖原有阵列信息,增加数据恢复难度。

第一步:先确认服务器使用哪种 RAID

服务器中的 RAID 大致分为两类。

一种是硬件 RAID,由 H730、H740、MegaRAID 等独立阵列卡负责管理。操作系统通常只能看到一个逻辑磁盘,无法直接看到每块物理硬盘。

另一种是软件 RAID,例如 Linux 的 mdadm。操作系统可以直接管理阵列成员盘。

Linux 下可以先检查 PCI 设备:

lspci | grep -Ei 'raid|sas|scsi'

如果看到类似 PERC、MegaRAID、Smart Array 等信息,通常说明服务器安装了硬件阵列卡。

还可以检查软件 RAID:

cat /proc/mdstat

如果出现 /dev/md0/dev/md1 等设备,通常表示系统使用了 Linux 软件 RAID。

H730 等硬件 RAID 怎么检查

以案例中的 Dell PERC H730 为例,可以使用 PercCLI 或 StorCLI 检查。

先查看服务器中的控制器:

sudo perccli show

查看 0 号阵列卡整体状态:

sudo perccli /c0 show

重点关注:

  • Controller Status

  • Virtual Drives

  • Physical Drives

  • Cache 状态

  • 电池或缓存保护模块状态

查看所有虚拟磁盘:

sudo perccli /c0/vall show

如果状态正常,通常会看到:

State = Optl

其中 Optl 是 Optimal 的缩写。

如果看到:

State = Dgrd

则表示虚拟磁盘已经降级。

继续查看全部物理硬盘:

sudo perccli /c0/eall/sall show

常见硬盘状态包括:

Onln

表示硬盘在线并参与阵列。

Rbld

表示硬盘正在重建。

UGood

表示硬盘状态良好,但当前没有加入阵列。

Offln

表示硬盘已经离线。

Msng

表示原有成员盘缺失。

某些服务器安装的是 StorCLI,命令结构基本类似:

sudo storcli /c0 show
sudo storcli /c0/vall show
sudo storcli /c0/eall/sall show

控制器编号不一定都是 /c0,机箱和槽位编号也会因服务器型号而不同,应以实际检测结果为准。

Linux 软件 RAID 怎么检查

Linux 软件 RAID 最直接的检查方式是:

cat /proc/mdstat

正常的四盘阵列可能显示:

md0 : active raid10 sda1[0] sdb1[1] sdc1[2] sdd1[3]
      27343718400 blocks
      [4/4] [UUUU]

这里最重要的是:

[4/4] [UUUU]

第一个数字表示应有 4 块盘,目前也有 4 块盘在线;每个 U 代表一块正常成员盘。

如果显示:

[4/3] [UU_U]

说明阵列需要 4 块盘,但当前只有 3 块正常,中间缺少一块,阵列已经降级。

还可以查看详细状态:

sudo mdadm --detail /dev/md0

正常时常见结果为:

State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0

降级时可能显示:

State : clean, degraded
Active Devices : 3
Failed Devices : 1

如果阵列正在重建,/proc/mdstat 中还会显示进度:

recovery = 38.6%

可以持续观察:

watch -n 5 cat /proc/mdstat

Windows 服务器怎么检查

如果 Windows 使用的是存储空间,可以打开 PowerShell 执行:

Get-VirtualDisk |
Select-Object FriendlyName, ResiliencySettingName, HealthStatus, OperationalStatus

继续查看物理硬盘:

Get-PhysicalDisk |
Select-Object FriendlyName, SerialNumber, HealthStatus, OperationalStatus, Size

正常情况下,健康状态一般为:

Healthy

如果出现:

Warning
Degraded
Unhealthy
Lost Communication

则需要进一步排查。

如果服务器使用 H730 等硬件 RAID,仅查看 Windows“磁盘管理”通常是不够的。磁盘管理看到的是阵列卡提供的逻辑磁盘,即使其中一块物理盘已经损坏,逻辑盘仍可能显示正常。

这时仍需使用 PercCLI、StorCLI、iDRAC 或服务器厂商提供的阵列管理工具。

阵列正常,还要检查哪些指标

RAID 显示 Optimal,只能说明阵列当前没有明确掉盘。为了提前发现硬盘风险,还应检查以下信息。

预测故障

硬盘可能仍然在线,但阵列卡已经记录:

Predictive Failure

这通常意味着硬盘出现了异常指标,尚未完全损坏,但继续使用的风险较高。

Media Error

Media Error 通常与盘面坏扇区、读取失败等介质问题有关。

少量错误也不能完全忽视,尤其是错误数量持续增加时,应尽快备份并考虑更换硬盘。

Other Error

Other Error 可能与接口、背板、电缆、电源或通信异常有关。

如果同一槽位频繁掉盘,更换硬盘后问题仍然出现,就不能只怀疑硬盘,还要检查背板和阵列卡连接。

阵列卡缓存保护

硬件 RAID 通常依赖写缓存提升性能。如果阵列卡电池、电容或缓存保护模块异常,控制器可能关闭写回缓存,导致写入速度明显下降。

因此除了检查硬盘,还应关注:

  • CacheVault 或 BBU 状态;

  • Write Back 是否降为 Write Through;

  • 控制器温度;

  • 缓存错误;

  • 巡检任务是否正常。

发现 RAID 降级后应该怎么处理

发现 Degraded 后,第一步不是立即重启,而是先确认故障范围。

建议按以下顺序处理。

1. 立即确认重要数据是否有备份

如果重要数据只有阵列中的一份,应先把最关键的数据同步到其他服务器或存储位置。

降级阵列还能读取,不代表可以继续长期运行。

2. 确认故障盘的槽位和序列号

不要只根据 /dev/sdbDisk 1 之类的系统编号拔盘,因为系统磁盘顺序和物理槽位未必完全对应。

应通过阵列管理工具确认:

  • Enclosure 编号;

  • Slot 编号;

  • 硬盘序列号;

  • 硬盘容量;

  • 当前状态。

必要时可以使用阵列卡的定位灯功能,让目标硬盘闪灯后再进行更换。

3. 不要随意清除 Foreign 配置

更换硬盘、阵列卡重启或连接异常后,某些磁盘可能显示为:

Foreign

Foreign 表示硬盘中存在阵列配置信息,并不一定代表硬盘损坏。

在没有确认阵列结构前,不要直接执行 Clear Foreign、Import Foreign 或初始化操作。错误处理可能导致原阵列无法识别。

4. 更换容量不小于原盘的硬盘

替换盘的实际可用容量不能小于原硬盘。

即使两块硬盘都标称 14TB,不同型号的扇区数量也可能略有差异。用于 RAID 替换时,最好选择同接口、同规格、同容量或更大容量的企业级硬盘。

5. 观察重建过程

更换完成后,要确认阵列是否自动进入重建。

硬件 RAID 可以执行:

sudo perccli /c0/eall/sall show rebuild

软件 RAID 可以执行:

watch -n 5 cat /proc/mdstat

重建期间重点关注:

  • 重建百分比是否持续增加;

  • 是否出现新的硬盘错误;

  • I/O wait 是否异常升高;

  • 业务是否出现超时;

  • 剩余成员盘是否出现预测故障。

6. 重建完成后再次核验

重建到 100% 后,还应确认:

  • 虚拟磁盘恢复为 Optimal;

  • 所有成员盘恢复为 Online;

  • Failed Devices 为 0;

  • 没有新的 Media Error;

  • 文件系统可以正常读写;

  • 关键文件可以校验和解压;

  • 备份任务恢复正常。

哪些情况不适合直接重建

如果只是单块硬盘明确损坏,其他成员盘状态良好,通常可以正常更换并重建。

但出现以下情况时,不建议自行反复操作:

  • RAID 5 同时有两块盘离线;

  • RAID 10 同一镜像组两块盘离线;

  • 多块硬盘同时出现预测故障;

  • 阵列显示 Failed 或 Punctured;

  • 多块盘出现 Foreign;

  • 阵列卡无法读取原配置;

  • 重建过程中再次掉盘;

  • 文件系统已经无法挂载;

  • 服务器中没有可用备份。

这时盲目强制上线、反复重启或重新创建阵列,可能进一步破坏数据结构。更稳妥的做法是保留现场状态,记录阵列卡信息、硬盘槽位和错误日志,再由机房技术人员或数据恢复人员处理。

RAID 不是备份,正常状态也不能掉以轻心

RAID 的主要作用,是在部分硬盘故障时维持服务器可用性。

它不能解决:

  • 文件被人为误删;

  • 程序错误覆盖数据;

  • 勒索病毒加密;

  • 文件系统损坏;

  • 阵列卡故障;

  • 多块硬盘同时损坏;

  • 机房级故障;

  • 错误数据同步到所有副本。

比较稳妥的存储方案应该包含三部分:

本机 RAID + 多版本备份 + 异地副本

例如,案例中的 4×14TB 香港存储服务器可以负责本地冗余和文件归档,同时再把关键数据库、配置文件和最近版本备份同步到另一台服务器或其他地区节点。

这样即使阵列重建失败,也不至于把全部恢复希望寄托在原硬盘上。

总结

判断 RAID 阵列是否正常,不能只看服务器是否开机、目录是否能访问。

硬件 RAID 应通过 PercCLI、StorCLI、iDRAC 等工具检查虚拟磁盘和物理硬盘;Linux 软件 RAID 应检查 /proc/mdstatmdadm --detail;Windows 存储空间则可以通过 PowerShell 查看健康状态。

正常阵列一般显示 Optimal、Online 或 Healthy;出现 Degraded 说明冗余已经下降;出现 Rebuild 说明仍在恢复;出现 Failed、Offline 或多盘异常,则需要谨慎处理。

对于存储服务器来说,真正可靠的方案不是“配置了 RAID 就不用管”,而是定期检查阵列状态、监控硬盘错误、及时处理降级,并始终保留独立备份。

目录结构
全文