GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo cambiar el tamaño/expandir un volumen Btrfs/sistema de archivos

Es una tarea común cambiar el tamaño/expandir el sistema de archivos btrfs, ya que btrfs se usa ampliamente en CentOS/RHEL 7 y también como controlador de almacenamiento back-end de Docker. Esta publicación ilustra 2 procedimientos comunes para expandir un volumen raíz btrfs:

  1. Expandir para utilizar el espacio disponible en el disco original
  2. Agregar un nuevo disco en el mismo volumen btrfs
Nota :Estos procedimientos son riesgosos debido a posibles errores cometidos al cambiar las particiones existentes o cortes de energía inesperados durante la operación de equilibrio de btrfs, asegúrese de que sus datos/sistema tengan una copia de seguridad utilizable más reciente.

1. Cambiar el tamaño de la partición para usar el espacio disponible en el disco original

1. Verifique el espacio de su disco y el tamaño de la partición actual con fdisk o parted si su disco tiene más de 2 terabyes:

# 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 no admite el cambio de tamaño de la partición, por lo que debe eliminar la partición anterior que desea cambiar y crear una nueva.

# 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. Ahora vamos a crear una nueva partición.

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. Verifique la partición recién creada usando "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. Debe informar al kernel de Linux el cambio que realizó en /dev/xvda usando el comando "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. Como se está utilizando el sistema de archivos raíz, debe reiniciar el sistema operativo para que el kernel vea el cambio. Si no es un sistema de archivos raíz, puede omitir este paso.

# shutdown -r now

Expandiendo el sistema de archivos btfrs

1. Ahora puede expandir el sistema de archivos raíz btrfs.

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

2. Verifique el nuevo tamaño del sistema de archivos en la salida del comando "df -h".

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

También puede usar todo el espacio en el disco si lo desea. Use la opción "max" con el comando "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. Agregue un nuevo disco al volumen btrfs

1. Puede agregar un nuevo disco al sistema presentando un nuevo LUN o adjuntando un nuevo disco virtual si está ejecutando una máquina virtual. Es posible que deba ejecutar el siguiente script para escanear el nuevo LUN/disco.

# rescan-scsi-bus.sh -a

o reinicie el sistema para que el nuevo disco sea visible para el sistema operativo,

2. Verifique que el sistema operativo pueda ver el disco nuevo usando los comandos “sblk -f” o “fdisk -l”. Por ejemplo, /dev/xvdb es el disco nuevo para el ejemplo de esta publicación.

# 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. Agregue un nuevo disco /dev/xvdb al volumen raíz

# btrfs device add /dev/xvdb /

4. Distribuya metadatos desde el primer disco /dev/xvda al segundo disco /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. Verifique el nuevo tamaño del sistema de archivos usando "df -h".

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

Puede ver que el sistema de archivos raíz aumentó otros 10 G, que es el tamaño de /dev/xvdb.

Cómo crear y montar el sistema de archivos Btrfs (explicado con ejemplos)


Cent OS
  1. Cómo crear un sistema de archivos en una partición o volumen lógico de Linux

  2. Cómo cambiar el tamaño de las imágenes por línea de comandos en Ubuntu

  3. Cómo convertir sistemas de archivos Ext a Btrfs

  4. Ampliar el tamaño de la partición /boot en el sistema de archivos XFS (CentOS/RHEL 7)

  5. Cómo convertir un Volumen a Volumen Stripe (RAID0) en LVM

Cómo aumentar el tamaño de intercambio en RHEL 8 / CentOS 8

Cómo cambiar el tamaño de un volumen lógico con 5 simples comandos LVM

Cómo crear un sistema de archivos XFS

Cómo instalar Oracle Linux (UEK-2) con btrfs como sistema de archivos raíz

Cómo comprobar el uso del sistema de archivos Btrfs y realizar el equilibrio

¿Cómo hacer pruebas del sistema de archivos?