首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据/文件如何存储在RAID-5中?

数据/文件如何存储在RAID-5中?
EN

Server Fault用户
提问于 2020-11-25 06:54:39
回答 2查看 338关注 0票数 0

文件如何存储在RAID-5上?假设我有一个RAID-5个以上的磁盘,条纹大小为64K,我在所有可用的磁盘空间上创建了一个分区和文件系统。然后我创建一个38字节的小文本文件,另一个5MB的文本文件。这些文件是如何存储在磁盘上的?既然小文本文件比条形文件小得多,这是否意味着整个文本文件只存储在五个磁盘中的一个上?如果是的话,“关联”条纹包含哪些内容?

EN

回答 2

Server Fault用户

发布于 2020-11-25 09:38:39

传统的RAID是以单个块设备(卷)表示的磁盘阵列。它对底层文件系统和/或文件一无所知。其他方式也是如此--文件系统通常不知道存储后是否存在RAID。

这意味着您的文件在RAID中的存储方式将在很大程度上取决于文件系统如何存储它们。因此,最好是讨论存储在块设备上的原始数据。

假设您使用原始访问权来更改RAID卷上的单个字节。底层RAID子系统(无论是硬件还是软件RAID)将检测访问哪条条,并且在基本操作中(不采用缓存和/或高级解决方案)必须重写整个条带来更新这些数据。

如果在下一次操作(为简单起见不提供缓存)中,您将更新前一个字节旁边的字节,并且RAID子系统将检测到它与前面的字节位于同一条上,那么它将再次更新整个条带。简单地说,这是读-修改-写操作。也就是说,它将读取所有以前的内容,只更改所需的字节,重新计算奇偶校验块,并在所有5个驱动器上再次写入新数据。在真正的缓存和一些先进的检查算法将防止这种情况发生,每次确保真正的硬件写入将只在必要时发生。

所以,在你的例子中,RAID-5阵列中有5个驱动器,如果你写的是最小的1字节文件,它仍然会被写入所有4个RAID-5数据驱动器+1个奇偶校验驱动器。但这并不意味着如果它存储在一个非RAID驱动器上,它将占用更多的文件系统空间。RAID卷将提供它所提供的空间(N-1驱动器-一些小的元数据块)。

票数 1
EN

Server Fault用户

发布于 2020-11-25 08:50:45

不要把条纹和条形混为一谈。

代码语言:javascript
复制
Stripe size = strip size x stripe width.

如果您有一个strip size of 64k和一个stripe width of 4 (4个磁盘+RAID5的一个),那么您将有一个256k stripe

这意味着任何低于这个大小的文件都将占用256 k,分散在4个驱动器上,每个驱动器需要64k。

如果是stripe size is really 64k,那么无论文件大小在64k以下,每个磁盘上都会占用16k (strips)

在上述两种情况下,一个5MB文件将分布在所有4个驱动器上,并在每个驱动器上占用1.25MB,因为它比主条要大。

如果文件大小非常小,就像在您的情况下一样,剩下的条将包含零(0x00)。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1043835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档