Laboratorio: configuración de lvm, raid en linux

Una pequeña digresión: este l \ r es sintético.


Algunas de las tareas descritas aquí se pueden hacer mucho más fácil, pero como la tarea de l / r es familiarizarse con la incursión, la funcionalidad lvm, algunas operaciones son artificialmente complicadas.


Requisitos para herramientas para realizar l \ r:


  • Herramientas de virtualización como Virtualbox
  • Imagen de instalación de Linux como Debian9
  • Disponibilidad de internet para descargar varios paquetes
  • Conexión vía ssh a la VM instalada (opcional)

ATENCION


Este trabajo de laboratorio está asociado con asuntos tan delicados como la seguridad de los datos; esta es un área que le permite perder todos sus datos debido al error más pequeño: una letra o número adicional.


Como está haciendo trabajo de laboratorio, no está en peligro, a menos que tenga que comenzar a hacerlo nuevamente.


En la vida real, todo es mucho más serio, por lo que debe ingresar con mucho cuidado los nombres de los discos, entendiendo exactamente qué está ejecutando con el comando actual y con qué discos trabaja.


El segundo punto importante es la denominación de discos y particiones: dependiendo de la situación, los números de disco pueden diferir de los valores que se presentan en los comandos en el laboratorio.
Entonces, por ejemplo, si elimina la unidad sda de la matriz y luego agrega una nueva unidad, la nueva unidad se mostrará en el sistema con el nombre sda. Si reinicia antes de agregar un nuevo disco, el nuevo disco se llamará sdb y el antiguo se llamará sda


El trabajo de laboratorio debe realizarse bajo superusuario (root) ya que la mayoría de los comandos requieren privilegios elevados y no tiene sentido elevar constantemente los privilegios a través de sudo.


Materiales de estudio


  • RAID
  • LVM
  • Nombre de disco de Linux
  • ¿Qué es una sección?
  • ¿Qué es una tabla de partición y dónde se almacena?
  • ¿Qué es la comida?

Utilidades Utilizadas


  1. Ver información del disco:
    • lsblk -o NOMBRE, TAMAÑO, FSTYPE, TIPO, PUNTA DE MONTAJE
    • fdisk -l
  2. Ver información y trabajar con LVM
    • pvs
    • pvextend
    • pvcreate
    • pvresize
    • vgs
    • vgreduce
    • lvs
    • lvextend
  3. Ver información y trabajar con RAID:
    • cat / proc / mdstat
    • mdadm
  4. Puntos de montaje:
    • montar
    • desmontar
    • gato / etc / fstab
    • gato / etc / mtab
  5. Reparticionando el disco:
    • fdisk / dev / XXX
  6. Copiar secciones:
    • dd if = / dev / xxx of = / dev / aaa
  7. Trabajar con la tabla de particiones:
    • partx
    • sfdisk
    • mkfs.ext4
  8. Trabajar con el gestor de arranque:
    • instalación-grub / dev / XXX
    • actualización-grub
  9. misceláneo
    • lsof
    • apto
    • rsync

El trabajo de laboratorio consta de 3 partes:


  • Configuración de un sistema saludable usando lvm, raid.
  • Emulación de falla de una de las unidades.
  • Reemplazo de discos sobre la marcha, con la adición de nuevos discos y transferencia de particiones.

