我有几个与raid5有关的问题。 考虑创build一个raid5设备,说三个磁盘md0。
创build之后,您开始写入磁盘。 在这里每当写入1gb的文件大小时,实际数据量被写入三个磁盘。
我理解xor计算是在执行写入时进行的(仅用于恢复)。 如果xor计算没有正确完成(比如xor计算algorithm中的错误),写入操作是否仍然成功。
在读取过程中,如何使用异或计算值? 或者换句话说XOR计算值在读取过程中真的被使用了吗?
对于1Gb的数据,每一块数据都分布在三个设备上,比如说first_piece到第一个设备,second_piece到第二个设备,然后是第三个或者第一个和第二个(或者第一个和第二个)被调用的块到第三个设备。 我的理解是否正确?
考虑使用Linux作为操作系统。 谢谢!
除了Chopper3已经写了:
在RAID中,所谓的“碎片”数据实际上被称为“条带”或“块”。 在创build卷时,条带大小通常是configuration选项,典型值在32 – 256 KB的范围内。 我相信MD使用32KB作为默认值。
XOR值是否被使用是读取algorithm的实现细节,基本上是一种折衷。 如果磁盘繁忙,则不使用读取奇偶校验可能意味着更长的服务时间。 使用读奇偶校验不可避免地意味着更多的计算和更高的负载。 使用足够复杂的调度程序,可以考虑当前的队列深度,并将读取请求发送到负载最低的磁盘,即使它们包含数据的奇偶校验部分,但如果磁盘负载是偏好非奇偶校验数据同样低。
专业人士不喜欢RAID 5的真正原因是因为对于“随机小写入”types的I / O负载而言,它就像鸭子一样跛脚。 但请自己看看,并阅读BAARF网站上的一些文件,以获得更详细的讨论
每当写入1gb的文件大小时,实际数据量将被写入三个磁盘中。
在这个三路R5configuration中,每个磁盘都有500MB的磁盘空间,比起500GB而不是500GB的小型磁盘集群。 您了解如何在所有磁盘上加载集群是正确的,但请记住,与R4不同,奇偶校验数据不会写入单个磁盘,而是与真实数据一起传播到磁盘。 哦,操作系统是相当不相关的。
异或类比理解起来容易理解,因此比实际发生的事情要多(不同控制器之间的差异),但它足够接近。 无论哪种方式,不要忘记,通常会进行某种forms的读写后validation,以确保写入的数据能够被再次读取。 但是单比特错误的确会发生,这是专业人士不太喜欢R5的原因之一。