我有一台带有 RAID5 的 CentOS 服务器。每次 RAID5 重新同步时,我的服务器都会停止工作。托管公司停止了 httpd 服务,以便 RAID5 可以重新同步自身,这个过程可能需要长达 3-4 小时。
该问题经常再次出现,因此托管公司更换了我的服务器硬件,我也迁移到了新硬件。我仍然有这个问题(在新服务器上)。
这在RAID5中正常吗?我们怎样才能永久解决这个问题呢?如果每次 RAID5 想要重新同步我的服务器时就会过载并且我的网站将无法访问,那么 RAID5 就很糟糕。
如果您能为这场灾难提出解决方案,我将不胜感激。
这是 /proc/mdstat 报告:
root@host [~]# watch 'cat /proc/mdstat'
Every 2.0s: cat /proc/mdstat Mon May 9 01:25:30 2011
Personalities : [raid1]
md0 : active raid1 xvda1[0] xvdb1[1]
104320 blocks [2/2] [UU]
md1 : active raid1 xvda2[0] xvdb2[1]
2096384 blocks [2/2] [UU]
md2 : active raid1 xvda5[0] xvdb5[1]
484086528 blocks [2/2] [UU]
[=====>...............] resync = 29.5% (142978880/484086528) finish=77.7m
in speed=73108K/sec
unused devices: <none>
答案1
RAID 仅应在服务器崩溃或更换故障磁盘后重新同步。始终建议使用 UPS 并将系统设置为在电量不足时关闭,以便重新启动时不需要重新同步。 NUT 或 acpupsd 可以与许多 UPS 通信,并在 UPS 耗尽电量之前启动关闭。如果服务器在崩溃之外重新同步,则可能存在硬件问题。/var/log/kern.log
通过运行 或 来检查内核日志dmesg
。我还建议设置mdadm
为向管理员发送电子邮件,并smartd
在所有磁盘驱动器上运行,类似地设置为向管理员发送电子邮件。在看到磁盘出现故障之前,我大约有一半的时间会收到电子邮件。如果发生不可避免的崩溃,您应该在 RAID 上启用写入意图位图。这会保留磁盘写入位置的日志,并避免重新启动时完全重新同步。启用它:
mdadm -G /dev/md0 --bitmap=internal