Reemplazar discos más pequeños con discos más grandes en Linux

Hola a todos En previsión del inicio de un nuevo grupo del curso de Administrador de Linux, estamos publicando material útil escrito por nuestro estudiante, así como por el mentor del curso, Roman Travin, especialista en soporte técnico de productos corporativos de REG.RU.

Este artículo analizará 2 casos de reemplazo de discos y transferencia de información a discos nuevos más grandes con una mayor expansión de la matriz y el sistema de archivos. El primer caso se referirá al reemplazo de discos con el mismo marcado MBR / MBR o GPT / GPT, el segundo caso se referirá al reemplazo de discos con marcado MBR para discos con una capacidad de más de 2 TB, en los que se requerirá marcado GPT con la partición de arranque de bios. En ambos casos, los discos a los que transferimos datos ya están instalados en el servidor. El sistema de archivos utilizado para la partición raíz es ext4.



Caso 1: Sustitución de unidades más pequeñas por unidades más grandes (hasta 2 TB)


Tarea: Reemplace los discos actuales con discos más grandes (hasta 2 TB) con transferencia de información. En este caso, tenemos 2 discos SSD de 240 GB (RAID-1) con el sistema instalado y 2 discos SATA de 1 TB a los que debe transferir el sistema.

Considere el diseño actual del disco.

