First round of client-side support for node-local storage "slices".
Supports the three coarse-grained placements we decided on: "SYSVOL" is special. You can declare a single blockstore with this placement and it will create a "native" (ufs/ext) filesystem on the 4th partition of the boot disk. This is how you create an extra storage partition that can be captured in a custom image. We don't use a volume manager here because imagezip doesn't recognize any of them (lvm, zfs, vinum). "ANY" coalesces all "available" storage from all disks into a logical volume manager pool and dishes out storage from that for individual blockstores. Typically this would include, the 4th partition of the boot disk (if not in use) and the second hard drive. If the machine has more than 2 drives, it will include all the extra drives. "NONSYSVOL" coalesces all "available" storage that is NOT on the boot disk into a logical volume manager pool and dishes out storage from that for individual blockstores. This case is if you want to avoid interfere with the system disk. Only implemented on FreeBSD 8/9 with "vinum" right now. It only creates "concat" (JBOD) volumes right now. This stuff will probably get split out into its own perl module(s) at some point, as it is getting large. Next up is LVM on Linux and then maybe ZFS on Freebsd.
Showing with 1114 additions and 96 deletions