Reducir/Reducir el tamaño del disco en un servidor Linux RAID 1

Reducir/Reducir el tamaño del disco en un servidor Linux RAID 1

Estoy buscando una manera de clonar mi HDD a SSD sin perder datos ni el propio sistema Linux. El problema es que el tamaño del disco duro actual es de 1 TB y el SSD que tenemos tiene 480 GB, por lo que no puedo clonarlo directamente porque el tamaño del disco difiere, pero sé que el disco no se utiliza por completo, así que supongo que podría reducirse con un disco externo. herramienta o mediante la línea de comando en el servidor. Ahora tengo 2 HDD de 1 TB cada uno conectados al servidor y no sé cómo reemplazarlos con estos SSD más pequeños y rápidos. Cualquier ayuda sería muy apreciada.

#lsblk
NAME                  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                     8:0    0   931G  0 disk 
├─sda1                  8:1    0   953M  0 part /boot/efi
├─sda2                  8:2    0   953M  0 part /boot
└─sda3                  8:3    0 929.1G  0 part 
  ├─rl-root           253:0    0  18.6G  0 lvm  /
  ├─rl-swap           253:1    0  29.8G  0 lvm  [SWAP]
  ├─rl-usr            253:2    0    10G  0 lvm  /usr
  ├─rl-var_lib_docker 253:3    0  93.1G  0 lvm  /var/lib/docker
  ├─rl-opt            253:4    0  93.1G  0 lvm  /opt
  ├─rl-var_log_audit  253:5    0   4.7G  0 lvm  /var/log/audit
  ├─rl-var            253:6    0   9.3G  0 lvm  /var
  ├─rl-home           253:7    0   1.9G  0 lvm  /home
  ├─rl-var_log        253:8    0   4.7G  0 lvm  /var/log
  ├─rl-tmp            253:9    0   4.7G  0 lvm  /tmp
  └─rl-var_tmp        253:10   0   4.7G  0 lvm  /var/tmp

# fdisk -l /dev/sd?
Disk /dev/sda: 931 GiB, 999653638144 bytes, 1952448512 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes
Disklabel type: gpt
Disk identifier: 0219246B-336B-4D22-96A3-FD679EDA66DE

Device       Start        End    Sectors   Size Type
/dev/sda1     2048    1953791    1951744   953M EFI System
/dev/sda2  1953792    3905535    1951744   953M Linux filesystem
/dev/sda3  3905536 1952448478 1948542943 929.1G Linux LVM

# df -h | grep -v docker
Filesystem                     Size  Used Avail Use% Mounted on
devtmpfs                       7.5G     0  7.5G   0% /dev
tmpfs                          7.5G     0  7.5G   0% /dev/shm
tmpfs                          7.5G   95M  7.5G   2% /run
tmpfs                          7.5G     0  7.5G   0% /sys/fs/cgroup
/dev/mapper/rl-root             19G  232M   19G   2% /
/dev/mapper/rl-usr              10G  4.8G  5.3G  48% /usr
/dev/mapper/rl-tmp             4.7G   99M  4.6G   3% /tmp
/dev/mapper/rl-home            1.9G 1014M  885M  54% /home
/dev/mapper/rl-var             9.4G  3.0G  6.4G  32% /var
/dev/sda2                      949M  276M  674M  30% /boot
/dev/sda1                      952M  5.8M  946M   1% /boot/efi
/dev/mapper/rl-var_tmp         4.7G   66M  4.6G   2% /var/tmp
/dev/mapper/rl-var_log         4.7G  1.3G  3.5G  27% /var/log
/dev/mapper/rl-opt              94G  7.6G   86G   9% /opt
/dev/mapper/rl-var_log_audit   4.7G  106M  4.6G   3% /var/log/audit
tmpfs                          1.5G     0  1.5G   0% /run/user/0

