Malá odbočka: tento LR je syntetický.
Některé zde popsané úkoly lze provést mnohem jednodušeji, ale protože úkolem l/r je poznávat
s funkčností raid a lvm jsou některé operace uměle komplikované.
Požadavky na nástroje pro provádění LR:
Virtualizační nástroje, jako je Virtualbox
Například instalační obraz Linuxu Debian 9
Dostupnost internetu pro stažení několika balíčků
Připojte se přes ssh k nainstalovanému VM (volitelné)
UPOZORNĚNÍ
Tato laboratorní práce souvisí s tak jemnou záležitostí, jako je bezpečnost dat – to je oblast, kde
což vám umožní ztratit všechna svá data kvůli sebemenší chybě – jednomu písmenu nebo číslu navíc.
Vzhledem k tomu, že děláte laboratorní práce, nehrozí vám žádné nebezpečí, kromě toho, že to budete muset začít dělat znovu.
V reálném životě je vše mnohem vážnější, takže názvy disků byste měli zadávat velmi opatrně a rozumět
co přesně děláte s aktuálním příkazem a s jakými disky pracujete.
Druhým důležitým bodem je pojmenování disků a diskových oddílů: v závislosti na situaci se mohou čísla disků lišit
z hodnot, které jsou uvedeny v příkazech v laboratorní práci.
Pokud tedy například odeberete sda disk z pole a poté přidáte nový disk, nový disk se zobrazí
na systému s názvem sda. Pokud před přidáním nového disku restartujete, pak nový
disk se bude jmenovat sdb a starý se bude jmenovat sda
Laboratoř musí být spuštěna jako superuživatel (root), jak vyžaduje většina příkazů
zvýšená oprávnění a nemá smysl neustále eskalovat oprávnění přes sudo
dd if=/dev/xxx of=/dev/yyy
7) práce s tabulkou oddílů
partx
sfdisk
mkfs.ext4
8) práce s bootloaderem
grub-install /dev/XXX
aktualizovat skupinu
9) různé
také
nakloněný
rsync
Laboratorní práce se skládá ze 3 částí:
nastavení fungujícího systému pomocí lvm, raid
emulace jednoho ze selhání disku
výměna disků za chodu, přidávání nových disků a přesouvání diskových oddílů.
Úloha 1 (instalace OS a konfigurace LVM, RAID)
1) Vytvořte nový virtuální stroj a dejte mu následující vlastnosti:
1 gb ram
1 cpu
2 hdd (pojmenujte je ssd1, ssd2 a přiřaďte jim stejné velikosti, zaškrtněte políčka hot swap a ssd)
SATA řadič nakonfigurovaný pro 4 porty
2) Začněte instalovat Linux a až se dostanete k výběru pevných disků, proveďte následující:
Způsob rozdělení: ruční, po kterém byste měli vidět tento obrázek:
Nastavení samostatného oddílu pro /boot: Vyberte první disk a vytvořte na něm novou tabulku oddílů
Velikost oddílu: 512M
Přípojný bod: /boot
Opakujte nastavení pro druhý disk, ale protože nemůžete připojit /boot dvakrát současně, vyberte bod připojení: žádný, nakonec získáte následující (obrázek se zásuvkou, příliš líný to opakovat):
Nastavení RAID:
Vyberte volné místo na prvním disku a nakonfigurujte typ oddílu jako fyzický svazek pro RAID
Vyberte „Nastavení oddílu dokončeno“
Opakujte přesně stejná nastavení pro druhý disk, výsledkem je následující:
Vyberte "Konfigurovat softwarový RAID"
Vytvořte MD zařízení
Typ softwarového zařízení RAID: Vyberte zrcadlené pole
Aktivní zařízení pro pole RAID XXXX: Vyberte oba disky
Náhradní zařízení: Ponechte 0 jako výchozí
Aktivní zařízení pro pole RAID XX: vyberte oddíly, které jste vytvořili v rámci pole RAID
úprava
V důsledku toho byste měli získat obrázek jako tento:
Zachovat aktuální rozložení oddílů a nakonfigurovat LVM: Ano
Vytvořte skupinu svazků
Název skupiny svazků: systém
Zařízení pro novou skupinu svazků: Vyberte vytvořený RAID
Vytvořte logický svazek
název logického svazku: root
velikost logického svazku: 25 velikosti vašeho disku
Vytvořte logický svazek
název logického svazku: var
velikost logického svazku: 25 velikosti vašeho disku
Vytvořte logický svazek
název logického svazku: log
velikost logického svazku: 15 velikosti vašeho disku
Výběrem možnosti Zobrazit podrobnosti konfigurace byste měli získat následující obrázek:
Po dokončení nastavení LVM byste měli vidět následující:
Rozvržení oddílu: jeden po druhém vyberte každý svazek vytvořený v LVM a rozložte je, například pro root takto:
Použít jako: ext4
bod připojení: /
Výsledek označení kořenového oddílu by měl vypadat takto:
opakujte operaci rozdělení pro var a log, vyberte příslušné přípojné body (/var a /var/log zadané ručně), získáte následující výsledek:
Vyberte Dokončit rozdělení
Budete dotázáni na několik otázek ohledně skutečnosti, že stále máte nepřipojený oddíl a swap není nakonfigurován. Na obě otázky je třeba odpovědět záporně.
Konečný výsledek by měl vypadat takto:
3) Dokončete instalaci OS instalací grub na první zařízení (sda) a nabootujte systém.
4) Zkopírujte obsah oddílu /boot z jednotky sda (ssd1) na jednotku sdb (ssd2)
Vypište všechny disky, které vám dal předchozí příkaz, a popište, o jaký typ disku se jedná
Najděte disk, kde nebyl nainstalován grub, a proveďte tuto instalaci: grub-install /dev/sdb
zobrazte informace o aktuálním raidu pomocí příkazu cat /proc/mdstat a zapište, co vidíte.
podívejte se na výstup příkazů: pvs, vgs, lvs, mount a napište, co jste přesně viděli
Popište vlastními slovy, co jste dělali a jaký výsledek jste z úkolu získali.
Po dokončení této úlohy se doporučuje uložit záložní kopii složky virtuálního počítače nebo vytvořit
tulácká krabice: https://t.me/bykvaadm/191
Výsledek: Virtuální počítač s disky ssd1, ssd2
Úloha 2 (Emulace selhání jednoho z disků)
1) Pokud jste zaškrtli políčko hot swap, můžete mazat disky za běhu
Smažte disk ssd1 ve vlastnostech počítače
Najděte adresář, kde jsou uloženy soubory vašeho virtuálního počítače, a odstraňte ssd1.vmdk
2) Ujistěte se, že váš virtuální počítač stále běží
3) Restartujte virtuální počítač a ujistěte se, že je stále spuštěn
4) zkontrolujte stav pole RAID: cat /proc/mdstat
5) přidejte nový disk stejné velikosti do rozhraní VM a pojmenujte jej ssd3
6) proveďte operace:
podívejte se, že nový disk dorazil do systému pomocí fdisk -l
zkopírujte tabulku oddílů ze starého disku na nový: sfdisk -d /dev/XXXX | sfdisk /dev/YYY
podívejte se na výsledek pomocí fdisk -l
Přidejte nový disk do pole raid: mdadm —manage /dev/md0 —add /dev/YYY
Podívejte se na výsledek: cat /proc/mdstat. Měli byste vidět, že synchronizace začala
7) Nyní musíte ručně synchronizovat oddíly, které nejsou součástí RAID.
K tomu použijeme nástroj dd, který zkopíruje z „živého“ disku na nový, který jste nedávno nainstalovali
dd if=/dev/XXX of=/dev/YYY
8) Po dokončení synchronizace nainstalujte grub na nový disk
9) Restartujte VM, abyste se ujistili, že vše funguje
Popište vlastními slovy, co jste dělali a jaký výsledek jste z úkolu získali.
Výsledek: Disk ssd1 byl odstraněn, disk ssd2 byl uložen, disk ssd3 byl přidán.
Úloha 3 (Přidání nových disků a přesunutí oddílu)
Toto je nejsložitější a nejobsáhlejší úkol ze všech prezentovaných.
Velmi pečlivě zkontrolujte, co děláte a se kterými disky a diskovými oddíly.
Před spuštěním se doporučuje vytvořit kopii.
Tato úloha je nezávislá na úloze č. 2, lze ji provést po úloze č. 1, upravenou o názvy disků.
Druhá část této laboratorní úlohy by měla vést k přesně stejnému stavu, jaký byl po dokončení první části.
Pro usnadnění práce mohu doporučit disky z hostitelského stroje fyzicky nevyjímat, ale pouze
odpojit je ve vlastnostech stroje. Z pohledu OS ve VM to bude vypadat úplně stejně, ale můžete
pokud se něco stane, připojte disk zpět a pokračujte v práci vrácením několika bodů zpět, pokud
máte problémy. Mohli jste to například udělat špatně nebo jste zapomněli zkopírovat oddíl /boot na nový disk.
Mohu vám pouze poradit, abyste si vícekrát, nebo ještě lépe, dvakrát, nebo ještě lépe prověřili, se kterými disky a oddíly pracujete
Zapište si na kus papíru shodu mezi disky, oddíly a „fyzickým“ číslem disku. Krásný a jasný strom
týmové losování lsblk, používejte jej co nejčastěji k analýze toho, co jste udělali a co je třeba udělat.
K příběhu...
Představte si, že váš server běží dlouhou dobu na 2 SSD discích, když najednou...
1) Simulujte selhání disku ssd2 odebráním disku z vlastností virtuálního počítače a restartováním
2) Podívejte se na aktuální stav disků a RAID:
5) V první řadě byste se měli postarat o bezpečnost dat na starém disku.
Tentokrát budeme přenášet data pomocí LVM:
Nejprve musíte zkopírovat tabulku souborů ze starého disku na nový:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Nahraďte x,y správnými disky a zjistěte, co tento příkaz dělá.
Spusťte lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT a porovnejte jeho výstup s předchozím voláním.
co se změnilo?
pomocí příkazu dd zkopírujte data /boot na nový disk
dd if=/dev/XXX of=/dev/YYY
pokud /boot zůstal připojený na starém disku, měl by být znovu připojen na živý disk:
mount | grep boot # смотрим куда смонтирован диск
lsblk # смотрим какие диски есть в системе и смотрим есть ли диск, полученный из предыдущего пункта
umount /boot # отмонтируем /boot
mount -a # выполним монтирование всех точек согласно /etc/fstab.
# Поскольку там указана точка монтирования /dev/sda, то будет выполнено корректное перемонтирование на живой диск
Nainstalujte bootloader na nový ssd disk
grub-install /dev/YYY
Proč provádíme tuto operaci?
vytvořte nové pole raid obsahující pouze jeden nový ssd disk:
Výše uvedený příkaz nebude fungovat bez zadání speciálního klíče.
Přečtěte si nápovědu a přidejte tento klíč k příkazu.
Pomocí příkazu cat /proc/mdstat zkontrolujte výsledek vaší operace. co se změnilo?
Spusťte lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT a porovnejte jeho výstup s předchozím voláním.
co se změnilo?
6) Dalším krokem je konfigurace LVM
spusťte příkaz pvs pro zobrazení informací o aktuálních fyzických nosičích
vytvořte nový fyzický svazek včetně dříve vytvořeného pole RAID:
pvcreate /dev/md63
Spusťte lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT a porovnejte jeho výstup s předchozím voláním.
co se změnilo?
Spusťte znovu příkaz pvs. co se změnilo?
Zvětšeme velikost systému skupiny svazků pomocí následujícího příkazu:
vgextend system /dev/md63
Spusťte příkazy a zapište si, co jste viděli a co se změnilo.
vgdisplay system -v
pvs
vgs
lvs -a -o+devices
Na jakém fyzickém disku se aktuálně nachází LV var,log,root?
Přesuňte data ze starého disku na nový pomocí správných názvů zařízení.
Spusťte příkazy a zapište si, co jste viděli a co se změnilo.
vgdisplay system -v
pvs
vgs
lvs -a -o+devices
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Pojďme změnit náš VG tím, že z něj odstraníme starý raid disk. Nahraďte správný název raidu.
vgreduce system /dev/md0
Spusťte příkazy a zapište si, co jste viděli a co se změnilo.
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
pvs
vgs
Aby byl obraz krásnější, znovu připojte /boot na druhý ssd disk (ssd4) a spusťte lsblk. V důsledku toho disk ssd3 ne
nemělo by se nic montovat. Pečlivě zkontrolujte, zda oddíl /boot není prázdný! ls /boot musí ukázat
několik souborů a složek. Prostudujte si, co je v této sekci uloženo, a zapište si, který adresář souborů je za co zodpovědný.
7) odeberte disk ssd3 a přidejte ssd5, hdd1, hdd2 podle výše popsaných technických specifikací, výsledkem je:
ssd4 - první nový ssd
ssd5 - druhý nový ssd
hdd1 - první nový hdd
hdd2 - druhý nový hdd
zkopírujte tabulku oddílů a vyměňte správné disky:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Vezměte prosím na vědomí, že když jsme zkopírovali tabulku oddílů ze starého disku, zdálo se, že nová velikost
nevyužívá celou kapacitu pevného disku.
Proto brzy budeme muset změnit velikost tohoto oddílu a rozšířit raid.
Přesvědčte se sami spuštěním příkazu:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
10) zkopírujte spouštěcí oddíl /boot z ssd4 na ssd5
dd if=/dev/XXX of=/dev/YYY
11) Nainstalujte grub na nový disk (ssd5)
12) změňte velikost druhého oddílu disku ssd5
spusťte nástroj pro rozdělení disku:
fdisk /dev/XXX
zadejte klávesu d pro odstranění existujícího oddílu (vyberte 2)
zadejte klíč n pro vytvoření nového oddílu
zadejte klíč p, abyste označili typ oddílu „primární“
zadejte klíč 2, aby měl nový oddíl druhé číslo
První sektor: stisknutím klávesy Enter přijmete automaticky vypočítanou velikost začátku oddílu
Poslední sektor: stisknutím klávesy Enter přijmete automaticky vypočítanou velikost konce oddílu
zadejte klávesu l pro zobrazení seznamu všech možných typů oddílů a najděte v něm Linux raid auto
zadejte klávesu t pro změnu typu vytvořeného oddílu (2) a zadejte číslo zjištěné v předchozím kroku.
zadejte klávesu w pro zápis změny na disk.
12) znovu si přečtěte tabulku oddílů a zkontrolujte výsledek
přidat nový disk do aktuálního raidového pole (nezapomeňte nahradit správné disky)
mdadm --manage /dev/md63 --add /dev/sda2
Rozšiřme počet disků v našem poli na 2:
mdadm --grow /dev/md63 --raid-devices=2
Podívejte se na výsledek: máme označena 2 pole, ale obě části zahrnuté v tomto poli mají různé velikosti
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
13) zvětšete velikost oddílu na disku ssd4
spusťte nástroj pro rozdělení disku:
fdisk /dev/XXX
zadejte klávesu d pro odstranění existujícího oddílu (vyberte 2)
zadejte klíč n pro vytvoření nového oddílu
zadejte klíč p, abyste označili typ oddílu „primární“
zadejte klíč 2, aby měl nový oddíl druhé číslo
První sektor: stisknutím klávesy Enter přijmete automaticky vypočítanou velikost začátku oddílu
Poslední sektor: stisknutím klávesy Enter přijmete automaticky vypočítanou velikost konce oddílu
Na konci označení vyberte Ne, chcete-li ponechat podpis členství oddílu v poli.
zadejte klávesu w pro zápis změny na disk.
12) znovu si přečtěte tabulku oddílů a zkontrolujte výsledek
Vytvořme logický svazek o velikosti veškerého volného místa a nazvěme jej val_log
lvcreate -l 100%FREE -n var_log data # lvs # посмотрим результат
naformátujte vytvořený oddíl v ext4
mkfs.ext4 /dev/mapper/data-var_log
uvidíme výsledek
lsblk
17) přenést data protokolu ze starého oddílu do nového
dočasně nainstalovat nové úložiště protokolů
mount /dev/mapper/data-var_log /mnt
pojďme synchronizovat oddíly
apt install rsync
rsync -avzr /var/log/ /mnt/
Pojďme zjistit, které procesy aktuálně běží v /var/log
apt install lsof
lsof | grep '/var/log'
zastavit tyto procesy
systemctl stop rsyslog.service syslog.socket
provést konečnou synchronizaci oddílů (data, která se od poslední synchronizace mohla změnit)
rsync -avzr /var/log/ /mnt/
vyměňte sekce
umount /mnt
umount /var/log
mount /dev/mapper/data-var_log /var/log
pojďme zkontrolovat, co se stalo
lsblk
18) Upravte /etc/fstab
fstab - soubor, který zaznamenává pravidla, podle kterých budou oddíly připojeny při bootu
naším úkolem je najít řádek, kde je připojen /var/log, a opravit zařízení system-log na data-var_log
19) Nejdůležitější v této fázi je nezapomenout změnit tabulku radela (například ext4). Protože bez ohledu na to, jak změníme jakýkoli raid, lvm, dokud nebude FS na oddílu upozorněno, že se velikost oddílu nyní změnila, nebudeme moci použít nový prostor. Použijte příkaz resize2fs změnit FS.
20) Závěrečný akord
Pojďme restartovat. Pokud jste vše udělali správně, budete přesměrováni zpět do svého OS (toto je nutné, abyste se ujistili, že vše funguje. Tento krok nemá žádný jiný význam než samotestování)
zkontrolujte, že vše, co jsme chtěli udělat, bylo skutečně provedeno:
pvs
lvs
vgs
lsblk
cat /proc/mdstat
21) [VOLITELNÉ] Postupujte podle kroků
restartujte stisknutím klávesy F12 pro určení různých jednotek při spouštění, abyste se ujistili, že můžete zavést
z některého z ssd disků, abychom se nebáli selhání jednoho z nich
nyní máte zbytečné LV přihlášení v systému VG. Přidělte tento prostor mezi root nebo var, ale místo použití
vzory 100% ZDARMA specifikujte velikost ručně pomocí klávesy -L:
-L 500M
opravit problém, že /boot je umístěn na dvou oddílech bez synchronizace, není třeba to dělat správně,
je to zde přidáno jako příklad. Nezapomeňte si nejprve někam zkopírovat obsah /boot.
vytvořte nový raid a zahrňte do něj sda1,sda2
zahrnout tyto oddíly do stávajícího raidu a obnovit /boot na hlavní raid, ale bez jeho montáže.