[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 223,6G 0 disk ├─sda1 8:1 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sda2 8:2 0 222,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdb 8:16 0 223,6G 0 disk ├─sdb1 8:17 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdb2 8:18 0 222,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdc 8:32 0 931,5G 0 disk sdd 8:48 0 931,5G 0 disk 

Verifique el espacio actual del sistema de archivos utilizado.

 [root@localhost ~]# df -h      % C  devtmpfs 32G 0 32G 0% /dev tmpfs 32G 0 32G 0% /dev/shm tmpfs 32G 9,6M 32G 1% /run tmpfs 32G 0 32G 0% /sys/fs/cgroup /dev/mapper/vg0-root 204G 1,3G 192G 1% / /dev/md126 1007M 120M 837M 13% /boot tmpfs 6,3G 0 6,3G 0% /run/user/0 

El tamaño del sistema de archivos antes de reemplazar los discos es de 204 GB, se utilizan 2 matrices de software md126, que se montan en /boot y md127 , que se usa como el volumen físico para el grupo VG vg0 .

1. Eliminar particiones de disco de matrices


Verifique el estado de la matriz

 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sda1[0] sdb1[1] 1047552 blocks super 1.2 [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sda2[0] sdb2[1] 233206784 blocks super 1.2 [2/2] [UU] bitmap: 0/2 pages [0KB], 65536KB chunk unused devices: <none> 

El sistema usa 2 matrices: md126 (punto de montaje /boot ): consta de las md127 /dev/sda1 y /dev/sdb1 , md127 (LVM para intercambio y la raíz del sistema de archivos): consta de /dev/sda2 y /dev/sdb2 .

Marcamos las particiones del primer disco, que se utilizan en cada matriz, como malas.

 mdadm /dev/md126 --fail /dev/sda1 mdadm /dev/md127 --fail /dev/sda2 

Eliminamos secciones del dispositivo de bloque / dev / sda de las matrices.

 mdadm /dev/md126 --remove /dev/sda1 mdadm /dev/md127 --remove /dev/sda2 

Después de quitar el disco de la matriz, la información sobre los dispositivos de bloque se verá así.

 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 223,6G 0 disk ├─sda1 8:1 0 1G 0 part └─sda2 8:2 0 222,5G 0 part sdb 8:16 0 223,6G 0 disk ├─sdb1 8:17 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdb2 8:18 0 222,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdc 8:32 0 931,5G 0 disk sdd 8:48 0 931,5G 0 disk 

El estado de las matrices después de eliminar discos.

 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sdb1[1] 1047552 blocks super 1.2 [2/1] [_U] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sdb2[1] 233206784 blocks super 1.2 [2/1] [_U] bitmap: 1/2 pages [4KB], 65536KB chunk unused devices: <none> 

2. Copiando la tabla de particiones a un nuevo disco


Puede verificar la tabla de particiones utilizada en el disco con el siguiente comando.

 fdisk -l /dev/sdb | grep 'Disk label type' 

El resultado para el MBR será:

 Disk label type: dos 

para GPT:

 Disk label type: gpt 

Copiar tabla de marcado para MBR:

 sfdisk -d /dev/sdb | sfdisk /dev/sdc 

En este comando, el primero es la unidad desde la que se copia el marcado, el segundo es dónde copiar.

ATENCIÓN : Para GPT, la unidad para copiar el marcado es la primera que se indica, la unidad para copiar el marcado desde la segunda unidad. Si mezcla los discos, el marcado inicialmente saludable se sobrescribirá y destruirá.

Copiando la tabla de marcado para el GPT:

 sgdisk -R /dev/sd /dev/sdb 

Luego, asigne un UUID aleatorio al disco (para GPT).

 sgdisk -G /dev/sdc 

Después de ejecutar el comando, las particiones deben aparecer en el disco /dev/sdc .

 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 223,6G 0 disk ├─sda1 8:1 0 1G 0 part └─sda2 8:2 0 222,5G 0 part sdb 8:16 0 223,6G 0 disk ├─sdb1 8:17 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdb2 8:18 0 222,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdc 8:32 0 931,5G 0 disk ├─sdc1 8:33 0 1G 0 part └─sdc2 8:34 0 222,5G 0 part sdd 8:48 0 931,5G 0 disk 

Si después de la acción realizada, las particiones en el sistema en el disco /dev/sdc no están definidas, entonces ejecutamos el comando para volver a leer la tabla de particiones.

 sfdisk -R /dev/sdc 

Si los discos actuales usan la tabla MBR y la información necesita ser transferida a discos de más de 2 TB, entonces los discos nuevos deberán crear manualmente el marcado GPT usando la partición biosboot. Este caso será considerado en la parte 2 de este artículo.

3. Agregar particiones del nuevo disco a la matriz


Agregue particiones de disco a las matrices correspondientes.

 mdadm /dev/md126 --add /dev/sdc1 mdadm /dev/md127 --add /dev/sdc2 

Verifique que se hayan agregado secciones.

 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 223,6G 0 disk ├─sda1 8:1 0 1G 0 part └─sda2 8:2 0 222,5G 0 part sdb 8:16 0 223,6G 0 disk ├─sdb1 8:17 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdb2 8:18 0 222,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdc 8:32 0 931,5G 0 disk ├─sdc1 8:33 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdc2 8:34 0 222,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdd 8:48 0 931,5G 0 disk 

Después de eso, esperamos la sincronización de las matrices.

 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sdc1[2] sdb1[1] 1047552 blocks super 1.2 [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sdc2[2] sdb2[1] 233206784 blocks super 1.2 [2/1] [_U] [==>..................] recovery = 10.6% (24859136/233206784) finish=29.3min speed=118119K/sec bitmap: 2/2 pages [8KB], 65536KB chunk unused devices: <none> 

Puede monitorear continuamente el proceso de sincronización utilizando la utilidad de watch .

 watch -n 2 cat /proc/mdstat 

La -n especifica a qué intervalos en segundos se debe ejecutar el comando para verificar el progreso.

Repita los pasos 1 a 3 para la siguiente unidad de reemplazo.

Marcamos las particiones del segundo disco, que se utilizan en cada matriz, como malas.

 mdadm /dev/md126 --fail /dev/sdb1 mdadm /dev/md127 --fail /dev/sdb2 

Eliminamos secciones del dispositivo de bloque /dev/sdb de las matrices.

 mdadm /dev/md126 --remove /dev/sdb1 mdadm /dev/md127 --remove /dev/sdb2 

Después de quitar el disco de la matriz, la información sobre los dispositivos de bloque se verá así.

 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 223,6G 0 disk ├─sda1 8:1 0 1G 0 part └─sda2 8:2 0 222,5G 0 part sdb 8:16 0 223,6G 0 disk ├─sdb1 8:17 0 1G 0 part └─sdb2 8:18 0 222,5G 0 part sdc 8:32 0 931,5G 0 disk ├─sdc1 8:33 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdc2 8:34 0 222,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdd 8:48 0 931,5G 0 disk 

El estado de las matrices después de eliminar discos.

 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sdc1[2] 1047552 blocks super 1.2 [2/1] [U_] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sdc2[2] 233206784 blocks super 1.2 [2/1] [U_] bitmap: 1/2 pages [4KB], 65536KB chunk unused devices: <none> 

Copie la tabla de marcado MBR de la unidad /dev/sd a la unidad /dev/sdd .

 sfdisk -d /dev/sd | sfdisk /dev/sdd 

Después de ejecutar el comando, las particiones deben aparecer en la unidad /dev/sdd .

 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 223,6G 0 disk ├─sda1 8:1 0 1G 0 part └─sda2 8:2 0 222,5G 0 part sdb 8:16 0 223,6G 0 disk ├─sdb1 8:17 0 1G 0 part └─sdb2 8:18 0 222,5G 0 part sdc 8:32 0 931,5G 0 disk ├─sdc1 8:33 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdc2 8:34 0 222,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdd 8:48 0 931,5G 0 disk ├─sdd1 8:49 0 1G 0 part └─sdd2 8:50 0 222,5G 0 part 

Agregue particiones de disco a las matrices.

 mdadm /dev/md126 --add /dev/sdd1 mdadm /dev/md127 --add /dev/sdd2 

Verifique que se hayan agregado secciones.

 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 223,6G 0 disk ├─sda1 8:1 0 1G 0 part └─sda2 8:2 0 222,5G 0 part sdb 8:16 0 223,6G 0 disk ├─sdb1 8:17 0 1G 0 part └─sdb2 8:18 0 222,5G 0 part sdc 8:32 0 931,5G 0 disk ├─sdc1 8:33 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdc2 8:34 0 222,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdd 8:48 0 931,5G 0 disk ├─sdd1 8:49 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdd2 8:50 0 222,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] 

Después de eso, esperamos la sincronización de las matrices.

 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sdd1[3] sdc1[2] 1047552 blocks super 1.2 [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sdd2[3] sdc2[2] 233206784 blocks super 1.2 [2/1] [U_] [>....................] recovery = 0.5% (1200000/233206784) finish=35.4min speed=109090K/sec bitmap: 2/2 pages [8KB], 65536KB chunk unused devices: <none> 

5. Instale GRUB en unidades nuevas


Para CentOS:

 grub2-install /dev/sdX 

Para Debian / Ubuntu:

 grub-install /dev/sdX 

donde X es la letra del dispositivo de bloque. En este caso, instale GRUB en /dev/sdc y /dev/sdd .

6. Extensión del sistema de archivos (ext4) de la partición raíz


931.5 GB están disponibles en las nuevas unidades /dev/sdc y /dev/sdd . Debido al hecho de que la tabla de particiones se copia de discos más pequeños, hay 222.5 GB disponibles en las /dev/sdc2 y /dev/sdd2 .

 sdc 8:32 0 931,5G 0 disk ├─sdc1 8:33 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdc2 8:34 0 222,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdd 8:48 0 931,5G 0 disk ├─sdd1 8:49 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdd2 8:50 0 222,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] 

Es necesario:

  1. Extienda la sección 2 en cada unidad,
  2. Extienda la matriz md127,
  3. Expand PV (volumen físico),
  4. Extienda LV (volumen lógico) vg0-root,
  5. Extiende el sistema de archivos.

Usando la utilidad separada, expanda la /dev/sdc2 al valor máximo. parted /dev/sdc comando parted /dev/sdc (1) y parted /dev/sdc tabla de partición actual con el comando p (2).



Como puede ver, el final de la sección 2 termina con 240 GB. resizepart la sección con el comando resizepart 2 , donde 2 es el número de sección (3). Indicamos el valor en formato digital, por ejemplo, 1000 GB, o utilizamos la indicación del disco compartido - 100%. Nuevamente comprobamos que la sección tiene un nuevo tamaño (4).

Repita los pasos anteriores para la unidad /dev/sdd . Después de expandir las particiones, /dev/sdc2 y /dev/sdd2 llegaron a ser 930.5 GB.

 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 223,6G 0 disk ├─sda1 8:1 0 1G 0 part └─sda2 8:2 0 222,5G 0 part sdb 8:16 0 223,6G 0 disk ├─sdb1 8:17 0 1G 0 part └─sdb2 8:18 0 222,5G 0 part sdc 8:32 0 931,5G 0 disk ├─sdc1 8:33 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdc2 8:34 0 930,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdd 8:48 0 931,5G 0 disk ├─sdd1 8:49 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdd2 8:50 0 930,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] 

Después de eso, expandimos la matriz md127 al máximo.

 mdadm --grow /dev/md127 --size=max 

Verifique que la matriz se haya expandido. Ahora su tamaño se ha convertido en 930.4 GB.

 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 223,6G 0 disk ├─sda1 8:1 0 1G 0 part └─sda2 8:2 0 222,5G 0 part sdb 8:16 0 223,6G 0 disk ├─sdb1 8:17 0 1G 0 part └─sdb2 8:18 0 222,5G 0 part sdc 8:32 0 931,5G 0 disk ├─sdc1 8:33 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdc2 8:34 0 930,5G 0 part └─md127 9:127 0 930,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdd 8:48 0 931,5G 0 disk ├─sdd1 8:49 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdd2 8:50 0 930,5G 0 part └─md127 9:127 0 930,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] 

