今天和
NOC
对项目实施中工程布线、服务器安装情况进行现场检查,除了部分已知问题外,在检查一台做
RAID5
的服务器时,客户提出的一个问题引起了我的思考。
RAID5
要是有一块硬盘出现故障,会导致停机业务中断吗?现在我们机房没有
24
小时值班,如果半夜硬件故障是不是要到现场才能解决问题?
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
以前做集成方案时,对于
RAID
的选择,我通常是这样的:
若主机有连外部存储,服务器本身配置
2
块
146GB 15Krpm
硬盘,做
RAID1
无热备盘,仅用于安装操作系统及搭建应用环境,应用数据放在外部存储上;若主机没有连接外部存储,根据项目经费、应用所需存储空间进行配置选择,由于主机
RAID
通常不支持
RAID10
,一般配置
N
组
RAID1
或全局
RAID5
,无热备盘。
现在想想客户提出的问题,确实是我事先没考虑的。由于项目采购了一台类似冷备机的服务器,这个问题现场总算是搪塞过去。本着刨根的精神,离开现场就
Google
一通。总算是弄清楚了在
RAID5
下一块硬盘出现故障对业务系统的影响。
RAID5
的实现机制就不在此描述了,网络上有很多形象的示意图一看就能明白。当一块硬盘因故障离线,读显然是不会有问题,因为故障盘的数据可以通过
RAID
校验信息重新计算得到。主要的问题纠结在写入操作,关于写入操作首先引导冬瓜头对本问题的回复:“
RAID5
坏一块盘依旧可以写,具体机制就是如果目标是坏盘上的地址,那么转为写其它盘。具体算法,写其它好盘的地址该怎么写还怎么写,如果要写坏盘上的地址,那么在内存中算好之后,并丢弃坏盘地址对应的数据,好盘的数据依然写入好盘。坏的如果是
parity
盘,该怎么写就怎么写。”
这么看来
RAID5
一块盘故障,读的性能是要降低的,毕竟大概
1/3
的数据需要通过
RAID
校验信息重新计算得到。对于写入性能影响不明显,因为故障盘所对应的数据块在
CPU/
内存处理时就已丢弃。但由于此时写入没有冗余信息,对生产系统来说有一定的危险。因此,部分存储产品在
RAID5
一块硬盘离线,又没有热备盘的情况下,会将
RAID5
置为只读模式。当然了,这个操作是很愚蠢的,我几乎没看到没有写入的应用系统,至少还得有日志写入吧,所以如果真把
RAID5
置为只读也不就高可用了。
参考文档:
http://site.doit.com.cn/viewthread-67984
转载于:https://blog.51cto.com/sysadmin/236802