Tarea 1 (Instalación del sistema operativo y configuración de LVM, RAID)


  1. Cree una nueva máquina virtual con las siguientes características:


    • 1 gb de ram
    • 1 cpu
    • 2 discos duros (nómbrelos ssd1, ssd2 y asigne el mismo tamaño, marque las casillas de intercambio en caliente y ssd)
    • Controlador SATA configurado en 4 puertos:

      seleccione discos ssd

  2. Comience a instalar Linux y vaya a la elección de discos duros, haga lo siguiente:


    • Método de partición: manual, después del cual debería ver la siguiente imagen:

      discos de partición
    • Configuración de una partición separada en / boot: seleccione el primer disco y cree una nueva tabla de partición en él:
      • Tamaño de partición: 512 m
      • Punto de montaje: / boot
    • Repita la configuración para el segundo disco, pero como no puede montar / arrancar 2 veces al mismo tiempo, seleccione el punto de montaje: ninguno y finalmente obtenga lo siguiente (imagen con marco, rehacer pereza):

      discos de partición
    • Configuración RAID:
    • Seleccione el espacio libre en el primer disco y configure el volumen físico para RAID como el tipo de partición.
    • Seleccione "Listo para configurar la partición"
    • Repita exactamente la misma configuración para el segundo disco, resultando en lo siguiente:

      discos de partición
    • Seleccione "Configurar RAID de software"
      • Crear dispositivo MD
      • Tipo de dispositivo RAID de software: seleccione una matriz reflejada
      • Dispositivos activos para la matriz RAID XXXX: seleccione ambas unidades
      • Dispositivos de repuesto: deje 0 como predeterminado
      • Dispositivos activos para la matriz RAID XX: seleccione las particiones que creó bajo raid
      • Terminar
    • Al final, deberías obtener esta imagen:

      discos de partición
    • Configuración de LVM: seleccione Configurar el administrador de volumen lógico
    • Mantenga el diseño actual de la partición y configure LVM: Sí
    • Crear grupo de volúmenes
    • Nombre del grupo de volúmenes: sistema
    • Dispositivos para el nuevo grupo de volúmenes: elija su RAID creado
    • Crear volumen lógico
      • nombre de volumen lógico: raíz
      • tamaño de volumen lógico: 2 \ 5 del tamaño de su disco
    • Crear volumen lógico
      • nombre de volumen lógico: var
      • tamaño de volumen lógico: 2 \ 5 del tamaño de su disco
    • Crear volumen lógico
      • nombre de volumen lógico: log
      • tamaño de volumen lógico: 1 \ 5 del tamaño de su disco
    • Al elegir Mostrar detalles de configuración, debería obtener la siguiente imagen:

      discos de partición
    • Después de completar la configuración de LVM, debería ver lo siguiente:

      discos de partición
    • Particionamiento: a su vez, seleccione cada volumen creado en LVM y particione, por ejemplo, para raíz como esta:
      • Usar como: ext4
      • punto de montaje: /
    • El resultado de marcar la partición raíz debe ser el siguiente:

      discos de partición
    • Repita la operación de marcado para var y log seleccionando los puntos de montaje apropiados (ingrese manualmente / var y / var / log), obteniendo el siguiente resultado:

      discos de partición
    • Elija Finalizar Particionamiento
    • Se le harán algunas preguntas sobre el hecho de que todavía tiene una partición desmontada y el intercambio no está configurado. Ambas preguntas deben responderse negativamente.
    • El resultado final debería verse así:

      discos de partición

  3. Finalice la instalación del sistema operativo instalando grub en el primer dispositivo (sda) e inicie el sistema.


  4. Copie el contenido de la partición / boot de la unidad sda (ssd1) a la unidad sdb (ssd2)


    dd if=/dev/sda1 of=/dev/sdb1 

  5. Instale grub en el segundo dispositivo:


    • Ver unidades en el sistema:


       fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT 

    • Enumere todos los discos que le emitió el comando anterior y describa qué tipo de disco es.
    • Localice la unidad en la que no se instaló grub y complete esta instalación:


       grub-install /dev/sdb 

    • Vea la incursión actual con cat / proc / mdstat y escriba lo que vio.
    • Mire la salida de los comandos: pvs, vgs, lvs, mount y anote exactamente lo que vio.


Describa en sus propias palabras lo que hizo y qué resultado obtuvo como resultado de la tarea completada.


Después de completar esta tarea, se recomienda hacer una copia de seguridad de la carpeta con la máquina virtual o hacer un cuadro vagabundo .


Resultado: una máquina virtual con discos ssd1, ssd2.


