Intel C220/C600 RAID 在硬盘上的数据结构-纯干货
以4盘6TB 组建的RAID 5为例
阵列扇区在磁盘上的分布结构
一些计算方法
以4盘6TB 组建的RAID 5为例
因为自己的4盘阵列坏了,数据恢复需要,就简单研究了一下磁盘阵列写在磁盘上的数据结构。 基础信息如下:
单盘6TB,每逻辑扇区512Byte,每盘扇区数11721045168个,扇区编号0–11721045167。
磁盘A、B、C、D按顺序,以Stripe大小为128KB组成4盘RAID 5阵列后,100%空间组建卷Volume000(在操作系统中会被识别为是一个“物理磁盘”),卷空间大小为16.4TB;每逻辑扇区512Bytes,扇区总数35163121664个,扇区编号0–35163121663。
在Windows下对Volume000进行分区,只创建一个16.4TB的简单卷,并格式化成NTFS文件格式。
阵列扇区在磁盘上的分布结构
使用WinHex对磁盘A、B、C、D上的扇区数据进行分析,得到如下磁盘上的阵列数据(DDF:Disk Data Format)及扇区的分布结构。
每个物理磁盘的扇区0–11721040639扇区被划入阵列中,其中磁盘D的扇区11721040384–11721040639虽然纳在阵列内(最后一个条带,计算校验的时候会带上),但是实际上不在Volume000的读写范围内。
每个物理磁盘的扇区11721040640–11721045167均被保留(即组成阵列后,此部分扇区是操作系统不可见的,只有阵列卡自己能操作)。
每个物理磁盘的扇区11721045007–11721045166被写入阵列信息(DDF),其中扇区11721045166中的数据最重要,包括了组成磁盘的序列号以及创建的Volume000的信息。每个物理磁盘上这些扇区的数据都是一样的。
创建阵列的时候选择的Stripe大小为128KB,实际上是指组成阵列的(N+1)个磁盘,每个磁盘的Stripe大小为128KB,即阵列中每个磁盘均各自拿出256个扇