Realizamos la expansión del volumen físico . Antes de la expansión, verifique el estado actual de PV.

 [root@localhost ~]# pvscan PV /dev/md127 VG vg0 lvm2 [222,40 GiB / 0 free] Total: 1 [222,40 GiB] / in use: 1 [222,40 GiB] / in no VG: 0 [0 ] 

Como puede ver, PV /dev/md127 usa /dev/md127 GB de espacio.

Expande PV con el siguiente comando.

 pvresize /dev/md127 

Verifique el resultado de la extensión PV.

[
 root@localhost ~]# pvscan PV /dev/md127 VG vg0 lvm2 [930,38 GiB / 707,98 GiB free] Total: 1 [930,38 GiB] / in use: 1 [930,38 GiB] / in no VG: 0 [0 ] 

Volumen lógico en expansión. Antes de la extensión, verifique el estado actual de LV (1).

 [root@localhost ~]# lvscan ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit ACTIVE '/dev/vg0/root' [<206,41 GiB] inherit 

LV /dev/vg0/root usa 206.41 GB.

Expandimos LV con el siguiente comando (2).

 lvextend -l +100%FREE /dev/mapper/vg0-root 


Verifique la acción realizada (3).

 [root@localhost ~]# lvscan ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit ACTIVE '/dev/vg0/root' [<914,39 GiB] inherit 

