Felhasználói eszközök

Eszközök a webhelyen


it:lemezek_elnevezese

Lemezek elnevezése Linuxban

Nem perzisztens nevek

A lemezeszközök nem perzisztens elnevezése az eszközök minor számával van kapcsolatban.

Major és minor szám

Linuxban minden eszköznek van ún. major és minor száma. Ez megnézhető pl. a következő paranccsal:

ls -l /dev

Példa:

crw-rw-rw- 1 root root 1,  3 May   18 17.19 /dev/null
crw-rw-rw- 1 root root 1,  9 May   18 17.19 /dev/urandom
crw-rw-rw- 1 root tty  5,  2 Aug   23 15.27 /dev/ptmx

A fenti példában a major,minor számok rendre: 1,3; 1,9 és 5,2. Ezek mind karakteres eszközök, ezt jelzi a sor eleji c betű.

Linuxban a tárolóeszközöket (lemezek, partíciók, kötetek) nem karakteres, hanem blokkos eszközök reprezentálják.

A blokkos eszköz elnevezése és major–minor száma között egyértelmű megfelelés van.

SCSI: /dev/sd*

Az sd (SCSI disk) meghajtóprogram a következőképpen nevezi el a tárolóeszközöket reprezentáló blokkos eszközöket (eszközfájlokat):

/dev/sd<betűjel><partíció száma (ha van)>

Például: /dev/sda, /dev/sda1, /dev/sdb2 stb.

Ha az eszköz a teljes meghajtót reprezentálja, nincs partíciószám.

Az SCSI-eszközök major száma mindig 8, minor száma pedig: 16 * meghajtó száma + partíció száma, ahol a meghajtó száma a meghajtók detektálásának sorrendje szerinti, 0-tól induló sorszám.

Példa:

brw-rw---- 1 root disk 8,  0 aug   23 18:44 /dev/sda
brw-rw---- 1 root disk 8,  1 aug   23 18:44 /dev/sda1
brw-rw---- 1 root disk 8, 16 aug   23 18:44 /dev/sdb
brw-rw---- 1 root disk 8, 17 aug   23 18:44 /dev/sdb1
brw-rw---- 1 root disk 8, 18 aug   23 18:44 /dev/sdb2

Blokkos eszközök esetén a következő parancs is hasznos:

lsblk

Példa:

sda                        8:0    0 465,8G  0 disk 
└─sda1                     8:1    0 465,8G  0 part  /
sdb                        8:16   0 111,8G  0 disk 
├─sdb1                     8:17   0     2G  0 part  /boot
└─sdb2                     8:18   0 109,8G  0 part  [SWAP]

Device Mapper: /dev/dm-*

Linuxban a logikai kötetkezelés (LVM), a redundáns storage-elérés (dm-multipath) és a kötetek titkosításának (dm-crypt) alapja a Device Mapper (DM).

A DM-eszközök virtuális eszközök, tehát nem fizikai eszközöket reprezentálnak, hanem logikai köteteket, storage I/O-útvonalakat összefogó eszközt, titkosított kötetet stb.

DM használata esetén az eszközfájlok elnevezése:

/dev/dm-<eszköz sorszáma>

A DM-eszközök major száma mindig 253, a sorszáma pedig a minor számmal egyezik meg.

Példa:

brw-rw----. 1 root disk 253, 0 aug   17 13.32 /dev/dm-0
brw-rw----. 1 root disk 253, 1 aug   17 13.32 /dev/dm-1
brw-rw----. 1 root disk 253, 2 aug   17 13.32 /dev/dm-2
brw-rw----. 1 root disk 253, 3 aug   17 13.32 /dev/dm-3
 
sda         8:0    0 238G  0 disk  
└─sda1      8:1    0 236G  0 part  
  ├─dm-1    253:1  0   4G  0 lvm   
  │ └─dm-2  253:2  0   4G  0 crypt [SWAP]
  └─dm-0    253:0  0  23G  0 lvm   
    └─dm-3  253:3  0  23G  0 crypt /

