我知道,在 ext2/3/4 和其他文件系统中,超级块的副本会存储在整个磁盘中,以防主超级块损坏(https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout)。
使用 md-raid(软件 raid)时,超级块存储在磁盘的开头或结尾,具体取决于使用的元数据版本(https://raid.wiki.kernel.org/index.php/RAID_superblock_formats#Sub-versions_of_the_version-1_superblock)
颠覆 | 设备上的超级块位置 |
---|---|
0.9 | 在设备末端 |
1.0 | 在设备末端 |
1.1 | 在设备的开始处 |
1.2 | 从设备一开始就支持 4K |
假设磁盘发生故障,并且 md 超级块已损坏。md-raid 是否在磁盘上的任意位置存储了备份超级块?
(我的猜测是“不”,因为这需要 md-raid 和文件系统之间的合作。自从 Linux 添加了 raid 支持以来,文件系统已经取得了长足的进步,因此似乎有人可能已经想出了一种方法来实现这一点)。
答案1
你的猜测只是部分正确:MDRAID 不会在相同的磁盘,但超级块在其他磁盘描述相同的阵列几何形状,在磁盘发生故障时有效地充当备份。
您可以通过检查每个磁盘超级块mdadm -E /dev/your_disk
,而可以通过以下方式转储阵列范围的描述mdadm -D /dev/md_array