Una piccola digressione: questo LR è sintetico.
Alcuni dei compiti qui descritti possono essere svolti in modo molto più semplice, ma poiché il compito di l/r è conoscere
con le funzionalità raid e lvm, alcune operazioni sono artificialmente complicate.
Requisiti per gli strumenti per eseguire LR:
Strumenti di virtualizzazione come Virtualbox
Immagine di installazione Linux, ad esempio Debian9
Disponibilità di Internet per scaricare diversi pacchetti
Connettiti tramite ssh alla VM installata (opzionale)
ВНИМАНИЕ
Questo lavoro di laboratorio è legato a una questione così delicata come la sicurezza dei dati: questa è un'area in cui
che ti consente di perdere tutti i tuoi dati a causa del più piccolo errore: una lettera o un numero in più.
Dal momento che stai svolgendo un lavoro di laboratorio, non corri alcun pericolo, tranne che dovrai ricominciare tutto da capo.
Nella vita reale, tutto è molto più serio, quindi dovresti inserire i nomi dei dischi con molta attenzione, comprendendo
cosa stai facendo esattamente con il comando corrente e con quali dischi stai lavorando.
Il secondo punto importante è la denominazione dei dischi e delle partizioni: a seconda della situazione, i numeri dei dischi potrebbero differire
da quei valoriche vengono presentati nei comandi nel lavoro di laboratorio.
Quindi, ad esempio, se rimuovi il disco sda dall'array e poi aggiungi un nuovo disco, verrà visualizzato il nuovo disco
su un sistema chiamato sda. Se riavvii prima di aggiungere un nuovo disco, il nuovo
il disco si chiamerà sdb e quello vecchio si chiamerà sda
Il laboratorio deve essere eseguito come superutente (root) come richiesto dalla maggior parte dei comandi
privilegi elevati e non ha senso aumentare costantemente i privilegi tramite sudo
Materiali di studio
RAID
LVM
Denominazione del disco nel sistema operativo Linux
Cos'è una sezione
Cos'è una tabella delle partizioni e dove viene archiviata?
Cos'è grub
Utenze utilizzate
1) visualizzare le informazioni sul disco
lsblk -o NOME,DIMENSIONE,TIPOFS,TIPO,PUNTO DI MONTAGGIO
fdisk -l
2) visualizzare le informazioni e lavorare con LVM
pv
pvextend
pvccreate
pvresize
eccetera
vgredere
LVS
lvestendi
3) visualizzare le informazioni e lavorare con RAID
cat /proc/mdstat
mdamm
4) punti di montaggio
Mount
umount
cat / etc / fstab
cat /etc/mtab
5) ripartizione del disco
fdisk /dev/XXX
6) copiare le partizioni
gg se=/dev/xxx di=/dev/aaa
7) lavorare con la tabella delle partizioni
partx
sfdisk
mkfs.ext4
8) lavorare con il bootloader
grub-install /dev/XXX
update-grub
9) mis
lsof
adatto
rsync
Il lavoro di laboratorio è composto da 3 parti:
impostare un sistema funzionante utilizzando lvm, raid
emulazione di uno dei guasti del disco
sostituendo i dischi al volo, aggiungendo nuovi dischi e spostando le partizioni.
Attività 1 (installazione del sistema operativo e configurazione di LVM, RAID)
1) Creare una nuova macchina virtuale, attribuendole le seguenti caratteristiche:
1 GB di RAM
1 CPU
2 hdd (chiamali ssd1, ssd2 e assegna dimensioni uguali, seleziona le caselle hot swap e ssd)
Controller SATA configurato per 4 porte
2) Inizia l'installazione di Linux e quando arrivi alla selezione dei dischi rigidi, procedi come segue:
Metodo di partizionamento: manuale, dopodiché dovresti vedere questa immagine:
Impostazione di una partizione separata per /boot: seleziona il primo disco e crea una nuova tabella delle partizioni su di esso
Dimensione della partizione: 512M
Punto di montaggio: /boot
Ripeti le impostazioni per il secondo disco, ma poiché non puoi montare /boot due volte contemporaneamente, seleziona mount point: none, ottenendo infine quanto segue (immagine con uno stipite, troppo pigro per rifarla):
Configurazione RAID:
Seleziona lo spazio libero sul primo disco e configura il tipo di partizione come volume fisico per RAID
Seleziona "Configurazione della partizione terminata"
Ripeti esattamente le stesse impostazioni per il secondo disco, ottenendo quanto segue:
Seleziona "Configura RAID software"
Crea dispositivo MD
Tipo di dispositivo RAID software: selezionare un array con mirroring
Dispositivi attivi per l'array RAID XXXX: selezionare entrambe le unità
Dispositivi di riserva: lascia 0 come predefinito
Dispositivi attivi per l'array RAID XX: seleziona le partizioni che hai creato in raid
Fine
Di conseguenza, dovresti ottenere un'immagine come questa:
Configurazione di LVM: Selezionare Configura il Logical Volume Manager
Mantieni il layout della partizione corrente e configura LVM: sì
Crea gruppo di volumi
Nome del gruppo di volumi: sistema
Dispositivi per il nuovo gruppo di volumi: seleziona il RAID creato
Crea volume logico
nome del volume logico: root
dimensione del volume logico: 25 della dimensione del disco
Crea volume logico
nome del volume logico: var
dimensione del volume logico: 25 della dimensione del disco
Crea volume logico
nome del volume logico: log
dimensione del volume logico: 15 della dimensione del disco
Selezionando Visualizza dettagli configurazione dovresti ottenere la seguente immagine:
Una volta completata la configurazione di LVM dovresti vedere quanto segue:
Layout delle partizioni: uno per uno, seleziona ciascun volume creato in LVM e disponili, ad esempio, per root in questo modo:
Utilizzare come: ext4
punto di montaggio: /
Il risultato della marcatura della partizione root dovrebbe assomigliare a questo:
ripetere l'operazione di partizionamento per var e log, selezionando gli opportuni mount point (/var e /var/log inseriti manualmente), ottenendo il seguente risultato:
Seleziona Termina partizionamento
Ti verranno poste diverse domande sul fatto che hai ancora una partizione non montata e lo swap non è configurato. Ad entrambe le domande va data risposta negativa.
Il risultato finale dovrebbe assomigliare a questo:
3) Termina l'installazione del sistema operativo installando grub sul primo dispositivo (sda) e avvia il sistema.
4) Copia il contenuto della partizione /boot dall'unità sda (ssd1) all'unità sdb (ssd2)
Elenca tutti i dischi forniti dal comando precedente e descrivi di che tipo di disco si tratta
Trova l'unità in cui non è stato installato grub ed esegui questa installazione: grub-install /dev/sdb
visualizza le informazioni sul raid corrente con il comando cat /proc/mdstat e annota ciò che vedi.
guarda l'output dei comandi: pvs, vgs, lvs, mount e scrivi cosa hai visto esattamente
Descrivi con parole tue cosa hai fatto e quale risultato hai ottenuto dal compito.
Dopo aver completato questa attività, si consiglia di salvare una copia di backup della cartella della macchina virtuale o di crearla
scatola vagabonda: https://t.me/bykvaadm/191
Risultato: macchina virtuale con dischi ssd1, ssd2
Attività 2 (emulazione del guasto di uno dei dischi)
1) Se hai selezionato la casella hot swap, puoi eliminare i dischi al volo
Elimina il disco SSD1 nelle proprietà della macchina
Trova la directory in cui sono archiviati i file della macchina virtuale ed elimina ssd1.vmdk
2) Assicurati che la tua macchina virtuale sia ancora in esecuzione
3) Riavvia la macchina virtuale e assicurati che sia ancora in esecuzione
4) controlla lo stato dell'array RAID: cat /proc/mdstat
5) aggiungi un nuovo disco della stessa dimensione nell'interfaccia della VM e chiamalo ssd3
6) eseguire le operazioni:
verifica che il nuovo disco sia arrivato nel sistema utilizzando fdisk -l
copiare la tabella delle partizioni dal vecchio disco a quello nuovo: sfdisk -d /dev/XXXX | sfdisk /dev/AAAA
guarda il risultato usando fdisk -l
Aggiungi un nuovo disco all'array raid: mdadm —manage /dev/md0 —add /dev/YYY
Guarda il risultato: cat /proc/mdstat. Dovresti vedere che la sincronizzazione è iniziata
7) Ora è necessario sincronizzare manualmente le partizioni che non fanno parte del RAID.
Per fare ciò, utilizzeremo l'utilità dd, copiando dal disco “live” a quello nuovo che hai installato di recente
dd if=/dev/XXX of=/dev/YYY
8) Al termine della sincronizzazione, installare grub sulla nuova unità
9) Riavviare la VM per assicurarsi che tutto funzioni
Descrivi con parole tue cosa hai fatto e quale risultato hai ottenuto dal compito.
Risultato: il disco ssd1 è stato rimosso, il disco ssd2 è stato salvato, il disco ssd3 è stato aggiunto.
Attività 3 (Aggiunta di nuovi dischi e spostamento di una partizione)
Questo è il compito più complesso e voluminoso di tutti quelli presentati.
Controlla molto attentamente cosa stai facendo e con quali dischi e partizioni.
Si consiglia di farne una copia prima di eseguirlo.
Questa attività è indipendente dall'attività n. 2 e può essere eseguita dopo l'attività n. 1, adattata ai nomi dei dischi.
La seconda parte di questo compito di laboratorio dovrebbe portare esattamente allo stesso stato in cui si trovava dopo aver completato la prima parte.
Per semplificarti il lavoro, posso consigliarti di non rimuovere fisicamente i dischi dalla macchina host, ma solo
scollegarli nelle proprietà della macchina. Dal punto di vista del sistema operativo nella VM sembrerà esattamente lo stesso, ma puoi farlo
se succede qualcosa, ricollega il disco e continua il lavoro ripristinando un paio di punti, se
stai avendo problemi. Ad esempio, potresti averlo fatto in modo errato o dimenticato di copiare la partizione /boot sul nuovo disco.
Posso solo consigliarti di ricontrollare più volte con quali dischi e partizioni stai lavorando, o anche meglio
Annotare su un pezzo di carta la corrispondenza tra i dischi, le partizioni e il numero del disco “fisico”. Albero bello e chiaro
sorteggi di squadra lsblk, usalo il più spesso possibile per analizzare cosa hai fatto e cosa deve essere fatto.
Alla storia...
Immagina che il tuo server sia in esecuzione da molto tempo su 2 unità SSD, quando all'improvviso...
1) Simulare il guasto del disco SSD2 rimuovendo il disco dalle proprietà della VM e riavviando
2) Visualizza lo stato attuale dei dischi e del RAID:
3) Sei fortunato: i tuoi capi ti hanno permesso di acquistare diversi nuovi dischi:
2 SATA di grande capacità per il compito atteso da tempo di spostare la partizione con i registri su un disco separato
2 SSD per sostituire quello morto, nonché per sostituire quello ancora funzionante.
Tieni presente che il carrello del server supporta solo l'installazione di 4 dischi alla volta,
pertanto non è possibile aggiungere tutti i dischi contemporaneamente.
Seleziona la capacità dell'HDD 2 volte più grande dell'SSD.
La capacità dell'SSD è 1,25 volte maggiore rispetto al precedente SSD.
4) Aggiungi un nuovo disco SSD, chiamandolo ssd4 e, dopo averlo aggiunto, controlla cosa è successo:
5) Prima di tutto, dovresti prenderti cura della sicurezza dei dati sul vecchio disco.
Questa volta trasferiremo i dati utilizzando LVM:
Prima di tutto, devi copiare la tabella dei file dal vecchio disco a quello nuovo:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Sostituisci x,y con i dischi corretti e scopri cosa fa questo comando.
Esegui lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT e confronta il suo output con la chiamata precedente.
Cosa è cambiato?
utilizzare il comando dd per copiare i dati /boot sul nuovo disco
dd if=/dev/XXX of=/dev/YYY
se /boot è rimasto montato sul vecchio disco, dovrebbe essere rimontato sul disco live:
mount | grep boot # смотрим куда смонтирован диск
lsblk # смотрим какие диски есть в системе и смотрим есть ли диск, полученный из предыдущего пункта
umount /boot # отмонтируем /boot
mount -a # выполним монтирование всех точек согласно /etc/fstab.
# Поскольку там указана точка монтирования /dev/sda, то будет выполнено корректное перемонтирование на живой диск
Installa il bootloader sulla nuova unità SSD
grub-install /dev/YYY
Perché stiamo eseguendo questa operazione?
crea un nuovo array raid includendo solo un nuovo disco SSD:
Il comando precedente non funzionerà senza specificare una chiave speciale.
Leggi la guida e aggiungi questa chiave al comando.
Utilizza il comando cat /proc/mdstat per verificare il risultato dell'operazione. Cosa è cambiato?
Esegui lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT e confronta il suo output con la chiamata precedente.
Cosa è cambiato?
6) Il passo successivo è configurare LVM
eseguire il comando pvs per visualizzare le informazioni sui volumi fisici correnti
creare un nuovo volume fisico includendo l'array RAID creato in precedenza:
pvcreate /dev/md63
Esegui lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT e confronta il suo output con la chiamata precedente.
Cosa è cambiato?
Esegui nuovamente il comando pvs. Cosa è cambiato?
Aumentiamo la dimensione del sistema del gruppo di volumi utilizzando il seguente comando:
vgextend system /dev/md63
Esegui i comandi e scrivi cosa hai visto e cosa è cambiato.
vgdisplay system -v
pvs
vgs
lvs -a -o+devices
Su quale disco fisico si trovano attualmente LV var,log,root?
Sposta i dati dalla vecchia unità a quella nuova, utilizzando i nomi dei dispositivi corretti.
Esegui i comandi e scrivi cosa hai visto e cosa è cambiato.
vgdisplay system -v
pvs
vgs
lvs -a -o+devices
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Cambiamo il nostro VG rimuovendo da esso il vecchio disco raid. Sostituisci il nome del raid corretto.
vgreduce system /dev/md0
Esegui i comandi e scrivi cosa hai visto e cosa è cambiato.
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
pvs
vgs
Per rendere l'immagine più bella, rimontare /boot sul secondo disco SSD (ssd4) ed eseguire lsblk. Di conseguenza, il disco SSD3 no
non dovrebbe essere montato nulla. Controlla attentamente che la partizione /boot non sia vuota! ls /boot dovrebbe mostrare
diversi file e cartelle. Studia cosa è memorizzato in questa sezione e scrivi quale directory di file è responsabile di cosa.
7) rimuovere il disco ssd3 e aggiungere ssd5, hdd1, hdd2 secondo le specifiche tecniche sopra descritte, ottenendo:
ssd4: il primo nuovo SSD
ssd5 - secondo nuovo SSD
hdd1 - primo nuovo hdd
hdd2 - secondo nuovo hdd
8) Controlla cosa è successo dopo aver aggiunto i dischi:
9) Ripristiniamo il funzionamento dell'array raid principale:
copia la tabella delle partizioni, sostituendo i dischi corretti:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Tieni presente che quando abbiamo copiato la tabella delle partizioni dal vecchio disco, sembrava che la nuova dimensione
non utilizza l'intera capacità del disco rigido.
Pertanto, presto dovremo ridimensionare questa partizione ed espandere il raid.
Verifica tu stesso eseguendo il comando:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
10) copiare la partizione di avvio /boot da ssd4 a ssd5
dd if=/dev/XXX of=/dev/YYY
11) Installa grub sulla nuova unità (ssd5)
12) ridimensiona la seconda partizione del disco ssd5
esegui l'utilità di partizionamento del disco:
fdisk /dev/XXX
inserisci il tasto d per eliminare una partizione esistente (scegli 2)
immettere la chiave n per creare una nuova partizione
inserire la chiave p per indicare che il tipo di partizione è “primaria”
immettere la chiave 2 in modo che la nuova partizione abbia il secondo numero
Primo settore: premere Invio per accettare la dimensione calcolata automaticamente dell'inizio della partizione
Ultimo settore: premere Invio per accettare la dimensione calcolata automaticamente della fine della partizione
inserisci il tasto l per visualizzare un elenco di tutti i possibili tipi di partizione e trova al suo interno Linux raid auto
inserire il tasto t per modificare il tipo di partizione creata (2) e inserire il numero trovato nel passaggio precedente.
immettere il tasto w per scrivere la modifica sul disco.
12) rileggi la tabella delle partizioni e controlla il risultato
aggiungi un nuovo disco all'array raid corrente (non dimenticare di sostituire i dischi corretti)
mdadm --manage /dev/md63 --add /dev/sda2
Espandiamo il numero di dischi nel nostro array a 2:
mdadm --grow /dev/md63 --raid-devices=2
Guarda il risultato: abbiamo 2 array contrassegnati, ma entrambe le sezioni incluse in questo array hanno dimensioni diverse
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
13) aumentare la dimensione della partizione sul disco SSD4
esegui l'utilità di partizionamento del disco:
fdisk /dev/XXX
inserisci il tasto d per eliminare una partizione esistente (scegli 2)
immettere la chiave n per creare una nuova partizione
inserire la chiave p per indicare che il tipo di partizione è “primaria”
immettere la chiave 2 in modo che la nuova partizione abbia il secondo numero
Primo settore: premere Invio per accettare la dimensione calcolata automaticamente dell'inizio della partizione
Ultimo settore: premere Invio per accettare la dimensione calcolata automaticamente della fine della partizione
Alla fine del markup selezionare No per lasciare la firma dell'appartenenza della partizione all'array.
immettere il tasto w per scrivere la modifica sul disco.
12) rileggi la tabella delle partizioni e controlla il risultato
Tieni presente che ora le partizioni sda2, sdc2 hanno una dimensione > rispetto alla dimensione del dispositivo raid.
13) a questo punto la dimensione del raid può essere ampliata
mdadm --grow /dev/md63 --size=max
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT # check result
Rivedi lsblk e nota cosa è cambiato
14) Tuttavia, anche se abbiamo modificato la dimensione del raid, le dimensioni di vg root,var,log non sono cambiate
guarda la dimensione del PV:
pvs
Espandiamo le dimensioni del nostro PV:
pvresize /dev/md63
guarda la dimensione del PV:
pvs
15) Aggiungere la posizione appena apparsa VG var,root
lvs # посмотрим сколько сейчас размечено
lvextend -l +50%FREE /dev/system/root
lvextend -l +100%FREE /dev/system/var
lvs # проверьте что получилось
A questo punto, hai completato la migrazione dell'array principale sui nuovi dischi. funziona con SSD1, SSD2 è completato
16) Il nostro prossimo compito è spostare /var/log su nuovi dischi, per questo creeremo un nuovo array e lvm su dischi hdd.
creiamo un nuovo PV sul raid da dischi di grandi dimensioni
pvcreate data /dev/md127
Creiamo un gruppo in questo PV chiamato data
vgcreate data /dev/md127
Creiamo un volume logico con le dimensioni di tutto lo spazio libero e chiamiamolo val_log
lvcreate -l 100%FREE -n var_log data # lvs # посмотрим результат
formattare la partizione creata in ext4
mkfs.ext4 /dev/mapper/data-var_log
vediamo il risultato
lsblk
17) trasferire i dati di registro dalla vecchia partizione a quella nuova
installare temporaneamente un nuovo archivio di registri
mount /dev/mapper/data-var_log /mnt
sincronizziamo le partizioni
apt install rsync
rsync -avzr /var/log/ /mnt/
Scopriamo quali processi sono attualmente in esecuzione in /var/log
apt install lsof
lsof | grep '/var/log'
fermare questi processi
systemctl stop rsyslog.service syslog.socket
eseguire la sincronizzazione finale delle partizioni (dati che potrebbero essere cambiati dall'ultima sincronizzazione)
rsync -avzr /var/log/ /mnt/
scambiare le sezioni
umount /mnt
umount /var/log
mount /dev/mapper/data-var_log /var/log
controlliamo cosa è successo
lsblk
18) Modifica /etc/fstab
fstab - un file che registra le regole in base alle quali verranno montate le partizioni all'avvio
il nostro compito è trovare la riga in cui è montato /var/log e riparare il dispositivo system-log su data-var_log
19) La cosa più importante in questa fase è non dimenticare di cambiare la tabella radela (ext4, per esempio). Perché non importa come modifichiamo qualsiasi raid, lvm, finché il FS sulla partizione non viene informato che la dimensione della partizione è cambiata, non saremo in grado di utilizzare il nuovo spazio. Usa il comando resize2fs per cambiare il FS.
20) Accordo finale
Riavviamo. Se hai fatto tutto correttamente, verrai riportato al tuo sistema operativo (questo è necessario per assicurarti che tutto funzioni. Questo passaggio non ha altro significato se non l'autotest)
verificare che tutto quello che volevamo fare sia stato effettivamente fatto:
pvs
lvs
vgs
lsblk
cat /proc/mdstat
21) [FACOLTATIVO] Seguire i passaggi
riavviare premendo F12 per specificare unità diverse all'avvio per assicurarsi di poter eseguire l'avvio
da una qualsiasi delle unità SSD, in modo da non temere il guasto di una di esse
ora hai un registro LV non necessario nel sistema VG. Assegna questo spazio tra root o var, ma invece di utilizzare
disegni 100% GRATUITI specificare la dimensione a mano utilizzando il tasto -L:
-L 500M
risolvere il problema che /boot si trova su due partizioni senza sincronizzazione, non è necessario farlo correttamente,
è aggiunto qui come esempio. Non dimenticare di copiare prima il contenuto di /boot da qualche parte.
crea un nuovo raid e includi sda1,sda2 al suo interno
includere queste partizioni nel raid esistente e ripristinare /boot nel raid principale, ma senza montarlo.