O mică digresiune: acest LR este sintetic.
Unele dintre sarcinile descrise aici pot fi realizate mult mai simplu, dar din moment ce sarcina lui l/r este să cunoască
cu funcționalitatea raid și lvm, unele operațiuni sunt complicate artificial.
Cerințe pentru instrumente pentru a efectua LR:
Instrumente de virtualizare, cum ar fi Virtualbox
Imagine de instalare Linux, de exemplu Debian9
Disponibilitatea internetului pentru descărcarea mai multor pachete
Conectați-vă prin ssh la VM-ul instalat (opțional)
ATENȚIE
Acest lucru de laborator este legat de o chestiune atât de subtilă precum securitatea datelor - acesta este un domeniu în care
care vă permite să vă pierdeți toate datele din cauza celei mai mici erori - o literă sau un număr în plus.
Din moment ce faci lucrări de laborator, nu ești în pericol, cu excepția faptului că va trebui să o faci din nou.
În viața reală, totul este mult mai serios, așa că ar trebui să introduceți numele discurilor cu mare atenție, înțelegând
ce faci mai exact cu comanda curentă și cu ce discuri lucrezi.
Al doilea punct important este denumirea discurilor și a partițiilor: în funcție de situație, numerele de disc pot diferi
din acele valori care sunt prezentate în comenzile din munca de laborator.
Deci, de exemplu, dacă eliminați discul sda din matrice și apoi adăugați un nou disc, noul disc va fi afișat
pe un sistem numit sda. Dacă reporniți înainte de a adăuga un nou disc, atunci cel nou
discul se va numi sdb, iar cel vechi se va numi sda
Laboratorul trebuie să fie rulat ca superutilizator (rădăcină) după cum cer majoritatea comenzilor
privilegii ridicate și nu are sens să escaladeze constant privilegiile prin sudo
Materiale de studiu
RAID
LVM
Denumirea discurilor în sistemul de operare Linux
Ce este o secțiune
Ce este un tabel de partiții și unde este stocat?
Ce este grub
Utilitatile folosite
1) vizualizați informații despre disc
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
fdisk -l
2) vizualizarea informațiilor și lucrul cu LVM
pvs
pvextend
pvcreate
pvresize
etc
vgreduce
Eu versus
liveextend
3) vizualizarea informațiilor și lucrul cu RAID
cat /proc/mdstat
mdadm
4) puncte de montare
monta
umount
cat /etc/fstab
cat /etc/mtab
5) repartizarea discului
fdisk /dev/XXX
6) copierea partițiilor
dd if=/dev/xxx of=/dev/yyy
7) lucrul cu tabelul de partiții
partx
sfdisk
mkfs.ext4
8) lucrul cu bootloader-ul
grub-install /dev/XXX
update-grub
9) diverse
lsof
potrivit
rsync
Lucrările de laborator constă din 3 părți:
configurarea unui sistem de lucru folosind lvm, raid
emularea uneia dintre erorile de disc
înlocuirea discurilor din mers, adăugarea de noi discuri și mutarea partițiilor.
Sarcina 1 (instalarea sistemului de operare și configurarea LVM, RAID)
1) Creați o nouă mașină virtuală, oferindu-i următoarele caracteristici:
1 GB RAM
CPU 1
2 hdd-uri (numiți-le ssd1, ssd2 și atribuiți dimensiuni egale, bifați casetele hot swap și ssd)
Controler SATA configurat pentru 4 porturi
2) Începeți să instalați Linux și când ajungeți la selectarea hard disk-urilor, faceți următoarele:
Metoda de partiționare: manuală, după care ar trebui să vedeți această imagine:
Configurarea unei partiții separate pentru /boot: Selectați primul disc și creați un nou tabel de partiții pe el
Dimensiunea partiției: 512M
Punct de montare: /boot
Repetați setările pentru al doilea disc, dar din moment ce nu puteți monta /boot de două ori în același timp, selectați punctul de montare: none, obținând în cele din urmă următoarele (imagine cu un jamb, prea leneș să o refaceți):
Configurare RAID:
Selectați spațiu liber pe primul disc și configurați tipul de partiție ca volum fizic pentru RAID
Selectați „Terminat configurarea partiției”
Repetați exact aceleași setări pentru al doilea disc, rezultând următoarele:
Selectați „Configurați software RAID”
Creați dispozitiv MD
Tip de dispozitiv RAID software: Selectați o matrice în oglindă
Dispozitive active pentru matricea RAID XXXX: Selectați ambele unități
Dispozitive de rezervă: lăsați 0 ca implicit
Dispozitive active pentru matricea RAID XX: selectați partițiile pe care le-ați creat în raid
finalizarea
Ca rezultat, ar trebui să obțineți o imagine ca aceasta:
Configurarea LVM: Selectați Configurați Managerul de volum logic
Păstrați aspectul actual al partiției și configurați LVM: Da
Creați grup de volum
Nume grup de volum: sistem
Dispozitive pentru noul grup de volum: Selectați RAID-ul creat
Creați volum logic
nume volum logic: root
dimensiunea volumului logic: 25 din dimensiunea discului dvs
Creați volum logic
nume volum logic: var
dimensiunea volumului logic: 25 din dimensiunea discului dvs
Creați volum logic
nume volum logic: jurnal
dimensiunea volumului logic: 15 din dimensiunea discului dvs
Selectând Afișare detalii de configurare, ar trebui să obțineți următoarea imagine:
După ce ați finalizat configurarea LVM, ar trebui să vedeți următoarele:
Aspectul partiției: unul câte unul, selectați fiecare volum creat în LVM și dispuneți-le, de exemplu, pentru root astfel:
Utilizați ca: ext4
punctul de montare: /
Rezultatul marcarii partiției rădăcină ar trebui să arate astfel:
repetați operația de partiționare pentru var și log, selectând punctele de montare corespunzătoare (/var și /var/log introduse manual), obținând următorul rezultat:
Selectați Terminare partiționare
Vi se vor pune mai multe întrebări despre faptul că aveți încă o partiție nemontată și swap-ul nu este configurat. Ambele întrebări ar trebui să primească un răspuns negativ.
Rezultatul final ar trebui să arate astfel:
3) Finalizați instalarea sistemului de operare instalând grub pe primul dispozitiv (sda) și porniți sistemul.
4) Copiați conținutul partiției /boot de pe unitatea sda (ssd1) pe unitatea sdb (ssd2)
Enumerați toate discurile pe care vi le-a dat comanda anterioară și descrieți ce fel de disc este
Găsiți unitatea unde grub nu a fost instalat și efectuați această instalare: grub-install /dev/sdb
vizualizați informații despre raid-ul curent cu comanda cat /proc/mdstat și notați ceea ce vedeți.
uită-te la ieșirea comenzilor: pvs, vgs, lvs, mount și notează exact ce ai văzut
Descrieți cu propriile cuvinte ce ați făcut și ce rezultat ați obținut din sarcină.
După finalizarea acestei sarcini, se recomandă să salvați o copie de rezervă a folderului mașinii virtuale sau să faceți
cutie vagabondă: https://t.me/bykvaadm/191
Rezultat: mașină virtuală cu discuri ssd1, ssd2
Sarcina 2 (Emularea defecțiunii unuia dintre discuri)
1) Dacă ați bifat caseta de schimb la cald, atunci puteți șterge discurile din mers
Ștergeți discul ssd1 din proprietățile mașinii
Găsiți directorul în care sunt stocate fișierele mașinii dvs. virtuale și ștergeți ssd1.vmdk
2) Asigurați-vă că mașina dvs. virtuală funcționează în continuare
3) Reporniți mașina virtuală și asigurați-vă că încă rulează
4) verificați starea matricei RAID: cat /proc/mdstat
5) adăugați un nou disc de aceeași dimensiune în interfața VM și numiți-l ssd3
6) efectuați operațiunile:
vezi ca noul disc a ajuns in sistem folosind fdisk -l
copiați tabelul de partiții de pe vechiul disc pe cel nou: sfdisk -d /dev/XXXX | sfdisk /dev/YYY
uitați-vă la rezultat folosind fdisk -l
Adăugați un disc nou la matricea raid: mdadm —manage /dev/md0 —add /dev/YYY
Uită-te la rezultat: cat /proc/mdstat. Ar trebui să vedeți că sincronizarea a început
7) Acum trebuie să sincronizați manual partițiile care nu fac parte din RAID.
Pentru a face acest lucru, vom folosi utilitarul dd, copiend de pe discul „live” pe cel nou pe care l-ați instalat recent
dd if=/dev/XXX of=/dev/YYY
8) După finalizarea sincronizării, instalați grub pe noua unitate
9) Reporniți VM-ul pentru a vă asigura că totul funcționează
Descrieți cu propriile cuvinte ce ați făcut și ce rezultat ați obținut din sarcină.
Rezultat: discul ssd1 a fost eliminat, discul ssd2 a fost salvat, discul ssd3 a fost adăugat.
Sarcina 3 (Adăugarea de noi discuri și mutarea unei partiții)
Aceasta este cea mai complexă și mai voluminoasă sarcină dintre toate prezentate.
Verificați foarte atent ce faceți și cu ce discuri și partiții.
Este recomandat să faceți o copie înainte de a o rula.
Această sarcină este independentă de sarcina nr. 2, poate fi efectuată după sarcina nr. 1, ajustată pentru numele discurilor.
A doua parte a acestei sarcini de laborator ar trebui să conducă la exact aceeași stare care a fost după finalizarea primei părți.
Pentru a vă ușura munca, vă pot recomanda să nu îndepărtați fizic discurile de pe mașina gazdă, ci numai
deconectați-le din proprietățile mașinii. Din punctul de vedere al sistemului de operare din VM, va arăta exact la fel, dar poți
dacă se întâmplă ceva, conectați discul înapoi și continuați lucrul derulând înapoi câteva puncte, dacă
ai probleme. De exemplu, este posibil să fi făcut-o incorect sau să fi uitat să copiați partiția /boot pe noul disc.
Vă pot sfătui doar să verificați de două ori cu ce discuri și partiții lucrați de mai multe ori sau chiar mai bine
Notați pe o bucată de hârtie corespondența dintre discuri, partiții și numărul discului „fizic”. Copac frumos și limpede
extragerile echipei lsblk, folosește-l cât mai des posibil pentru a analiza ceea ce ai făcut și ce trebuie făcut.
La poveste...
Imaginează-ți că serverul tău rulează de mult timp pe 2 unități SSD, când dintr-o dată...
1) Simulați defecțiunea discului ssd2 prin eliminarea discului din proprietățile VM și repornirea
2) Vizualizați starea curentă a discurilor și a RAID:
5) În primul rând, ar trebui să aveți grijă de siguranța datelor de pe vechiul disc.
De data aceasta vom transfera date folosind LVM:
În primul rând, trebuie să copiați tabelul de fișiere de pe vechiul disc pe cel nou:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Înlocuiți discurile corecte cu x,y și aflați ce face această comandă.
Rulați lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT și comparați rezultatul său cu apelul anterior.
Ce s-a schimbat?
utilizați comanda dd pentru a copia datele /boot pe noul disc
dd if=/dev/XXX of=/dev/YYY
dacă /boot a rămas montat pe vechiul disc, ar trebui remontat pe discul live:
mount | grep boot # смотрим куда смонтирован диск
lsblk # смотрим какие диски есть в системе и смотрим есть ли диск, полученный из предыдущего пункта
umount /boot # отмонтируем /boot
mount -a # выполним монтирование всех точек согласно /etc/fstab.
# Поскольку там указана точка монтирования /dev/sda, то будет выполнено корректное перемонтирование на живой диск
Instalați bootloader-ul pe noua unitate ssd
grub-install /dev/YYY
De ce facem aceasta operatie?
creați o nouă matrice raid, inclusiv un singur disc ssd nou:
Comanda de mai sus nu va funcționa fără a specifica o cheie specială.
Citiți ajutorul și adăugați această cheie la comandă.
Utilizați comanda cat /proc/mdstat pentru a verifica rezultatul operațiunii dvs. Ce s-a schimbat?
Rulați lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT și comparați rezultatul său cu apelul anterior.
Ce s-a schimbat?
6) Următorul pas este configurarea LVM
rulați comanda pvs pentru a vizualiza informații despre volumele fizice curente
creați un nou volum fizic, inclusiv matricea RAID creată anterior:
pvcreate /dev/md63
Rulați lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT și comparați rezultatul său cu apelul anterior.
Ce s-a schimbat?
Rulați comanda pvs din nou. Ce s-a schimbat?
Să creștem dimensiunea sistemului Volume Group utilizând următoarea comandă:
vgextend system /dev/md63
Rulați comenzile și scrieți ce ați văzut și ce s-a schimbat.
vgdisplay system -v
pvs
vgs
lvs -a -o+devices
Pe ce disc fizic se află în prezent LV var,log,root?
Mutați datele de pe vechiul disc pe cel nou, folosind numele corecte de dispozitiv.
Rulați comenzile și scrieți ce ați văzut și ce s-a schimbat.
vgdisplay system -v
pvs
vgs
lvs -a -o+devices
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Să ne schimbăm VG-ul eliminând vechiul disc raid de pe acesta. Înlocuiți numele corect al raidului.
vgreduce system /dev/md0
Rulați comenzile și scrieți ce ați văzut și ce s-a schimbat.
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
pvs
vgs
Pentru a face imaginea mai frumoasă, remontați /boot pe al doilea disc ssd (ssd4) și rulați lsblk. Ca rezultat, discul ssd3 nu
nu trebuie montat nimic. Verificați cu atenție dacă partiția /boot nu este goală! ls /boot trebuie să arate
mai multe fișiere și foldere. Studiați ce este stocat în această secțiune și notați ce director de fișiere este responsabil pentru ce.
7) eliminați discul ssd3 și adăugați ssd5, hdd1, hdd2 conform specificațiilor tehnice descrise mai sus, rezultând:
ssd4 - primul ssd nou
ssd5 - al doilea ssd nou
hdd1 - primul HDD nou
hdd2 - al doilea HDD nou
8) Verificați ce s-a întâmplat după adăugarea discurilor:
9) Să restabilim funcționarea matricei raid principale:
copiați tabelul de partiții, înlocuind discurile corecte:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Vă rugăm să rețineți că atunci când am copiat tabelul de partiții de pe vechiul disc, părea că dimensiunea nouă
nu folosește întreaga capacitate a hard diskului.
Prin urmare, în curând va trebui să redimensionăm această partiție și să extindem raidul.
Vedeți singuri executând comanda:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
10) copiați partiția de pornire /boot de la ssd4 la ssd5
dd if=/dev/XXX of=/dev/YYY
11) Instalați grub pe noua unitate (ssd5)
12) redimensionați a doua partiție a discului ssd5
rulați utilitarul de partiționare a discului:
fdisk /dev/XXX
introduceți tasta d pentru a șterge o partiție existentă (alegeți 2)
introduceți cheia n pentru a crea o nouă partiție
introduceți tasta p pentru a indica tipul de partiție „primar”
introduceți tasta 2, astfel încât noua partiție să aibă al doilea număr
Primul sector: apăsați enter pentru a accepta dimensiunea calculată automat pentru începutul partiției
Ultimul sector: apăsați enter pentru a accepta dimensiunea calculată automat a sfârșitului partiției
introduceți tasta l pentru a vedea o listă cu toate tipurile de partiții posibile și găsiți Linux raid auto în ea
introduceți tasta t pentru a schimba tipul partiției create (2) și introduceți numărul găsit la pasul anterior.
introduceți tasta w pentru a scrie modificarea pe disc.
12) recitiți tabelul de partiții și verificați rezultatul
adăugați un nou disc la matricea raid curentă (nu uitați să înlocuiți discurile corecte)
mdadm --manage /dev/md63 --add /dev/sda2
Să extindem numărul de discuri din matricea noastră la 2:
mdadm --grow /dev/md63 --raid-devices=2
Priviți rezultatul: avem 2 matrice marcate, dar ambele secțiuni incluse în această matrice au dimensiuni diferite
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
13) măriți dimensiunea partiției pe discul ssd4
rulați utilitarul de partiționare a discului:
fdisk /dev/XXX
introduceți tasta d pentru a șterge o partiție existentă (alegeți 2)
introduceți cheia n pentru a crea o nouă partiție
introduceți tasta p pentru a indica tipul de partiție „primar”
introduceți tasta 2, astfel încât noua partiție să aibă al doilea număr
Primul sector: apăsați enter pentru a accepta dimensiunea calculată automat pentru începutul partiției
Ultimul sector: apăsați enter pentru a accepta dimensiunea calculată automat a sfârșitului partiției
La sfârșitul markupului, selectați Nu pentru a lăsa semnătura apartenenței partiției în matrice.
introduceți tasta w pentru a scrie modificarea pe disc.
12) recitiți tabelul de partiții și verificați rezultatul
Vă rugăm să rețineți că acum partițiile sda2, sdc2 au o dimensiune > decât dimensiunea dispozitivului raid.
13) în această etapă, dimensiunea raidului poate fi acum extinsă
mdadm --grow /dev/md63 --size=max
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT # check result
Examinați lsblk și observați ce s-a schimbat
14) Cu toate acestea, deși am schimbat dimensiunea raidului, dimensiunile vg root,var,log în sine nu s-au schimbat
uitați-vă la dimensiunea PV:
pvs
Să extindem dimensiunea PV-ului nostru:
pvresize /dev/md63
uitați-vă la dimensiunea PV:
pvs
15) Adăugați locația nou apărută VG var,root
lvs # посмотрим сколько сейчас размечено
lvextend -l +50%FREE /dev/system/root
lvextend -l +100%FREE /dev/system/var
lvs # проверьте что получилось
În acest moment, ați finalizat migrarea matricei principale pe noile discuri. lucrul cu ssd1, ssd2 este finalizat
16) Următoarea noastră sarcină este să mutăm /var/log pe discuri noi, pentru aceasta vom crea o nouă matrice și lvm pe discurile hdd.
haideți să creăm un nou PV pe raid de pe discuri mari
pvcreate data /dev/md127
Să creăm un grup în acest PV numit date
vgcreate data /dev/md127
Să creăm un volum logic cu dimensiunea întregului spațiu liber și să-l numim val_log
lvcreate -l 100%FREE -n var_log data # lvs # посмотрим результат
formatați partiția creată în ext4
mkfs.ext4 /dev/mapper/data-var_log
sa vedem rezultatul
lsblk
17) transferați datele de jurnal de la vechea partiție în cea nouă
instalați temporar o nouă stocare de jurnal
mount /dev/mapper/data-var_log /mnt
să sincronizăm partițiile
apt install rsync
rsync -avzr /var/log/ /mnt/
Să aflăm ce procese rulează în prezent în /var/log
apt install lsof
lsof | grep '/var/log'
opri aceste procese
systemctl stop rsyslog.service syslog.socket
efectuați sincronizarea finală a partițiilor (date care s-ar fi putut modifica de la ultima sincronizare)
rsync -avzr /var/log/ /mnt/
schimbați secțiunile
umount /mnt
umount /var/log
mount /dev/mapper/data-var_log /var/log
hai sa verificam ce s-a intamplat
lsblk
18) Editați /etc/fstab
fstab - un fișier care înregistrează regulile după care partițiile vor fi montate la pornire
sarcina noastră este să găsim linia unde este montat /var/log și să reparăm dispozitivul system-log pe data-var_log
19) Cel mai important lucru în această etapă este să nu uitați să schimbați tabelul Radela (ext4, de exemplu). Pentru că indiferent de modul în care schimbăm orice raid, lvm, până când FS-ul de pe partiție este notificat că dimensiunea partiției s-a schimbat acum, nu vom putea folosi noul spațiu. Utilizați comanda resize2fs pentru a schimba FS.
20) Coarda finală
Să repornim. Dacă ați făcut totul corect, veți fi dus înapoi la sistemul de operare (acest lucru este necesar pentru a vă asigura că totul funcționează. Acest pas nu are alt sens decât auto-testarea)
verificați dacă tot ce ne doream să facem a fost efectiv făcut:
pvs
lvs
vgs
lsblk
cat /proc/mdstat
21) [OPȚIONAL] Urmați pașii
reporniți apăsând F12 pentru a specifica diferite unități la pornire pentru a vă asigura că puteți porni
de la oricare dintre unitățile ssd, astfel încât să nu ne fie frică de defecțiunea uneia dintre ele
acum aveți logare LV inutilă în sistemul VG. Alocați acest spațiu între root sau var, dar în loc să utilizați
modele 100% GRATIS specificati dimensiunea manual folosind tasta -L:
-L 500M
remediați problema că /boot este localizat pe două partiții fără sincronizare, nu este nevoie să faceți acest lucru corect,
este adăugat aici ca exemplu. Nu uitați să copiați mai întâi conținutul /boot-ului undeva.
creați un nou raid și includeți sda1,sda2 în el
includeți aceste partiții în raid-ul existent și restaurați /boot-ul în raid-ul principal, dar fără a-l monta.