The RAID Superblock

Starting with version 0.36 of the md driver (kernel version 2.0.35), each disk in an array includes a superblock that describes array properties and stores them on each member disk. The superblock consists of a 4K block of data written to member disks when the array is initialized for the first time. The RAID superblock contains metadata about the array, including its RAID level and member disks. The superblock also contains the UUID I mentioned earlier. It might be helpful to think of the superblock as an on-disk representation of an array’s entry in /etc/raidtab. However, keep in mind that the superblock is part of the md driver and is not dependent on user-space utilities. The superblock also allows the kernel to automatically start arrays when the system boots.

The superblock is written near the end of each member disk or partition, at the start of the last 64K block. That means that although the superblock is only 4K long, the overhead for an md member disk is at least 64K. In cases in which there isn’t a round number of 64K blocks, you can lose up to 128K worth of disk space for the superblock. So, if there isn’t an even number of 64K blocks on the disk, the superblock is at an offset that is 64K less than the last odd-sized block. On member disks that are the same size, the superblock will reside at the same location for each disk. If member disks have varying sizes (in linear mode, for example) then the superblock won’t be at a uniform location.

New arrays ...

Get Managing RAID on Linux now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.