from–https://www.v2ex.com/t/131279

我说下raid的问题吧。任何一个数据保护技术都会有优点以及缺点,怕的就是你什么都不知道,以为用上就100%安全了,等真出问题才发现数据不能用。就raid5来说,在硬件raid卡上有一个经常碰到的原因就是rebuild的时候出现第2块盘出问题。原因就是某块或者某几块盘上有极少量数据出现坏道,但raid卡又不知道。当整个阵列开始rebuild的时候,这隐藏的问题就会暴露出来。有坏道的磁盘会重复读取损坏的区域,尝试读取数据,这个时间往往在几十秒到几分钟不等(对应到单盘系统,你会觉得忽然系统卡了)。但raid卡有一个响应时间判断,超过24秒(好像是这个值)磁盘没响应的话就会将这个盘判断为故障盘,将其踢出阵列。这就是为什么raid5在做rebuild的时候经常出现所说的丢第2块盘的问题。所以我前面说用raid5的话一定一定记得要定时做扫描,一般好点的硬件卡都会有这个设置。另外对于这种问题西数的红盘有NASware技术解决,希捷的企业盘好像也有类似的技术。

另外raid5无法对抗的一个问题就是所谓的“位静默”损坏。简单来说就是磁盘上某个区域因为磁性弱化之类的原因导致原先的1读成0之类的。这个时候无论是操作系统或者是raid控制器、磁盘控制器本身都无法发现这个问题。表现出来的现象就是保存了很久的图片会出现莫名其妙的色块,MP3会出现爆音等等。目前好像还没有raid卡解决这个问题。软件raid的话,ZFS和windows 2012的ReFS文件系统可以解决,就是每个数据块都做奇偶校验,具体的你也可以google。

 

洋垃圾不等于说就差,只能说是国外使用量大罢了。如果按照说洋垃圾就是劣质的代名词或者性能差的代名词你让Xeon X5650之类的情何以堪。这东西用的处理芯片是LSI的。LSI自己用这芯片的卡(好像是LSI MegaRAID SAS 8888ELP)价格在3K+。我就自己使用的情况来看,3盘块WD 2T绿盘 RAID5 持续读写稳定在300MB/s左右,2块SSD 做RAID0读写在500MB/s左右。也没出现什么不稳定的情况。倒是这3块绿盘最后都返修过一遍。(raid卡对磁盘故障很敏感来着,拆下来检查的时候smart只有1,2条黄掉,没红的情况。不过都在保修期内直接送修了)。

顺便前面忘了说了……如果raid5 rebuild的时候丢失第2块盘也不是没救,基本这个时候在raid控制器里将后面丢失的盘force online就行。
再不济的情况下,将盘拆下来,用diskgenius组件模拟raid,可以读取出数据。(所以虽然有些raid卡,还有inel自带的raid支持将一组物理盘分别划分成riad5、raid1、raid0几个区域,但千万不要这么做。不然真到恢复数据的时候就基本没救了,一个raid组只做一个VD)

然后再说zfs的问题。好处大家都知道不说了,问题有几个,这里提出来,希望能共同探讨。
1)需要独立系统(这个是没办法,就算用虚拟机之类的总觉得不爽)。如果是换成windows2012+ReFS的话,服务器似乎能做更多的事情。

2)和windows共享的时候速度问题。这上面我更偏向windows2012+win8 client的方案。一个是linux下smb协议的CPU占用率极高(我之前测试系统下,50MB/s的读写要吃掉70%+的CPU,但换成windows server就只有2%)。另外一个就是SMB3.0的优势。最简单的,拿freenas+win7和windows2012+win8分别测试,将LOL拷贝到共享目录里执行,在freenas+win7的组里,每次点击商店菜单大约会卡0.5-1s才有反应,win2012+win8的组里没这个问题。感觉SMB2.0在每次IO访问的时候有较大的额外开销。另外一个就是体现在远程服务器上存放视频,在播放器里拖动进度条,win2012+win8组合的响应速度明显块很多,几乎接近本地磁盘。

3)数据恢复的问题,部分数据恢复软件是能模拟raid控制器来组建虚拟raid读取硬盘数据的。之前碰到过坏掉2块盘的raid5(其实是一直坏了一块没发现,等到第2块坏了才发现raid不能用了),使用diskgenius恢复大约98%+的数据。不过zfs和refs这2个没碰到过案例不好说。不过估计因为虚拟的磁盘结构复杂(比如Refs的磁盘可能同时带了mirror和parity2种方式,让软件猜出分区表的位置是很困难的……所以恢复情况不乐观。