ZFS文件系统(5) -- 标准的奇偶校验RAID

来源:互联网 发布:工程数据类别 编辑:程序博客网 时间:2024/05/29 18:15

标准的奇偶校验RAID

要理解RAIDZ,那么就得首先理解那些基本的RAID,比如RAID-5和RAID-6,让我们来看看RAID-5的布局,你至少需要3个磁盘来实现,在其中的2个磁盘上,数据的条带化的,奇偶校验位Dp = D1 Xor D2 得到,然后将Dp校验位写入磁盘,这样,可以通过计算,恢复原来的数据。此外,并没有单独的将一个盘用来存储RAID校验,而是分布在各个系统中,因此,当之中的任何一块磁盘受损,通过计算都是可以恢复数据的。

然而,还有一个问题,当你在写入这份数据,突然断电,奇偶校验位还没有写入,这时候就会造成数据的不一致,ZFS文件系统的创建者Jeff Bonwick指出,这是一个写入漏洞“Write hole”,实际上,他确实是一个问题,尽管是个小问题。在所有的带有奇偶校验的RAID阵列中,只要在写一块数据时,没有把校验位写到磁盘,那么就是一个写入漏洞。最糟糕的就是,使用软件的手段,基本上不知道怎么规避这个错误。有的软件通过变通来识别这种不一致的数据,但是他们非常的慢,而且还不可靠。由于这些原因,管理员们已经降低了对软RAID青睐,大部分的愿意使用(昂贵的,容易出现故障的)硬件卡,使用他上面的电池来进行备份。

还有一个大的性能问题需要解决,如果需要写入的数据大小小于条带的大小,那么需要从条带的其他部分读出,并且需要重新计算奇偶校验,这将导致读取和写入到应用程序是毫无关联的。读只需要读活着的运行的数据,而不是花大量的时间去处理一些死的数据,或旧的数据。因此,需要一个昂贵的,带有电池的NVRAM硬件RAID卡来隐藏这个延迟,使用NVRAM缓冲区来填满条带,直至被刷入磁盘。

由于这些原因,RAID5的写入漏洞和性能问题,他不可能成为ZFS的RAID解决方案,所以我们重新考虑了一种新的奇偶校验RAIDz。


ZFS RAIDZ

开始介绍RAIDZ,他的条带宽度不是在创建的时候定义的,而是一个动态的宽度,事务刷新到磁盘中的每一个块都是他自己的宽度,每一个RAIDZ的写入,都是一个完整的磁条写,所以校验位会随着元数据一起刷入磁盘,这样就解决了RAID-5的写入漏洞,也就是说,当电源突然断电之际,你的磁盘要么是全部的写入数据,要么就完全没有被写入,这样就保持了数据的一致性。

下图就是RAID-5和RAIDz校验位分布示意图

标准的RAID采用的奇偶校验,逻辑十分简单,每个磁盘Xor为0,由于存在动态的条带宽度,比如RAIDZ,这种简单的方式根本不起作用,要实现那种效果,我们必须拉起zfs的元数据以确定每次读到的RAIDZ大小,如果你仔细观察,会知道这根本就是不可能的,如果你的文件系统和RAID是独立的产品,那么这时候,你的RAID卡将不会知道文件系统的变化,反之毅然。

这就是ZFS伟大之处,因为ZFS了解底层的RAID,在这方面性能不是问题,除非磁盘已满。当读取文件系统的元数据时,意味着他读取的是活着的数据,正在使用的数据,不需要担心是死数据,或者未分配的磁盘,所以,在遍历元数据时,在某些方面反而更快,这时候,你并不需要昂过的NVRAM来缓冲写,也不需要使用备用电池来预防写入漏洞。ZFS让我们回归到原始的“廉价的磁盘冗余阵列”,而且ZFS建议您使用廉价的SATA磁盘,而不是昂贵的光纤通道或者SAS磁盘。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 剪了头发后悔了怎么办 2岁宝宝发际线高怎么办 脱发怎么办吃什么能长发 后面头发睡平了怎么办 鸟羽毛长得不好怎么办 吃激素药头发掉怎么办 吃了药头发掉怎么办 头皮痒头发掉的厉害怎么办 西昌学院被记过了怎么办? 初三了数学太差怎么办 板绘线条不流畅怎么办 嘴被风吹歪了怎么办 被风吹的嘴歪了怎么办 怀孕一个多月见红了怎么办 b本扣了6分怎么办 b牌驾驶证扣6分怎么办 忘记了谁考证的密码怎么办 专升本学校有课怎么办 跨境额度超了怎么办 微商代购被骗了怎么办 减肥到了瓶颈期该怎么办 大润发超市把一件商品打两件怎么办 小红书上买到假货怎么办 主动退市股票钱怎么办 老板卷款逃跑财务怎么办 房开延迟交房怎么办 房开逾期交房怎么办 买了保险想退保怎么办 辐射避难所探索废土死了怎么办 大门上边的齿轮滑丝怎么办 国通石油储油卡怎么办 买大棚房受骗了怎么办 朋友做安利天天来我门面怎么办 安利优惠顾客卡怎么办 苹果手机天气温度不显示怎么办? 安利净水器坏了怎么办 安利净水器滤芯盖搭配坏怎么办 安利会员卡过期了怎么办 婴儿吃了润唇膏怎么办? 用错沐浴露洗头怎么办 雅蜜润肤沐浴露怎么办