Como puede ver, después de la expansión LV, el volumen de espacio en disco ocupado se convirtió en 914.39 GB.



El volumen del VI ha aumentado (4), pero el sistema de archivos todavía ocupa 204 GB (5).

1. Realice la extensión del sistema de archivos.

 resize2fs /dev/mapper/vg0-root 

Verificamos después del comando ejecutado el tamaño del sistema de archivos.

 [root@localhost ~]# df -h      % C  devtmpfs 32G 0 32G 0% /dev tmpfs 32G 0 32G 0% /dev/shm tmpfs 32G 9,5M 32G 1% /run tmpfs 32G 0 32G 0% /sys/fs/cgroup /dev/mapper/vg0-root 900G 1,3G 860G 1% / /dev/md126 1007M 120M 837M 13% /boot tmpfs 6,3G 0 6,3G 0% /run/user/0 

El tamaño del sistema de archivos raíz aumentará a 900 GB. Después de completar los pasos, puede quitar los discos viejos.

Caso 2: Reemplazar unidades más pequeñas con unidades más grandes (más de 2 TB)


Tarea: Reemplace los discos actuales con discos más grandes (2 x 3 TB) con información de guardado En este caso, tenemos 2 discos SSD de 240 GB (RAID-1) con el sistema instalado y discos SATA de 2 x 3 TB en los que necesita transferir el sistema. Las unidades actuales usan la tabla de particiones MBR. Dado que los nuevos discos tienen una capacidad de más de 2 TB, deberán usar la tabla GPT, ya que MBR no puede funcionar con discos de más de 2 TB.

