DESCRIPTION
The filesystems component manages the filesystems on a node. It is able to create and remove blockdevices without restarting or re-installing.
These filesystems will be later mounted/unmounted, and added/removed
from /etc/fstab
, using fstab.
The component doesn't provide any special resources at the moment. It
just watches for changes on /system/filesystems
and /system/blockdevices
and creates new filesystems, if needed.
A blockdevice is useful only for its ability to hold a
filesystem. Blockdevices with no filesystems associated will not be
created. If you want any such device, create a filesystem with
"type"="none"
and "mount"=false
.
Note: It will also remove filesystems and blockdevices that are not listed on the profile (or have been removed).
Examples
We will define a software RAID 1 composed of three disks, one volume
group named Springfield on it, and two logical volumes (Simpsons and
Flanders) on it. They will be mounted on /Evergreen_Terrace/742
and
/Evergreen_Terrace/740
, respectively.
This is how the block devices definition looks like:
"/system/blockdevices" = nlist (
"physical_devs", nlist (
"hda", nlist ("label", "none"),
"hdb", nlist ("label", "none"),
"hdc", nlist ("label", "none")
),
# No partitions here
"md", nlist (
"md0", nlist (
"device_list", list (
"physical_devs/hda",
"physical_devs/hdb",
"physical_devs/hdc"
),
"raid_level", "RAID1",
"stripe_size", 64
),
),
"volume_groups", nlist (
"Springfield", nlist (
"device_list", list ("md/md0")
),
),
"logical_volumes", nlist (
"Simpsons", nlist (
"size", 5*GB,
"volume_group", "Springfield"
),
"Flanders", nlist (
"size", 4*GB,
"volume_group", "Springfield"
)
)
);
And then, we can define the filesystems:
"/system/filesystems" = list (
nlist (
"mountpoint", "/EverGreenTerrace/740",
"block_device", "logical_volumes/Flanders",
"mount", true,
"mountopts", "defaults",
"type", "ext2", # God saves from crashes, you know
"freq", 0,
"pass", 0,
"format", false,
"preserve", true
),
nlist (
"mountpoint", "/EverGreenTerrace/742",
"block_device", "logical_volumes/Simpsons",
"mount", true,
"mountopts", "defaults",
"type", "xfs", # Lisa's on charge!
"freq", 0,
"pass", 0,
"format", false,
"preserve", true
),
);