我很高兴了解数据中心,然后我遇到了 RAID 系统。
我的问题可能很愚蠢,请耐心等待。
一般在任何 RAID 级别 > 0,例如:RAID 5 操作系统如何知道文件块位于哪个磁盘和哪个块中?
对于给定的文件将存储哪些元数据?
如果它确实存储了有关文件的元数据..那么这些元数据物理存储在哪里(以及存储在哪个磁盘上)?
正如他们所说,RAID 5 可以支持 1 个磁盘故障,但如果包含元数据的磁盘发生故障,那么一切都浪费了,对吗?
我想知道存储在 RAID 5 中的文件的生命周期、更新工作以及如何删除文件?
每个块是否包含单个文件或多个文件的信息?
我是否可以得出这样的结论:随着 RAID 级别的增加,读取并行性会增加而写入性能会下降?
答案1
对于给定的文件将存储哪些元数据?
RAID 与文件元数据。它纯粹是一个磁盘安排,这样就只是将磁盘地址转换为物理块。
文件元数据纯粹是文件系统的事情,文件系统位于磁盘分区之上。文件和磁盘块之间有几层转换。就磁盘控制器(RAID 控制器)而言,当它获得与“文件”相关的数据时,它已经被文件系统和操作系统逻辑磁盘驱动程序简化为“将此数据块写入磁盘块编号 X”。
RAID 将以精确的逻辑方式排列磁盘。控制器知道磁盘数量、条带大小和磁盘条带顺序等详细信息,并且根据这些详细信息,任何逻辑操作系统传递给它的块地址可以被计算并映射到“磁盘 2,位置 Y”等等。
正如他们所说,RAID 5 可以支持 1 个磁盘故障,但如果包含元数据的磁盘发生故障,那么一切都浪费了,对吗?
不是。RAID 5 包含 1 个磁盘(数据量),它是其他磁盘的逻辑和。您始终拥有所有数据的 1 个完整副本加元数据等于其他 3 个磁盘的总和。
Disk1 block + disk2 block + disk3 block = redundant (disk4) block
如果一个驱动器发生故障,您可以重新安排总和以提供
Disk1 block + disk2 block + disk4 (redundant) block = disk3 block
因此,您可以在磁盘上获得一定程度的容错能力。如果任何一个磁盘发生故障,您仍然可以访问足够的数据来替换该磁盘。希望您在另一个磁盘发生故障之前更换该磁盘,然后您可以重建其丢失的数据以完全恢复容错能力。
冗余块背后的数学知识值得写一篇文章,我建议你阅读维基百科关于 RAID 的页面数组来更好地了解它。
我想知道存储在 RAID 5 中的文件的生命周期、更新工作以及如何删除文件?
每个块是否包含单个文件或多个文件的信息?
文件是文件系统构造,由操作系统处理。RAID 完全与磁盘有关,对文件一无所知。
磁盘块可以包含任意数量的文件,将数据放入磁盘块中完全取决于操作系统。
RAID 控制器只是向操作系统提供一个磁盘接口,操作系统将块写入其中。这些块中的内容由操作系统决定。
我是否可以得出这样的结论:随着 RAID 级别的增加,读取并行性会增加而写入性能会下降?
是的,在一定程度上,这取决于所使用的 RAID 级别,写入性能不一定会随着读取性能的提高而下降。根据任务的不同,写入性能可能是读取性能的 3/4(比如说)。
从维基百科
与 RAID 4 相比,RAID 5 的分布式奇偶校验可平衡所有 RAID 成员之间专用奇偶校验磁盘的压力。此外,由于所有 RAID 成员都参与处理写入请求,因此写入性能得到提高。虽然它不如条带化 (RAID 0) 设置那么高效,因为仍然必须写入奇偶校验,但这不再是瓶颈。
由于奇偶校验计算是在整个条带上执行的,因此对阵列的细微更改都会经历写入放大:在最坏的情况下,当需要写入单个逻辑扇区时,需要读取原始扇区和相应的奇偶校验扇区,从奇偶校验中删除原始数据,将新数据计算到奇偶校验中,并写入新数据扇区和新奇偶校验扇区。