Ver el diseño actual del disco.

 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 223,6G 0 disk ├─sda1 8:1 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sda2 8:2 0 222,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdb 8:16 0 223,6G 0 disk ├─sdb1 8:17 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdb2 8:18 0 222,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdc 8:32 0 2,7T 0 disk sdd 8:48 0 2,7T 0 disk 

Verifique la tabla de partición utilizada en la unidad /dev/sda .

 [root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type' Disk label type: dos 

La unidad /dev/sdb usa una tabla de partición similar. Verifique el espacio en disco utilizado en el sistema.

 [root@localhost ~]# df -h      % C  devtmpfs 16G 0 16G 0% /dev tmpfs 16G 0 16G 0% /dev/shm tmpfs 16G 9,5M 16G 1% /run tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/mapper/vg0-root 204G 1,3G 192G 1% / /dev/md126 1007M 120M 837M 13% /boot tmpfs 3,2G 0 3,2G 0% /run/user/0 

Como puede ver, la raíz del sistema de archivos es de 204 GB. Verifique el estado actual del software RAID.

1. Instale la tabla de particiones GPT y la partición del disco


Verifique el diseño del disco por sector.

 [root@localhost ~]# parted /dev/sda print : ATA KINGSTON SVP200S (scsi)  /dev/sda: 240GB   (./.): 512B/512B  : msdos Disk Flags:         1 1049kB 1076MB 1075MB primary , raid 2 1076MB 240GB 239GB primary raid 

En el nuevo disco de 3TB, necesitaremos crear 3 particiones:

  1. bios_grub para compatibilidad GPT con BIOS,
  2. La partición para la matriz RAID que se montará en /boot .
  3. La partición para la matriz RAID en la que estará la raíz LV y el intercambio LV .

Instale la utilidad dividida con el comando yum install -y parted (para CentOS), apt install -y parted (para Debian / Ubuntu).

Con parted, ejecute los siguientes comandos para particionar el disco.

parted /dev/sdc comando parted /dev/sdc y cambiamos al modo de edición de diseño del disco.

Crea una tabla de particiones GPT.

 (parted) mktable gpt 

Cree una sección de la sección bios_grub y establezca una bandera para ello.

 (parted) mkpart primary 1MiB 3MiB (parted) set 1 bios_grub on 

Cree una sección 2 y establezca una bandera para ello. La partición se usará como un bloque para la matriz RAID y se montará en /boot .

 (parted) mkpart primary ext2 3MiB 1028MiB (parted) set 2 boot on 

Creamos una sección 3, que también se utilizará como un bloque de matriz en el que habrá LVM.

 (parted) mkpart primary 1028MiB 100% 

En este caso, no es necesario configurar el indicador, pero si es necesario, es posible configurarlo con el siguiente comando.

 (parted) set 3 raid on 

Verifique la tabla creada.

 (parted) p : ATA TOSHIBA DT01ACA3 (scsi)  /dev/sdc: 3001GB   (./.): 512B/4096B  : gpt Disk Flags:         1 1049kB 3146kB 2097kB primary bios_grub 2 3146kB 1077MB 1074MB primary  3 1077MB 3001GB 3000GB primary 

Asigne a la unidad un nuevo GUID aleatorio.

 sgdisk -G /dev/sdd 

2. Eliminar particiones del primer disco de las matrices


Verifique el estado de la matriz

 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sda1[0] sdb1[1] 1047552 blocks super 1.2 [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sda2[0] sdb2[1] 233206784 blocks super 1.2 [2/2] [UU] bitmap: 0/2 pages [0KB], 65536KB chunk unused devices: <none> 

El sistema utiliza 2 matrices: md126 (punto de montaje / arranque): consta de /dev/sda1 y /dev/sdb1 , md127 (LVM para el swap y la raíz del sistema de archivos): consta de /dev/sda2 y /dev/sdb2 .

Marcamos las particiones del primer disco, que se utilizan en cada matriz, como malas.

 mdadm /dev/md126 --fail /dev/sda1 mdadm /dev/md127 --fail /dev/sda2 

Eliminamos secciones del dispositivo de bloque /dev/sda de las matrices.

 mdadm /dev/md126 --remove /dev/sda1 mdadm /dev/md127 --remove /dev/sda2 

Verifique el estado de la matriz después de quitar el disco.

 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sdb1[1] 1047552 blocks super 1.2 [2/1] [_U] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sdb2[1] 233206784 blocks super 1.2 [2/1] [_U] bitmap: 2/2 pages [8KB], 65536KB chunk unused devices: <none> 

3. Agregar particiones del nuevo disco a la matriz


El siguiente paso es agregar las particiones del nuevo disco a las matrices para la sincronización. Observamos el estado actual del diseño del disco.

 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 223,6G 0 disk ├─sda1 8:1 0 1G 0 part └─sda2 8:2 0 222,5G 0 part sdb 8:16 0 223,6G 0 disk ├─sdb1 8:17 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdb2 8:18 0 222,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdc 8:32 0 2,7T 0 disk ├─sdc1 8:33 0 2M 0 part ├─sdc2 8:34 0 1G 0 part └─sdc3 8:35 0 2,7T 0 part sdd 8:48 0 2,7T 0 disk 

La /dev/sdc1 es una partición bios_grub y no está involucrada en la creación de matrices. /dev/sdc2 solo usarán /dev/sdc2 y /dev/sdc3 . Agregue estas secciones a las matrices correspondientes.

 mdadm /dev/md126 --add /dev/sdc2 mdadm /dev/md127 --add /dev/sdc3 

Luego esperamos la sincronización de la matriz.

 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sdc2[2] sdb1[1] 1047552 blocks super 1.2 [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sdc3[2] sdb2[1] 233206784 blocks super 1.2 [2/1] [_U] [>....................] recovery = 0.2% (619904/233206784) finish=31.2min speed=123980K/sec bitmap: 2/2 pages [8KB], 65536KB chunk unused devices: <none> 

Particionar discos después de agregar particiones a una matriz.

 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 223,6G 0 disk ├─sda1 8:1 0 1G 0 part └─sda2 8:2 0 222,5G 0 part sdb 8:16 0 223,6G 0 disk ├─sdb1 8:17 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdb2 8:18 0 222,5G 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdc 8:32 0 2,7T 0 disk ├─sdc1 8:33 0 2M 0 part ├─sdc2 8:34 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdc3 8:35 0 2,7T 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdd 8:48 0 2,7T 0 disk 

4. Eliminar particiones del segundo disco de las matrices


Marcamos las particiones del segundo disco, que se utilizan en cada matriz, como malas.

 mdadm /dev/md126 --fail /dev/sdb1 mdadm /dev/md127 --fail /dev/sdb2 

Eliminamos secciones del dispositivo de bloque /dev/sda de las matrices.

 mdadm /dev/md126 --remove /dev/sdb1 mdadm /dev/md127 --remove /dev/sdb2 

5. Copie la tabla de marcado GPT y sincronice la matriz


Para copiar la tabla de marcado GPT, utilizamos la utilidad sgdisk , que se incluye en el paquete para trabajar con particiones de disco y la tabla GPT - gdisk .

Instale gdisk para CentOS:

 yum install -y gdisk 

Instale gdisk para Debian / Ubuntu:

 apt install -y gdisk 

ATENCIÓN : Para GPT, el disco en el que se copia el marcado se indica primero , el segundo disco es el disco desde el que se copia el marcado. Si mezcla los discos, el marcado inicialmente saludable se sobrescribirá y destruirá.

Copie la tabla de marcado GPT.

 sgdisk -R /dev/sdd /dev/sdc 

Particionar discos después de transferir una tabla a la unidad /dev/sdd .

 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 223,6G 0 disk ├─sda1 8:1 0 1G 0 part └─sda2 8:2 0 222,5G 0 part sdb 8:16 0 223,6G 0 disk ├─sdb1 8:17 0 1G 0 part └─sdb2 8:18 0 222,5G 0 part sdc 8:32 0 2,7T 0 disk ├─sdc1 8:33 0 2M 0 part ├─sdc2 8:34 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdc3 8:35 0 2,7T 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdd 8:48 0 2,7T 0 disk ├─sdd1 8:49 0 2M 0 part ├─sdd2 8:50 0 1G 0 part └─sdd3 8:51 0 2,7T 0 part 

A continuación, agregamos cada una de las particiones que participan en las matrices RAID de software.

 mdadm /dev/md126 --add /dev/sdd2 mdadm /dev/md127 --add /dev/sdd3 

Estamos esperando la sincronización de la matriz.

 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sdd2[3] sdc2[2] 1047552 blocks super 1.2 [2/2] [UU] bitmap: 1/1 pages [4KB], 65536KB chunk md127 : active raid1 sdd3[3] sdc3[2] 233206784 blocks super 1.2 [2/1] [U_] [>....................] recovery = 0.0% (148224/233206784) finish=26.2min speed=148224K/sec bitmap: 2/2 pages [8KB], 65536KB chunk unused devices: <none> 

Después de copiar el marcado GPT en un segundo disco nuevo, el marcado se verá así.

 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 223,6G 0 disk ├─sda1 8:1 0 1G 0 part └─sda2 8:2 0 222,5G 0 part sdb 8:16 0 223,6G 0 disk ├─sdb1 8:17 0 1G 0 part └─sdb2 8:18 0 222,5G 0 part sdc 8:32 0 2,7T 0 disk ├─sdc1 8:33 0 2M 0 part ├─sdc2 8:34 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdc3 8:35 0 2,7T 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdd 8:48 0 2,7T 0 disk ├─sdd1 8:49 0 2M 0 part ├─sdd2 8:50 0 1G 0 part │ └─md126 9:126 0 1023M 0 raid1 /boot └─sdd3 8:51 0 2,7T 0 part └─md127 9:127 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] 

A continuación, instale GRUB en las nuevas unidades.

Instalación para CentOS:

 grub2-install /dev/sdX 

Instalación para Debian / Ubuntu:

 grub-install /dev/sdX 

donde X es la letra de la unidad, en nuestro caso las unidades /dev/sdc y /dev/sdd .

Actualización de la información sobre la matriz.

Para CentOS:

 mdadm --detail --scan --verbose > /etc/mdadm.conf 

Para Debian / Ubuntu:

 echo "DEVICE partitions" > /etc/mdadm/mdadm.conf mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf 

Actualización de la imagen initrd :
Para CentOS:

 dracut -f -v --regenerate-all 

Para Debian / Ubuntu:

 update-initramfs -u -k all 

Actualización de la configuración de GRUB.

Para CentOS:

 grub2-mkconfig -o /boot/grub2/grub.cfg 

Para Debian / Ubuntu:

 update-grub 

Después de completar los pasos, los discos viejos se pueden quitar.

6. Extensión del sistema de archivos (ext4) de la partición raíz


Particionar discos antes de expandir el sistema de archivos después de mover el sistema a discos de 2 x 3 TB (RAID-1).

 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 223,6G 0 disk sdb 8:16 0 223,6G 0 disk sdc 8:32 0 2,7T 0 disk ├─sdc1 8:33 0 2M 0 part ├─sdc2 8:34 0 1G 0 part │ └─md127 9:127 0 1023M 0 raid1 /boot └─sdc3 8:35 0 2,7T 0 part └─md126 9:126 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdd 8:48 0 2,7T 0 disk ├─sdd1 8:49 0 2M 0 part ├─sdd2 8:50 0 1G 0 part │ └─md127 9:127 0 1023M 0 raid1 /boot └─sdd3 8:51 0 2,7T 0 part └─md126 9:126 0 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] 

Las /dev/sdc3 y /dev/sdd3 ocupan 2.7 TB. Dado que creamos una nueva partición de discos con una tabla GPT, el tamaño de las 3 particiones se estableció inmediatamente al máximo espacio de disco posible, en este caso, no es necesario expandir la partición.

Es necesario:

  1. Extienda la matriz md126,
  2. Expand PV (volumen físico),
  3. Extienda LV (volumen lógico) vg0-root,
  4. Extiende el sistema de archivos.

1. md126 matriz md126 al máximo.

 mdadm --grow /dev/md126 --size=max 

Después de expandir la matriz md126 tamaño del espacio ocupado aumentó a 2.7 TB.

 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 223,6G 0 disk sdb 8:16 0 223,6G 0 disk sdc 8:32 0 2,7T 0 disk ├─sdc1 8:33 0 2M 0 part ├─sdc2 8:34 0 1G 0 part │ └─md127 9:127 0 1023M 0 raid1 /boot └─sdc3 8:35 0 2,7T 0 part └─md126 9:126 0 2,7T 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] sdd 8:48 0 2,7T 0 disk ├─sdd1 8:49 0 2M 0 part ├─sdd2 8:50 0 1G 0 part │ └─md127 9:127 0 1023M 0 raid1 /boot └─sdd3 8:51 0 2,7T 0 part └─md126 9:126 0 2,7T 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] 

