Bloková zařízení v LINUXu 2013 Jan Vrbata - GOPAS
Bloková zařízení v LINUXu IDE a kompatibilní disková zařízení /dev/hdx, kde x je písmenem abecedy a-z Standardní EIDE řadič v PC přiřadí názvy zařízení takto : /dev/hda primární (master) disk na sběrnici IDE0 /dev/hdb sekundární (slave) disk na sběrnici IDE0 /dev/hdc primární (master) disk na sběrnici IDE1 /dev/hdd sekundární (slave) disk na sběrnici IDE1
Bloková zařízení v LINUXu SCSI a kompatibilní disková zařízení (SCSI se emuluje i nad jinými zařízeními některými SATA, USB mass storage, atd.) /dev/sdx, kde x je písmenem abecedy a-z
Rozdělení disků na oddíly K rozdělení disků na menší celky používá LINUX oddíly (partitions). Tyto oddíly jsou na architektuře PC kompatibilní s oddíly v MS-DOSu resp. Windows!!! Existují však i jiná rozdělení disků, kterým LINUX rozumí a jsou často v mnoha ohledech lepší. (např. slices v BSD UNIXech a Solarisu) Pro identifikaci oddílů se používá číslo v intervalu 1-255. Na jednom diskovém zařízení je tedy možno vytvořit maximálně 255 oddílů. /dev/hda1 první oddíl na IDE disku /dev/hda /dev/hdd4 čtvrtý oddíl na IDE disku /dev/hdd /dev/sdb2 druhý oddíl na SCSI disku /dev/sdb
Rozdělení disků na oddíly Na architektuře PC je možné na jednom diskovém zařízení vytvořit 4 primární oddíly (mohou být typu primary nebo extended). Oddíly extended je možné dále dělit na takzvané logické oddíly. LINUX si vyhrazuje čísla 1-4 pro primární oddíly. Čísla 5-255 jsou používány na logické oddíly.
Typy oddílů v LINUXu Datové oddíly - native Slouží k ukládání souborů operačnímu systému. Odkládací oddíly - swap Slouží pro odkládání neaktivních stránek paměti při správě virtuální paměti. Jeden oddíl swap může mít maximální velikost 2 GB. Je možno vytvořit až sedm swap oddílů. OS předpokládá, že velikost swapu je alespoň stejná jako velikost fyzické paměti RAM!
Souborové systémy pro datové oddíly ext2 (extended2) Dlouhodobě nejpoužívanější linuxový souborový systém. Vychází ze standardního UFS (UNIX file system). Základní vlastnosti : je založen na objektech zvaných inode (index uzel), který každý přísluší jednomu souboru a obsahuje atributy a další údaje o souboru a odkazuje na bloky, ve kterých je soubor uložen podporuje pevné a symbolické odkazy a speciální soubory podporuje běžná unixová přístupová práva + rozšiřující atributy název souboru má délku max. 255 znaků maximální velikost souboru je 2 TB maximální počet souborů je 10 18, maximální velikost souborového systému je 32 TB
Souborové systémy pro datové oddíly ext3 (extended3) Rozšíření ext2 o žurnálování. Je zpětně kompatibilní. V současné době nejvíce nasazovaný souborový systém. Základní vlastnosti a odlišnosti od ext2: žurnálování (zajištění konzistence systému, snadná oprava při havárii, mírně snížený výkon) vyhledávací stromy konstruované nad adresáři (rychlé prohledávání adresářů) možnost zvětšování velikosti souborového systému za provozu
Souborové systémy pro datové oddíly ext4 (extended4) Zpětně kompatibilní s ext3. Odstraňuje některé limity jako velikost souborového systému a souborů, počet souborů v adresáři, atd. Základní vlastnosti a odlišnosti od ext3: maximální velikost svazku 1EiB (10 18 byte) podporuje extenty neomezený počet podadresářů nanosekundová časová razítka pre-alokace a zpožděná alokace online defragmentátor
Souborové systémy pro datové oddíly reiserfs Univerzální souborový systém pro LINUX. Nevychází z UFS má v mnoha ohledech modernější návrh a vlastnosti. Základní vlastnosti : bitmapová alokace bloků adresáře ve tvaru B+ stromů žurnálování podporuje pevné i symbolické odkazy a speciální soubory podporuje běžná unixová přístupová práva + rozšiřující atributy název souborů maximálně 255 znaků maximální velikost souboru 8 TB maximální velikost souborového systému 16 TB maximální počet souborů 2 32 používá tail packing (více konců souborů sdílí jeden blok, lepší hospodaření s místem pro malé soubory)
Souborové systémy pro datové oddíly xfs Univerzální souborový systém pro LINUX. Původně vyvinut firmou SGI pro IRIX. Základní vlastnosti : alokace pomocí extentů, alokační skupiny, podpora rozkladu bloků do pole RAID adresáře ve tvaru B+ stromů žurnálování podporuje zpožděnou alokaci bloků (až při zápisu) podporuje běžná unixová přístupová práva + rozšiřující atributy název souborů maximálně 255 znaků maximální velikost souboru 8 EB maximální velikost souborového systému 8 EB maximální počet souborů 2 32 používá tail packing (více konců souborů sdílí jeden blok, lepší hospodaření s místem pro malé soubory)
Souborové systémy pro datové oddíly jfs Univerzální souborový systém pro LINUX. Původně vyvinut firmou IBM pro AIX pro použití na výkoných serverech. Základní vlastnosti : alokace pomocí extentů různé velikosti bloků žurnálování organizace adresářů (běžná, balancované stromy) dynamické alokování i-nodů podpora řídkých souborů
Souborové systémy pro datové oddíly fat Jednoduchý souborový systém firmy Microsoft. Dnes se používá zejména na paměťových kartách, USB flash discích, atd. Základní vlastnosti : alokace pomocí spojového seznamu název souboru 8+3 (původní FAT) nebo 255 (VFAT) podporuje jen obyčejné soubory a adresáře (žádné linky ani speciální soubory) nepodporuje přístupová práva maximální velikost souboru 32MB (FAT12), 2GB (FAT16) a 4GB (FAT32)
RAID Redundant Array of Inexpensive Disks LINUX dokáže vytvářet softwarová zařízení RAID mnoha druhů RAID slučuje několik diskových oblastí do jednoho logického svazku Pomocí RAID můžeme zajistit rychlejší čtení i zápisy a eliminovat výpadky na jednotlivých discích V LINUXu vytvářejí zařízení RAID speciální bloková zařízení /dev/mdx, kde x je číslo z intervalu 0-255
RAID 0 Nonredundant striped array Maximální rychlost čtení i zápisu, není redundantní Výpadek jednoho disku způsobí výpadek celého pole -> pravděpodobnost výpadku pole roste s počtem disků Používá se audio/video proudové aplikace, nebo jiné aplikace, při kterých čteme sekvenčně velká množství dat stripe 1 stripe 3 stripe 5 stripe 7 stripe 2 stripe 4 stripe 6 stripe 8 DISK #1 DISK #2
RAID 1 Mirrored array Je maximálně redundantní, maximální bezpečnost Data jsou při zápisu zrcadlena na všechny disky pole Při čtení je možné využít více kopií dat a zrychlit tak čtení zápis sektor 1 sektor 2 sektor 3 sektor 4 sektor 1 sektor 2 sektor 3 sektor 4 DISK #1 čtení DISK #2
RAID 5 Striped array with rotating parity Poskytuje redundanci vůči výpadku jednoho libovolného disku Využívá paritu a paritní data rozmísťuje pravidelně mezi všechny disky pole stripe 1 stripe 3 stripe parity 3 stripe 7 stripe 9 stripe parity 6 DISK #1 stripe 2 stripe parity 2 stripe 5 stripe 8 stripe parity 5 stripe 11 DISK #2 stripe parity 1 stripe 4 stripe 6 stripe parity 4 stripe 10 stripe 12 DISK #3
LVM Logical Volume Manager LVM je mechanismus, který přidává vrstvu mezi OS a diskovou oblast. Umožňuje flexibilně pracovat se souborovými systémy LVM umožňuje zřetězovat disky, oblasti na disku a zařízení softwarového RAIDu a pohlíží na ně jako na nová disková zařízení Jednotlivé disky a diskové oblasti je možné do LVM oblastí přidávat, odebírat a měnit další parametry LVM oblastí za běhu!!! Výsledkem je jednodušší správa a celkově vyšší pružnost řešení
LVM Logical Volume Manager Základní pojmy : PV physical volume fyzický svazek základní kámen pro stavbu LVM, je to disk (/dev/sda), častěji oblast na disku (/dev/hda1), ale i zařízení softwarového RAIDu (/dev/md0) VG volume group skupina svazků jeden nebo několik fyzických svazků PV LV logical volume logický svazek skutečné blokové zařízení, na kterém vytváříme souborový systém. Na jednom VG je možné vytvářet různý počet LV
LVM Logical Volume Manager Příklad : Mějme dva IDE disky /dev/hda a /dev/hdc, na každém z nich vytvořme jednu primární oblasti /dev/hda1 resp. /dev/hdc1 Toto jsou z pohledu LVM fyzické svazky PV Z těchto dvou PV vytvoříme skupinu svazků VG a pojmenujeme jí data Na VG data můžeme vytvářet logické svazky LV, podobně jako oblasti na klasickém pevném disku. Vytvoříme dvě LV, první s názvem oracle a druhou homes
LVM Logical Volume Manager LV oracle LV homes VG data PV /dev/hda1 PV /dev/hdc1
LVM Logical Volume Manager Příklad : Oba logické svazky LV v LINUXu vypadají jako normální diskové oblasti : /dev/data/oracle /dev/data/homes S těmito logickými oblastmi se pracuje stejně jako s fyzickými.
LVM Vytvoření a správa Vytvoření fyzického svazku (PV) : pvcreate /dev/hda pvcreate /dev/hda1 pvcreate /dev/md0 Vytvoření skupiny svazků (VG) : vgcreate skupina1 /dev/hda1 /dev/hdc1 Aktivace a deaktivace skupiny svazků (VG) : vgchange -a y skupina1 vgchange -a n skupina1
LVM Vytvoření a správa Odstranění skupiny svazků (VG) : vgremove skupina1 Přidání dalšího fyzického svazku do skupiny svazků : vgextend skupina1 /dev/hdd1 Odstranění fyzického svazku ze skupiny svazků : vgreduce skupina1 /dev/hdd1
LVM Vytvoření a správa Vytvoření logického svazku (LV) : lvcreate -L1500M -n svazek1 skupina1 Odstranění logického svazku (LV) : lvremove /dev/skupina1/svazek1 Zvětšení logického svazku (LV) : lvextend -L10G /dev/skupina1/svazek1 lvextend -L+1G /dev/skupina1/svazek1
LVM Vytvoření a správa Zvětšení logického svazku (LV) zvětšení souborového systému: Extended2 / Extended3 resize2fs /dev/skupina1/svazek1 ReiserFS Online (bez odmontování) : resize_reiserfs -f /dev/skupina1/svazek1 Offline (nutno odmontovat) : resize_reiserfs -f /dev/skupina1/svazek1 XFS xfs_growfs /mnt/disk1
S.M.A.R.T. Self-Monitoring, Analysis, and Reporting Technology power on hours count power cycle count spin up time start/stop count load/unload cycle drive temperature load/unload retry count loaded hours raw read error rate rellocated sector count seek error rate spin up retry count hardware ecc recovered write error rate počet odpracovaných hodin počet vypnutí a zapnutí čas potřebný k roztočení ploten z klido vého stavu počet jednotlivých roztočení ploten počet parkování hlav disku teplota disku (obvykle ve C) počet pokusů o nastavení hlav do pozice operační aktivní čas počet chyb během provozu disku počet chybných sektorů přesunutých do záložní oblasti počet chybných umístění hlav počet opětovných rotočení ploten po neúspěšném pokusu počet opravených chyb při čtení počet opakování zápisu při předešlé chybě
S.M.A.R.T. Self-Monitoring, Analysis, and Reporting Technology VALUE...poslední změřená hodnota WORST...nejhorší změřená hodnota THRESH...mezní hranice