PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

在OpenMediaVault里干掉RAID5,升级RAID6

[复制链接]
1#
xudaiqing 发表于 2015-11-6 01:37 | 显示全部楼层
把旧的9211拿出来看了下,连这种hba都有32K*8的nvram,我想9240不可能没有。也就是说直接拿9240组raid就没write hole了。
2#
xudaiqing 发表于 2015-11-6 09:27 | 显示全部楼层
本帖最后由 xudaiqing 于 2015-11-6 10:58 编辑
overthink 发表于 2015-11-6 08:23
32K*8的nvram怎么够现在RAID的写速度都一秒几百兆了。而且9211、9240上面的这个NVRAM也不是干这 ...

32K*8 怎么会不够,这是内存,不是flash。而且并不要去记录每一次写入的实际数据,只需要记录对应的地址,然后确保两块硬盘是同步的就行了。保证断电时没有数据丢失是文件系统的事,而不是raid的工作。
raid5需要带bbwc或者fbwc的原因是为了保证raid5速度必须使用write back而不是write through。这其中的关键是确认写入信号,文件系统用它来确保每一次的写入操作都是原子的。在write through中确认写入信号是在数据确实写入硬盘后才发出的。而在write back中是在数据写入raid卡缓存中就发出的,这样即使raid5的xor带来的延迟对文件系统就不可见了,自然也就不会影响速度。但是在write back中文件系统的原子写入功能实际上被破坏了,而bbwc和fbwc就是确保在这种情况下不会因为断电导致数据丢失。

阵列信息是不可能只存在raid卡上的,否则就违背了raid的基本目的。如果只存阵列信息,不需要花那么大代价去用nvram。



评分

参与人数 1绝对值 +1 收起 理由
overthink + 1 很给力!没缓存的R5性能确实低下。.

查看全部评分

3#
xudaiqing 发表于 2015-11-6 11:43 | 显示全部楼层
OstCollector 发表于 2015-11-6 11:32
文件系统应当保证块设备正常工作时不会丢数据
块设备本身应当保证确认写入之后的每次对同一LBA的读取都应 ...

显然不是这样的,日志文件系统和写时复制就是用来应对瞬间断电时当前在写入的块的状态是不确定的现实。日志文件系统(如NTFS、ext3)确保元数据的写入是原子的,而写时复制(如ZFS、Btrfs、ReFS)更近一步的确保了文件修改操作也是原子的。设备保证的是已经写入的数据是可靠的,而确保操作的安全性正常情况下由文件系统来实现。

4#
xudaiqing 发表于 2015-11-6 16:17 | 显示全部楼层
Mufasa 发表于 2015-11-6 14:02
我记得Raid卡上面的NVRAM不是用来放用户数据的。

缓存模块才放用户数据,为了安全,要装电池。。。。

NVRAM是不存放用户数据,但是防止write hole和防止掉电丢失数据是两回事。就像保护文件系统元数据和保护用户数据的关系一样。NVRAM足以防止出现write hole,但是掉电时如果有写了一半的数据,那这些数据就损失掉了。但这个损失是可接受的。因为如果使用的是普通硬盘,没有raid,这些数据一样损失掉了。因此,处理这个问题是现代文件系统的必备功能(日志式和写时复制,分别保护元数据和用户数据)。
而且raid卡的fbwc和bbwc对这个问题作用并不大。比如修改文件,即使有bbwc,断电的时候进行到一半的操作一样没有了。因此如果在意这个,支持对复杂操作进行事务(transaction)的写时复制文件系统才是唯一的办法。

5#
xudaiqing 发表于 2015-11-6 16:52 | 显示全部楼层
OstCollector 发表于 2015-11-6 13:27
Write hole 的问题是,在某些实现中,下层块设备返回写完成的时候,校验盘实际上没有完成
而文件系统假设 ...

如果在下层块设备反回写完成,而校验盘实际上没有完成,并且在一个断电上电之后,不会自动继续完成校验盘的处理。那么只能说这个下层块设备是个垃圾,它的写完成实现是不符合标准的。
把包括缓存在内的整个系统作为一个整体,当它返回写完成的时候,应该至少可以承受系统断电这样的外部影响。如果有内部冗余的情况下,应该在有部分设备损坏的时候仍然保证完整性。
当然,有的低端设备为了在更低的价格上实现更高的性能而放弃用户数据安全,这也是没办法的事。
所以小规模部署时,如果对这方面严格要求,同容量raid1和raid10的最低成本可以比raid5要低。因为raid1和raid10可以在真正写入硬盘后才报告写完成,而性能也不会受太大影响。

data=journal导致速度慢是具体实现的问题。starwind这样的日志式文件系统,已经可以实现相当好的性能了。COW唯一的天生缺陷是磁盘碎片话,不过使用SSD就没这问题了。


6#
xudaiqing 发表于 2015-11-6 17:02 | 显示全部楼层
对于文件服务器,特别是家用文件服务器。并不需要对当前的写操作进行保护。因为这类系统,一般只有两种操作:新建文件、删除文件。而没有修改文件。也就是说对系统来说,只有两种结果:文件成功写入,所有数据都是正确的。或者文件写入失败,已写的数据都没用。并不存在已有数据被破坏的情况。因此对write through的设备,nvram已经足够了。
7#
xudaiqing 发表于 2015-11-9 20:11 | 显示全部楼层
nighttob 发表于 2015-11-9 20:04
我觉得就是因为Strip和Stripe太容易混,所以开发者设计了Chunk等词汇用以区分

但另一方面,不同平台和环 ...

IBM 还搞出过raid hole
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部