Tarea 2 (Emulación de la falla de una de las unidades)


  1. Si marcó la casilla de verificación de intercambio en caliente, puede eliminar discos sobre la marcha:
    • Elimine la unidad ssd1 en las propiedades de la máquina.
    • Encuentre el directorio donde se almacenan los archivos de su máquina virtual y elimine ssd1.vmdk.
  2. Asegúrese de que su máquina virtual todavía se esté ejecutando.
  3. Reinicie la máquina virtual y asegúrese de que todavía funciona.
  4. Verifique el estado de la matriz RAID: cat /proc/mdstat
  5. Agregue un nuevo disco del mismo tamaño en la interfaz de VM y asígnele el nombre ssd3.
  6. Realizar operaciones:
    • Mire el nuevo disco que llega al sistema con el fdisk -l
    • Copie la tabla de particiones del disco anterior al nuevo: sfdisk -d /dev/XXXX | sfdisk /dev/YYY sfdisk -d /dev/XXXX | sfdisk /dev/YYY
    • Ver el resultado con fdisk -l
    • Agregue un nuevo disco a la matriz mdadm --manage /dev/md0 --add /dev/YYY : mdadm --manage /dev/md0 --add /dev/YYY
    • Vea el resultado: cat /proc/mdstat . Debería ver que la sincronización ha comenzado.
  7. Ahora necesita sincronizar manualmente las particiones que no son parte del RAID. Para hacer esto, utilizaremos la utilidad dd, copiando del disco "en vivo" al nuevo que instaló recientemente:


     dd if=/dev/XXX of=/dev/YYY 

  8. Una vez completada la sincronización, instale grub en el nuevo disco.
  9. Reinicie la VM para asegurarse de que todo esté funcionando.

Describa en sus propias palabras lo que hizo y qué resultado obtuvo como resultado de la tarea completada.


Resultado: eliminó la unidad ssd1, guardó la unidad ssd2 y agregó la unidad ssd3.


Tarea 3 (Agregar nuevos discos y particionar)


Esta es la tarea más difícil y voluminosa de todas las presentadas. Verifique cuidadosamente lo que está haciendo y con qué discos y particiones. Se recomienda que tome una copia antes de ejecutarla. Esta tarea, independientemente de la tarea número 2, se puede realizar después de la tarea número 1, ajustada para los nombres de disco.


La segunda parte de la asignación de este laboratorio debería conducir exactamente al mismo estado que tenía después de completar la primera parte.


Para facilitarle el trabajo, le recomiendo no eliminar físicamente los discos de la máquina host, sino desconectarlos solo en las propiedades de la máquina. Desde el punto de vista del sistema operativo en la máquina virtual, esto se verá exactamente igual, pero en cuyo caso puede conectar la unidad de nuevo y continuar trabajando retrocediendo un par de puntos en caso de que tenga algún problema. Por ejemplo, es posible que haya realizado incorrectamente u olvidado copiar la partición / boot en un nuevo disco. Solo puedo aconsejarle que verifique dos veces con qué discos y particiones está trabajando, y aún mejor, escriba la correspondencia de discos, particiones y el número de disco "físico" en una hoja de papel. El comando lsblk dibuja un árbol hermoso y comprensible, lsblk mayor frecuencia posible para analizar lo que ha hecho y lo que debe hacerse.


A la historia ...


