if( len(INSTALL_BLOCK_DEVICES) == 0 ):
raise ValueError, "INSTALL_BLOCK_DEVICES is empty"
- ROOT_SIZE= vars["ROOT_SIZE"]
+ # use vs_ROOT_SIZE or lxc_ROOT_SIZE as appropriate
+ varname=vars['virt']+"_ROOT_SIZE"
+ ROOT_SIZE= vars[varname]
if ROOT_SIZE == "" or ROOT_SIZE == 0:
raise ValueError, "ROOT_SIZE invalid"
# create swap logical volume
utils.sysexec( "lvcreate -L%s -nswap planetlab" % SWAP_SIZE, log )
- # create root logical volume
- utils.sysexec( "lvcreate -L%s -nroot planetlab" % ROOT_SIZE, log )
-
- if vars['NODE_MODEL_OPTIONS'] & ModelOptions.RAWDISK and VSERVERS_SIZE != "-1":
- utils.sysexec( "lvcreate -L%s -nvservers planetlab" % VSERVERS_SIZE, log )
+ # check if we want a separate partition for VMs
+ one_partition = vars['ONE_PARTITION']=='1'
+ if (one_partition):
remaining_extents= get_remaining_extents_on_vg( vars, log )
- utils.sysexec( "lvcreate -l%s -nrawdisk planetlab" % remaining_extents, log )
+ utils.sysexec( "lvcreate -l%s -nroot planetlab" % remaining_extents, log )
else:
- # create vservers logical volume with all remaining space
- # first, we need to get the number of remaining extents we can use
- remaining_extents= get_remaining_extents_on_vg( vars, log )
-
- utils.sysexec( "lvcreate -l%s -nvservers planetlab" % remaining_extents, log )
+ utils.sysexec( "lvcreate -L%s -nroot planetlab" % ROOT_SIZE, log )
+ if vars['NODE_MODEL_OPTIONS'] & ModelOptions.RAWDISK and VSERVERS_SIZE != "-1":
+ utils.sysexec( "lvcreate -L%s -nvservers planetlab" % VSERVERS_SIZE, log )
+ remaining_extents= get_remaining_extents_on_vg( vars, log )
+ utils.sysexec( "lvcreate -l%s -nrawdisk planetlab" % remaining_extents, log )
+ else:
+ # create vservers logical volume with all remaining space
+ # first, we need to get the number of remaining extents we can use
+ remaining_extents= get_remaining_extents_on_vg( vars, log )
+ utils.sysexec( "lvcreate -l%s -nvservers planetlab" % remaining_extents, log )
# activate volume group (should already be active)
#utils.sysexec( TEMP_PATH + "vgchange -ay planetlab", log )
# reserved-blocks-percentages
filesystems = {"root":5,"vservers":0}
- # make the file systems
- for fs in filesystems.keys():
- # get the reserved blocks percentage
- rbp = filesystems[fs]
- devname = PARTITIONS[fs]
+ # ROOT filesystem is always with ext2
+ fs = 'root'
+ rbp = filesystems[fs]
+ devname = PARTITIONS[fs]
+ log.write("formatting %s partition (%s)%s.\n" % (fs,devname,txt))
+ utils.sysexec( "mkfs.ext2 -q %s -m %d -j %s" % (option,rbp,devname), log )
+ # disable time/count based filesystems checks
+ utils.sysexec_noerr( "tune2fs -c -1 -i 0 %s" % devname, log)
+
+ # VSERVER filesystem with btrfs to support snapshoting and stuff
+ fs = 'vservers'
+ rbp = filesystems[fs]
+ devname = PARTITIONS[fs]
+ if vars['virt']=='vs':
log.write("formatting %s partition (%s)%s.\n" % (fs,devname,txt))
utils.sysexec( "mkfs.ext2 -q %s -m %d -j %s" % (option,rbp,devname), log )
-
- # disable time/count based filesystems checks
- for filesystem in ("root","vservers"):
- utils.sysexec_noerr( "tune2fs -c -1 -i 0 %s" % PARTITIONS[filesystem], log)
+ # disable time/count based filesystems checks
+ utils.sysexec_noerr( "tune2fs -c -1 -i 0 %s" % devname, log)
+ elif (not one_partition):
+ log.write("formatting %s btrfs partition (%s).\n" % (fs,devname))
+ # early BootCD's seem to come with a version of mkfs.btrfs that does not support -f
+ # let's check for that before invoking it
+ mkfs="mkfs.btrfs"
+ if os.system("mkfs.btrfs --help 2>&1 | grep force")==0:
+ mkfs+=" -f"
+ mkfs+=" %s"%devname
+ utils.sysexec( mkfs, log )
+ # as of 2013/02 it looks like there's not yet an option to set fsck frequency with btrfs
# save the list of block devices in the log
log.write( "Block devices used (in lvm): %s\n" % repr(used_devices))