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 ~]
Verifique el espacio actual del sistema de archivos utilizado.
[root@localhost ~]
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 ~]
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 ~]
El estado de las matrices después de eliminar discos.
[root@localhost ~]
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 ~]
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 ~]
Después de eso, esperamos la sincronización de las matrices.
[root@localhost ~]
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 ~]
El estado de las matrices después de eliminar discos.
[root@localhost ~]
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 ~]
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 ~]
Después de eso, esperamos la sincronización de las matrices.
[root@localhost ~]
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:
- Extienda la sección 2 en cada unidad,
- Extienda la matriz md127,
- Expand PV (volumen físico),
- Extienda LV (volumen lógico) vg0-root,
- 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 ~]
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 ~]
Realizamos la expansión del
volumen físico . Antes de la expansión, verifique el estado actual de PV.
[root@localhost ~]
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 ~]
Volumen lógico en expansión. Antes de la extensión, verifique el estado actual de LV (1).
[root@localhost ~]
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 ~]
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 ~]
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 ~]
Verifique la tabla de partición utilizada en la unidad
/dev/sda
.
[root@localhost ~]
La unidad
/dev/sdb
usa una tabla de partición similar. Verifique el espacio en disco utilizado en el sistema.
[root@localhost ~]
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 ~]
En el nuevo disco de 3TB, necesitaremos crear 3 particiones:
bios_grub
para compatibilidad GPT con BIOS,- La partición para la matriz RAID que se montará en
/boot
. - 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 ~]
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 ~]
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 ~]
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 ~]
Particionar discos después de agregar particiones a una matriz.
[root@localhost ~]
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 ~]
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 ~]
Después de copiar el marcado GPT en un segundo disco nuevo, el marcado se verá así.
[root@localhost ~]
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 ~]
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:
- Extienda la matriz md126,
- Expand PV (volumen físico),
- Extienda LV (volumen lógico) vg0-root,
- 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 ~]
Expansión del volumen físico .Antes de la expansión, verificamos el valor actual del espacio ocupado PV / dev/md126
. [root@localhost ~]
Expande PV con el siguiente comando. pvresize /dev/md126
Verifique la acción completada. [root@localhost ~]
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 ~]
Verifique el espacio ocupado por LV. [root@localhost ~]
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 ~]
Ampliación del sistema de archivos (ext4).Verifique el tamaño actual del sistema de archivos. [root@localhost ~]
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 ~]
El tamaño del sistema de archivos aumenta en todo el volumen del volumen.