Malé odbočka: táto laboratórna práca je syntetická.
Niektoré úlohy, ktoré sú tu opísané, sa dajú vykonať oveľa jednoduchšie, ale pretože cieľom laboratórnej práce je oboznámiť sa
s funkciami raid a lvm, niektoré operácie sú umelo sťažené.
Požiadavky na nástroje na vykonanie laboratórnej práce:
- Prostriedky virtualizácie, napríklad Virtualbox
- Inštalačný obraz Linuxu, napríklad
- Prístup na internet na stiahnutie niekoľkých balíkov
- Pripojenie cez ssh k nainštalovanej VM (voliteľné)
POZOR
Táto laboratórna práca sa zaoberá takou delikátnou záležitosťou, ako je ochrana údajov - to je oblasť,
ktorá umožňuje, kvôli najdrobnejšej chybe - jednej nadbytočnej písmeno alebo číslice, prísť o všetky vaše údaje.
Keďže vykonávate laboratórnu prácu, nič vám nehrozí, maximálne ju budete musieť robiť znova.
V reálnom živote je to oveľa vážnejšie, preto je dôležité veľmi opatrne zadávať názvy diskov, rozumieť
čo presne vykonávate aktuálnym príkazom a s ktorými diskami pracujete.
Druhým dôležitým bodom je pomenovanie diskov a partition: v závislosti od situácie sa číslovanie diskov môže líšiť
od hodnôt, ktoré sú uvedené v príkazoch v laboratórnej práci.
Napríklad, ak odstránite disk sda z poľa a potom pridáte nový disk, nový disk sa bude zobraziť
v systéme s názvom sda. Ak však pred pridaním nového disku reštartujete, nový
disk bude mať názov sdb a starý bude nazývaný sda.
Laboratórna práca by sa mala vykonávať pod superužívateľom (root), pretože väčšina príkazov vyžaduje
zvýšené práva a nemá zmysel neustále zvyšovať práva pomocou sudo.
Materiály na štúdium
- RAID
- LVM
- Pomenovanie diskov v OS Linux
- Čo je to partition
- Čo je to tabuľka partition a kde je uložená
- Čo je to grub
Používané nástroje
1) zobrazenie informácií o diskoch
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
- fdisk -l
2) zobrazenie informácií a práca s LVM - pvs
- pvextend
- pvcreate
- pvresize
- vgs
- vgreduce
- lvs
- lvextend
3) zobrazenie informácií a práca s RAID - cat /proc/mdstat
- mdadm
4) body pripojenia - mount
- umount
- cat /etc/fstab
- cat /etc/mtab
5) prepartitionovanie disku - fdisk /dev/XXX
6) kopírovanie partition - dd if=/dev/xxx of=/dev/yyy
7) práca s tabuľkou partition - partx
- sfdisk
- mkfs.ext4
8) práca so zavádzačom - grub-install /dev/XXX
- update-grub
9) rozličné - lsof
- apt
- rsync
Laboratórna práca pozostáva z 3 častí:
- nastavenie funkčného systému s použitím lvm, raid
- emulácia zlyhania jedného z diskov
- výměna diskov za behu, s pridaním nových diskov a presunom oddielov.
Úloha 1 (Inštalácia OS a nastavenie LVM, RAID)
1) Vytvorte novú virtuálnu mašinu a priraďte jej nasledujúce parametre:
- 1 gb ram
- 1 cpu
- 2 hdd (nazvite ich ssd1, ssd2 a priraďte rovnakú veľkosť, zaškrtnite možnosti hot swap a ssd)
- SATA kontrolér je nastavený na 4 porty

2) Začnite inštaláciu Linuxu a na výbere pevných diskov urobte nasledujúce:
Metóda rozdelenia: ručne, potom by ste mali vidieť takýto obraz:

