我正在两个 80Gb 7200rpm SATA HD 上安装带有 Snow Leopard Server (10.6) 的 Intel Xserve (四核 Xeon)。
我使用磁盘工具用这两个驱动器创建了一个镜像 RAID 集,一切顺利。
当时我问自己这是否真的是个好主意。我知道硬件 RAID 系统会更好,但是这个软件 RAID 怎么样?
您对此有什么反馈吗?如果一个硬盘坏了,它还能正常工作吗?这会影响性能吗?
[更新]
简而言之:硬件 RAID 优于软件 RAID,而软件 RAID 又比没有好。
谢谢大家的回答,它们非常有帮助。
尤其是 Gordon 的故障监控脚本。因为 Apple 的软件 RAID 对驱动器故障保持沉默。
答案1
我个人始终偏爱硬件 RAID,但会使用软件而不是无软件。我也知道有些人持相反观点。是的,如果其中一个驱动器发生故障,它将继续运行。这是使用 RAID 的主要原因。“R”代表冗余。
软件 RAID 必定会影响性能,因为 CPU 必须执行更多操作。然而,实际上,如果这种差异变得明显,则说明您对服务器的压力过大,这将导致比损失几个 CPU 周期更多的问题。例如,热量将成为一个严重的问题。
我想问的一个问题是,为什么要用这么小的驱动器?多花一点钱就可以买到大得多的驱动器。至少,80GB 的驱动器很难买到,从未来的维护角度来看,这可能是一个问题。
答案2
我赞同 SvenW 关于无声故障的警告;如果非要说的话,那就是它在处理驱动器故障方面有点太好了。我见过几台服务器的后果,其中一个驱动器由于某种原因从软件镜像中掉线(我怀疑是重新启动后没有及时准备好);剩下的驱动器一切正常,直到几个月后,那个驱动器出现问题——它又切换回第一次出现故障的驱动器,过去几个月的情况就消失了。
这是我为修复此问题而编写的一个简短的 shell 脚本。替换您的电子邮件地址,将其保存为类似 /etc/periodic/daily/150.check-raid 的内容,使其可执行,如果 raid 降级,它应该会向您发送警告(第二天早上 3:15)。要测试它(强烈建议在垃圾邮件拦截等情况下这样做),请插入几个一次性驱动器(USB 钥匙链驱动器等),镜像它们,拔下其中一个,将另一个放置一夜,然后看看早上您的邮箱中是否收到警告。
#!/bin/sh
# This script checks for any degraded/offline/failed/whatever software
# RAIDs, and if any are found emails a note to an admin. To use it,
# replace the ADMIN_EMAIL value with your own email address, drop it in
# /etc/periodic/daily, and change the owner to root. This'll make it
# run its check every morning at 3:15am.
#
# Warning: this script doesn't check anything other than software RAIDs
# built with the Apple (i.e. Disk Utility) RAID tools. It does not check
# any hardware RAIDs (including Apple's RAID card), or even any third-party
# software RAIDs. If "diskutil listraid" doesn't list it, it's not going
# to be checked.
#
ADMIN_EMAIL="[email protected]"
if diskutil listraid | grep "^Status:" | grep -qv "Online$"; then
diskutil listraid | mail -s 'RAID problem detected' "$ADMIN_EMAIL"
fi
答案3
我对软件 RAID 有很好的经验,但我只将其用作系统驱动器。不过,请务必使用服务器监视器或磁盘实用程序来检查驱动器状态,因为至少在 MacOS 10.4 中,系统对故障驱动器没有任何反应。我不确定 10.5/10.6 中的情况是否有所改善,这是我的测试列表中的内容。不过,我真正怀念的一件事是 RAID5,当您拥有两个以上的驱动器时,您所能做的就是条带化。
就我而言,性能并没有受到明显影响,但同样,它仅用作系统驱动器,并使用 FC RAID 来存储数据。
当您仍处于测试过程中时,请确保通过移除驱动器来测试故障/恢复,以便您知道在发生驱动器故障时该如何操作。
答案4
修改版的 Gordon 脚本用于检查 Apple 的硬件 RAID 卡。
#!/bin/sh
# This script checks for any degraded/offline/failed/whatever software
# RAIDs, and if any are found emails a note to an admin. To use it,
# replace the ADMIN_EMAIL value with your own email address, drop it in
# /etc/periodic/daily, and change the owner to root. This'll make it
# run its check every morning at 3:15am.
ADMIN_EMAIL="[email protected]"
if raidutil list status | grep "^General" | grep -qv "Good$"; then
raidutil list status | mail -s 'RAID problem detected' "$ADMIN_EMAIL"
fi