Cvičení ve 3. týdnu

Diskový subsystém. Rozdělování disků, správa svazků.


Upozornění: v tomto cvičení nepoužívejte virtuální počítač FC4, ale RaidFC4. V něm jsou navíc definovány dva 100MB disky /dev/hdb a /dev/hdd, které lze volně použít k experimentování.

Diskový subsystém
Pevný disk, jako základní periferie určená k ukládání dat, je v UNIXových systémech reprezentován speciálním souborem - blokovým zařízením. Jméno tohoto souboru se používá rovněž k označení celého disku. Konkrétně v Linuxu na platformě PC/x86 se sběrnicí ATAPI/IDE se primary master disk jmenuje /dev/hda, primary slave /dev/hdb, secondary master /dev/hdc a secondary slave /dev/hdd. Všechna tato jména jsou ve skutečnosti jména speciálních souborů. Speciální soubor je odkazem na datové struktury jádra, resp. na ovladač, který s diskem komunikuje. Při čtení (či zápisu) ze speciálního souboru jsou čteny (zapisovány) přímo jednotlivé sektory z disku.

Příklady:
Vytvoření zálohy MBR (master boot record): dd if=/dev/hda of=zaloha bs=512 count=1
Opravdové smazání dat s jistotou, že nejdou obnovit: dd if=/dev/zero of=/dev/hda
Duplikování disku: dd if=/dev/hdc of=/dev/hdd

Tabulka rozdělení disku
Disk lze rozdělit na pevně určené části, které se mohou používat samostatně. Říkáme jim logické disky, partitions či slices. Architektura PC dovoluje disk rozdělit až na 4 primary partition. Pokud tento počet nestačí, můžeme jednu z těchto čtyř primary partition označit jako typ Extended uvnitř které pak lze vytvářet mnoho logických disků, jejichž počet je omezen jen kapacitou disku.

Aktuální rozdělení disku zjistíme programem fdisk:
fdisk -l /dev/hda
Rozdělení disku lze změnit interaktivně také programem fdisk:
fdisk /dev/hdb
Primary partition disku /dev/hda se nazývají /dev/hda1,/dev/hda2,/dev/hda3 a /dev/hda4. Logické disky uvnitř extended partition dostávají pořadové číslo počínaje 5.

Úkol 1:Zjistěte aktuální rozdělení všech vašich disků.

Úkol 2:Na disku /dev/hdd vytvořte dvě primary a jednu extended partition. Uvnitř extended partition vytvořte 1 logický disk.

Volume manager
Volume manager dovoluje kombinovat kapacitu jednoho či více disků (nebo partitions) za účelem vytvoření jiného virtuálního (logického) disku, který bývá větší, rychlejší či spolehlivější v závislosti na použité konfiguraci. Základním nástrojem pro správu svazků (volume management) je program mdadm. Umí kombinovat kapacitu fyzických disků či partitions za vzniku tzv. metadevice (=logický disk). Aby md driver po rebootu zjistil, jakým způsobem byly fyzické disky sestaveny, potřebuje uložit svou konfiguraci, ale tak, aby ji mohl přečíst ještě před inicializací systému souborů (proč asi?). K tomu využívá vlastních superbloků, které ukládá vždy na konec oblasti fyzického disku, který je použit k vytvoření logického disku. K ukládání dat pak slouží oblast o něco kratší.

Např. logický disk /dev/md1 vytvoříme sloučením kapacity partition /dev/hdb1 a /dev/hdb2 příkazem:
mdadm -C /dev/md1 -l linear -n 2 /dev/hdb1 /dev/hdb2
Příkazem mdadm -D /dev/md1 zjistíme detaily o vytvořeném logickém disku.
Příkazem mdadm --stop /dev/md1 logický disk zpět dekonfiguruje.

Superblok přidávaný na konec fyzické oblasti zmenšuje prostor na uložení dat. Logický disk vytvořený triviálně z jediného fyzického disku je o něco menší. Pokud z nějakého důvodu nechceme superblok ukládat, použijeme místo režimu -C --create režim -B --build. Ani v tomto případě však nemusí být velikost logického disku shodná s velikostí fyzické oblasti. Délka logického disku je vždy zaokrouhlena dolů na celistvé násobky chunk faktoru. Režim -A --assembly je užitečný pouze ke znovusestavení jednou již zinicializovaných disků, které se po rebootu z nějakých důvodů nesestavily samy. My budeme používat výhradně -C --create režim vytváření.

Po vytvoření logického disku (/dev/md1) na něm můžete vytvořit filesystém příkazem
mke2fs /dev/md1
a zpřístupnit ho do nově vytvořeného adresáře /data takto:
mkdir /data
mount /dev/md1 /data

Úkol 3:Vytvořte programem fdisk na diskách /dev/hdb a /dev/hdd několik primary partition. Pak spojte 3 partition do jediného logického disku (tj. režim linear). Vytvořte na virtuálním disku systém souborů (program mke2fs).

Úkol 4:Zrušte předchozí logický disk. Tentokrát vytvořte RAID1 konfiguraci dvou partition ze dvou různých disků. Opět vytvořte systém souborů. Porovnejte velikost výsledného disku. Porovnejte obsahy obou fyzických částí příkazem cmp nebo diff.