-rule_disk_part () { # DESCRIPTION: partitionage du disque de la VM
- # NOTE: on fait le choix de ne pas utiliser LVM sur la machine virtuelle car :
- # - pour l'extension de mémoire:
- # 1. on créera une nouvelle partition sur le LVM de l'hôte
- # 2. on l'ajoutera comme un disque supplémentaire dans /etc/xen/$vm_fqdn.cfg
- # 3. on le montera sur /home2 en pensant à changer DHOME=/home2 dans /etc/adduser.conf
- # - pour la sauvegarde: LVM snapshoot est trop
- # 1. sauvegarde au niveau applicatif (pgdump, mysqldump)
- # 2. sauvegarde des configurations (etckeeper, git)
- # 3. sauvegarde incrémentale et chiffrée des autres fichiers (duplicity)
- sudo sfdisk -d $vm_dev_disk <<-EOF
- # partition table of $vm_dev_disk
- unit: sectors
-
- ${vm_dev_disk}1 : start= 63, size= 497952, Id=83, bootable
- ${vm_dev_disk}2 : start= 498015, size=418927005, Id= 5
- ${vm_dev_disk}3 : start= 0, size= 0, Id= 0
- ${vm_dev_disk}4 : start= 0, size= 0, Id= 0
- ${vm_dev_disk}5 : start= 498078, size= 1959867, Id=82
- ${vm_dev_disk}6 : start= 2458008, size= 29302497, Id=83
- ${vm_dev_disk}7 : start= 31760568, size= 9767457, Id=83
- ${vm_dev_disk}8 : start= 41528088, size=377896932, Id=83
- EOF
+
+case $vm_use_lvm in
+(no)
+ readonly vm_dev_disk_swap="${vm_dev_disk}5"
+ readonly vm_dev_disk_root="${vm_dev_disk}6"
+ readonly vm_dev_disk_var="${vm_dev_disk}7"
+ readonly vm_dev_disk_home="${vm_dev_disk}8"
+ ;;
+(yes)
+ readonly vm_lvm_pv="${vm_dev_disk}2"
+ readonly vm_lvm_vg=$vm
+ readonly vm_lvm_dev=$(printf %s $vm_lvm_vg | sed -e 's/-/--/g')
+ readonly vm_lvm_lv=$vm
+ readonly vm_dev_disk_swap=/dev/mapper/$vm_lvm_dev-${vm_lvm_lv}_swap
+ readonly vm_dev_disk_root=/dev/mapper/$vm_lvm_dev-${vm_lvm_lv}_root
+ readonly vm_dev_disk_var=/dev/mapper/$vm_lvm_dev-${vm_lvm_lv}_var
+ readonly vm_dev_disk_home=/dev/mapper/$vm_lvm_dev-${vm_lvm_lv}home
+ ;;
+(*)
+ exit 1;;
+ esac
+
+rule_disk_format () { # DESCRIPTION: partitionnage du disque de la VM
+ case $vm_use_lvm in
+ (no)
+ sudo sfdisk $vm_dev_disk <<-EOF
+ # partition table of $vm_dev_disk
+ unit: sectors
+
+ ${vm_dev_disk}1 : start= 63, size= 497952, Id=83, bootable
+ ${vm_dev_disk}2 : start= 498015, size=418927005, Id= 5
+ ${vm_dev_disk}3 : start= 0, size= 0, Id= 0
+ ${vm_dev_disk}4 : start= 0, size= 0, Id= 0
+ ${vm_dev_disk}5 : start= 498078, size= 1959867, Id=82
+ ${vm_dev_disk}6 : start= 2458008, size= 29302497, Id=83
+ ${vm_dev_disk}7 : start= 31760568, size= 9767457, Id=83
+ ${vm_dev_disk}8 : start= 41528088, size=377896932, Id=83
+ EOF
+ ;;
+ (yes)
+ sudo sfdisk $vm_dev_disk <<-EOF
+ # partition table of $vm_dev_disk
+ unit: sectors
+
+ ${vm_dev_disk}1 : start= 63, size= 497952, Id=83, bootable
+ ${vm_dev_disk}2 : start= 498015, size=418927005, Id=8E
+ EOF
+ ;;
+ (*) exit 1;;
+ esac
+ sudo partprobe $vm_dev_disk
+ }
+
+rule_part_lvm_format () {
+ rule_part_lvm_umount
+ ! sudo vgs | grep -q "^ $vm_lvm_vg " ||
+ sudo vgremove $vm_lvm_vg
+ sudo pvcreate --dataalignment 512k $vm_lvm_pv
+ sudo vgcreate --dataalignment 512k $vm_lvm_vg $vm_lvm_pv
+ sudo lvcreate --contiguous y -n ${vm_lvm_lv}_swap -L 1G $vm_lvm_vg
+ sudo lvcreate --contiguous y -n ${vm_lvm_lv}_root -L 15G $vm_lvm_vg
+ sudo lvcreate --contiguous y -n ${vm_lvm_lv}_var -L 5G $vm_lvm_vg
+ sudo lvcreate --contiguous y -n ${vm_lvm_lv}_home -l 99%FREE $vm_lvm_vg
+ rule_part_lvm_umount
+ }
+rule_part_lvm_mount () {
+ sudo vgchange -a y $vm_lvm_vg
+ sudo lvchange -a y $vm_lvm_lv
+ }
+rule_part_lvm_umount () {
+ rule_part_root_umount
+ rule_part_var_umount
+ rule_part_home_umount
+ if sudo vgs | grep -q "^ $vm_lvm_vg "
+ then
+ sudo lvchange -a n $vm_lvm_vg
+ sudo vgchange -a n $vm_lvm_vg
+ fi