Imagine que su servidor funcionó durante mucho tiempo en 2 discos ssd, cuando de repente ...


  1. Simule una falla de disco ssd2 quitando el disco de las propiedades de VM y reiniciando.


  2. Ver el estado actual de los discos y RAID:


     cat /proc/mdstat fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT 

  3. Tienes suerte: las autoridades permitieron comprar varios discos nuevos:


    2 grandes volúmenes SATA para la tarea de mucho tiempo de mover la sección de registro a un disco separado. 2 SSD para reemplazar al fallecido, así como para reemplazar el que aún funciona.


    Tenga en cuenta que la cesta del servidor admite la instalación de solo 4 unidades. al mismo tiempo, por lo que no puede agregar todos los discos a la vez.


    El volumen del HDD para elegir 2 veces más que el SSD.
    El volumen de SSD elige 1.25 veces el tamaño del SSD anterior.


  4. Agregue una nueva unidad ssd, asígnele el nombre ssd4 y, después de agregar, verifique qué sucedió:


     fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT 

  5. En primer lugar, debe cuidar la seguridad de los datos del disco antiguo. Esta vez transferiremos datos usando LVM:


    • En primer lugar, debe copiar la tabla de archivos del disco antiguo al nuevo:


       sfdisk -d /dev/XXX | sfdisk /dev/YYY 

      Sustituya los discos correctos en lugar de x, y y descubra qué hace este comando.


    • Ejecute lsblk -o NAME, SIZE, FSTYPE, TYPE, MOUNTPOINT y compare su salida con la llamada anterior. ¿Qué ha cambiado?
    • Use el comando dd para copiar los datos / boot al nuevo disco:


       dd if=/dev/XXX of=/dev/YYY 

    • Si / boot permanece montado en la unidad anterior, debe montarse en una unidad activa:


       mount | grep boot #     lsblk #           ,     umount /boot #  /boot mount -a #      /etc/fstab. #      /dev/sda,         

    • Instale el gestor de arranque en la nueva unidad ssd:


       grub-install /dev/YYY 

      ¿Por qué estamos haciendo esta operación?


    • Cree una nueva matriz de incursiones con solo una nueva unidad ssd incluida:


       mdadm --create --verbose /dev/md63 --level=1 --raid-devices=1 /dev/YYY 

      El comando anterior no funcionará sin especificar una clave especial. Lea la ayuda y agregue esta clave al comando.


    • Use el comando cat / proc / mdstat para verificar el resultado de su operación. ¿Qué ha cambiado?
    • Ejecute lsblk -o NAME, SIZE, FSTYPE, TYPE, MOUNTPOINT y compare su salida con la llamada anterior. ¿Qué ha cambiado?

  6. El siguiente paso es configurar LVM


    • Ejecute el comando pvs para ver información sobre los volúmenes físicos actuales.
    • Cree un nuevo volumen físico al incluir en él la matriz RAID creada anteriormente:


       pvcreate /dev/md63 

    • Ejecute lsblk -o NAME, SIZE, FSTYPE, TYPE, MOUNTPOINT y compare su salida con la llamada anterior. ¿Qué ha cambiado?
    • Ejecute el comando pvs nuevamente. ¿Qué ha cambiado?
    • Aumente el tamaño del sistema de grupos de volúmenes con el siguiente comando:


       vgextend system /dev/md63 

    • Ejecute los comandos y escriba lo que vio y lo que cambió.


       vgdisplay system -v pvs vgs lvs -a -o+devices 

      ¿En qué disco físico están ahora LV var, log, root?


    • Mueva los datos de la unidad anterior a la nueva sustituyendo los nombres de dispositivo correctos.


       pvmove -i 10 -n /dev/system/root /dev/md0 /dev/md63 

      Repita la operación para todo el volumen lógico.


    • Ejecute los comandos y escriba lo que vio y lo que cambió.


       vgdisplay system -v pvs vgs lvs -a -o+devices lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT 

    • Cambia nuestro VG eliminando la vieja incursión. Sustituya el nombre de banda correcto.


       vgreduce system /dev/md0 

    • Ejecute los comandos y escriba lo que vio y lo que cambió.


       lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT pvs vgs 

    • Para la belleza de la imagen, vuelva a montar / iniciar en la segunda unidad ssd (ssd4) y ejecute lsblk. Como resultado, no se debe montar nada en el disco ssd3. ¡Compruebe con cuidado que la partición / boot no esté vacía! ls /boot debería mostrar varios archivos y carpetas. Examine lo que está almacenado en esta sección y escriba qué archivo / directorio es responsable de qué.

  7. Retire el disco ssd3 y agregue ssd5, hdd1, hdd2 de acuerdo con el TK anterior, y finalmente obtenga:


    • ssd4 - primer nuevo ssd
    • ssd5 - segundo nuevo ssd
    • hdd1: el primer disco duro nuevo
    • hdd2 - segundo disco duro nuevo

  8. Verifique lo que sucedió después de agregar discos:


     fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT 

  9. Vamos a restaurar la matriz de incursiones principal:


    • Copie la tabla de partición, sustituyendo los discos correctos:


       sfdisk -d /dev/XXX | sfdisk /dev/YYY 

    • Tenga en cuenta que cuando copiamos la tabla de particiones del disco anterior, resultó que el nuevo tamaño no utiliza todo el espacio del disco duro. Por lo tanto, pronto tendremos que redimensionar esta sección y expandir la incursión. Compruébelo usted mismo ingresando el comando:


       lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT 


  10. Copie la partición de arranque / boot de ssd4 a ssd5:


     dd if=/dev/XXX of=/dev/YYY 

  11. Instale grub en el nuevo disco (ssd5).


  12. Cambie el tamaño de la segunda partición de la unidad ssd5.


    • Ejecute la utilidad para trabajar con el diseño del disco:


       fdisk /dev/XXX 

    • Ingrese la tecla d para eliminar la partición existente (seleccione 2).
    • Ingrese la tecla n para crear una nueva partición.
    • Ingrese la clave p para indicar el tipo de partición primaria.
    • Ingrese la clave 2 para que la nueva partición tenga un segundo número.
    • Primer sector: presione Intro para aceptar el tamaño de inicio de sección calculado automáticamente.
    • Último sector: presione Intro para aceptar el tamaño de sección final calculado automáticamente.
    • Ingrese la tecla l para ver una lista de todos los tipos de particiones posibles y encuentre Linux raid auto en ella.
    • Ingrese la clave t para cambiar el tipo de la partición creada (2) e ingrese el número encontrado en el paso anterior.
    • Ingrese la tecla w para escribir el cambio en el disco.

  13. Vuelva a leer la tabla de particiones y verifique el resultado:


     partx -u /dev/XXX lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT 

    • Agregue un nuevo disco a la matriz de incursiones actual (no olvide sustituir los discos correctos):


       mdadm --manage /dev/md63 --add /dev/sda2 

    • Expandimos el número de discos en nuestra matriz a 2 piezas:


       mdadm --grow /dev/md63 --raid-devices=2 

    • Mira el resultado: tenemos 2 matrices marcadas, pero ambas secciones incluidas en esta matriz tienen diferentes tamaños:


       lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT 


  14. Aumente el tamaño de la partición en el disco ssd4


    • Ejecute la utilidad para trabajar con el diseño del disco:


       fdisk /dev/XXX 

    • Ingrese la tecla d para eliminar la partición existente (seleccione 2).
    • Ingrese la tecla n para crear una nueva partición.
    • Ingrese la clave p para indicar el tipo de partición primaria.
    • Ingrese la clave 2 para que la nueva partición tenga un segundo número.
    • Primer sector: presione Intro para aceptar el tamaño de inicio de sección calculado automáticamente.
    • Último sector: presione Intro para aceptar el tamaño de sección final calculado automáticamente.
    • Al final del marcado, seleccione No para dejar la firma de que la sección pertenece a la matriz.
    • Ingrese la tecla w para escribir el cambio en el disco.

  15. Volvemos a leer la tabla de particiones y verificamos el resultado.


     partx -u /dev/XXX lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT 

    Tenga en cuenta que ahora las particiones sda2, sdc2 son más grandes que el tamaño del dispositivo raid.


  16. En este punto, el tamaño de la incursión ahora se puede expandir:


     mdadm --grow /dev/md63 --size=max lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT # check result 

    Explore lsblk y escriba lo que ha cambiado.


  17. Sin embargo, a pesar de que cambiamos el tamaño de la incursión, los tamaños de vg root, var, log no cambiaron.


    • Mira cuál es el tamaño de PV:


       pvs 

    • Extienda el tamaño de nuestro PV:


       pvresize /dev/md63 

    • Mira cuál es el tamaño de PV:


       pvs 


  18. Agregue el lugar recientemente aparecido VG var, root:


     lvs #     lvextend -l +50%FREE /dev/system/root lvextend -l +100%FREE /dev/system/var lvs #    

    En este punto, ha completado la migración de la matriz principal a nuevos discos. trabajar con ssd1, ssd2 está terminado.


  19. Nuestra siguiente tarea es mover / var / log a nuevas unidades, para esto crearemos una nueva matriz y lvm en unidades de disco duro.


    • Veamos qué nombres tienen las nuevas unidades de disco duro:


       fdisk -l 

    • Crear una matriz de incursiones:


       mdadm --create /dev/md127 --level=1 --raid-devices=2 /dev/sdc /dev/sdd 

    • Crea un nuevo PV en la incursión desde discos grandes:


       pvcreate data /dev/md127 

    • En este PV, cree un grupo llamado datos:


       vgcreate data /dev/md127 

    • Cree un volumen lógico con el tamaño de todo el espacio libre y llámelo val_log:


       lvcreate -l 100%FREE -n var_log data # lvs #   

    • Formatee la partición creada en ext4:


       mkfs.ext4 /dev/mapper/data-var_log 

    • Veamos el resultado:


       lsblk 


  20. Transfiera datos de registro de la sección anterior a la nueva


    • Montaremos un nuevo almacenamiento de registro temporal:


       mount /dev/mapper/data-var_log /mnt 

    • Sincronicemos las secciones:


       apt install rsync rsync -avzr /var/log/ /mnt/ 

    • Averigüe qué procesos se están ejecutando con / var / log ahora:


       apt install lsof lsof | grep '/var/log' 

    • Paramos estos procesos:


       systemctl stop rsyslog.service syslog.socket 

    • Realizaremos la sincronización final de las particiones (de los datos que podrían haber cambiado desde la última sincronización):


       rsync -avzr /var/log/ /mnt/ 

    • Intercambia las secciones:


       umount /mnt umount /var/log mount /dev/mapper/data-var_log /var/log 

    • Mira lo que pasó:


       lsblk 


  21. Editar / etc / fstab


    fstab: un archivo en el que las reglas se escriben de acuerdo con las particiones que se montarán en el arranque. Nuestra tarea es encontrar la línea en la que se monta / var / log y fijar el dispositivo de system-log sistema a data-var_log .


  22. Lo más importante en esta etapa es recordar cambiar la tabla de particiones (ext4, por ejemplo). Dado que no importa cómo cambiemos todos los tipos de incursiones, lvm, hasta que se notifique al sistema de archivos de la partición que el tamaño de la partición ahora ha cambiado, no podremos usar el nuevo espacio. Use el comando resize2fs para cambiar el FS.


  23. Acorde final


    • Vamos a reiniciar Si hizo todo correctamente, volverá a encontrarse en su sistema operativo (esto es necesario para asegurarse de que todo funcione. Este paso no tiene sentido excepto para la autocomprobación)
    • Comprueba que todo lo que queríamos hacer estaba realmente hecho:


       pvs lvs vgs lsblk cat /proc/mdstat 


  24. [OPCIONAL] Sigue los pasos


    • Reinicie presionando F12 para indicar diferentes discos al arrancar, para asegurarse de que puede arrancar desde cualquiera de los discos ssd, para que no tengamos miedo de que uno de ellos falle.
    • Ahora tiene el registro LV innecesario en el sistema VG. Distribuya este espacio entre root o var, pero en lugar de usar la construcción 100% GRATUITA, especifique el tamaño con sus manos usando el interruptor -L:


       -L 500M 

    • Solucione el problema con el hecho de que / boot está en dos particiones sin sincronización, no necesita hacer esto de la manera correcta, aquí se agrega como ejemplo. No olvides copiar el contenido de / boot en alguna parte.
    • Crea una nueva incursión e incluye sda1, sda2 en ella.
    • Incluya estas particiones en su incursión existente y restablezca / inicie básicamente la incursión, pero sin montarla nunca más.

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


All Articles