# lshw
*-raid
                description: RAID bus controller
                product: MegaRAID SAS-3 3008 [Fury]
                vendor: Broadcom / LSI
                physical id: 0
                bus info: pci@0000:02:00.0
                logical name: scsi0
                version: 02
                width: 64 bits
                clock: 33MHz
                capabilities: raid pm pciexpress msi msix bus_master cap_list rom
                configuration: driver=megaraid_sas latency=0
                resources: irq:17 ioport:5000(size=256) memory:91c00000-91c0ffff memory:91b00000-91bfffff memory:91a00000-91afffff
              *-disk
                   description: SCSI Disk
                   product: PRAID CP400i
                   vendor: FTS
                   physical id: 2.0.0
                   bus info: scsi@0:2.0.0
                   logical name: /dev/sda
                   version: 4.68
                   serial: 004f93e10b84d6222c40f6200004000e
                   size: 931GiB (999GB)
                   capabilities: gpt-1.00 partitioned partitioned:gpt
                   configuration: ansiversion=5 guid=0219246b-336b-4d22-96a3-fd679eda66de logicalsectorsize=512 sectorsize=4096
                 *-volume:0
                      description: Windows FAT volume
                      vendor: mkfs.fat
                      physical id: 1
                      bus info: scsi@0:2.0.0,1
                      logical name: /dev/sda1
                      logical name: /boot/efi
                      version: FAT32
                      serial: cbe6-07f6
                      size: 951MiB
                      capacity: 952MiB
                      capabilities: boot fat initialized
                      configuration: FATs=2 filesystem=fat mount.fstype=vfat mount.options=rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro name=EFI System Partition state=mounted
                 *-volume:1
                      description: EFI partition
                      physical id: 2
                      bus info: scsi@0:2.0.0,2
                      logical name: /dev/sda2
                      logical name: /boot
                      serial: 7ca4eedb-7995-4a39-b1c8-676c006e7c83
                      capacity: 952MiB
                      configuration: mount.fstype=xfs mount.options=rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,sunit=128,swidth=128,noquota state=mounted
                 *-volume:2
                      description: LVM Physical Volume
                      vendor: Linux
                      physical id: 3
                      bus info: scsi@0:2.0.0,3
                      logical name: /dev/sda3
                      serial: gE8t7L-MEtM-wxjh-VGNz-19ch-dDXX-NQKV7n
                      size: 269GiB
                      capacity: 929GiB
                      capabilities: multi lvm2

# lspci | grep RAID
02:00.0 RAID bus controller: Broadcom / LSI MegaRAID SAS-3 3008 [Fury] (rev 02)

@Nikita tengo acceso a esto físicamente pero también a la web, creo que la configuración RAID es software.

Respuesta1

En el sistema que se creó teniendo en cuenta posibles reorganizaciones, esto podría ser tan fácil como conectar otros dispositivos, inicializarlos, migrar volúmenes y reinstalar el cargador de arranque, y eso incluso podría lograrse sin interrumpir los servicios.

Tengo buenas noticias para ti: tu diseño coincide con eso. Si utiliza LVM, no se asigna todo el espacio en el grupo de volúmenes. Todos los volúmenes lógicos juntos parecen ocupar menos que el espacio que normalmente está disponible en el SSD de 480 GB, lo que significa que no es necesario cambiar el tamaño del sistema de archivos. Creo que todo es posible de hacer incluso sin que se detenga el servicio.

Además, aunque no está relacionado con este caso en particular, es bueno recordar que no siempre se reduce a reducir los sistemas de archivos y luego clonarlos. En muchos casos, puede simplemente crear nuevos sistemas de archivos y copiar archivos.


Tienes un Broadcom HW RAID, comúnmente conocido como "LSI MegaRAID SAS", uno moderno, que se gestiona conel storcliprograma. Para obtenerla desde el sitio web de Broadcom necesitas saber qué modelo de tarjeta es; Por ahora, sabemos que está usando un chip controlador 3008, que desafortunadamente no es suficiente para dirigirlo a la página de descarga original.

