Procédure pour augmenter la taille d'une partition BTRFS à chaud (sans shutdown ni reboot de la VM)

 

Exemple pris pour la procédure : augmentation de la partition BTFRS du serveur SQL Belenos "mysql-gorg-prod-clu" de 100 à 200Gb

 

1- Editer la machine virtuelle et lui ajouter un nouveau disque dur virtuel (via vSphere Client ou vSphere Web Client)

2- Récupérer le nom du périphérique (/dev/xxx) du nouveau disque dur virtuel ;

Se connecter à la machine, puis saisir en SSH : fdisk -l et récupérer le device number du nouveau disque ajouté (ici /dev/sdd, conseil : se fier à la taille)

 3- Récupérer le point de montage de la partition BTRFS ;

ici, la partition BTRFS à augmenter est celle qui correspond au point de montage "/appli/mysql/mysql-gorg-prod-clu" (partition du cluster SQL de prod)

# df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/dm-0 9,1G 258M 8,4G 3% /
udev 10M 0 10M 0% /dev
tmpfs 4,0G 33M 3,9G 1% /run
/dev/dm-1 9,1G 1,5G 7,2G 17% /usr
tmpfs 9,9G 0 9,9G 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 9,9G 0 9,9G 0% /sys/fs/cgroup
/dev/mapper/system-tmp 3,7G 7,6M 3,4G 1% /tmp
/dev/sda1 1,9G 24M 1,7G 2% /boot
/dev/mapper/system-var 9,1G 1,2G 7,4G 14% /var
/dev/sdc 100G 30G 70G 30% /appli/mysql/mysql-gorg-mac-clu
/dev/sdb 100G 78G 22G 79% /appli/mysql/mysql-gorg-prod-clu
nfs-tank.priv.dmz:/mnt/gorg_homes 59G 43G 15G 75% /home
nfs-tank.priv.dmz:/mnt/gorg_opt 39G 23G 16G 60% /opt
tmpfs 2,0G 0 2,0G 0% /run/user/0
tmpfs 2,0G 0 2,0G 0% /run/user/47034

En cas de doute :

[ root@Belenos3 ] (11:36:34:!502) ~
# btrfs filesystem show
Label: none uuid: e553c9a0-0be2-465b-8df4-848705b17e4e
Total devices 1 FS bytes used 29.00GiB
devid 1 size 100.00GiB used 50.00GiB path /dev/sdc
Label: none uuid: b7dbb794-f4da-41f6-910b-f3f62a1434ad
Total devices 1 FS bytes used 76.78GiB
devid 1 size 100.00GiB used 100.00GiB path /dev/sdb
Btrfs v3.17

4- Ajouter le nouveau disque dur virtuel sur la partition BTRFS existante montée sur /appli/mysql/mysql-gorg-prod-clu ;

 btrfs device add /dev/sdd /appli/mysql/mysql-gorg-prod-clu

5- Redistribuer le filesytem sur tous les volumes dispo

btrfs filesystem balance /appli/mysql/mysql-gorg-prod-clu

6- Vérifier ;

[ root@Belenos3 ] (14:24:50:!506) ~
# btrfs filesystem show
Label: none uuid: e553c9a0-0be2-465b-8df4-848705b17e4e
Total devices 1 FS bytes used 29.00GiB
devid 1 size 100.00GiB used 50.00GiB path /dev/sdc
Label: none uuid: b7dbb794-f4da-41f6-910b-f3f62a1434ad
Total devices 2 FS bytes used 77.54GiB
devid 1 size 100.00GiB used 76.04GiB path /dev/sdb
devid 2 size 200.00GiB used 20.00GiB path /dev/sdd
Btrfs v3.17
[ root@Belenos3 ] (14:25:27:!507) ~
# df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/dm-0 9,1G 258M 8,4G 3% /
udev 10M 0 10M 0% /dev
tmpfs 4,0G 8,7M 4,0G 1% /run
/dev/dm-1 9,1G 1,5G 7,2G 17% /usr
tmpfs 9,9G 0 9,9G 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 9,9G 0 9,9G 0% /sys/fs/cgroup
/dev/mapper/system-tmp 3,7G 7,6M 3,4G 1% /tmp
/dev/sda1 1,9G 24M 1,7G 2% /boot
/dev/mapper/system-var 9,1G 1,2G 7,4G 14% /var
/dev/sdc 100G 30G 70G 30% /appli/mysql/mysql-gorg-mac-clu
/dev/sdb 300G 78G 221G 27% /appli/mysql/mysql-gorg-prod-clu
nfs-tank.priv.dmz:/mnt/gorg_opt 39G 23G 16G 60% /opt
nfs-tank.priv.dmz:/mnt/gorg_homes 59G 43G 15G 75% /home
tmpfs 2,0G 0 2,0G 0% /run/user/0

7- Ajouter le nouveau disque au /etc/fstab/ pour montage automatique lors du prochain reboot :

[ root@Belenos3 ] (14:25:41:!508) ~
# cat /etc/fstab
# HEADER: This file was autogenerated at 2016-09-03 13:39:31 +0200
# HEADER: by puppet. While it can still be managed manually, it
# HEADER: is definitely not recommended.
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/system-root / ext4 errors=remount-ro 0 1
# /boot was on /dev/sda1 during installation
UUID=f2f158e9-bed6-4e29-9e08-e3e9c5b54fd9 /boot ext4 defaults 0 2
nfs-tank.priv.dmz:/mnt/gorg_homes /home nfs nfsvers=3,nolock,cto 0 0
/dev/mapper/system-tmp /tmp ext4 defaults 0 2
/dev/mapper/system-usr /usr ext4 defaults 0 2
/dev/mapper/system-var /var ext4 defaults 0 2
# swap was on /dev/sda2 during installation
UUID=6459db7a-554f-4e80-8aad-9313ff237654 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/sdb /appli/mysql/mysql-gorg-prod-clu btrfs defaults 0 2
/dev/sdc /appli/mysql/mysql-gorg-mac-clu btrfs defaults 0 2
nfs-tank.priv.dmz:/mnt/gorg_opt /opt nfs nfsvers=3,nolock,cto 0 0

Il faut dans notre exemple ajouter une ligne pour /dev/sdd sous la ligne /dev/sdc

/dev/sdd /appli/mysql/mysql-gorg-prod-clu btrfs defaults 0 2
  • Aucune étiquette