我有 MSA20,它有一个磁盘阵列,上面有 12 个磁盘和 3 个 LUN(每个 raid 5)。几天前,其中一个 LUN 中的一个磁盘发生故障,我更换了它。但 raid5 在 13% 时恢复失败,我在 ADU 报告中看到其中一个磁盘有“记录的错误 = 5566”,根据 SCSI 规范,它是 URE(感知代码 = 0x11,限定符 = 0x00)。在串行日志中,我也看到 URE 错误。似乎因此无法重建 Raid5。所以我有几个问题:
还有办法恢复 raid5 吗?
如果我保留被替换的新磁盘并用 URE 移除磁盘,其他 LUN 会被破坏还是只是 LUN 发生故障?如果所有 LUN 都会发生故障,如果 2 个故障磁盘会破坏所有磁盘,那么在一个磁盘组阵列上为每个 LUN 设置自己的 raid 有什么意义?
据我了解,首选方法是将来为一个 LUN 创建一个磁盘阵列,而不是创建一个具有多个 LUN 的阵列?
谢谢。
答案1
1) 您不太可能恢复此特定阵列。RAID 不是备份。这是您需要备份的众多原因之一。
2) 这取决于 LUN 的设置方式。如果您有一个 RAID 5 阵列,所有 12 个磁盘被分成 3 个逻辑单元,那么由于该阵列消失,其所有逻辑单元也都消失了。如果您有三个独立的 RAID 5 阵列,每个阵列有 4 个磁盘,那么只有包含这两个磁盘的阵列消失了,其他阵列(及其逻辑单元)将完好无损。
3) 这在很大程度上取决于您想要做什么。在单独的磁盘上设置单独的阵列可能有充分的理由。例如,您可能希望防止负载过重的阵列减慢其他阵列的速度。如果阵列位于同一物理磁盘上,则无法执行此操作。或者您可能希望允许负载过重的阵列能够获得所有磁盘的所有带宽。如果您在单独的磁盘上有单独的阵列,则无法执行此操作。
还有一些原因,您可能希望将多个逻辑单元放在同一个阵列上。您可能希望隔离文件系统,这样填满一个文件系统就不会填满另一个文件系统。
如果将所有逻辑单元放在一个阵列上,则损失的空间较少。12 个 1TB 磁盘上的单个 RAID 5 阵列可提供 11TB 可用空间,分为三个相等的部分,每个部分为 3.6TB。如果创建三个单独的阵列,每个阵列有 4 个 1TB 磁盘,则每个阵列为 3TB。因此,您需要牺牲大小来获得额外的可靠性。
您拥有的灵活性以及其产生的影响的具体情况取决于您的控制器的具体情况。
以下是一些针对未来的建议:
考虑 RAID 6。它可以容忍两个驱动器的故障。
确保定期测试阵列,并及时更换发生故障的驱动器。这将大大降低在降级状态下发生驱动器故障的可能性。
RAID 不是备份。请定期将数据备份到物理上独立的设备上。
如果其中有未备份的数据,请立即尝试恢复尽可能多的数据。但是,如果您甚至无法安装阵列,那么专业恢复就是您唯一的希望。
答案2
1)有办法恢复吗?
- 关闭阵列电源。
- 逐个重新安装每个磁盘。
- 重新启动阵列。查看是否有任何故障磁盘恢复在线。
按照控制器的维护和管理指南来处理故障卷。
当阵列断电时,检查故障驱动器上的 SMART 数据。驱动器可能被标记为故障,但仍可读取,例如,如果它们用于数据重新定位的保留扇区不足。
在 MSA1500cs 中,恢复过程在第 9 章中进行了说明维护和服务指南:
如果容错能力受损,插入替换硬盘驱动器并不能改善逻辑单元的状况。重新启用或接受无响应的 LUN 的过程在阵列配置实用程序 (ACU) 或 MSA 命令行界面 (MSA-CLI) 中执行。
停止所有 I/O 活动。
关闭系统
移除然后重新插入所有硬盘和控制器。
打开系统
5.1. 检查LCD显示屏上是否显示以下信息:
02 ENABLE VOLUME <n>? '<'=NO, '>'=YES 04 ENABLE VOLUMES ? '<'=NO, '>'=YES
5.2. 如果使用 ACU:选择重新启用故障逻辑驱动器
5.3. 如果使用 MSA-CLI:输入
accept units
以启用所有故障 LUN。
我发现 MSA-CLI 是管理阵列最方便的方法。
2) 如果我保留被替换的新磁盘并使用 URE 移除磁盘,其他 LUN 会被破坏还是只是 LUN 出现故障?
这取决于你的数组的逻辑组织。
以下是将磁盘架拆分为 2 个磁盘阵列的示例。一个磁盘阵列上有 4 个逻辑卷,另一个有 2 个逻辑卷。
# hpacucli controller csn=sga0xxxx0f array all show
MSA1500 CS in MSA1500
array A
logicaldrive 1 (2.0 TB, RAID 6 (ADG), OK)
logicaldrive 10 (2.0 TB, RAID 5, OK)
logicaldrive 11 (2.0 TB, RAID 5, OK)
logicaldrive 12 (1.3 TB, RAID 5, OK)
array B
logicaldrive 2 (2.0 TB, RAID 6 (ADG), OK)
logicaldrive 4 (2.0 TB, RAID 6 (ADG), OK)
阵列 A 中的 2 个磁盘发生故障将导致逻辑驱动器 10、11 和 12 发生故障。由于逻辑驱动器 1 是 RAID6,因此不会发生故障。
3)据我了解,首选方法是将来为一个 LUN 创建一个磁盘阵列,而不是创建一个具有多个 LUN 的阵列?
视情况而定。将 LUN 分散开可能会提高性能,因为负载分散在所有驱动器上。将 LUN 分成不同的阵列可以防止 LUN 之间的干扰,无论是在性能还是可靠性方面,但需要付出代价。从单个大型池中切出任意大小的 LUN 通常比拥有多个小型池更容易。