Nastavenie samostatného oddielu pod /boot: Vyberte prvý disk a vytvorte na ňom novú tabuľku oddielov
- Veľkosť oddielu: 512M
- Bod pripojenia: /boot
- Opakujte nastavenie pre druhý disk, ale pretože nie je možné pripojiť /boot súčasne dvakrát, vyberte bod pripojenia: none a získate nasledujúce (obrázok s chybou, prerábať sa mi nechce):

Nastavenie RAID:
- Vyberte voľné miesto na prvom disku a nastavte ho ako typ oddielu fyzický objem pre RAID
- Vyberte „Dokončiť nastavenie oddielu“
- Opakujte presne také isté nastavenie pre druhý disk a v dôsledku toho získate nasledujúce:

- Vyberte položku „Nastaviť softvérový RAID“
- Vytvoriť MD zariadenie
- Typ softvérového RAID zariadenia: Vyberte zrkadlový zoznam
- Aktívne zariadenia pre pole RAID XXXX: Vyberte oba disky
- Záložné zariadenia: Nechajte 0 predvolene
- Aktívne zariadenia pre pole RAID XX: vyberte oddiely, ktoré ste vytvorili pre raid
- Dokončiť
- Nakoniec by ste mali získať takýto obraz:

Nastavenie LVM: Vyberte Nastaviť Správcu logických objemov
- Zachovať aktuálne rozloženie oddielu a nastaviť LVM: Áno
- Vytvoriť skupinu objemov
- Názov skupiny objemov: systém
- Zariadenia pre novú skupinu objemov: Vyberte váš vytvorený RAID
- Vytvoriť logický objem
- názov logického objemu: root
- veľkosť logického objemu: 25 z veľkosti vášho disku
- Vytvoriť logický objem
- názov logického objemu: var
- veľkosť logického objemu: 25 z veľkosti vášho disku
- Vytvoriť logický objem
- názov logického objemu: log
- veľkosť logického objemu: 15 z veľkosti vášho disku
- Pri vybratí Zobraziť podrobnosti konfigurácie by ste mali získať nasledujúci obraz:

- Po dokončení nastavenia LVM by ste mali vidieť nasledujúce:

Rozdelenie oddielov: po jednom vyberte každý vytvorený v LVM objem a rozdeľte ich, napríklad pre root takto:
- Použiť ako: ext4
- bod pripojenia: /
- výsledok rozdelenia koreňového oddielu by mal byť nasledujúci:

- opakujte operáciu rozdelenia pre var a log vyberajúc príslušné body pripojenia (/var a /var/log ručne zadať), získavate nasledujúci výsledok:

- Vyberte Dokončiť rozdeľovanie
- Bude vám položených niekoľko otázok ohľadom toho, že máte nesformátovanú partíciu a nie je nastavený swap. Na obe otázky by ste mali odpovedať negatívne.
Finálny výsledok by mal vyzerať takto:

