Unha pequena digresión: este LR é sintético.
Algunhas das tarefas aquí descritas pódense facer moito máis sinxelas, pero xa que a tarefa de l/r é coñecer
coa funcionalidade raid e lvm, algunhas operacións complícanse artificialmente.
Requisitos das ferramentas para realizar LR:
Ferramentas de virtualización como Virtualbox
Imaxe de instalación de Linux, por exemplo Debian 9
Dispoñibilidade de Internet para descargar varios paquetes
Conectar mediante ssh á máquina virtual instalada (opcional)
ATENCIÓN
Este traballo de laboratorio está relacionado con un asunto tan sutil como a seguridade dos datos - esta é unha área onde
o que lle permite perder todos os seus datos debido ao menor erro: unha letra ou número adicional.
Xa que estás facendo traballo de laboratorio, non corres ningún perigo, salvo que terás que comezar a facelo de novo.
Na vida real, todo é moito máis serio, polo que debes introducir os nomes dos discos con moito coidado, entendendo
que está facendo exactamente co comando actual e con que discos está a traballar.
O segundo punto importante é a denominación de discos e particións: dependendo da situación, os números de disco poden diferir
a partir daqueles valores que se presentan nos comandos no traballo de laboratorio.
Así, por exemplo, se elimina o disco sda da matriz e despois engade un novo disco, o novo disco amosarase
nun sistema chamado sda. Se reinicia antes de engadir un novo disco, entón o novo
o disco chamarase sdb e o antigo chamarase sda
O laboratorio debe executarse como superusuario (raíz) como requiren a maioría dos comandos
privilexios elevados e non ten sentido aumentar os privilexios constantemente a través de sudo
Materiais de estudo
RAID
LVM
Nomes de disco no sistema operativo Linux
Que é unha sección
Que é unha táboa de particións e onde se almacena?
Que é grub
Utilidades utilizadas
1) ver a información do disco
lsblk -o NOME, TAMAÑO, TIPO FS, TIPO, PUNTO DE MONTAXE
fdisk -l
2) ver información e traballar con LVM
pvs
pvextend
pvcreate
pvresize
etc
vgreduce
lvs
lveestender
3) ver información e traballar con RAID
cat /proc/mdstat
mdadm
4) puntos de montaxe
montar
desmontar
cat /etc/fstab
cat /etc/mtab
5) repartición de discos
fdisk /dev/XXX
6) copiando particións
dd if=/dev/xxx of=/dev/yyy
7) traballar coa táboa de particións
partx
sfdisk
mkfs.ext4
8) traballar co cargador de arranque
grub-install /dev/XXX
actualización-grub
9) Varios
lsof
apto
rsync
O traballo de laboratorio consta de 3 partes:
configurar un sistema de traballo usando lvm, raid
emulación dun dos fallos do disco
substituíndo discos sobre a marcha, engadindo novos discos e movendo particións.
Tarefa 1 (instalación do SO e configuración de LVM, RAID)
1) Crea unha nova máquina virtual, dándolle as seguintes características:
1 GB de memoria RAM
1 cpu
2 discos duros (nomeos ssd1, ssd2 e asígnelle tamaños iguais, marque as caixas de intercambio en quente e ssd)
Controlador SATA configurado para 4 portos
2) Comeza a instalar Linux e cando chegue a seleccionar os discos duros, faga o seguinte:
Método de partición: manual, despois do cal deberías ver esta imaxe:
Configurar unha partición separada para /boot: seleccione o primeiro disco e cree unha nova táboa de particións nel
Tamaño da partición: 512M
Punto de montaxe: /boot
Repita a configuración para o segundo disco, pero dado que non pode montar /boot dúas veces ao mesmo tempo, seleccione o punto de montaxe: none, e finalmente obtense o seguinte (a imaxe cunha xamba, demasiado preguiceiro para refacelo):
Configuración RAID:
Seleccione espazo libre no primeiro disco e configure o tipo de partición como volume físico para RAID
Seleccione "Finalizar a configuración da partición"
Repita exactamente a mesma configuración para o segundo disco, resultando o seguinte:
Seleccione "Configurar software RAID"
Crear dispositivo MD
Tipo de dispositivo RAID de software: seleccione unha matriz espellada
Dispositivos activos para a matriz RAID XXXX: seleccione ambas unidades
Dispositivos de reserva: deixe 0 como predeterminado
Dispositivos activos para a matriz RAID XX: seleccione as particións que creou en RAID
Rematar
Como resultado, deberías obter unha imaxe como esta:
Configuración de LVM: seleccione Configurar o xestor de volumes lóxicos
Manter o deseño actual da partición e configurar LVM: Si
Crear grupo de volumes
Nome do grupo de volumes: sistema
Dispositivos para o novo grupo de volumes: seleccione o RAID creado
Crear volume lóxico
nome do volume lóxico: root
tamaño do volume lóxico: 25 do tamaño do seu disco
Crear volume lóxico
nome do volume lóxico: var
tamaño do volume lóxico: 25 do tamaño do seu disco
Crear volume lóxico
nome do volume lóxico: rexistro
tamaño do volume lóxico: 15 do tamaño do seu disco
Ao seleccionar Mostrar detalles de configuración deberías obter a seguinte imaxe:
Unha vez que completes a configuración de LVM deberías ver o seguinte:
Disposición de partición: un por un, selecciona cada volume creado en LVM e dispóñaos, por exemplo, para root deste xeito:
Usar como: ext4
punto de montaxe: /
O resultado de marcar a partición raíz debería verse así:
repita a operación de partición para var e log, seleccionando os puntos de montaxe axeitados (/var e /var/log introducidos manualmente), obtendo o seguinte resultado:
Seleccione Finalizar partición
Faranche varias preguntas sobre o feito de que aínda tes unha partición sen montar e o intercambio non está configurado. Ambas preguntas deben ser contestadas negativamente.
O resultado final debería ser así:
3) Finalice a instalación do SO instalando grub no primeiro dispositivo (sda) e arrinque o sistema.
4) Copie o contido da partición /boot da unidade sda (ssd1) á unidade sdb (ssd2)
Enumera todos os discos que che deu o comando anterior e describe que tipo de disco é
Busca a unidade onde non se instalou o grub e realiza esta instalación: grub-install /dev/sdb
ver información sobre a incursión actual co comando cat /proc/mdstat e anotar o que ve.
mira a saída dos comandos: pvs, vgs, lvs, mount e escribe o que viu exactamente
Describe coas túas propias palabras o que fixeches e o resultado que obtivo coa tarefa.
Despois de completar esta tarefa, recoméndase gardar unha copia de seguridade do cartafol da máquina virtual ou facer
caixa vagabunda: https://t.me/bykvaadm/191
Resultado: máquina virtual con discos ssd1, ssd2
Tarefa 2 (Emular o fallo dun dos discos)
1) Se marcaches a caixa de intercambio en quente, podes eliminar discos sobre a marcha
Elimina o disco ssd1 nas propiedades da máquina
Busca o directorio onde se almacenan os ficheiros da túa máquina virtual e elimina ssd1.vmdk
2) Asegúrate de que a túa máquina virtual aínda está funcionando
3) Reinicie a máquina virtual e asegúrese de que aínda está en execución
4) verifique o estado da matriz RAID: cat /proc/mdstat
5) engade un novo disco do mesmo tamaño na interface da máquina virtual e nomealle ssd3
6) Realice as operacións:
ver que o novo disco chegou ao sistema usando fdisk -l
copie a táboa de particións do disco antigo ao novo: sfdisk -d /dev/XXXX | sfdisk /dev/YYY
mira o resultado usando fdisk -l
Engade un novo disco á matriz raid: mdadm —manage /dev/md0 —add /dev/YYY
Mira o resultado: cat /proc/mdstat. Deberías ver que a sincronización comezou
7) Agora cómpre sincronizar manualmente as particións que non forman parte do RAID.
Para iso, utilizaremos a utilidade dd, copiando desde o disco "en vivo" ao novo que instalou recentemente
dd if=/dev/XXX of=/dev/YYY
8) Despois de completar a sincronización, instale o grub na nova unidade
9) Reinicie a máquina virtual para asegurarse de que todo funciona
Describe coas túas propias palabras o que fixeches e o resultado que obtivo coa tarefa.
Resultado: eliminouse o disco ssd1, gardouse o disco ssd2 e engadiuse o disco ssd3.
Tarefa 3 (Engadir novos discos e mover unha partición)
Esta é a tarefa máis complexa e voluminosa de todas as presentadas.
Comprobe con moito coidado o que está a facer e con que discos e particións.
Recoméndase facer unha copia antes de executalo.
Esta tarefa é independente da tarefa número 2, pódese realizar despois da tarefa número 1, axustada para os nomes de disco.
A segunda parte desta tarefa de laboratorio debería levar exactamente ao mesmo estado que estaba despois de completar a primeira parte.
Para facilitar o teu traballo, recomendo que non elimines fisicamente os discos da máquina host, senón só
desconécteos nas propiedades da máquina. Desde o punto de vista do sistema operativo na VM, parecerá exactamente igual, pero podes
se ocorre algo, conecte o disco de novo e continúe o traballo retrocedendo un par de puntos, se
estás tendo problemas. Por exemplo, é posible que o fixera incorrectamente ou se esquecera de copiar a partición /boot no novo disco.
Só podo aconsellarlle que comprobe varias veces con que discos e particións está a traballar, ou aínda mellor.
Anota nun papel a correspondencia entre os discos, particións e o número de disco “físico”. Árbore fermosa e clara
empates por equipos lsblk, utilízao coa maior frecuencia posible para analizar o que fixeches e o que hai que facer.
Ao conto...
Imaxina que o teu servidor estivo funcionando durante moito tempo en 2 unidades SSD, cando de súpeto...
1) Simule o fallo do disco ssd2 eliminando o disco das propiedades da máquina virtual e reiniciando
2) Ver o estado actual dos discos e do RAID:
5) En primeiro lugar, debes coidar da seguridade dos datos do disco antigo.
Esta vez transferiremos datos usando LVM:
Primeiro de todo, cómpre copiar a táboa de ficheiros do disco antigo ao novo:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Substitúe os discos correctos por x,y e descubra o que fai este comando.
Execute lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT e compare a súa saída coa chamada anterior.
Que cambiou?
use o comando dd para copiar os datos /boot no novo disco
dd if=/dev/XXX of=/dev/YYY
se /boot permaneceu montado no disco antigo, debería montarse de novo no disco en directo:
mount | grep boot # смотрим куда смонтирован диск
lsblk # смотрим какие диски есть в системе и смотрим есть ли диск, полученный из предыдущего пункта
umount /boot # отмонтируем /boot
mount -a # выполним монтирование всех точек согласно /etc/fstab.
# Поскольку там указана точка монтирования /dev/sda, то будет выполнено корректное перемонтирование на живой диск
Instala o cargador de arranque na nova unidade ssd
grub-install /dev/YYY
Por que estamos a realizar esta operación?
cree unha nova matriz de incursión que inclúe só un novo disco ssd:
O comando anterior non funcionará sen especificar unha chave especial.
Le a axuda e engade esta chave ao comando.
Use o comando cat /proc/mdstat para comprobar o resultado da súa operación. Que cambiou?
Execute lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT e compare a súa saída coa chamada anterior.
Que cambiou?
6) O seguinte paso é configurar LVM
execute o comando pvs para ver información sobre os volumes físicos actuais
cree un novo volume físico incluíndo a matriz RAID creada anteriormente:
pvcreate /dev/md63
Execute lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT e compare a súa saída coa chamada anterior.
Que cambiou?
Execute o comando pvs de novo. Que cambiou?
Aumentemos o tamaño do sistema de grupos de volume usando o seguinte comando:
vgextend system /dev/md63
Executa os comandos e escribe o que viu e o que cambiou.
vgdisplay system -v
pvs
vgs
lvs -a -o+devices
En que disco físico se atopa actualmente LV var,log,root?
Move os datos da antiga unidade á nova, utilizando os nomes de dispositivos correctos.
Executa os comandos e escribe o que viu e o que cambiou.
vgdisplay system -v
pvs
vgs
lvs -a -o+devices
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Imos cambiar o noso VG eliminando o antigo disco raid. Substitúe o nome correcto da banda.
vgreduce system /dev/md0
Executa os comandos e escribe o que viu e o que cambiou.
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
pvs
vgs
Para facer a imaxe máis fermosa, volve montar /boot no segundo disco ssd (ssd4) e executa lsblk. Como resultado, o disco ssd3 non
non se debe montar nada. Comprobe coidadosamente que a partición /boot non estea baleira! ls /boot debe mostrar
varios ficheiros e cartafoles. Estude o que se almacena nesta sección e anote que directorio de ficheiros é responsable de que.
7) elimina o disco ssd3 e engade ssd5, hdd1, hdd2 segundo as especificacións técnicas descritas anteriormente, o que resulta:
ssd4 - o primeiro ssd novo
ssd5 - segundo ssd novo
hdd1 - primeiro disco duro novo
hdd2 - segundo disco duro novo
8) Comprobe o que pasou despois de engadir discos:
9) Restauremos o funcionamento da matriz de ataque principal:
copie a táboa de particións, substituíndo os discos correctos:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Teña en conta que cando copiamos a táboa de particións do disco antigo, parecía que o novo tamaño
non utiliza toda a capacidade do disco duro.
Polo tanto, en breve teremos que redimensionar esta partición e ampliar a incursión.
Comproba por ti mesmo executando o comando:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
10) copie a partición de arranque /boot de ssd4 a ssd5
dd if=/dev/XXX of=/dev/YYY
11) Instala grub na nova unidade (ssd5)
12) redimensionar a segunda partición do disco ssd5
executa a utilidade de partición do disco:
fdisk /dev/XXX
introduza a tecla d para eliminar unha partición existente (escolla 2)
introduza a chave n para crear unha nova partición
introduza a tecla p para indicar que o tipo de partición é "principal"
introduza a tecla 2 para que a nova partición teña o segundo número
Primeiro sector: prema Intro para aceptar o tamaño calculado automaticamente do inicio da partición
Último sector: prema Intro para aceptar o tamaño calculado automaticamente do final da partición
introduza a tecla l para ver unha lista de todos os tipos de particións posibles e atopar nela Linux Raid Auto
introduza a tecla t para cambiar o tipo da partición creada (2) e introduza o número atopado no paso anterior.
introduza a tecla w para escribir o cambio no disco.
12) volve ler a táboa de particións e verifique o resultado
engadir un novo disco á matriz de ataque actual (non esqueza substituír os discos correctos)
mdadm --manage /dev/md63 --add /dev/sda2
Imos ampliar o número de discos da nosa matriz a 2:
mdadm --grow /dev/md63 --raid-devices=2
Mira o resultado: temos 2 matrices marcadas, pero as dúas seccións incluídas nesta matriz teñen tamaños diferentes
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
13) aumentar o tamaño da partición no disco ssd4
executa a utilidade de partición do disco:
fdisk /dev/XXX
introduza a tecla d para eliminar unha partición existente (escolla 2)
introduza a chave n para crear unha nova partición
introduza a tecla p para indicar que o tipo de partición é "principal"
introduza a tecla 2 para que a nova partición teña o segundo número
Primeiro sector: prema Intro para aceptar o tamaño calculado automaticamente do inicio da partición
Último sector: prema Intro para aceptar o tamaño calculado automaticamente do final da partición
Ao final do marcado, seleccione Non para deixar a sinatura da pertenza da partición na matriz.
introduza a tecla w para escribir o cambio no disco.
12) volve ler a táboa de particións e verifique o resultado
imos crear un novo PV no raid a partir de discos grandes
pvcreate data /dev/md127
Imos crear un grupo neste PV chamado datos
vgcreate data /dev/md127
Creemos un volume lóxico co tamaño de todo o espazo libre e chamémoslle val_log
lvcreate -l 100%FREE -n var_log data # lvs # посмотрим результат
formatear a partición creada en ext4
mkfs.ext4 /dev/mapper/data-var_log
vexamos o resultado
lsblk
17) transferir datos de rexistro da partición antiga á nova
instalar temporalmente un novo almacenamento de rexistro
mount /dev/mapper/data-var_log /mnt
imos sincronizar as particións
apt install rsync
rsync -avzr /var/log/ /mnt/
Descubramos cales son os procesos que se están executando actualmente en /var/log
apt install lsof
lsof | grep '/var/log'
parar estes procesos
systemctl stop rsyslog.service syslog.socket
realizar a sincronización final das particións (datos que poden ter cambiado desde a última sincronización)
rsync -avzr /var/log/ /mnt/
intercambiar as seccións
umount /mnt
umount /var/log
mount /dev/mapper/data-var_log /var/log
imos comprobar o que pasou
lsblk
18) Edite /etc/fstab
fstab - un ficheiro que rexistra as regras polas que se montarán as particións ao arrancar
a nosa tarefa é atopar a liña onde está montado /var/log e arranxar o dispositivo system-log en data-var_log
19) O máis importante nesta fase é non esquecer cambiar a táboa de radela (ext4, por exemplo). Porque non importa como cambiemos calquera ataque, lvm, ata que o FS da partición sexa notificado de que agora cambiou o tamaño da partición, non poderemos usar o novo espazo. Use o comando resize2fs para cambiar o FS.
20) Acordo final
Reiniciemos. Se fixeches todo correctamente, volverás ao teu SO (isto é necesario para asegurarte de que todo funciona. Este paso non ten outro significado que a autoproba)
comprobar que todo o que queriamos facer estaba feito:
pvs
lvs
vgs
lsblk
cat /proc/mdstat
21) [OPCIONAL] Siga os pasos
reinicie premendo F12 para especificar diferentes unidades ao iniciar para asegurarse de que pode iniciar
de calquera das unidades ssd, para que non teñamos medo a falla dunha delas
agora tes un rexistro LV innecesario no sistema VG. Asigna este espazo entre root ou var, pero en vez de usalo
deseños 100% GRATIS especifique o tamaño a man usando a tecla -L:
-L 500M
solucionar o problema de que /boot está situado en dúas particións sen sincronización, non hai que facelo correctamente,
engádese aquí como exemplo. Non esquezas copiar primeiro o contido de /boot nalgún lugar.
crea un novo raid e inclúe sda1,sda2 nel
inclúa estas particións no raid existente e restaura /boot no raid principal, pero sen montalo.