A név megváltozása

Ha új tárolóeszközt detektál a meghajtóprogram, akkor új minor számokat foglal le annak, ha pedig kiesik egy eszköz, akkor felszabadulnak az adott minor számok.

Mivel a minor szám a meghajtók detekciójának sorrendjétől függ, az sd* és a dm-* elnevezés megváltozhat, például abban az esetben, ha:

  • egy lemez meghibásodik, nem válaszol az SCSI-vezérlőnek, ezért nem detektálható,
  • az SCSI-vezérlő vagy HBA meghibásodik (és az összes ehhez kapcsolódó lemez elérhetetlenné válik),
  • az SCSI-vezérlőt vagy HBA-t átteszik másik helyre, újat szerelnek be
  • nem egyforma HBA-k vannak a gépben (a detekció sorrendje változhat),
  • HBA-n át elérhető lemezek nem válaszolnak storage oldali probléma (pl. switch hiba) miatt.

Ilyen esetekben pl. ha az eddig /dev/sdb-nek nevezett lemez nem detektálható, akkor egy másik lemez kapja ezt a nevet, ami nagy eséllyel adatkorrupcióhoz vezet.

:!: Tehát a /dev/sd*, illetve a /dev/dm-* elnevezés nem perzisztens. Emiatt rossz gyakorlat pl. a /etc/fstab-ban vagy egyéb helyen ilyen néven hivatkozni a kötetekre.