3) Dokončite inštaláciu operačného systému, nainštalujte grub na prvé zariadenie (sda) a načítajte systém.
4) Skopírujte obsah partície /boot z disku sda (ssd1) na disk sdb (ssd2)dd if=/dev/sda1 of=/dev/sdb15) Nainštalujte grub na druhé zariadenie:
pozrite sa na disky v systéme:
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTUveďte všetky disky, ktoré vám dala predchádzajúca príkaz, a popíšte, čo je to za disk
Nájdite disk, na ktorý nebola vykonaná inštalácia grub, a vykonajte túto inštaláciu:
grub-install /dev/sdbskontrolujte informácie o aktuálnom RAID pomocou príkazu cat /proc/mdstat a zapíšte si, čo ste videli.
pozrite sa na výstupy príkazov: pvs, vgs, lvs, mount a zapíšte, čo presne ste videli
Popíšte svojimi slovami, čo ste urobili a aký výsledok ste dosiahli na konci zadania
Po vykonaní tohto úlohy sa odporúča uložiť zálohu priečinka s virtuálnym strojom alebo vytvoriť
vagrant box:
Výsledok: Virtuálny stroj s diskami ssd1, ssd2
Úloha 2 (Emulácia zlyhania jedného z diskov)
1) Ak ste zaškrtli hot swap, môžete odstrániť disky za behu
- Vyberte disk ssd1 v nastaveniach stroja
- Nájdite adresár, kde sú uložené súbory vášho virtuálneho stroja, a odstráňte ssd1.vmdk
2) Uistite sa, že váš virtuálny stroj stále funguje
3) Reštartujte virtuálny stroj a uistite sa, že stále funguje
4) skontrolujte stav RAID poľa: cat /proc/mdstat
5) pridajte nový disk rovnakej veľkosti v rozhraní VM a pomenujte ho ssd3
6) vykonajte operácie: - skontrolujte, že nový disk je v systéme príkazom fdisk -l
- skopírujte tabuľku partícií zo starého disku na nový: sfdisk -d /dev/XXXX | sfdisk /dev/YYY
- pozrite si výsledok príkazom fdisk -l
- Pridajte nový disk do RAID poľa: mdadm —manage /dev/md0 —add /dev/YYY
- Pozrite si výsledok: cat /proc/mdstat. Mali by ste vidieť, že sa začala synchronizácia
7) Teraz je potrebné ručne vykonať synchronizáciu partícií, ktoré nie sú v RAID.
Na to použijeme nástroj dd a skopírujeme z „živého“ disku na nový, ktorý ste nedávno nainštalovalidd if=/dev/XXX of=/dev/YYY8) Po dokončení synchronizácie nainštalujte grub na nový disk
9) Reboot the VM to ensure everything is working.
Popíšte svojimi slovami, čo ste urobili a aký výsledok ste dosiahli na konci zadania
Result: Disk ssd1 removed, disk ssd2 saved, disk ssd3 added.Task 3 (Adding new disks and moving the partition)
This is the most complex and extensive task of all presented.
Be very careful about what you do and with which disks and partitions.
It is recommended to take a backup before executing.
This task is independent of task #2; it can be performed after task #1 with adjustments to the disk names.
The second part of this lab task should bring it to exactly the same state as it was after completing the first part.To make it easier for you to work, I recommend not physically removing disks from the host machine, just
detaching them in the machine's properties. From the OS perspective in the VM, it will appear exactly the same, but you will be able to
reconnect the disk if needed and continue working by rolling back a few steps in case you encounter issues.
For example, you might have made an error or forgotten to copy the partition /boot to the new disk.
I can only advise you to double-check several times which disks and partitions you are working with, and even better
to write down the correspondence of disks, partitions, and the 'physical' disk number on a piece of paper. A clear and understandable tree
is generated by the commandlsblk, use it as often as possible to analyze what you have done and what needs to be done.History…
Imagine your server has been running for a long time on 2 SSD disks when suddenly…
1) Simulate the failure of disk ssd2 by removing it from the VM properties and rebooting
2) Check the current status of the disks and RAID:cat /proc/mdstat fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT3) You are lucky — management has approved the purchase of several new disks:
2 large-capacity SATA drives for the long-pending task of moving the log partition to a separate disk
2 SSDs as replacements for the failed one, and also for the still-functioning one.
It should be noted that the basket servera supports the installation of only 4 disks at the same time,
so you cannot add all disks at once.Choose the HDD size to be 2 times larger than that of the SSD.
Choose the SSD size to be 1.25 times larger than the former SSDs.4) Add one new SSD disk, naming it ssd4, and after adding, check what happened:
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT5) Najprv je potrebné zaoberať sa ochranou údajov zo starého disku.
Tentokrát budeme prenášať údaje prostredníctvom LVM:- najprv je potrebné skopírovať súborovú tabuľku zo starého disku na nový:
sfdisk -d /dev/XXX | sfdisk /dev/YYYNamiesto x, y dosadte správne disky a rozoberte, čo táto príkaz robí.
Spustite príkaz lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT a porovnajte jeho výstup s predchádzajúcim volaním.
Čo sa zmenilo?
pomocou príkazu dd skopírujte údaje /boot na nový diskdd if=/dev/XXX of=/dev/YYYak /boot zostal pripojený na starom disku, je potrebné ho preniesť na živý disk:
mount | grep boot # pozrime sa, kam je disk pripojený lsblk # pozrime sa, aké disky sú v systéme a či je tam disk získaný z predchádzajúceho bodu umount /boot # odmountujeme /boot mount -a # vykonáme pripojenie všetkých bodov podľa /etc/fstab. # Keďže je tam uvedený bod pripojenia /dev/sda, vykoná sa správne pripojenie na živý diskNainštalujte bootloader na nový SSD disk
grub-install /dev/YYYPrečo vykonávame túto operáciu?
vytvorte nový RAID array s pripojením len jedného nového SSD disku:
mdadm --create --verbose /dev/md63 --level=1 --raid-devices=1 /dev/YYYPríkaz uvedený vyššie nebude fungovať bez špeciálneho kľúča.
Prečítajte si pomoc a pridajte tento kľúč k príkazu.Pomocou príkazu cat /proc/mdstat skontrolujte výsledok vašej operácie. Čo sa zmenilo?
Spustite príkaz lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT a porovnajte jeho výstup s predchádzajúcim volaním.
Čo sa zmenilo?
6) Ďalším krokom je nastavenie LVM
vykonajte príkaz pvs pre zobrazenie informácií o aktuálnych fyzických voluminoch
vytvorte nový fyzický volumen, ktorý bude obsahovať predtým vytvorený RAID array:pvcreate /dev/md63Spustite príkaz lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT a porovnajte jeho výstup s predchádzajúcim volaním.
Čo sa zmenilo?
Opäť vykonajte príkaz pvs. Čo sa zmenilo?
Zvýšime veľkosť Volume Group system pomocou tohto príkazu:vgextend system /dev/md63Vykonajte príkazy a zapíšte, čo ste videli a čo sa zmenilo.
vgdisplay system -v pvs vgs lvs -a -o+devicesNa akom fyzickom disku sa teraz nachádzajú LV var, log, root?
Vykonajte presun údajov zo starého disku na nový, dosadením správnych názvov zariadení.
pvmove -i 10 -n /dev/system/root /dev/md0 /dev/md63Opakujte operáciu pre všetky logické objemy
Vykonajte príkazy a zapíšte, čo ste videli a čo sa zmenilo.
vgdisplay system -v pvs vgs lvs -a -o+devices lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTZmeníme náš VG, odstránením disku starého RAID. Dosadte správne meno RAID.
vgreduce system /dev/md0Vykonajte príkazy a zapíšte, čo ste videli a čo sa zmenilo.
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT pvs vgsPre lepší vzhľad pripojte /boot na druhý SSD disk (ssd4) a vykonajte lsblk. Výsledkom je, že na disku ssd3 nie
nemalo by sa tam nič namontovať. Starostlivo skontrolujte, či je priečinok /boot prázdny!ls /bootby mal zobraziť
niekoľko súborov a priečinkov. Preskúmajte, čo sa nachádza v tomto priečinku a zapíšte si, ktorý súbor/priečinok za čo zodpovedá.
7) odstráňte disk ssd3 a pridajte ssd5, hdd1, hdd2 podľa vyššie uvedených technických požiadaviek, a získate:
ssd4 — prvý nový ssd
ssd5 — druhý nový ssd
hdd1 — prvý nový hdd
hdd2 — druhý nový hdd8) Skontrolujte, čo sa stalo po pridaní diskov:
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT9) Obnovíme funkčnosť hlavného raid poľa:
- vykonajte kopírovanie tabuľky oddielov a vložte správne disky:
sfdisk -d /dev/XXX | sfdisk /dev/YYY - Všimnite si, že keď sme skopírovali tabuľku oddielov zo starého disku, ukázalo sa, že nový veľkosť
nevyužíva celú kapacitu pevného disku.
Preto v blízkej budúcnosti bude potrebné zmeniť veľkosť tohto oddielu a rozšíriť raid.
Ubezpečte sa o tom sami zadaním príkazu:lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT10) skopírujte zavádzací oddiel /boot z disku ssd4 na ssd5
dd if=/dev/XXX of=/dev/YYY11) Nainštalujte grub na nový disk (ssd5)
12) zmeníme veľkosť druhého oddielu disku ssd5spustite nástroj na prácu s rozdeľovaním diskov:
fdisk /dev/XXXzadajte kláves d, aby ste odstránili existujúci oddiel (vyberte 2)
zadajte kláves n, aby ste vytvorili nový oddiel
zadajte kláves p, aby ste uviedli typ oddielu 'primárny'
zadajte kláves 2, aby nový oddiel mal číslo dva
Prvý sektor: stlačte enter, aby ste sa dohodli na automaticky vypočítanej veľkosti začiatku oddielu
Posledný sektor: stlačte enter, aby ste sa dohodli na automaticky vypočítanej veľkosti konca oddielu
zadajte kláves l, aby ste videli zoznam všetkých možných typov oddielov a nájdite medzi nimi Linux raid auto
zadajte kláves t, aby ste zmenili typ vytvoreného oddielu (2) a zadajte číslo nájdené v predchádzajúcom kroku.
zadajte kláves w, aby ste záznamy zmeny na disk.
12) prečítame tabuľku oddielov a skontrolujeme výsledokpartx -u /dev/XXX lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTpridáme nový disk k aktuálnemu raid poľu (nezabudnite zadať správne disky)
mdadm --manage /dev/md63 --add /dev/sda2Rozšírime počet diskov v našom poli na 2 kusy:
mdadm --grow /dev/md63 --raid-devices=2Pozrite sa na výsledok: máme rozdelené 2 poľa, ale oba oddiely, ktoré sú súčasťou tohto poľa, majú rôzne veľkosti
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT13) zväčšíme veľkosť oddielu na disku ssd4
spustite nástroj na prácu s rozdeľovaním diskov:
fdisk /dev/XXXzadajte kláves d, aby ste odstránili existujúci oddiel (vyberte 2)
zadajte kláves n, aby ste vytvorili nový oddiel
zadajte kláves p, aby ste uviedli typ oddielu 'primárny'
zadajte kláves 2, aby nový oddiel mal číslo dva
Prvý sektor: stlačte enter, aby ste sa dohodli na automaticky vypočítanej veľkosti začiatku oddielu
Posledný sektor: stlačte enter, aby ste sa dohodli na automaticky vypočítanej veľkosti konca oddielu
Na konci rozpracovania je potrebné vybrať No, aby ste si zachovali podpis prislúchajúci sekcii v poli.
zadajte kláves w, aby ste záznamy zmeny na disk.
12) prečítame tabuľku oddielov a skontrolujeme výsledokpartx -u /dev/XXX lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTvšimnite si, že teraz majú oddiely sda2, sdc2 veľkosť > ako veľkosť RAID zariadenia.
13) V tomto kroku je možné teraz zväčšiť veľkosť RAID.
mdadm --grow /dev/md63 --size=max lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT # skontrolujte výsledokPrezrite si lsblk a zapíšte, čo sa zmenilo.
14) Avšak, hoci sme zmenili veľkosť RAID, samotné veľkosti vg root, var, log sa nezmenili.- pozrite sa, akú hodnotu má veľkosť PV:
pvs - zvýšime veľkosť nášho PV:
pvresize /dev/md63 - pozrite sa, akú hodnotu má veľkosť PV:
pvs15) Pridáme novovzniknutý priestor VG var, root.
lvs # pozrime sa, koľko je teraz priradené lvextend -l +50%FREE /dev/system/root lvextend -l +100%FREE /dev/system/var lvs # skontrolujte, čo sa podariloV tomto kroku ste dokončili migráciu hlavného poľa na nové disky. práca so ssd1, ssd2 je ukončená.
16) Našou ďalšou úlohou je presunúť /var/log na nové disky, na to vytvoríme nové pole a lvm na hdd diskoch.
- pozrieme sa, aké mená majú nové hdd disky.
fdisk -l - vytvoríme raid pole.
mdadm --create /dev/md127 --level=1 --raid-devices=2 /dev/sdc /dev/sdd - vytvoríme nový PV na RAID z veľkých diskov.
pvcreate data /dev/md127 - vytvoríme v tomto PV skupinu s názvom data.
vgcreate data /dev/md127 - vytvoríme logický objem s veľkosťou celého voľného priestoru a nazveme ho val_log.
lvcreate -l 100%FREE -n var_log data # lvs # pozrime sa na výsledok. - naformátujeme vytvorený oddiel na ext4.
mkfs.ext4 /dev/mapper/data-var_log - pozrime sa na výsledok.
lsblk17) presunieme dáta logov zo starého oddielu na nový.
dočasne pripojíme nové úložisko logov.
mount /dev/mapper/data-var_log /mntvykonáme synchronizáciu oddielov.
apt install rsync rsync -avzr /var/log/ /mnt/zistíme, aké procesy teraz pracujú s /var/log.
apt install lsof lsof | grep '/var/log'zastavíme tieto procesy.
systemctl stop rsyslog.service syslog.socketvykonáme finálnu synchronizáciu oddielov (tých dát, ktoré sa mohli zmeniť od poslednej synchronizácie).
rsync -avzr /var/log/ /mnt/vymeníme oddiely.
umount /mnt umount /var/log mount /dev/mapper/data-var_log /var/logkontrolujeme, čo sa podarilo.
lsblk18) Oprávame /etc/fstab.
fstab — súbor, do ktorého sa zapisujú pravidlá, podľa ktorých budú pri načítaní pripojené oddiely.
našou úlohou je nájsť ten riadok, v ktorom je pripojovaný /var/log a opraviť zariadenie.system-lognadata-var_log19) Najdôležitejšie v tejto fáze je nezabudnúť zmeniť tabuľku oddielov (napríklad ext4). Bez ohľadu na to, ako zmienime rôzne RAID, LVM — pokiaľ súborový systém na oddiele nebude informovaný, že veľkosť oddielu sa teraz zmenila, nebudeme schopní využiť nový priestor. Použite príkaz
resize2fsna zmenu súborového systému.20) Finálny akord
- vykonáme reštart. Ak ste všetko urobili správne — opäť sa dostanete do vašej OS (to slúži na to, aby ste sa uistili, že všetko funguje. Tento krok nemá iný zmysel, okrem sebaoverenia)
- vykonajte kontroly, že všetko, čo sme plánovali, bolo skutočne splnené:
pvs lvs vgs lsblk cat /proc/mdstat
21) [VOLITEĽNE] vykonajte akcie
- reštartujte sa stlačením F12, aby ste pri štarte určili rôzne disky, aby ste sa uistili, že sa môžete nastartovať
z akéhokoľvek z SSD diskov, aby sme sa nebáli zlyhania jedného z nich - Teraz máte nepotrebný LV log vo VG system. Rozdeľte tento priestor medzi root alebo var, ale namiesto použitia
konštrukcie 100%FREE určte veľkosť ručne pomocou kľúča -L:-L 500M - Opraviť problém s tým, že /boot sa nachádza na dvoch oddieloch bez synchronizácie, robí sa to nesprávne,
toto bolo pridané ako príklad. Nezabudnite si predtým niekam skopírovať obsah /boot.- vytvorte nový RAID a zahrňte do neho sda1, sda2
- pridajte tieto oddiely do existujúceho RAID a obnovte /boot v hlavnom RAID, ale už ho nemontujte.
- pozrieme sa, aké mená majú nové hdd disky.
- pozrite sa, akú hodnotu má veľkosť PV:
- vykonajte kopírovanie tabuľky oddielov a vložte správne disky:
- najprv je potrebné skopírovať súborovú tabuľku zo starého disku na nový:
Zdroj: habr.com