Expansión del volumen físico .

Antes de la expansión, verificamos el valor actual del espacio ocupado PV / dev/md126.

 [root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/md126 vg0 lvm2 a-- 222,40g 0 

Expande PV con el siguiente comando.

 pvresize /dev/md126 

Verifique la acción completada.

 [root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/md126 vg0 lvm2 a-- <2,73t 2,51t 

La expansión de la clase volumen lógico vg0-raíz .

Después de expandir PV, verificamos el espacio ocupado de VG.

 [root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree vg0 1 2 0 wz--n- <2,73t 2,51t 

Verifique el espacio ocupado por LV.

 [root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root vg0 -wi-ao---- <206,41g swap vg0 -wi-ao---- <16,00g 

El volumen vg0-root ocupa 206.41 GB.

Expanda LV al máximo espacio en disco.

 lvextend -l +100%FREE /dev/mapper/vg0-root 

Comprobación del espacio del VI después de la expansión.

 [root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root vg0 -wi-ao---- 2,71t swap vg0 -wi-ao---- <16,00g 

Ampliación del sistema de archivos (ext4).

Verifique el tamaño actual del sistema de archivos.

 [root@localhost ~]# df -h      % C  devtmpfs 16G 0 16G 0% /dev tmpfs 16G 0 16G 0% /dev/shm tmpfs 16G 9,6M 16G 1% /run tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/mapper/vg0-root 204G 1,4G 192G 1% / /dev/md127 1007M 141M 816M 15% /boot tmpfs 3,2G 0 3,2G 0% /run/user/0 

El volumen / dev / mapper / vg0-root ocupa 204 GB después de la extensión LV.

Expandiendo el sistema de archivos.

 resize2fs /dev/mapper/vg0-root 

Verifique el tamaño del sistema de archivos después de su expansión.

 [root@localhost ~]# df -h      % C  devtmpfs 16G 0 16G 0% /dev tmpfs 16G 0 16G 0% /dev/shm tmpfs 16G 9,6M 16G 1% /run tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/mapper/vg0-root 2,7T 1,4G 2,6T 1% / /dev/md127 1007M 141M 816M 15% /boot tmpfs 3,2G 0 3,2G 0% /run/user/0 

El tamaño del sistema de archivos aumenta en todo el volumen del volumen.

Source: https://habr.com/ru/post/486084/


All Articles