La utilidad le permitirá manipular y monitorear su RAID desde el sistema operativo;esta habilidad es imprescindible! Sin embargo, no tengo suficiente experiencia trabajando con él; Solía ​​tener megacli, que hoy en día está obsoleto y probablemente no sea una buena idea usarlo con tu tarjeta más nueva. Alternativamente, puede reiniciar e invocar la utilidad de arranque presionando algunas teclas y crear un nuevo disco lógico desde allí.

Después de crear la nueva matriz RAID y el nuevo disco lógico a partir de su nuevo conjunto de medios, debe particionarlo como este y crear un diseño similar, con solo la última partición más pequeña.

Si está utilizando una conexión remota para realizar la migración, le sugiero que realice todas las operaciones en screeno tmux, de modo que incluso si pierde la conexión debido a problemas de red, la sesión de shell permanecerá y podrá conectarse. lo. Si está sentado frente a la terminal o usa algún KVM (iLO, iDRAC, xClarity, etc.), esto no es importante.

Supongamos que el nuevo disco virtual RAID se llama /dev/sdben el sistema operativo.Asegúrate de utilizar el dispositivo correcto; de lo contrario, será difícil recuperar tus datos.:

  1. Correrfdisk /dev/sdb
  2. Presione gpara crear la tabla de particiones GPT (y acepte borrarla).
  3. Cree la partición del sistema EFI (ESP) creando una nueva partición del mismo tamaño: nseleccione el tipo 1 "ESP" y use el tamaño 953M(M significa MiB, que es el tamaño exacto de su ESP existente)
  4. Cree una partición de arranque:, nseleccione "sistema de archivos Linux" (no recuerdo a qué número corresponde) y use tamaño 953Mnuevamente.
  5. Crear partición LVM:, nselecciona "Linux LVM" (31 si no me equivoco) y para llenar todo el espacio restante acepta lo que te sugiera.
  6. Aceptar el cambio y salir: w.

Luego, clone sistemas de archivos que no sean LVM. Para eso:

  1. Desmontar las particiones ESP y /boot:umount /boot/efi /boot
  2. Clonar sus contenidos: dd if=/dev/sda1 of=/dev/sdb1y dd if=/dev/sda2 of=/dev/sdb2. Si hay errores en esta etapa, ¡no continúe hasta que los haya resuelto! Una causa podría ser que los tamaños sean incorrectos.
  3. Como estás usando XFS para /boot, debes cambiar el UUID del clon ahora; de lo contrario, no podrás montar: xfs_admin -U generate /dev/sdb2. No olvide actualizar /etc/fstabcon el nuevo UUID (si usa UUID para montar, que debería ser).
  4. Monte nuevas particiones /boot y ESP: mount /dev/sdb2 /booty mount /dev/sdb1 /boot/efi.

Ahora, cree PV a partir de la partición grande restante y agréguelo al grupo de volúmenes existente:

  1. pvcreate /dev/sdb3
  2. vgextend r1 /dev/sdb3

Ahora prepárese para la operación más larga: saque los datos del volumen físico del disco duro:

  1. pvmove -vi 5 /dev/sda3

Por último, elimine la unidad lógica HDD del grupo de volúmenes y elimine las etiquetas LVM:

  1. vgreduce r1 /dev/sda3
  2. pvremove /dev/sda3

Cuando termine, es hora de reconfigurarlo para arrancar desde el nuevo RAID. Es posible que necesite configurar su tarjeta RAID para que este nuevo volumen sea el arranque principal; Por lo general, eso no es necesario para el arranque EFI, pero no hará daño, así que hágalo.

Configure la entrada de inicio del firmware para iniciar desde el nuevo RAID. Utilice la herramienta proporcionada por la versión de su sistema operativo o hágalo manualmente con efibootmgr; En cualquier caso, los comandos concretos dependen de la distribución que estés utilizando.

información relacionada