Felhasználói eszközök

Eszközök a webhelyen


it:lemezek_elnevezese

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalonElőző változat
Következő változat
Előző változat
it:lemezek_elnevezese [2017/08/24 01:36] – [Device Mapper: /dev/dm-*] rblstit:lemezek_elnevezese [2017/08/24 02:13] (aktuális) – [Device Mapper: /dev/mapper/*] rblst
Sor 1: Sor 1:
 +====== 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:   0 465,8G  0 part  /
 +  sdb                        8:16   0 111,8G  0 disk 
 +  ├─sdb1                     8:17       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 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.