GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment redimensionner/étendre un volume/système de fichiers Btrfs

Il est courant de redimensionner/étendre le système de fichiers btrfs car btrfs est largement utilisé dans CentOS/RHEL 7 et également en tant que pilote de stockage backend de Docker. Cet article illustre 2 procédures courantes pour étendre un volume racine btrfs :

  1. Développer pour utiliser l'espace disponible sur le disque d'origine
  2. Ajouter un nouveau disque dans le même volume btrfs
Remarque :Ces procédures sont risquées en raison d'éventuelles erreurs commises lors de la modification des partitions existantes ou de pannes de courant inattendues pendant l'opération d'équilibrage btrfs, veuillez vous assurer que vos données/système disposent d'une SAUVEGARDE utilisable la plus récente.

1. Redimensionner la partition pour utiliser l'espace disponible sur le disque d'origine

1. Vérifiez votre espace disque et la taille de la partition actuelle avec fdisk ou parted si votre disque est supérieur à 2 térabyes :

# fdisk -l /dev/xvda

Disk /dev/xvda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00087895

Device Boot Start End Blocks Id System
/dev/xvda1 * 2048 1030143 514048 83 Linux
/dev/xvda2 1030144 9418751 4194304 82 Linux swap / Solaris
/dev/xvda3 9418752 31457279 11019264 83 Linux
[root@host0 ~]# lsblk -f /dev/xvda
NAME FSTYPE LABEL UUID MOUNTPOINT
xvda
├─xvda1 xfs /boot 049e257e-25b1-4f46-80aa-ffaa27a21022 /boot
├─xvda2 swap SWAP-VM 0406d7df-68b6-47cb-8ea9-195ac7ef7497 [SWAP]
└─xvda3 btrfs btr_pool 1e72a30b-d59d-458f-b04f-59bf8bdec35d /

2. fdisk ne prend pas en charge le redimensionnement de la partition, vous devez donc supprimer l'ancienne partition que vous souhaitez modifier et en créer une nouvelle.

# fdisk /dev/xvda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p

Disk /dev/xvda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00087895

Device Boot Start End Blocks Id System
/dev/xvda1 * 2048 1030143 514048 83 Linux
/dev/xvda2 1030144 9418751 4194304 82 Linux swap / Solaris
/dev/xvda3 9418752 31457279 11019264 83 Linux

Command (m for help): d
Partition number (1-3, default 3): 3
Partition 3 is deleted

3. Créons maintenant une nouvelle partition.

Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3): 3
First sector (9418752-104857599, default 9418752):
Using default value 9418752
Last sector, +sectors or +size{K,M,G} (9418752-104857599, default 104857599):
Using default value 104857599
Partition 3 of type Linux and of size 45.5 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

4. Vérifiez la partition nouvellement créée à l'aide de "fdisk -l".

# fdisk -l /dev/xvda

Disk /dev/xvda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00087895

Device Boot Start End Blocks Id System
/dev/xvda1 * 2048 1030143 514048 83 Linux
/dev/xvda2 1030144 9418751 4194304 82 Linux swap / Solaris
/dev/xvda3 9418752 104857599 47719424 83 Linux

5. Vous devez informer le noyau Linux de la modification que vous avez apportée à /dev/xvda à l'aide de la commande "partprobe" :

# partprobe
Error: Partition(s) 3 on /dev/xvda have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.

6. Comme c'est le système de fichiers racine qui est utilisé, vous devez redémarrer le système d'exploitation pour permettre au noyau de voir le changement. S'il ne s'agit pas d'un système de fichiers racine, vous pouvez ignorer cette étape.

# shutdown -r now

Étendre le système de fichiers btfrs

1. Vous pouvez maintenant développer le système de fichiers racine btrfs.

# btrfs filesystem resize +10g /
Resize '/' of '+10g'

2. Vérifiez la nouvelle taille du système de fichiers dans la sortie de la commande "df -h".

# df -h /
Filesystem    Size    Used     Avail    Use%     Mounted on
/dev/xvda3    21G     2.5G     17G      14%      /

Vous pouvez également utiliser tout l'espace sur le disque si vous le souhaitez. Utilisez l'option "max" avec la commande "btrfs filesystem resize".

# btrfs filesystem resize max /
Resize '/' of 'max'
# df -h /
Filesystem    Size    Used     Avail    Use%     Mounted on
/dev/xvda3    46G     2.5G     42G      6%      /

2. Ajouter un nouveau disque au volume btrfs

1. Vous pouvez ajouter un nouveau disque au système en présentant un nouveau LUN ou en attachant un nouveau disque virtuel si vous utilisez une machine virtuelle. Vous devrez peut-être exécuter le script ci-dessous pour analyser le nouveau LUN/disque.

# rescan-scsi-bus.sh -a

ou redémarrez le système pour rendre le nouveau disque visible au système d'exploitation,

2. Vérifiez que le nouveau disque peut être vu par le système d'exploitation à l'aide des commandes « sblk -f » ou « fdisk -l ». Par exemple, /dev/xvdb est le nouveau disque pour l'exemple de cet article.

# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
xvda
├─xvda1 xfs /boot 049e257e-25b1-4f46-80aa-ffaa27a21022 /boot
├─xvda2 swap SWAP-VM 0406d7df-68b6-47cb-8ea9-195ac7ef7497 [SWAP]
└─xvda3 btrfs btr_pool 1e72a30b-d59d-458f-b04f-59bf8bdec35d /
xvdb
# fdisk -l /dev/xvdb

Disk /dev/xvdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

3. Ajoutez le nouveau disque /dev/xvdb au volume racine

# btrfs device add /dev/xvdb /

4. Distribuez les métadonnées du premier disque /dev/xvda au deuxième disque /dev/xvdb.

# btrfs filesystem balance /
WARNING:

Full balance without filters requested. This operation is very
intense and takes potentially very long. It is recommended to
use the balance filters to narrow down the balanced data.
Use 'btrfs balance start --full-balance' option to skip this
warning. The operation will start in 10 seconds.
Use Ctrl-C to stop it.
10 9 8 7 6 5 4 3 2 1
Starting balance without any filters.
Done, had to relocate 9 out of 9 chunks

5. Vérifiez la nouvelle taille du système de fichiers en utilisant "df -h".

# df -h /
Filesystem    Size    Used    Avail    Use%    Mounted on
/dev/xvda3    56G     2.5G    52G      5%      /

Vous pouvez voir que le système de fichiers racine est augmenté de 10 Go supplémentaires, ce qui correspond à la taille de /dev/xvdb.

Comment créer et monter le système de fichiers Btrfs (expliqué avec des exemples)


Cent OS
  1. Comment redimensionner des images par ligne de commande dans Ubuntu

  2. Comment redimensionner une partition LVM à l'intérieur d'une partition étendue

  3. Comment convertir des systèmes de fichiers Ext en Btrfs

  4. Étendre la taille de la partition /boot sur le système de fichiers XFS (CentOS/RHEL 7)

  5. comment faire des tests de système de fichiers?

Comment augmenter la taille d'échange sur RHEL 8 / CentOS 8

Comment redimensionner un volume logique avec 5 commandes LVM simples

Comment créer un système de fichiers XFS

Comment installer Oracle Linux (UEK-2) avec btrfs comme système de fichiers racine

Comment surveiller le raid du système de fichiers BTRFS pour les erreurs ?

Comment redimensionner le système de fichiers principal