Una pequeña digresión: este LR es sintético.
Algunas de las tareas descritas aquí se pueden realizar de forma mucho más sencilla, pero dado que la tarea de l/r es conocer
con las funciones raid y lvm, algunas operaciones se complican artificialmente.
Requisitos de las herramientas para realizar LR:
Herramientas de virtualización como Virtualbox
Imagen de instalación de Linux, por ejemplo Debian9
Disponibilidad de Internet para descargar varios paquetes.
Conéctese vía ssh a la VM instalada (opcional)
PRECAUCIÓN
Este trabajo de laboratorio está relacionado con un tema tan sutil como la seguridad de los datos: este es un área en la que
lo que le permite perder todos sus datos debido al error más pequeño: una letra o número adicional.
Como estás haciendo trabajo de laboratorio, no corres ningún peligro, excepto que tendrás que empezar a hacerlo todo de nuevo.
En la vida real, todo es mucho más serio, por lo que debes ingresar los nombres de los discos con mucho cuidado, entendiendo
¿Qué estás haciendo exactamente con el comando actual y con qué discos estás trabajando?
El segundo punto importante es la denominación de los discos y las particiones: según la situación, los números de los discos pueden diferir.
a partir de aquellos valores que se presentan en los comandos en el trabajo de laboratorio.
Entonces, por ejemplo, si elimina el disco sda de la matriz y luego agrega un disco nuevo, se mostrará el nuevo disco.
en un sistema llamado sda. Si reinicia antes de agregar un nuevo disco, entonces el nuevo
el disco se llamará sdb y el antiguo se llamará sda
El laboratorio debe ejecutarse como superusuario (root), ya que la mayoría de los comandos lo requieren.
privilegios elevados y no tiene sentido escalar privilegios constantemente a través de sudo
Materiales de estudio
RAID
LVM
Nomenclatura de discos en el sistema operativo Linux
¿Qué es una sección?
¿Qué es una tabla de particiones y dónde se almacena?
que es la comida
Utilidades utilizadas
1) ver información del disco
lsblk -o NOMBRE, TAMAÑO, FSTYPE, TIPO, PUNTO DE MONTAJE
fdisk -l
2) ver información y trabajar con LVM
pvs
extender
pvccrear
pvredimensionar
vgs
vgreducir
lvs
extender
3) ver información y trabajar con RAID
gato /proc/mdstat
mdadm
4) puntos de montaje
montar
desmontar
gato /etc/fstab
gato /etc/mtab
5) partición del disco
fdisk/dev/XXX
6) copiar particiones
dd si=/dev/xxx de=/dev/yyy
7) trabajar con la tabla de particiones
partx
disco sf
mkfs.ext4
8) trabajar con el gestor de arranque
instalación de grub /dev/XXX
actualizar-grub
9) misceláneos
lsof
apto
rsync
El trabajo de laboratorio consta de 3 partes:
configurar un sistema de trabajo usando lvm, raid
Emulación de uno de los fallos del disco.
reemplazar discos sobre la marcha, agregar nuevos discos y mover particiones.
Tarea 1 (instalación del sistema operativo y configuración de LVM, RAID)
1) Crear una nueva máquina virtual, dándole las siguientes características:
1 GB de RAM
1 cpu
2 discos duros (nómbrelos ssd1, ssd2 y asígneles tamaños iguales, marque las casillas de intercambio en caliente y ssd)
Controlador SATA configurado para 4 puertos
2) Comience a instalar Linux y cuando llegue a seleccionar los discos duros, haga lo siguiente:
Método de partición: manual, después del cual deberías ver esta imagen:
Configurar una partición separada para /boot: seleccione el primer disco y cree una nueva tabla de particiones en él
Tamaño de partición: 512M
Punto de montaje: /boot
Repita la configuración para el segundo disco, pero como no puede montar/arrancar dos veces al mismo tiempo, seleccione el punto de montaje: ninguno, y finalmente obtendrá lo siguiente (imagen con una jamba, demasiado vago para rehacerla):
Configuración de RAID:
Seleccione espacio libre en el primer disco y configure el tipo de partición como volumen físico para RAID
Seleccione "Terminado de configurar la partición"
Repita exactamente la misma configuración para el segundo disco, lo que dará como resultado lo siguiente:
Seleccione "Configurar software RAID"
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ó en raid
Acabado
Como resultado, deberías obtener una imagen como esta:
Configuración de LVM: seleccione Configurar el administrador de volúmenes lógicos
Mantenga el diseño de partición actual y configure LVM: Sí
Crear grupo de volumen
Nombre del grupo de volúmenes: sistema
Dispositivos para el nuevo grupo de volúmenes: seleccione su RAID creado
Crear volumen lógico
nombre del volumen lógico: raíz
tamaño de volumen lógico: 25 del tamaño de su disco
Crear volumen lógico
nombre del volumen lógico: var
tamaño de volumen lógico: 25 del tamaño de su disco
Crear volumen lógico
nombre del volumen lógico: registro
tamaño de volumen lógico: 15 del tamaño de su disco
Al seleccionar Mostrar detalles de configuración, debería obtener la siguiente imagen:
Una vez que haya completado la configuración de LVM, debería ver lo siguiente:
Diseño de partición: uno por uno, seleccione cada volumen creado en LVM y distribúyalos, por ejemplo, para root de esta manera:
Usar como: ext4
punto de montaje: /
El resultado de marcar la partición raíz debería verse así:
repita la operación de partición para var y log, seleccionando los puntos de montaje apropiados (/var y /var/log ingresados manualmente), obteniendo el siguiente resultado:
Seleccione Finalizar partición
Se le harán varias 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í:
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)
Enumere todos los discos que le dio el comando anterior y describa qué tipo de disco es
Busque la unidad donde no se instaló grub y realice esta instalación: grub-install /dev/sdb
vea información sobre la incursión actual con el comando cat /proc/mdstat y escriba lo que vea.
Mire la salida de los comandos: pvs, vgs, lvs, mount y escriba lo que vio exactamente.
Describe con tus propias palabras lo que hiciste y qué resultado obtuviste de la tarea.
Después de completar esta tarea, se recomienda guardar una copia de seguridad de la carpeta de la máquina virtual o hacer
caja vagabunda: https://t.me/bykvaadm/191
Resultado: Máquina virtual con discos ssd1, ssd2
Tarea 2 (Emulando el fallo de uno de los discos)
1) Si ha marcado la casilla de intercambio en caliente, puede eliminar discos sobre la marcha
Eliminar disco ssd1 en propiedades de la máquina
Busque el directorio donde están almacenados los archivos de su máquina virtual y elimine ssd1.vmdk
2) Asegúrese de que su máquina virtual todavía esté funcionando
3) Reinicie la máquina virtual y asegúrese de que todavía se esté ejecutando
4) verifique el estado de la matriz RAID: cat /proc/mdstat
5) agregue un nuevo disco del mismo tamaño en la interfaz VM y asígnele el nombre ssd3
6) realizar las operaciones:
ver que el nuevo disco ha llegado al sistema usando fdisk -l
copie la tabla de particiones del disco antiguo al nuevo: sfdisk -d /dev/XXXX | sfdisk /dev/YYY
mira el resultado usando fdisk -l
Agregue un nuevo disco a la matriz raid: mdadm —manage /dev/md0 —add /dev/YYY
Mire el resultado: cat /proc/mdstat. Deberías ver que la sincronización ha comenzado.
7) Ahora necesita sincronizar manualmente las particiones que no forman parte del RAID.
Para hacer esto, usaremos la utilidad dd, copiando del disco “live” al nuevo que instaló recientemente.
dd if=/dev/XXX of=/dev/YYY
8) Una vez completada la sincronización, instale grub en la nueva unidad
9) Reinicie la VM para asegurarse de que todo esté funcionando.
Describe con tus propias palabras lo que hiciste y qué resultado obtuviste de la tarea.
Resultado: se eliminó el disco ssd1, se guardó el disco ssd2 y se agregó el disco ssd3.
Tarea 3 (Agregar nuevos discos y mover una partición)
Ésta es la tarea más compleja y voluminosa de todas las presentadas.
Comprueba con mucho cuidado qué estás haciendo y con qué discos y particiones.
Se recomienda hacer una copia antes de ejecutarlo.
Esta tarea es independiente de la tarea número 2; se puede realizar después de la tarea número 1, ajustada según los nombres de los discos.
La segunda parte de esta tarea de laboratorio debería llevarnos exactamente al mismo estado que después de completar la primera parte.
Para facilitar su trabajo, puedo recomendar no retirar físicamente los discos de la máquina host, sino sólo
desconéctelos en las propiedades de la máquina. Desde el punto de vista del sistema operativo en la VM, se verá exactamente igual, pero puedes
si sucede algo, vuelva a conectar el disco y continúe el trabajo retrocediendo un par de puntos, si
estás teniendo problemas. Por ejemplo, es posible que lo haya hecho incorrectamente o que haya olvidado copiar la partición /boot al nuevo disco.
Solo puedo aconsejarle que compruebe varias veces con qué discos y particiones está trabajando, o incluso mejor
Anota en una hoja de papel la correspondencia entre los discos, particiones y el número de disco “físico”. Hermoso y claro árbol
sorteos del equipo lsblk, Úselo con la mayor frecuencia posible para analizar lo que ha hecho y lo que hay que hacer.
A la historia...
Imagina que tu servidor ha estado funcionando durante mucho tiempo en 2 unidades SSD, cuando de repente…
1) Simule la falla del disco ssd2 quitando el disco de las propiedades de la VM y reiniciando
2) Ver el estado actual de los discos y RAID:
5) En primer lugar, debes cuidar la seguridad de los datos en el 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 x,y por los discos correctos y descubra qué hace este comando.
Ejecute lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT y compare su resultado con la llamada anterior.
¿Que ha cambiado?
use el comando dd para copiar los datos /boot al nuevo disco
dd if=/dev/XXX of=/dev/YYY
Si /boot permaneció montado en el disco antiguo, se debe volver a montar en el disco activo:
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 realizando esta operación?
cree una nueva matriz raid que incluya solo un disco SSD nuevo:
El comando anterior no funcionará sin especificar una clave especial.
Lea la ayuda y agregue esta clave al comando.
Utilice el comando cat /proc/mdstat para comprobar el resultado de su operación. ¿Que ha cambiado?
Ejecute lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT y compare su resultado con la llamada anterior.
¿Que 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 que incluya la matriz RAID creada anteriormente:
pvcreate /dev/md63
Ejecute lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT y compare su resultado con la llamada anterior.
¿Que ha cambiado?
Ejecute el comando pvs nuevamente. ¿Que ha cambiado?
Aumentemos el tamaño del sistema del grupo de volúmenes usando 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 se encuentran actualmente LV var,log,root?
Mueva los datos de la unidad antigua a la nueva, utilizando los nombres de dispositivo correctos.
Repita la operación para todos los volúmenes lógicos.
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
Cambiemos nuestro VG quitando el antiguo disco raid. Sustituya el nombre de la incursión correcta.
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 hacer la imagen más hermosa, vuelva a montar/iniciar en el segundo disco ssd (ssd4) y ejecute lsblk. Como resultado, el disco ssd3 no
no se debe montar nada. ¡Compruebe cuidadosamente que la partición /boot no esté vacía! ls /boot debe mostrar
varios archivos y carpetas. Estudie lo que se almacena en esta sección y anote qué directorio de archivos es responsable de qué.
7) retire el disco ssd3 y agregue ssd5, hdd1, hdd2 de acuerdo con las especificaciones técnicas descritas anteriormente, lo que resulta en:
ssd4: el primer SSD nuevo
ssd5 - segundo ssd nuevo
hdd1 - primer disco duro nuevo
hdd2 - segundo disco duro nuevo
8) Verifique qué sucedió después de agregar los discos:
9) Restablezcamos el funcionamiento del conjunto raid principal:
copie la tabla de particiones, reemplazando los discos correctos:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Tenga en cuenta que cuando copiamos la tabla de particiones del disco antiguo, parecía que el nuevo tamaño
no utiliza toda la capacidad del disco duro.
Por lo tanto, pronto necesitaremos cambiar el tamaño de esta partición y expandir la incursión.
Compruébelo usted mismo ejecutando el comando:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
10) copie la partición de arranque/arranque de ssd4 a ssd5
dd if=/dev/XXX of=/dev/YYY
11) Instale grub en la nueva unidad (ssd5)
12) cambiar el tamaño de la segunda partición del disco ssd5
Ejecute la utilidad de partición de disco:
fdisk /dev/XXX
ingrese la tecla d para eliminar una partición existente (elija 2)
ingrese la clave n para crear una nueva partición
ingrese la clave p para indicar que el tipo de partición es "primaria"
ingrese la clave 2 para que la nueva partición tenga el segundo número
Primer sector: presione enter para aceptar el tamaño calculado automáticamente del comienzo de la partición
Último sector: presione enter para aceptar el tamaño calculado automáticamente del final de la partición
ingrese la tecla l para ver una lista de todos los tipos de particiones posibles y busque Linux raid auto en ella
ingrese la tecla t para cambiar el tipo de 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.
12) vuelva a leer la tabla de particiones y verifique el resultado
agregue un nuevo disco a la matriz raid actual (no olvide sustituir los discos correctos)
mdadm --manage /dev/md63 --add /dev/sda2
Ampliemos la cantidad de discos en nuestra matriz a 2:
mdadm --grow /dev/md63 --raid-devices=2
Mire el resultado: tenemos 2 matrices marcadas, pero ambas secciones incluidas en esta matriz tienen diferentes tamaños
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
13) aumente el tamaño de la partición en el disco ssd4
Ejecute la utilidad de partición de disco:
fdisk /dev/XXX
ingrese la tecla d para eliminar una partición existente (elija 2)
ingrese la clave n para crear una nueva partición
ingrese la clave p para indicar que el tipo de partición es "primaria"
ingrese la clave 2 para que la nueva partición tenga el segundo número
Primer sector: presione enter para aceptar el tamaño calculado automáticamente del comienzo de la partición
Último sector: presione enter para aceptar el tamaño calculado automáticamente del final de la partición
Al final del marcado, seleccione No para dejar la firma de los miembros de la partición en la matriz.
ingrese la tecla w para escribir el cambio en el disco.
12) vuelva a leer la tabla de particiones y verifique el resultado
creemos un nuevo PV en la incursión desde discos grandes
pvcreate data /dev/md127
Creemos un grupo en este PV llamado datos.
vgcreate data /dev/md127
Creemos un volumen lógico con el tamaño de todo el espacio libre y llamémoslo val_log
lvcreate -l 100%FREE -n var_log data # lvs # посмотрим результат
formatear la partición creada en ext4
mkfs.ext4 /dev/mapper/data-var_log
veamos el resultado
lsblk
17) transferir datos de registro de la partición anterior a la nueva
instalar temporalmente un nuevo almacenamiento de registros
mount /dev/mapper/data-var_log /mnt
sincronicemos las particiones
apt install rsync
rsync -avzr /var/log/ /mnt/
Averigüemos qué procesos se están ejecutando actualmente en /var/log
apt install lsof
lsof | grep '/var/log'
detener estos procesos
systemctl stop rsyslog.service syslog.socket
realizar la sincronización final de particiones (datos que pueden haber cambiado desde la última sincronización)
rsync -avzr /var/log/ /mnt/
intercambiar las secciones
umount /mnt
umount /var/log
mount /dev/mapper/data-var_log /var/log
veamos qué pasó
lsblk
18) Editar /etc/fstab
fstab: un archivo que registra las reglas según las cuales se montarán las particiones en el arranque
nuestra tarea es encontrar la línea donde está montado /var/log y arreglar el dispositivo system-log en data-var_log
19) Lo más importante en esta etapa es no olvidar cambiar la tabla radela (ext4, por ejemplo). Porque no importa cómo cambiemos cualquier raid, lvm, hasta que se notifique al FS de la partición que el tamaño de la partición ha cambiado, no podremos usar el nuevo espacio. usa el comando resize2fs para cambiar el FS.
20) Acorde final
Reiniciemos. Si hizo todo correctamente, regresará a su sistema operativo (esto es necesario para asegurarse de que todo esté funcionando. Este paso no tiene más significado que el de autocomprobación).
comprobar que todo lo que queríamos hacer se hizo realmente:
pvs
lvs
vgs
lsblk
cat /proc/mdstat
21) [OPCIONAL] Sigue los pasos
reinicie presionando F12 para especificar diferentes unidades al iniciar para asegurarse de que puede iniciar
desde cualquiera de las unidades ssd, para que no tengamos miedo de que falle una de ellas
ahora tiene un registro LV innecesario en el sistema VG. Asigne este espacio entre root o var, pero en lugar de usar
diseños 100%GRATIS especifica el tamaño a mano usando la tecla -L:
-L 500M
solucione el problema de que /boot está ubicado en dos particiones sin sincronización, no es necesario hacerlo correctamente,
se agrega aquí como ejemplo. No olvides copiar primero el contenido de /boot en algún lugar.
crear una nueva incursión e incluir sda1,sda2 en ella
incluya estas particiones en el raid existente y restaure /boot en el raid principal, pero sin montarlo.