我有一台运行 Debian Squeeze 的服务器和一个 3x 500 GB 驱动器 RAID5 系统,我自己还没有设置。启动时,RAID 阵列中一个分区的状态似乎不好。
md: bind<sda2>
md: bind<sdc2>
md: bind<sdb2>
md: kicking non-fresh sda2 from array!
md: unbind<sda2>
md: export_rdev(sda2)
raid5: device sdb2 operational as raid disk 1
raid5: device sdc2 operational as raid disk 2
raid5: allocated 3179kB for md1
1: w=1 pa=0 pr=3 m=1 a=2 r=3 op1=0 op2=0
2: w=2 pa=0 pr=3 m=1 a=2 r=3 op1=0 op2=0
raid5: raid level 5 set md1 active with 2 out of 3 devices, algorithm 2
RAID5 conf printout:
--- rd:3 wd:2
disk 1, o:1, dev:sdb2
disk 2, o:1, dev:sdc2
md1: detected capacity change from 0 to 980206485504
md1: unknown partition table
mdstat
还告诉我分区丢失:
Personalities : [raid1] [raid6] [raid5] [raid4]
md1 : active raid5 sdb2[1] sdc2[2]
957232896 blocks level 5, 64k chunk, algorithm 2 [3/2] [_UU]
md0 : active raid1 sda1[0] sdc1[2](S) sdb1[1]
9767424 blocks [2/2] [UU]
运行时sudo mdadm -D
,分区显示为已删除,并且阵列显示为已降级。
/dev/md1:
Version : 0.90
Creation Time : Mon Jun 30 00:09:01 2008
Raid Level : raid5
Array Size : 957232896 (912.89 GiB 980.21 GB)
Used Dev Size : 478616448 (456.44 GiB 490.10 GB)
Raid Devices : 3
Total Devices : 2
Preferred Minor : 1
Persistence : Superblock is persistent
Update Time : Thu Aug 11 16:58:50 2011
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : 03205c1c:cef34d5c:5f1c2cc0:8830ac2b
Events : 0.275646
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 18 1 active sync /dev/sdb2
2 8 34 2 active sync /dev/sdc2
/dev/md0:
Version : 0.90
Creation Time : Mon Jun 30 00:08:50 2008
Raid Level : raid1
Array Size : 9767424 (9.31 GiB 10.00 GB)
Used Dev Size : 9767424 (9.31 GiB 10.00 GB)
Raid Devices : 2
Total Devices : 3
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Thu Aug 11 17:21:20 2011
State : active
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
UUID : f824746f:143df641:374de2f8:2f9d2e62
Events : 0.93
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
2 8 33 - spare /dev/sdc1
但是,md0
似乎没问题。那么,这一切告诉我什么?磁盘即使正常 md0
工作,也可能有故障吗?如果没有,我是否可以重新添加/dev/sda2
到md1
阵列以解决问题?
答案1
这R在袭击代表R多余的。
RAID 5 是N+1 redundant
:如果您丢失了当前所在的一个磁盘N
——只要您没有丢失另一个磁盘,系统将继续正常运行。如果您丢失了当前所在的第二个磁盘N-1
,您的系统将崩溃(或者至少您会丢失大量数据)。
就像 SvenW 说的,更换磁盘尽快地(按照发行版的说明更换 md RAID 阵列中的磁盘,并且一定要确保更换了正确的磁盘!拔出其中一个活动磁盘真的会搞砸你的一天。)
还要注意,当你更换 RAID 5 中的磁盘时,由于新驱动器被重建,会产生大量磁盘活动(在旧磁盘上进行大量读取,在新磁盘上进行大量写入)。这有两个主要含义:
重建期间系统会变慢。
慢到什么程度取决于磁盘和磁盘 I/O 子系统。重建期间或重建后不久,您可能会丢失另一个磁盘。
(所有这些磁盘 I/O 有时会触发另一个驱动器的足够多错误,以至于控制器将其声明为“坏的”)。
阵列中的磁盘越多,发生 #2 的可能性就越大,并且遵循硬盘死亡率的标准“浴缸曲线”。这就是您应该备份的原因之一,也是您听到“RAID 是不是ServerFault 上经常重复出现“备份”一词。
答案2
保持阵列在磁盘损坏的情况下正常工作正是RAID5。它保存冗余信息,因此即使您丢失一个磁盘,也不会丢失数据。
我建议尽快更换磁盘,因为如果您丢失另一个磁盘,所有数据都将消失。
答案3
尽管/dev/sda1
看起来运行良好md0
现在,同一磁盘上的另一个分区(sda2
)出现故障这一事实预示着驱动器的健康状况不佳。我必须同意这里已经表达的其他意见:更换驱动sda
器立即地。
当然,这意味着你需要从数组中mdadm --fail
进行mdadm --remove
分区,即使它sda1
md0
出现现在就没问题了。当您安装替换驱动器时,您需要确保其分区至少与旧驱动器上的分区一样大,以便其分区可以正确添加到和md0
阵列中md1
。