/dev/disk/by-path/*

A /dev/disk/by-path/* eszközök neve nem a major–minor számokra épül, hanem az SCSI-címzésre, melynek része többek között a HBA/SCSI-vezérlő száma (PCI-hely), -csatorna száma (HBA-port), az SCSI target, LUN stb. Ezek a nevek is változhatnak, ha az SCSI target vagy az SCSI host/channel változik, pl. a fent felsorolt okok miatt. Tehát a /dev/disk/by-path/* elnevezés sem igazán perzisztens, bár egy fokkal jobb, mint a major–minor számokra hagyatkozni.

Perzisztens nevek

A /dev könyvtár alatti eszközfájlok perzisztens elnevezéséért a Linux kernel hotplug alrendszerének részét képező, udev nevű meghajtókezelő program felelős. (Az udev konfigurálása nem része ennek az összefoglalónak.)

A perzisztens nevek egyedi azonosítók alapján jönnek létre. Ilyen azonosító a WWID, illetve az UUID.

Az ilyen nevű eszközfájlok szimbolikus linkek a hozzájuk tartozó /dev/sd*, illetve /dev/dm-* eszközfájlokra.

WWID (WWN): /dev/disk/by-id/*

A WWID vagy más néven WWN az SCSI-szabvány által megkövetelt, a világon egyedi azonosító (World Wide ID vagy World Wide Name) minden egyes SCSI-eszközhöz. Ezek a /dev/disk/by-id könyvtárban látszanak.

Példák:

/dev/disk/by-id/ata-KINGSTON_SMS200S3120G_50026B7241147299 -> /dev/sda
/dev/disk/by-id/ata-KINGSTON_SMS200S3120G_50026B7241147299-part1 -> /dev/sda1
/dev/disk/by-id/ata-KINGSTON_SMS200S3120G_50026B7241147299-part2 -> /dev/sda2
/dev/disk/by-id/usb-SSK_SFD199_00000000000025EB-0:0 -> /dev/sdb
/dev/disk/by-id/usb-SSK_SFD199_00000000000025EB-0:0-part1 -> /dev/sdb1
/dev/disk/by-id/wwn-0x50026b7241147299 -> /dev/sda
/dev/disk/by-id/wwn-0x50026b7241147299-part1 -> /dev/sda1
/dev/disk/by-id/wwn-0x50026b7241147299-part2 -> /dev/sda2

A példában látszik, hogy egy eszközhöz az operációs rendszer több WWID-t is rendelhet.

A WWID lekérdezhető a lemezről SCSI-protokollon át (Device Identification Vital Product Data (page 0x83) or Unit Serial Number (page 0x80)), a következő paranccsal:

/lib/udev/scsi_id -gu /dev/sd*

UUID: /dev/disk/by-uuid/*

Az UUID 128 bit hosszú, a világon egyedi azonosító (Universally Unique ID), 32 hexadecimális számjegyként ábrázolva, pl.: 13152fae-d25a-4d78-b318-74397eb08184 (lásd: RFC 4122). Nemcsak blokkos eszközök azonosítására használatosak.

Blokkos eszközök esetén az UUID-k a /dev/disk/by-uuid alatt láthatók, illetve az alábbi paranccsal is lekérdezhetők:

blkid 

A /etc/fstab-ban az UUID-vel szokás hivatkozni a partíciókra.

Hagyományos partíció esetén UUID a fájlrendszerben (a szuperblokkban) tárolódik.

:!: Új fájlrendszer létrehozása esetén megváltozik az eszköz UUID-ja.

Ha nincs fájlrendszer a lemezen, nics UUID-ja sem az eszköznek. (A GPT-partíciók bevezetésével ez megváltozott: a GPT-partícióknak fájlrendszer nélkül is van UUID-juk, ez a /dev/disk/by-partuuid alatt látszik. Ha nem GPT típusú a partíció, akkor az UUID kamu.)

Device Mapper estén az UUID megtudható a dmsetup info /dev/dm-* paranccsal is. LVM- és LUKS-köteteknél a kötet fejlécében tárolódik az UUID.

Label: /dev/disk/by-label/*

Az eszközökhöz definiálható „emberi” név, címke is. Ezek a /dev/disk/by-label alatt érhetők el, és szintén használhatók /etc/fstab-ban, noha ez mostanában nem gyakori. A címke a fájlrendszerben tárolódik. (GPT-partíciók esetén már nem szükséges fájlrendszer, a partícióhoz is tarozhat címke, ez a /dev/disk/by-partlabel alatt látszik. Az LVM és LUKS nem támogatja címkéket.)

Device Mapper: /dev/mapper/*

A Device Mapper eszközök perzisztens neve /dev/mapper/<név>. A <név> lehet WWID vagy UUID, egy ezeket tartalmazó egyéb azonosító, vagy valamilyen más egyedi név, pl. LVM estén kötetcsoport és kötet neve.

Példa:

/dev/mapper/vg01-swap -> dm-1
/dev/mapper/vg01-root -> dm-0
/dev/mapper/luks-a76f051a-cc77-491a-bde6-197e0bb12f6b -> dm-3
/dev/mapper/luks-ec46545d-29d9-4b85-a019-a9a77a4f5144  -> dm-2

Ezek az eszközök listázhatók a következő paranccsal is:

dmsetup ls

Példa:

vg01-swap	(253:1)
vg01-root	(253:0)
luks-a76f051a-cc77-491a-bde6-197e0bb12f6b	(253:3)
luks-ec46545d-29d9-4b85-a019-a9a77a4f5144	(253:2)

Újabb Linuxokban az lsblk is perzisztens neveket mutat.

DM Multipath

Multipath használata esetén bekapcsolhatók a felhasználóbarát nevek (user_friendly_names), melyek formája:

/dev/mapper/mpath<útvonal betűjele>

Ezek egy hoszton belül konzisztensek, az eszköz WWID-jára képeződnek le. Klaszterszinten viszont nem biztos, hogy ugyanaz lesz a felhasználóbarát név minden node-on. Ekkor érdemes kikapcsolni a a felhasználóbarát neveket, és helyette az alapértelmezett WWID-t használni, amely klaszterszinten is konzisztens.

it/lemezek_elnevezese.txt · Utolsó módosítás: 2017/08/24 02:13 szerkesztette: rblst