Bloková zařízení v linuxu
V linuxu se k veškerým blokovým zařízením přistupuje přes tzv. nody (komunikační uzly), které se u novějších verzí linuxového jádra, které používají udev, vytvářejí dynamicky v rámci adresáře /dev
. Jádro, má-li zaveden příslušný ovladač, identifikuje připojené zařízení a udev na základě této identifikace vytváří nody a symlinky do příslušných subsystémů.
Pojmenování nodu závisí na použitém ovladači a také počtu blokových zařízení využívajících stejný ovladač. To je velká výhoda linuxu, protože díky tomu je možné používat libovolný počet identických zařízení současně, a s každým z nich komunikovat samostatně.
Nevýhodou při dynamickém vytváření a rušení nodů je, že jsou-li bloková zařízení zapojena v jiném pořadí, může dojít ke zpřeházení nodů. Proto existují ještě tzv. subsystémy, do kterých udev umisťuje symlinky, vytvořené na základě dalších identifikačních údajů. Takže i když blokové zařízení od jádra dostane přidělen jiný nod, jeho symlink v rámci subsystému zůstává stejný.
Komplexní subsystém blokových zařízení je umístěn v adresáři /dev/disk
. Tady lze najít symlinky vytvořené na základě dalších identifikačních údajů, umístění na sběrnici, unikátního id blokového zařízení (uuid), aj.
- by-id
- symlinky, jejichž název je složen z názvu subsystému, přes který je zařízení připojeno a dalších identifikačních údajů získaných ze zařízení
- by-uuid
- symlinky v tomto subsystému jsou pojmenované podle uuid blokového zařízení. V případě že se UUID blokových zařízení shoduje (což se může stát), tak zde zůstane pouze symlink pro blokové zařízení, které bylo identifikováno naposled.
- by-path
- symlinky v tomto subsystému se vytváří podle zapojení na sběrnici, existují zde tedy pouze symlinky na fyzická zařízení.
- by-label
- symlinky v tomto subsystému se vytváří pouze pro bloková zařízení, které mají nastavenou jmenovku (label). Pokud v systému žádné takové zařízení není, pak neexistuje ani tento subsystém.
IDE
S IDE disky se dnes setkáte už spíše jen ve starších desktopových počítačích.
- IDE konektor desktopových a notebookových IDE disků není stejný. Napájení desktopových 3,5 palcových disků zajišťuje konektor MOLEX, zatím co u notebookové 2,5 palcové disky se napájí přímo přes konektor.
- IDE rozhraní nepodporuje hotswap, takže tyto disky nelze vyměnit za běhu.
- Na jedné "kšandě" v počítači mohou být max. 2 IDE zařízení ( disk, nebo CD mechanika ). Základní desky měly obvykle pouze 2 IDE porty, tzn. že mohly mít zapojeny současně maximálně 4 IDE disky
V linuxovém systému jména nodů pro IDE zařízení začínají na hd ( hard disc )+ písmeno (a, b, c, d,...). V případě, že je IDE disk rozdělen na diskové oddíly, tak mají pořadové číslo. Toto číslování začíná od čísla 1
/dev/hda /dev/hda1
Linux měl dříve 0 vyhrazenou pro celý disk, ale v současné době se již pro celé zařízení používá pouze jméno nodu bez čísla. |
USB, SCSI, SATA a SAS
Pro pojmenování nodů pro USB, SCSI, SATA a SAS disky se používá zkratka sd (serial device) + písmeno (a, b, c,...) tak jako u IDE disků. Stejně tak platí i číslování diskových oddílů, které začíná od čísla 1
/dev/sda
NBD
Network Blok Device (síťové blokové zařízení). Nevytváří se dynamicky. Je to ve skutečnosti přípojný bod, na který lze namapovat jiné blokové zařízení vypublikované přes síť z jiného stroje. Může jít jak o fyzické blokové zařízení, nebo soubor (podobně jako u loop zařízení).
/dev/nbd0
LOOP
Zařízení loop je virtuální zařízení, které umožňuje přistupovat k souboru tak jako by byl fyzickým blokovým zařízením. Pro správu loop zařízení se používá aplikace losetup
/dev/loop0
RAID
Při sestavení raid pole se pro každý nod souběžně vytváří také příslušné symlinky v subsystému /dev/md
a také v komplexním subsystému /dev/disk
. Nody pro raid zařízení začínají písmeny md. Číslo..
/dev/md126 /dev/md/datadisk /dev/disk/by-id/md-name-stroj:datadisk /dev/disk/by-id/md-uuid-f2789b5800cedb6930281b137d3c18f4 /dev/disk/by-uuid/f2789b58-00cedb69-30281b13-7d3c18f4 /dev/disk/by-label/datadisk
- V subsystému
/dev/disk/by-path
se symlink nevytvoří, protože SW raid pole samo o sobě na žádné sběrnici připojeno není. - V subsystému
/dev/disk/by-label
se vytvoří symlink pouze tehdy, pokud byl raid vytvořen s návěštím ("label") - V subsystému
/dev/disk/by-uuid
se vytvoří symlink pouze tehdy, pokud byl na raid poli vytvořen nějaký souborový systém
LVM
Při vytvoření LVM skupiny se vytvoří v adresáři /dev
subsystém s identickým názvem. Vytvořené logické disky jsou pak mimo jiné symlinkovány i do tohoto subsystému.
Při vytvoření logického disku se založí nod začínající písmeny dm- a s příslušným číslem. Souběžně se přitom vytvoří také symlink v subsystému /dev/mapper
a také symlinky v komplexním subsystému /dev/disk
.
/dev/dm-0 /dev/data/disk /dev/mapper/data-disk /dev/disk/by-id/dm-name-data-disk /dev/disk/by-id/dm-uuid-LVM-F3MHYiQaxACfu6L95gC2Uz0TjhcGS1VsiJH1e29Qxz3Irv2DMud2bXnGfrdbZ2ku /dev/disk/by-uuid/f2789b58-00cedb69-30281b13-7d3c18f4 /dev/disk/by-label/diskovy_prostor
- Podobně jako u SW raid pole se u logických disků nevytváří symlink v subsystému
/dev/disk/by-path
. - V subsystému
/dev/disk/by-uuid
se vytvoří symlink pokud byl na raid poli vytvořen nějaký souborový systém - V subsystému
/dev/disk/by-label
se vytvoří symlink pouze tehdy, pokud byl souborový systém na raid poli vytvořen s návěštím ("label")