Configuring RAID on Flatcar Container Linux
Flatcar Container Linux supports composite disk devices such as RAID arrays. If the root filesystem is placed on a composite device, special care must be taken to ensure Flatcar Container Linux can find and mount the filesystem early in the boot process. GPT partition entries have a partition type GUID that specifies what type of partition it is (e.g. Linux filesystem); Flatcar Container Linux uses special type GUIDs to indicate that a partition is a component of a composite device containing the root filesystem.
Root on RAID
RAID enables multiple disks to be combined into a single logical disk to increase reliability and performance. To create a software RAID array when provisioning a Flatcar Container Linux system, use the
storage.raid section of a
Container Linux Config
. RAID components containing the root filesystem must have the type GUID
be9067b9-ea49-4f15-b4f6-f36f8c9e1818. All other RAID arrays must not have that GUID; the Linux RAID partition GUID
a19d880f-05fc-4d3b-a006-743f0f84911e is recommended instead. See the
for more information on setting up RAID for data volumes.
To place the root filesystem on a RAID array:
- Create the component partitions used in the RAID array with the type GUID
- Create a RAID array from the component partitions.
- Create a filesystem labeled
ROOTon the RAID array.
- Remove the
ROOTlabel from the original root filesystem.
Example Container Linux Config
This Container Linux Config creates partitions on
/dev/vdc that fill each disk, creates a RAID array named
root_array from those partitions, and finally creates the root filesystem on the array. To prevent inadvertent booting from the
original root filesystem
/dev/vda9 is reformatted with a blank ext4 filesystem labeled
Warning: This will erase both
storage: disks: - device: /dev/vdb wipe_table: true partitions: - label: root1 type_guid: be9067b9-ea49-4f15-b4f6-f36f8c9e1818 - device: /dev/vdc wipe_table: true partitions: - label: root2 type_guid: be9067b9-ea49-4f15-b4f6-f36f8c9e1818 raid: - name: "root_array" level: "raid1" devices: - "/dev/vdb1" - "/dev/vdc1" filesystems: - name: "ROOT" mount: device: "/dev/md/root_array" format: "ext4" label: "ROOT" - name: "unused" mount: device: "/dev/vda9" format: "ext4" wipe_filesystem: true label: "unused"
- Other system partitions, such as
EFI-SYSTEM, cannot be placed on a software RAID array.
- RAID components containing the root filesystem must be partitions on a GPT-partitioned device, not whole-disk devices or partitions on an MBR-partitioned disk.
/etc/mdadm.confcannot be used to configure a RAID array containing the root filesystem.
- Since Ignition cannot modify the type GUID of existing partitions, the default
ROOTpartition cannot be reused as a component of a RAID array. A future version of Ignition will support resizing the
ROOTpartition and changing its type GUID, allowing it to be used as part of a RAID array.