LVM (Logikai kötetkezelő)

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page LVM and the translation is 100% complete.


Not to be confused with LLVM.


Az LVM (Logical Volume Manager) lehetővé teszi az rendszergazdák számára, hogy meta eszközöket hozzanak létre, amelyek absztrakciós réteget biztosítanak a fájlrendszer és az alatta használt fizikai tároló között. A meta eszközök (amelyeken a fájlrendszerek találhatók) logikai kötetek, amelyek tárhelyet használnak a kötetcsoportoknak nevezett tárolói csoportokból. A kötetcsoport egy vagy több fizikai kötetből kerül kialakításra, amelyek azok a valódi eszközök, amelyeken az adatok tárolása történik.

A fizikai kötetek lehetnek partíciók, teljes merevlemezek, amelyek JBOD-ként (Just a Bunch Of Disks - Csak egy rakás lemez), RAID rendszerek, iSCSI, Fibre Channel, eSATA stb. vannak csoportosítva.

Telepítés

Az LVM-et kernelszintű illesztőprogramok és felhasználói területalkalmazások egyaránt használják az LVM-konfiguráció kezeléséhez.

Kernel

Aktiválja a következő kernelbeállításokat:

KERNEL LVM engedélyezése a linux-4.9 számára
Device Drivers  --->
   Multiple devices driver support (RAID and LVM)  --->
       <*> Device mapper support
           <*> Crypt target support
           <*> Snapshot target
           <*> Mirror target
           <*> Multipath target
               <*> I/O Path Selector based on the number of in-flight I/Os
               <*> I/O Path Selector based on the service time
Note
Nem mindent kell engedélyezni. Egyes opciókra csak az LVM2 pillanatfelvételek és LVM2 vékony pillanatfelvételek, LVM2 tükrözött kötetek, LVM2 RAID 0/Stripe készlet és titkosítás esetén van szükség.

USE jelölőzászlók

USE flags for sys-fs/lvm2 User-land utilities for LVM2 (device-mapper) software

+udev Enable virtual/udev integration (device discovery, power and storage device support, etc)
lvm Build all of LVM2 including daemons and tools like lvchange, not just the device-mapper library (for other packages to use). If your system uses LVM2 for managing disks and partitions, enable this flag.
readline Enable support for libreadline, a GNU line-editing library that almost everyone wants
sanlock Enable lvmlockd with support for sanlock
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
static !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically
static-libs Build static versions of dynamic libraries as well
systemd Enable use of systemd-specific libraries and features like socket activation or session tracking
thin Support for thin volumes
valgrind Enable annotations for accuracy. May slow down runtime slightly. Safe to use even if not currently using dev-debug/valgrind

Important
Az összes, az lvm, pv, vg vagy lv* parancsok használatát igénylő utasítás esetén ebben a cikkben, valamint az LVM kötetek eléréséhez az lvm USE jelölőzászlót engedélyezni kell.

Emerge

Győződjön meg arról, hogy valóban engedélyezve van az lvm USE jelölőzászló a sys-fs/lvm2 szoftvercsomag számára:

FILE /etc/portage/package.use
# LVM szolgáltatásnak és a kapcsolódó eszközök támogatásának engedélyezése.
sys-fs/lvm2 lvm

A USE jelölőzászlók áttekintése után kérje meg a Portage szoftvercsomag kezelőt, hogy telepítse a sys-fs/lvm2 szoftvercsomagot:

root #emerge --ask sys-fs/lvm2

Beállítás

Az LVM beállítása több szinten történik:

  1. LV, PV és VG kezelés a kezelőeszközökön keresztül.
  2. Az LVM alrendszer finomhangolása a beállításfájl segítségével.
  3. Szolgáltatáskezelés a disztribúció szintjén.
  4. Beállítás kezdeti RAM fájlrendszeren (initramfs) keresztül.

A logikai és fizikai kötetek, valamint a kötetcsoportok kezelése a Használat fejezetben található.

LVM beállításfájl

Az LVM egy kiterjedt beállításfájllal rendelkezik a /etc/lvm/lvm.conf helyen. A legtöbb felhasználónak nem kell módosítania a beállításokat ebben a fájlban ahhoz, hogy elkezdje használni az LVM szolgáltatást.

Szolgáltatáskezelés

A Gentoo az LVM szolgáltatást biztosítja, amely automatikusan észleli és aktiválja a kötetcsoportokat és a logikai köteteket.

A szolgáltatás az init rendszer segítségével kezelhető.

openrc

LVM manuális elindításához:

root #/etc/init.d/lvm start

LVM elindítása az operációs rendszer elindulásakor:

root #rc-update add lvm boot

systemd

Az lvm manuális elindításához:

root #systemctl start lvm2-monitor.service

Az lvm elindítása az operációs rendszert indulásakor:

root #systemctl enable lvm2-monitor.service

LVM használata initramfs fájlban

A legtöbb bootloader nem tud közvetlenül LVM-ről indítani. Sem a GRUB Legacy, sem a LILO nem képes erre. A GRUB2 képes LVM lineáris logikai kötetről, tükrözött logikai kötetről és esetleg bizonyos típusú RAID logikai kötetről indítani. Jelenleg egyetlen bootloader sem támogatja a vékony logikai köteteket.

Ezért ajánlott egy nem-LVM /boot partíciót használni, és az LVM gyökérkönyvtárat egy initramfs segítségével felcsatolni. Az initramfs bináris képfájl automatikusan létrehozható a Genkernel, Dracut segítségével, illetve kézi úton mint egyedi initramfs bináris képfájl.

  • A genkernel minden típusról képes indítani, kivéve a vékony köteteket (mivel sem nem hozza létre, sem nem másolja a sys-block/thin-provisioning-tools binárisokat a build host számítógéptől), és talán a RAID10-et (a RAID10 támogatás LVM2 2.02.98-at igényel, de a genkernel 2.02.89-et épít, azonban ha statikus binárisok elérhetőek, akkor azokat másolhatja).
  • A dracut minden típusról indíthat, de csak akkor tartalmaz vékony támogatást az initramfs-ben, ha a futó host számítógépnek vékony gyökérkönyvtára van.

Genkernel

Telepítse az sys-kernel/genkernel szoftvercsomagot. Az "static" USE jelölőzászlót szintén engedélyezheti az sys-fs/lvm2 szoftvercsomagon, hogy a genkernel az operációs rendszeren található binárisokat használja (ellenkező esetben saját privát másolatot fog készíteni). Az alábbi példa csak egy initramfs fájlt fog létrehozni (nem egy teljes kernel) és engedélyezi az LVM támogatást.

root #genkernel --lvm initramfs

A genkernel man súgója más opciókat is ismertet a rendszerkövetelményektől függően.

Az initrd szoftvernek paraméterekre lesz szüksége, hogy megmondja, miként indítsa el az LVM-et, és ezeket ugyanúgy kell megadni, mint a többi kernelparamétert. Például:

FILE /etc/default/grubA dolvm hozzáadása kernelindítási paraméterként
GRUB_CMDLINE_LINUX="dolvm"

Dracut

A sys-kernel/dracut szoftvercsomag a RedHat projektről került átültetésre, és hasonló eszközként szolgál egy initramfs fájl létrehozására. Részletekért tekintse meg a Dracut oldalt. Általában a következő parancs egy használható alapértelmezett initramfs fájlt hoz létre.

root #dracut -a lvm

Az initrd szoftvernek paraméterekre lesz szüksége, hogy megmondja, miként indítsa el az LVM-et, és ezeket ugyanúgy kell megadni, mint a többi kernelparamétert. Például:

FILE /etc/default/grubLVM támogatás hozzáadása a kernel boot paraméterekhez
GRUB_CMDLINE_LINUX="rd.lvm.vg=vol00"

A dracut LVM opcióinak átfogó listájáért kérjük, tekintse meg a Dracut kézikönyv megfelelő szakaszát.

Használat

Az LVM három különböző szinten szervezi a tárolást, az alábbiak szerint:

  • A merevlemezek, partíciók, RAID rendszerek vagy más adathordozó eszközök fizikai kötetekké (PV) inicializálódnak.
  • A fizikai kötetek (PV) kötetcsoportokba (VG) szerveződnek.
  • A logikai kötetek (LV) a kötetcsoportokban (VG) vannak kezelve.

Fizikai kötet (Physical Volume, PV)

A fizikai kötetek azok a tényleges hardverek vagy adathordozó rendszerek, amelyekre az LVM építkezik.

Particionálás

Note
Külön partíciók használata adathordozó kötetcsoportokhoz csak akkor szükséges, ha nem cél az egész adathordozó használata egyetlen LVM kötetcsoport számára. Ha az egész adathordozó felhasználható, akkor ezt a lépést átugorhatja, és a teljes adathordozót inicializálja fizikai kötetként.

Az LVM partíció típusa 43 (Linux LVM).

Például a típus beállításához a fdisk használatával egy partícióra a /dev/sda adathordozón:

root #fdisk /dev/sda

Az fdisk használatakor hozzon létre partíciókat a n billentyűgomb megnyomásával, majd a partíció típusát változtassa meg a t billentyűgomb segítségével 43 értékre.

Fizikai kötet létrehozása

Fizikai kötetek a pvcreate parancs segítségével hozhatók létre és inicializálhatók.

Például a következő parancs fizikai kötetet hoz létre a /dev/sda és /dev/sdb adathordozó elsődleges partícióján:

root #pvcreate /dev/sd[ab]1

Fizikai kötet kilistázása

A pvdisplay parancs segítségével áttekintést lehet kapni az operációs rendszeren lévő összes aktív fizikai kötetről.

root #pvdisplay
 --- Physical volume ---
  PV Name               /dev/sda1
  VG Name               volgrp
  PV Size               160.01 GiB / not usable 2.31 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              40962
  Free PE               4098
  Allocated PE          36864
  PV UUID               3WHAz3-dh4r-RJ0E-5o6T-9Dbs-4xLe-inVwcV
  
 --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               volgrp
  PV Size               160.01 GiB / not usable 2.31 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              40962
  Free PE               40962
  Allocated PE          0
  PV UUID               b031x0-6rej-BcBu-bE2C-eCXG-jObu-0Boo0x

Ha több fizikai kötetet kell megjeleníteni, akkor a pvscan parancs képes észlelni az inaktív fizikai köteteket és képes aktiválni azokat.

root #pvscan
  PV /dev/sda1  VG volgrp        lvm2 [160.01 GiB / 16.01 GiB free]
  PV /dev/sdb1  VG volgrp        lvm2 [160.01 GiB / 160.01 GiB free]
  Total: 2 [320.02 GB] / in use: 2 [320.02 GiB] / in no VG: 0 [0]

Fizikai kötet eltávolítása

Az LVM automatikusan elosztja az adatokat az összes elérhető fizikai kötetre (hacsak más utasítást nem kap), de lineáris megközelítéssel. Ha egy kért logikai kötet (egy kötetcsoporton belül) kisebb, mint a szabad hely egyetlen fizikai kötetben, akkor a logikai kötethez szükséges teljes helyet ezen az (egyetlen) fizikai kötetben, összefüggő módon foglalja le. Ez teljesítménybeli okok miatt történik.

Ha egy fizikai kötetet el kell távolítani egy kötetcsoportból, akkor először az adatokat el kell távolítani a fizikai kötetből. A pvmove parancs segítségével az összes adatot egy fizikai kötetből a kötetcsoporton belüli más fizikai kötetekre lehet áthelyezni.

root #pvmove -v /dev/sda1

Egy ilyen művelet eltarthat egy ideig, az áthelyezendő adatmennyiségtől függően. Miután a művelet befejeződött, nem maradhat adat az eszközön. Ellenőrizze a pvdisplay paranccsal, hogy a fizikai kötetet már nem használja egyetlen logikai kötet sem.

A következő lépés a fizikai kötet eltávolítása a kötetcsoportból a vgreduce parancs segítségével, ezt követően pedig az eszköz "kijelölésének megszüntetése" fizikai kötetként a pvremove parancs használatával:

root #vgreduce vg0 /dev/sda1 && pvremove /dev/sda1

Kötetcsoport (Volume Group, VG)

Egy kötetcsoport (Volume Group, VG) több fizikai kötetet csoportosít, és a /dev/VG_NAME formában jelenik meg az eszköz fájlrendszerében. A kötetcsoport nevét a rendszergazda választja ki.

Kötetcsoport létrehozása

A következő parancs egy vg0 nevű kötetcsoportot hoz létre, amelyhez két fizikai kötet van hozzárendelve: /dev/sda1 és /dev/sdb1.

root #vgcreate vg0 /dev/sd[ab]1

Kötetcsoport kilistázása

Az összes aktív kötetcsoport listázásához használja a vgdisplay parancsot:

root #vgdisplay
  --- Volume group ---
  VG Name               vg0
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  8
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                6
  Open LV               6
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               320.02 GiB
  PE Size               4.00 MiB
  Total PE              81924
  Alloc PE / Size       36864 / 144.00 GiB
  Free  PE / Size       45056 /176.01 GiB
  VG UUID               mFPXj3-DdPi-7YJ5-9WKy-KA5Y-Vd4S-Lycxq3

Ha kötetcsoportok hiányoznak, akkor használja a vgscan parancsot a kötetcsoportok felderítéséhez:

root #vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "vg0" using metadata type lvm2

Kötetcsoport bővítése

A kötetcsoportok fizikai köteteket csoportosítanak, lehetővé téve a rendszergazdák számára, hogy tárolási erőforrások egy készletéből állományrendszerekhez rendeljenek. Ha egy kötetcsoport nem tartalmaz elegendő tárolási erőforrást, akkor szükséges a kötetcsoportot további fizikai kötetekkel bővíteni.

A következő példa a vg0 nevű kötetcsoportot bővíti egy fizikai kötet hozzáadásával a /dev/sdc1 helyen:

root #vgextend vg0 /dev/sdc1

Ne feledje, hogy először a fizikai kötetet fizikai kötetként kell inicializálni!

Kötetcsoport csökkentése

Ha fizikai köteteket kell eltávolítani a kötetcsoportból, akkor az adott fizikai kötethez tartozó, még használt összes adatot a kötetcsoport más fizikai köteteire kell áthelyezni. Ahogyan korábban láttuk, ezt a pvmove parancs végzi el, ezután a fizikai kötetet a vgreduce parancs segítségével el lehet távolítani a kötetcsoportból:

root #pvmove -v /dev/sdc1
root #vgreduce vg0 /dev/sdc1

Kötetcsoport eltávolítása

Ha egy kötetcsoport már nem szükséges (más szóval, az általa képviselt tárolási készletet már nem használják, és a benne lévő fizikai köteteket más célokra kell felszabadítani), akkor a kötetcsoport a vgremove paranccsal eltávolítható. Ez csak akkor működik, ha a kötetcsoporthoz nincs logikai kötet definiálva, és a tárolási készletből már minden fizikai kötetet eltávolítottak, kivéve egyet.

root #vgremove vg0

Logikai kötet (Logical Volume, VG)

A logikai kötetek (Logical Volumes, LV) az utolsó meta eszközök, amelyeket a rendszer számára elérhetővé tesznek, általában fájlrendszerek létrehozására. Ezeket kötetcsoportokban hozzák létre és kezelik, és a /dev/VG_NAME/LV_NAME formában jelennek meg. Ahogyan a kötetcsoportok esetében, a logikai kötetek nevét is a rendszergazda választja meg.

Logikai kötet létrehozása

Egy logikai kötet létrehozásához a lvcreate parancsot használják. A parancs paraméterei tartalmazzák a logikai kötet kívánt méretét (amely nem lehet nagyobb, mint a kötetcsoport szabad területe), azt a kötetcsoportot, amelyből a helyet igényelni kell, valamint a létrehozandó logikai kötet nevét.

A következő példában egy lvol1 nevű logikai kötetet hozunk létre egy vg0 nevű kötetcsoportból, 150 MB méretben:

root #lvcreate --size 150M --name lvol1 vg0

Lehetséges megadni a lvcreate parancsnak, hogy használja fel a kötetcsoporton belüli összes szabad helyet. Ez a -l opcióval érhető el, amely az extensek számát választja ki, nem pedig egy (ember által olvasható) méretet. A logikai kötetek logikai extensekre vannak osztva, amelyek a kötetcsoporton belüli adatblokkokat jelentik. Egy kötetcsoportban minden extens azonos méretű. A -l opcióval a lvcreate parancs kérhető, hogy ossza ki az összes szabad extenst:

root #lvcreate --extents 100%FREE --name lvol1 vg0

A VG kulcs használható a kötetcsoport teljes méretének jelölésére, az FREE érték mellett.

Logikai kötetek kilistázása

Az összes logikai kötet listázásához használja a lvdisplay parancsot:

root #lvdisplay

Ha logikai kötetek hiányoznak, akkor a lvscan parancs használható a logikai kötetek felderítésére az összes elérhető kötetcsoporton.

root #lvscan

Logikai kötet bővítése

Amikor egy logikai kötetet bővíteni kell, a lvextend parancs használható a logikai kötethez rendelt hely növelésére.

Például az lvol1 nevű logikai kötet bővítése 500 MB teljes méretre a következő parancs segítségével lehetséges: lvextend.

root #lvextend -L500M /dev/vg0/lvol1

Lehetséges a hozzáadandó méretet használni a teljes méret helyett.

root #lvextend -L+350MB /dev/vg0/lvol1

Egy kibővített kötetcsoport nem biztosítja azonnal a további tárhelyet a végfelhasználók számára. Ehhez a kötetcsoport feletti fájlrendszer méretét is növelni kell. Nem minden fájlrendszer teszi lehetővé az online átméretezést, ezért további információkért ellenőrizze a kérdéses fájlrendszer dokumentációját.

Például, hogy egy ext4 fájlrendszert 500 MB méretűvé alakítson át:

root #resize2fs /dev/vg0/lvol1 500M
Tip
Bizonyos fájlrendszerek esetében a lvresize parancs képes a logikai kötetet, a fájlrendszert módosítani, és a fájlrendszert ellenőrizni egyetlen lépésben!
root #lvresize --resizefs --size 150M /dev/vg0/lvol1

Logikai kötet méretének a csökkentése

Ha egy logikai kötet méretét csökkenteni kell, először magát a fájlrendszert kell zsugorítani. Nem minden fájlrendszer támogatja az online zsugorítást.

Például, az ext4 nem támogatja az online zsugorítást, ezért először le kell csatolni a fájlrendszert. Emellett ajánlott fájlrendszer-ellenőrzést végezni annak biztosítására, hogy ne legyenek ellentmondások:

root #umount /mnt/data
root #e2fsck -f /dev/vg0/lvol1
root #resize2fs /dev/vg0/lvol1 150M

Egy zsugorított fájlrendszerrel most már lehetséges a logikai kötet méretének a csökkentése is:

root #lvreduce --size 150M /dev/vg0/lvol1
Tip
Bizonyos fájlrendszerek esetében a lvresize parancs képes a logikai kötetet, a fájlrendszert módosítani, és a fájlrendszert ellenőrizni egyetlen lépésben!
root #lvresize --resizefs --size 150M /dev/vg0/lvol1

Logikai kötet jogosultságok

Az LVM támogatja az jogosultságállapotokat a logikai köteteken.

Például, egy logikai kötet csak olvasható állapotra állítható a lvchange parancs segítségével:

root #lvchange -p r /dev/vg0/lvol1
root #mount -o remount /dev/vg0/lvol1

Az újracsatolás szükséges, mivel a változtatás nem lép azonnal érvénybe.

Ahhoz, hogy a logikai kötetet ismét írhatóvá tegyük, használja az rw jogosultságbitet:

root #lvchange -p rw /dev/vg0/lvol1 && mount -o remount /dev/vg0/lvol1

Logikai kötet eltávolítása

Mielőtt eltávolít egy logikai kötetet, győződjön meg arról, hogy az már nincs csatolva a fájlrendszerben:

root #umount /dev/vg0/lvol1

Inaktiválja a logikai kötetet, hogy ne történhessen további írási művelet:

root #lvchange -a n /dev/vg0/lvol1

Miután a kötetet lecsatolta és inaktiválta, eltávolíthatóvá vált. Így a hozzárendelt szegmensek felszabadulnak, és más logikai kötetek használatába kerülhetnek a kötetcsoportban:

root #lvremove /dev/vg0/lvol1

Jellemzők

Az LVM számos érdekes funkciót kínál a tárhelykezelők számára, beleértve (de nem kizárólagosan) a következőket:

  • Vékony kiosztás (tárhely túlfoglalása).
  • Pillanatfelvétel-támogatás.
  • Különböző tárhely-kiosztási módszereket használó kötettípusok.

Vékony kiosztás

Győződjön meg arról, hogy engedélyezve van a thin USE jelölőzászló a sys-fs/lvm2 szoftvercsomag számára:

FILE /etc/portage/package.use
# Az LVM szolgáltatás és a kapcsolódó eszközök támogatásának az engedélyezése.
sys-fs/lvm2 lvm
# A vékony támogatás engedélyezése.
sys-fs/lvm2 thin

Az LVM (2.02.89-es vagy újabb verziók) támogatja a "vékony" köteteket. A vékony kötetek a blokkeszközök számára olyanok, mint a ritkított fájlok a fájlrendszerek számára. Így egy vékony logikai kötet egy tárolóban "túlfoglalható": a megadott mérete nagyobb lehet, mint a kiosztott méret – akár nagyobb is lehet, mint maga a tároló. Akárcsak egy ritkított fájl esetében, a kiterjedések akkor kerülnek kiosztásra, amikor a blokkeszköz megtelik. Ha a fájlrendszer törlés támogatással rendelkezik, akkor a kiterjedések újra felszabadulnak, amikor fájlokat törlünk, csökkentve a tároló helyhasználatát.

Az LVM-ben egy ilyen vékony tároló egy speciális típusú logikai kötet, amely maga is képes logikai köteteket tárolni.

Vékony tároló létrehozása

Warning
Ha túlcsordulás történik a vékony tároló metaadatain belül, akkor a tároló sérülni fog. Az LVM nem tud helyreállni ebből.
Note
Ha a vékony tároló kimerül, minden olyan folyamat, amely arra késztetné a vékony tárolót, hogy további (nem elérhető) kiterjedéseket osszon ki, "megölhető alvás" állapotban ragad, amíg a vékony tárolót ki nem bővítik, vagy a folyamat SIGKILL jelet nem kap.

Minden vékony tárolóhoz metaadatok társulnak, amelyek hozzáadódnak a vékony tároló méretéhez. Az LVM a vékony tároló mérete alapján számítja ki a metaadatok méretét, amely a pool_chunks * 64 bájt vagy 2 MiB közül a nagyobbik minimuma. A rendszergazda más metaadat-méretet is kiválaszthat.

A vékony tároló létrehozásához adja hozzá a --type thin-pool --thinpool thin_pool opciókat a lvcreate parancshoz:

root #lvcreate -L 150M --type thin-pool --thinpool thin_pool vg0

A fenti példa egy thin_pool nevű vékony tárolót hoz létre, amelynek teljes mérete 150 MB. Ez a vékony tároló valós kiosztott mérete (és így a ténylegesen felhasználható tárolókapacitás teljes mennyisége).

A kötetcsoportban fennmaradó szabad hely felhasználásához:

root #lvcreate -l 100%FREE --type thin-pool --thinpool thin_pool vg0

Egy adott metaadat-méret megadásához használja a --metadatasize opciót:

root #lvcreate -L 150M --poolmetadatasize 2M --type thin-pool --thinpool thin_pool vg0

Vegye figyelembe, hogy a vékony tárolónak nincs hozzákapcsolt eszközcsomópontja, mint más logikai köteteknek.

Vékony logikai kötet létrehozása

A vékony logikai kötet egy logikai kötet a vékony tárolón belül (amely maga is egy logikai kötet). Mivel a vékony logikai kötetek ritkítottak, fizikai méret helyett virtuális méretet kell megadni a -V opcióval:

root #lvcreate -T vg0/thin_pool -V 300M -n lvol1

Ebben a példában a (vékony) lvol1 logikai kötet 300 MB méretű eszközként jelenik meg, annak ellenére, hogy az alapul szolgáló tároló csak 150 MB valós kiosztott tárolót tartalmaz.

Lehetséges egyetlen parancs segítségével létrehozni mind a vékony tárolót, mind a vékony tárolón belüli logikai kötetet:

root #lvcreate -T vg0/thin_pool -V 300M -L150M -n lvol1

Vékony tárolók és vékony logikai kötetek listázása

A vékony tárolók és vékony logikai kötetek speciális típusú logikai kötetek, és így a lvdisplay paranccsal jeleníthetők meg. A lvscan parancs szintén felismeri ezeket a logikai köteteket.

Vékony tároló bővítése

A vékony tároló ugyanúgy bővíthető, mint egy nem vékony logikai kötet a lvextend parancs használatával. Például:

root #lvextend -L +500M vg0/thin_pool

A vékony tároló metaadatai szintén bővíthetők:

root #lvextend --poolmetadatasize +5M vg0/thin_pool

Vékony logikai kötet bővítése

A vékony logikai kötet ugyanúgy bővíthető, mint egy hagyományos logikai kötet:

root #lvextend -L1G vg0/lvol1

Vegye figyelembe, hogy a lvextend parancs a -L opciót használja (vagy a -l opciót, ha kiterjedésszámokat adnak meg), és nem a "virtuális méret" opciót, amelyet a létrehozás során alkalmaztak.

Vékony tároló csökkentése

Jelenleg az LVM nem képes csökkenteni a vékony tároló méretét. További információért tekintse meg az LVM hibát 812731.

Vékony logikai kötet csökkentése

A vékony logikai kötetek ugyanúgy csökkenthetők, mint a hagyományos logikai kötetek.

For instance:

root #lvreduce -L300M vg0/lvol1l

Figyelembe kell venni, hogy a lvreduce parancs a -L opciót használja (vagy -l, ha kiterjedésszámokat adnak meg), és nem a "virtuális méret" opciót, amelyet a létrehozás során alkalmaztak.

Vékony tárolók eltávolítása

A vékony tárolók nem távolíthatók el, amíg a bennük lévő összes vékony logikai kötetet el nem távolítják.

Amikor egy vékony tároló már nem szolgál ki egyetlen vékony logikai kötetet sem, a lvremove paranccsal eltávolítható:

root #lvremove vg0/thin_pool

LVM2 pillanatképek és vékony pillanatképek

Egy pillanatfelvétel egy logikai kötet, amely egy másik logikai kötet másolataként működik. A pillanatfelvétel a forrás logikai kötet állapotát mutatja annak létrehozásakor.

Warning
Mivel a logikai pillanatfelvétel kötet ugyanazt a fájlrendszer LABEL és UUID attribútumot kapja, ügyeljen arra, hogy a /etc/fstab fájl vagy az initramfs ne tartalmazzon bejegyzéseket ezekre a fájlrendszerekre LABEL= vagy UUID= szintaxis használatával. Ellenkező esetben előfordulhat, hogy a rendszer a pillanatfelvételt csatolja a (szándékolt) eredeti logikai kötet helyett.

Pillanatfelvétel logikai kötet létrehozása

A pillanatfelvétel logikai kötetet a -s opcióval hozhatja létre lvcreate használatával. A pillanatfelvétel logikai kötetekhez továbbra is kijelölt tárhelyet rendelnek, mivel az LVM "regisztrálja" az eredeti logikai kötetben végrehajtott összes módosítást, és ezeket a módosításokat a pillanatfelvételhez kijelölt tárhelyen tárolja. Amikor a pillanatfelvétel állapotát lekérdezi, az LVM az eredeti logikai kötetből indul ki, majd ellenőrzi az összes regisztrált módosítást, "visszavonja" a módosításokat, mielőtt megmutatná az eredményt a felhasználónak.

A pillanatfelvétel logikai kötet ezentúl "növekszik" azzal a sebességgel, ahogy az eredeti logikai kötetben változások történnek. Amikor a pillanatfelvételhez kijelölt tárhely teljesen felhasználódik, a pillanatfelvétel automatikusan eltávolításra kerül a rendszerből.

root #lvcreate -l 10%VG -s -n 20140412_lvol1 /dev/vg0/lvol1

A fenti példa létrehoz egy 20140412_lvol1 nevű pillanatfelvétel logikai kötetet, amely az vg0 kötetcsoport lvol1 logikai kötetén alapul. Ez a kötetcsoporthoz rendelt hely (valójában kiterjesztések) 10%-át használja.

Pillanatfelvétel logikai kötet elérése

A pillanatfelvétel logikai kötetek ugyanúgy csatolhatók, mint a szokásos logikai kötetek. Nem korlátozódnak kizárólag olvasási műveletekre sem – lehetséges a pillanatfelvételek módosítása, így például a változtatások tesztelésére is használhatók, mielőtt ezeket egy "éles" fájlrendszeren hajtanák végre.

Amíg a pillanatfelvétel logikai kötetek léteznek, a szokásos/eredeti logikai kötet mérete nem csökkenthető, és az nem távolítható el.

LVM vékony pillanatfelvételek

Note
Vékony pillanatfelvétel készíthető:
  • Egy vékony tárolóról egy vékony logikai kötet számára.
  • Egy külső, csak olvasható, nem vékony logikai kötet számára.


Lehetséges egy szokásos (nem vékony) pillanatfelvétel logikai kötet létrehozása egy vékony logikai kötetből.

Vékony pillanatfelvétel létrehozásához a lvcreate parancsot használják a -s opcióval. Méretmegadásra nincs szükség:

root #lvcreate -s -n 20140413_lvol1 /dev/vg0/lvol1

A vékony logikai kötet pillanatfelvételek ugyanolyan méretűek, mint az eredeti vékony logikai kötetük, és fizikai hozzárendelésük 0, akárcsak minden más vékony logikai köteté.

Important
Ha a -l vagy -L opció meg van adva, akkor a pillanatfelvétel létrejön, de az eredményül kapott pillanatfelvétel egy szokásos pillanatfelvétel lesz, nem vékony pillanatfelvétel.

Lehetséges pillanatfelvételek készítése pillanatfelvételekről is:

root #lvcreate -s -n 1_20140413_lvol1 /dev/vg0/20140413_lvol1

A vékony pillanatfelvételeknek több előnyük van a szokásos pillanatfelvételekkel szemben. Először is, a vékony pillanatfelvételek az eredeti logikai kötetüktől függetlenek a létrehozás után. Az eredeti logikai kötet csökkenthető vagy törölhető anélkül, hogy ez hatással lenne a pillanatfelvételre. Másodszor, a vékony pillanatfelvételek hatékonyan hozhatók létre rekurzívan (pillanatfelvételek pillanatfelvételeiről) anélkül, hogy a szokásos rekurzív LVM pillanatfelvételek "láncolási" többletterhelése jelentkezne.

Visszaállás a pillanatfelvétel állapotába

Az eredeti logikai kötet pillanatfelvétel szerinti verziójának visszaállításához használja a következő parancsot:

root #lvconvert --merge /dev/vg0/20140413_lvol1

Ez néhány percig is eltarthat, a kötet méretétől függően. Kérjük, vegye figyelembe, hogy a visszaállítás csak akkor történik meg, ha a szülő logikai kötet offline állapotban van. Ezért előfordulhat, hogy újraindítás szükséges.

Important
The snapshot will disappear and this change is not revertible.

Vékony pillanatfelvételek visszaállítása

Vékony pillanatfelvételek összevonásához:

root #lvconvert --merge vg0/20140413_lvol1

Ehhez manuálisan törölje az eredeti logikai kötetet, és nevezze át a pillanatfelvételt:

root #umount /dev/vg0/lvol1
root #lvremove /dev/vg0/lvol1
root #lvrename vg0/20140413_lvol1 lvol1

Különböző tárolási hozzárendelési módszerek

Az LVM különböző tárolási hozzárendelési módszereket támogat:

  • Lineáris kötetek (ez az alapértelmezett).
  • Tükrözött kötetek (többé-kevésbé aktív/készenléti felállásban).
  • Csíkozás (RAID0).
  • Tükrözött kötetek (RAID1 - ami inkább aktív/aktív felállás).
  • Csíkozás paritással (RAID4 és RAID5).
  • Csíkozás dupla paritással (RAID6).
  • Csíkozás és tükrözés (RAID10).

Lineáris kötetek

A lineáris kötetek az LVM-ben a leggyakrabban használt kötetek. Az LVM megpróbálja a logikai kötetet a lehető leginkább fizikailag összefüggő módon elhelyezni. Ha van olyan fizikai kötet, amely elég nagy ahhoz, hogy az egész logikai kötetet befogadja, akkor az LVM ott fogja kiosztani. Ellenkező esetben a lehető legkevesebb darabra osztja fel a kötetet.

A korábban bemutatott parancsok, amelyekkel kötetcsoportokat és logikai köteteket hozunk létre, lineáris köteteket hoznak létre.

Mivel a lineáris köteteknek nincsenek különleges követelményeik, ezek a legkönnyebben kezelhetők, és tetszés szerint átméretezhetők, illetve áthelyezhetők. Ha egy logikai kötet több fizikai kötetre van kiosztva, és bármelyik fizikai kötet elérhetetlenné válik, akkor az adott logikai kötetet többé nem lehet elindítani, és használhatatlanná válik.

Tükrözött kötetek

Az LVM támogatja a tükrözött köteteket, amelyek hibavédelmet nyújtanak a fizikai adathordozó meghibásodása esetén. A RAID1-től eltérően nincs teljesítményjavító hatása - az összes olvasási és írási műveletet a tükör egyetlen oldalára továbbítja.

Az LVM a tükörállapot nyomon követéséhez egy napló fenntartását igényli. Ajánlott (és gyakran kötelező is) ezt a naplót olyan fizikai kötetre helyezni, amely nem tartalmazza a tükrözött logikai köteteket. Háromféle napló használható tükrökhöz:

  1. Lemez - A alapértelmezett naplótípus. Az összes végrehajtott módosítás a LVM által kezelt extra metaadat-kiterjesztésekbe kerül naplózásra. Ha egy eszköz meghibásodik, a módosítások a naplóban maradnak, amíg a tükröt nem lehet helyreállítani.
  2. Tükör - Olyan lemez naplók, amelyek maguk is tükrözöttek.
  3. Memória - Tükörnaplók. Kizárólag a memória állapotában rögzítik a tükör állapotát. Az LVM-nek minden egyes aktiváláskor újra kell építenie a tükröt. Ez a típus ideiglenes tükrökhöz hasznos.

Egyetlen tükröt tartalmazó logikai kötet létrehozásához adja meg a -m 1 argumentumot (a standard tükrözés kiválasztásához), opcionálisan a --mirrorlog használatával, hogy kiválassza az adott naplótípust:

root #lvcreate -m 1 --mirrorlog mirror -l 40%VG --nosync -n lvol1 vg0

A -m 1 argumentum az LVM-nek azt mondja, hogy hozzon létre egy (további) tükröt, így 2 fizikai kötetre van szükség. A --nosync opció optimalizálásként szolgál - enélkül az LVM megpróbálja szinkronizálni a tükröt, üres szektorokat másolva egyik logikai kötetből a másikba.

Lehetséges egy meglévő logikai kötet tükrének létrehozása:

root #lvconvert -m 1 -b vg0/lvol1

A -b opció a háttérben végzi el az átalakítást, mivel ez meglehetősen hosszú időt vehet igénybe.

A tükör eltávolításához állítsa a tükrök számát (vissza) 0 értékre:

root #lvconvert -m0 vg0/lvol1

Ha a tükör egy része nem érhető el (általában azért, mert a fizikai kötetet tartalmazó lemez meghibásodott), akkor a kötetcsoportot csökkentett módban kell elindítani:

root #vgchange -ay --partial vg0

Az első íráskor az LVM észleli, hogy a tükör megsérült. Az alapértelmezett politika ("eltávolítás") automatikusan csökkenti/megszakítja a tükröt az elérhető darabok száma alapján. Egy háromutas tükör egy hiányzó fizikai kötet esetén kétutas tükörré lesz csökkentve. Egy kétutas tükör pedig egy szokványos lineáris kötetként folytatja. Ha a hiba csak átmeneti, és a hiányzó fizikai kötet visszatér azután, hogy az LVM megszakította a tükröt, akkor a tükrözött logikai kötetet újra létre kell hozni rajta.

A tükör helyreállításához a meghibásodott fizikai kötetet el kell távolítani a kötetcsoportból, és egy helyettesítő fizikai kötetet kell hozzáadni (vagy ha a kötetcsoportnak van szabad fizikai kötete, akkor azon lehet létrehozni). Ezután a tükröt újra lehet létrehozni a lvconvert paranccsal, ekkor a régi fizikai kötetet el lehet távolítani a kötetcsoportból.

root #vgextend vg0 /dev/sdc1
root #lvconvert -b -m 1 --mirrorlog disk vg0/lvol1
root #vgreduce --removemissing vg0

Lehetséges, hogy az LVM újra létrehozza a tükröt szabad kiterjesztésekkel egy másik fizikai kötetre, ha az egyik oldal meghibásodik. Ehhez állítsa a mirror_image_fault_policy értékét allocate állapotra a lvm.conf fájlban.

Vékony tükrök

Egy tükrözött vékony tárhely vagy vékony kötet létrehozása (még) nem lehetséges. Egy tükrözött vékony tárhely létrehozása azonban lehetséges egy normál tükrözött logikai kötet létrehozásával, majd a logikai kötet átalakításával vékony tárhellyé a lvconvert paranccsal. Ehhez 2 logikai kötet szükséges: az egyik a vékony tárhelyhez, a másik a vékony metaadatokhoz; az átalakítási folyamat során ezeket egyetlen logikai kötetbe egyesítik.

Warning
Az LVM 2.02.98 vagy újabb verzió szükséges ahhoz, hogy ez megfelelően működjön. A korábbi verziók vagy nem képesek erre, vagy szegmentálási hibát okoznak és megsérthetik a kötetcsoportot. Továbbá, egy tükör vékony tárhellyé történő átalakítása megsemmisíti a tükörben lévő összes meglévő adatot!
root #lvcreate -m 1 --mirrorlog mirrored -l40%VG -n thin_pool vg0
root #lvcreate -m 1 --mirrorlog mirrored -L4MB -n thin_meta vg0
root #lvconvert --thinpool vg0/thin_pool --poolmetadata vg0/thin_meta

Csíkozás (RAID0)

A lineáris kötet helyett, ahol több egymást követő fizikai kötet kerül összeillesztésre, lehetőség van csíkozott vagy RAID0 kötet létrehozására a jobb teljesítmény érdekében. Ez váltakozó tárhely-hozzárendelést végez a rendelkezésre álló fizikai kötetek között.

Három fizikai kötetet használó csíkozott kötet létrehozásához:

root #lvcreate -i 3 -l 20%VG -n lvol1_stripe vg0
Using default stripesize 64.00 KiB

A -i opció azt jelzi, hogy hány fizikai kötetre kell végrehajtani a csíkozást.

Lehetséges egy csíkozott készlet tükrözése. A -i és -m opciók kombinálhatók egy csíkozott tükör létrehozásához:

root #lvcreate -i 2 -m 1 -l 10%VG vg0

Ez egy 2 fizikai kötetből álló csíkozott készletet hoz létre, és azt 2 különböző fizikai kötetre tükrözi, összesen 4 fizikai kötetet igényelve. Egy meglévő csíkozott készlet tükrözhető a lvconvert paranccsal.

Egy vékony tárhely csíkozható, mint bármely más logikai kötet. Az ebből a tárhelyből létrehozott összes vékony kötet örökli ezeket a beállításokat - ne adja meg kézzel ezeket a beállításokat vékony kötet létrehozásakor.

Nem lehetséges egy meglévő kötet csíkozása, sem a csíkok átrendezése több/kevesebb fizikai kötetre, sem pedig átalakítás más RAID szintre vagy lineáris kötetre. Egy csíkozott készlet tükrözhető. Lehetőség van egy csíkozott készlet kiterjesztésére további fizikai kötetekre, de ezeket az eredeti csíkozott készlet többszöröseiben kell hozzáadni (ami gyakorlatilag egy új csíkozott készlet lineáris hozzáfűzését eredményezi).

Tükrözés (RAID1)

A RAID0, azaz a csíkozás, a RAID1-től eltérően tükrözést jelent, de másképp valósítják meg, mint az eredeti LVM tükrözést. A RAID1 esetében az olvasási műveletek több fizikai kötetre terjednek ki, ami javítja a teljesítményt. A RAID1 tükör meghibásodása nem okoz I/O blokkot, mivel az LVM-nek nem kell törnie a tükröt íráskor.

Bármilyen helyzetben, ahol LVM tükör használható, RAID1 tükör is alkalmazható helyette. Az LVM beállítható úgy, hogy implicit módon RAID1 tükröket hozzon létre a hagyományos tükrök helyett, ha a mirror_segtype_default értékét raid1 állapotra állítják a lvm.conf fájlban.

Warning
Az LVM RAID1 tükrözés nem támogatott a GRUB 2.02 előtti verzióiban. Győződjön meg róla, hogy a legújabb verzió telepítve van a grub-install paranccsal, különben a rendszer nem lesz indítható, ha a grub fájlok az LVM RAID1-ben találhatók.

Egyetlen tükröt tartalmazó logikai kötet létrehozásához használja a következő parancsot:

root #lvcreate -m 1 --type raid1 -l 40%VG --nosync -n lvm_raid1 vg0

Figyelje meg a különbséget a tükör létrehozásánál: nincs megadva mirrorlog, mert a RAID1 logikai köteteknek nincs explicit tükörnaplója – az be van építve a logikai kötetbe.

Lehetséges egy meglévő logikai kötetet RAID1 állapotra átalakítani:

root #lvconvert -m 1 --type raid1 -b vg0/lvol1

A RAID1 tükör eltávolításához állítsa a tükrök számát 0 értékre:

root #lvconvert -m0 vg0/lvm_raid1

Ha a RAID1 egy része nem elérhető (általában azért, mert a fizikai kötetet tartalmazó lemez meghibásodott), a kötetcsoportot csökkentett módban kell elindítani:

root #vgchange -ay --partial vg0

Egy LVM tükörrel ellentétben az írás NEM szakítja meg a tükrözést. Ha a hiba csak átmeneti, és a hiányzó fizikai kötet visszatér, akkor az LVM újraszinkronizálja a tükröt azáltal, hogy az elavult szegmenseket másolja, nem pedig az egész logikai kötetet. Ha a hiba tartós, akkor a meghibásodott fizikai kötetet el kell távolítani a kötetcsoportból, és egy cserekövet kell hozzáadni (vagy ha a kötetcsoportnak van szabad fizikai kötete, az létrehozható egy másik fizikai kötetre). A tükröt ezután lvconvert segítségével lehet javítani, és a régi fizikai kötet eltávolítható a kötetcsoportból:

root #vgextend vg0 /dev/sdc1
root #lvconvert --repair -b vg0/lvm_raid1
root #vgreduce --removemissing vg0

Vékony RAID1

Még nem lehetséges RAID1 vékony poolt vagy vékony kötetet létrehozni. RAID1 vékony pool létrehozása lehetséges úgy, hogy először egy normál tükrözött logikai kötetet hoz létre, majd a logikai kötetet vékony poolrá alakítja lvconvert segítségével. 2 logikai kötet szükséges: egy a vékony poolhoz és egy a vékony metaadatokhoz; az átalakítási folyamat ezután egyetlen logikai kötetbe fogja összevonni őket.

Warning
Az LVM 2.02.98 vagy annál újabb verzió szükséges ahhoz, hogy ez megfelelően működjön. A korábbi verziók vagy nem képesek erre, vagy szegmenshibát okoznak és megsértik a kötetcsoportot (VG). Továbbá, a RAID1 vékony poolrá történő átalakítása megsemmisíti a tükörben lévő összes meglévő adatot!
root #lvcreate -m 1 --type raid1 -l40%VG -n thin_pool vg0
root #lvcreate -m 1 --type raid1 -L4MB -n thin_meta vg0
root #lvconvert --thinpool vg0/thin_pool --poolmetadata vg00/thin_meta

Csíkozás paritással (RAID4 és RAID5)

Note
A csíkozás paritással legalább 3 fizikai kötetet igényel.

A RAID0 nem hibaküszöb-tűrő – ha bármelyik fizikai kötet meghibásodik, akkor a logikai kötet használhatatlanná válik. Egy paritáscsík hozzáadásával a RAID0-hoz a logikai kötet továbbra is működhet, ha egy fizikai kötet hiányzik. Ezt követően egy új fizikai kötet hozzáadásával helyreállítható a hibaküszöb-tűrés.

A paritásos csíkozott készletek 2 változatban érhetők el: RAID4 és RAID5. RAID4 alatt az összes paritáscsíkot ugyanazon fizikai kötet tárolja. Ez szűk keresztmetszetet okozhat, mivel minden írás azt a fizikai kötetet érinti, és minél több fizikai kötet van a tömbben, annál rosszabb lesz. A RAID5 esetében a paritásadatok egyenletesen oszlanak el a fizikai kötetek között, így egyikük sem válik szűk keresztmetszetté. Emiatt a RAID4 ritka, és elavult/történelmi jellegűnek tekintik. Gyakorlatilag minden paritásos csíkozott készlet RAID5.

root #lvcreate --type raid5 -l 20%VG -i 2 -n lvm_raid5 vg0

Csak az adat fizikai köteteket kell megadni a -i opcióval, az LVM automatikusan hozzáad egyet a paritáshoz. Tehát egy 3 fizikai kötetből álló RAID5 esetében -i 2 kerül megadásra, nem pedig -i 3.

Amikor egy fizikai kötet meghibásodik, a kötetcsoportot csökkentett módban kell elindítani:

root #vgchange -ay --partial vg0

A kötet ebben az állapotban normálisan fog működni, azonban ez a tömböt RAID0-ra degradálja, amíg egy csere fizikai kötetet hozzá nem adnak. Valószínűleg a teljesítmény nem fog jelentősen csökkenni, amíg a tömb csökkentett állapotban van – bár újra kell számítania a hiányzó adatokat paritás segítségével, ehhez csak egyszerű XOR szükséges a paritásblokkhoz a meglévő adatokkal. Az ehhez kapcsolódó többletterhelés elhanyagolható a lemez I/O-hoz képest.

A RAID5 javításához:

root #lvconvert --repair vg0/lvm_raid5
root #vgreduce --removemissing vg0

Lehetséges egy még működő fizikai kötetet is lecserélni RAID5-ben:

root #lvconvert --replace /dev/sdb1 vg0/lvm_raid5
root #vgreduce vg0 /dev/sdb1

Ugyanazok a korlátozások vonatkoznak a paritásos csíkozott készletekre is: Nem lehetséges paritásos csíkozást engedélyezni egy meglévő kötetre, sem a paritásos csíkozás átalakítása több/kevesebb fizikai kötetre, sem más RAID szintre/lineáris kötetre történő átalakítás. Egy paritásos csíkozott készlet tükrözhető. Lehetséges a paritásos csíkozott készlet kiterjesztése további fizikai kötetekre, de ezeknek az eredeti paritásos csíkozott készlet többszöröseként kell hozzáadódniuk (ami gyakorlatilag egy új paritásos csíkozott készletet lineárisan csatol az eredetihez).

Vékony RAID5 logikai kötetek

Még nem lehetséges paritásos csíkozott készletet (RAID5) létrehozni vékony poolokhoz vagy vékony logikai kötetekhez. RAID5 vékony pool létrehozása lehetséges úgy, hogy először egy normál RAID5 logikai kötetet hoz létre, majd a logikai kötetet vékony poolrá alakítja lvconvert segítségével. 2 logikai kötet szükséges: Egy a vékony poolhoz és egy a vékony metaadatokhoz. Az átalakítási folyamat ezeket egyetlen logikai kötetbe fogja összevonni.

Warning
Az LVM 2.02.98 vagy annál újabb verzió szükséges ahhoz, hogy ez megfelelően működjön. A korábbi verziók vagy nem képesek erre, vagy szegmenshibát okoznak és megsértik a kötetcsoportot (VG). Továbbá, egy RAID5 logikai kötet vékony poolra történő átalakítása megsemmisíti az LV-ben található összes meglévő adatot!
root #lvcreate --type raid5 -i 2 -l20%VG -n thin_pool vg0
root #lvcreate --type raid5 -i 2 -L4MB -n thin_meta vg0
root #lvconvert --thinpool vg0/thin_pool --poolmetadata vg00/thin_meta

Csíkozás dupla paritással (RAID6)

Note
A RAID6 legalább 5 fizikai kötetet igényel.

A RAID6 hasonló a RAID5-hez, azonban a RAID6 akár két fizikai kötet meghibásodását is képes túlélni, így nagyobb hibaküszöb-tűrést kínál, mint a RAID5, további fizikai kötetek felhasználásának árán.

root #lvcreate --type raid6 -l 20%VG -i 3 -n lvm_raid6 vg00

Akárcsak a RAID5 esetében, a -i opciót kell használni a csíkozandó fizikai kötetek számának megadásához, a 2 paritáshoz szükséges fizikai kötetet kihagyva. Tehát egy 5 fizikai kötetből álló RAID6 esetén -i 3-at kell megadni, nem pedig -i 5-öt.

A RAID6 helyreállítása ugyanúgy történik, mint a RAID5 esetében.

Note
A RAID5-től eltérően, ahol a paritásblokk újraszámítása olcsóbb, mint a lemez I/O, ez csak részben igaz a RAID6 esetében. A RAID6 két paritáscsíkot használ: az egyik csíkot ugyanúgy számítják, mint RAID5-ben (egyszerű XOR segítségével). A második paritáscsík azonban sokkal nehezebben számítható ki – további információkért tekintse meg a [https://www.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf

Vékony RAID6 logikai kötetek

Még nem lehetséges RAID6 vékony poolt vagy vékony kötetet létrehozni. RAID6 vékony pool létrehozása lehetséges úgy, hogy először egy normál RAID6 logikai kötetet hoz létre, majd a logikai kötetet vékony poolrá alakítja lvconvert segítségével. 2 logikai kötet szükséges: egy a vékony poolhoz és egy a vékony metaadatokhoz. Az átalakítási folyamat ezeket egyetlen logikai kötetbe fogja összevonni.

Warning
Az LVM 2.02.98 vagy annál újabb verzió szükséges ahhoz, hogy ez megfelelően működjön. A korábbi verziók vagy nem képesek erre, vagy szegmenshibát okoznak és megsértik a kötetcsoportot (VG). Továbbá, egy RAID6 logikai kötet vékony poolrá történő átalakítása megsemmisíti az LV-ben található összes meglévő adatot!
root #lvcreate --type raid6 -i 2 -l20%VG -n thin_pool vg0
root #lvcreate --type raid6 -i 2 -L4MB -n thin_meta vg0
root #lvconvert --thinpool vg0/thin_pool --poolmetadata vg0/thin_meta

LVM RAID10

Note
A RAID10 legalább 4 fizikai kötetet igényel. Az LVM szintaxis továbbá megköveteli, hogy a fizikai kötetek száma legyen a csíkozások és a tükör számának többszöröse, még akkor is, ha a RAID10 formátum ezt nem írja elő.

A RAID10 a RAID0 és RAID1 kombinációja. Erősebb, mint a RAID0+RAID1, mivel a tükrözés csíkszinten történik ahelyett, hogy a logikai kötet szintjén történne, így az elrendezésnek nem kell szimmetrikusnak lennie. Egy RAID10 kötet legalább egy hiányzó fizikai kötetet képes tolerálni, esetleg többet is.

Note
Az LVM jelenleg korlátozza a RAID10-et egyetlen tükörre.
root #lvcreate --type raid10 -l 1020 -i 2 -m 1 --nosync -n lvm_raid10 vg0

Mindkét opciót, -i és -m, meg kell adni: A -i a csíkok számát, míg a -m a tükrök számát jelöli. Két csík és 1 tükör esetén 4 fizikai kötet szükséges.

Vékony RAID10

Még nem lehetséges RAID10 vékony poolt vagy vékony köteteket létrehozni. RAID10 vékony pool létrehozása lehetséges úgy, hogy először egy normál RAID10 logikai kötetet hoz létre, majd a logikai kötetet vékony poolrá alakítja lvconvert segítségével. 2 logikai kötet szükséges: Egy a vékony poolhoz és egy a vékony metaadatokhoz. Az átalakítási folyamat ezeket egyetlen logikai kötetbe fogja összevonni.

Warning
Egy RAID10 logikai kötet vékony poolrá való átalakítása megsemmisíti az összes meglévő adatot a logikai kötetben!
root #lvcreate -i 2 -m 1 --type raid10 -l 1012 -n thin_pool vg0
root #lvcreate -i 2 -m 1 --type raid10 -l 6 -n thin_meta vg0
root #lvconvert --thinpool vg0/thin_pool --poolmetadata vg0/thin_meta

Kísérletezés az LVM-mel

Lehetséges LVM-mel kísérletezni valódi tárolóeszközök használata nélkül. Ennek érdekében loopback eszközök kerülnek létrehozásra.

Először győződjön meg róla, hogy a loopback modul be van töltve.

root #modprobe -r loop && modprobe loop max_part=63
Note
Ha a loopback támogatás be van építve a kernelbe, akkor használja a loop.max_part=63 boot opciót.

Ezután állítsa be az LVM-et úgy, hogy ne használja a udev-et az eszközök keresésére:

FILE /etc/lvm/lvm.confAz udev letiltása az LVM beállításában
obtain_device_list_from_udev = 0
Important
Ez csak tesztelésre szolgál. Ügyeljen arra, hogy a beállítást visszaállítja, amikor valódi eszközökkel dolgozik, mivel sokkal gyorsabb az udev használata!

Hozzon létre néhány képfájlt, amelyek tárolóeszközökké válnak. A következő példa öt fájlt használ, összesen körülbelül 10GB tényleges merevlemez-területet:

root #mkdir /var/lib/lvm_img
root #dd if=/dev/null of=/var/lib/lvm_img/lvm0.img bs=1024 seek=2097152
root #dd if=/dev/null of=/var/lib/lvm_img/lvm1.img bs=1024 seek=2097152
root #dd if=/dev/null of=/var/lib/lvm_img/lvm2.img bs=1024 seek=2097152
root #dd if=/dev/null of=/var/lib/lvm_img/lvm3.img bs=1024 seek=2097152
root #dd if=/dev/null of=/var/lib/lvm_img/lvm4.img bs=1024 seek=2097152

Ellenőrizze, hogy mely loopback eszközök érhetők el:

root #losetup -a

Feltételezve, hogy az összes loopback eszköz elérhető, hozza létre az eszközöket:

root #losetup /dev/loop0 /var/lib/lvm_img/lvm0.img
root #losetup /dev/loop1 /var/lib/lvm_img/lvm1.img
root #losetup /dev/loop2 /var/lib/lvm_img/lvm2.img
root #losetup /dev/loop3 /var/lib/lvm_img/lvm3.img
root #losetup /dev/loop4 /var/lib/lvm_img/lvm4.img

A /dev/loop[0-4] eszközök mostantól elérhetők, és használhatók úgy, mint bármely más merevlemez a rendszerben (és így tökéletesek fizikai kötetekhez).

Note
A következő újraindításkor az összes loopback eszköz felszabadul, és a /var/lib/lvm_img mappa törölhető.

Hibaelhárítás

Az LVM rendelkezik néhány olyan funkcióval, amelyek már bizonyos szintű redundanciát biztosítanak. Azonban vannak olyan helyzetek, amikor lehetséges elveszett fizikai kötetek vagy logikai kötetek helyreállítása.

A vgcfgrestore segédprogram

Alapértelmezés szerint, minden változás esetén egy LVM fizikai kötetben, kötetcsoportban vagy logikai kötetben, az LVM2 létrehoz egy biztonsági mentési fájlt a metaadatokról a /etc/lvm/archive könyvtárban. Ezek a fájlok felhasználhatók egy véletlen változtatás (például a rossz logikai kötet törlése) helyreállítására. Az LVM emellett a legfrissebb metaadatok biztonsági mentésének másolatát is megtartja a /etc/lvm/backup könyvtárban. Ezek felhasználhatók metaadatok visszaállítására egy helyettesítő lemezre, vagy sérült metaadatok javítására.

Annak megtekintéséhez, hogy a kötetcsoport mely állapotai állnak rendelkezésre visszaállításhoz (részleges kimenet az olvashatóság javítása érdekében):

root #vgcfgrestore --list vg00
  File:		/etc/lvm/archive/vg0_00042-302371184.vg
  VG name:    	vg0
  Description:	Created *before* executing 'lvremove vg0/lvm_raid1'
  Backup Time:	Sat Jul 13 01:41:32 201

Véletlenül törölt logikai kötet helyreállítása

Feltételezve, hogy a lvm_raid1 logikai kötet véletlenül törlésre került a vg0 kötetcsoportból, az alábbi módon lehetséges annak helyreállítása:

root #vgcfgrestore -f /etc/lvm/archive/vg0_00042-302371184.vg vg0
Important
A vgcfgrestore csak az LVM metaadatait állítja vissza, a logikai kötetben lévő adatokat nem. Azonban a pvremove, vgremove és lvremove parancsok csak a metaadatokat törlik, az adatokat érintetlenül hagyják. Ha viszont a issue_discards beállítás meg van adva a /etc/lvm/lvm.conf fájlban, akkor ezek a parancsok az adatokra nézve rombolóak.

Meghibásodott fizikai kötet cseréje

Lehetséges egy valódi "csere" elvégzése, és az új fizikai kötet metaadatainak újraalkotása úgy, hogy azok megegyezzenek a régi fizikai kötet metaadataival:

root #vgdisplay --partial --verbose
  --- Physical volumes ---
  PV Name               /dev/loop0     
  PV UUID               iLdp2U-GX3X-W2PY-aSlX-AVE9-7zVC-Cjr5VU
  PV Status             allocatable
  Total PE / Free PE    511 / 102
  
  PV Name               unknown device     
  PV UUID               T7bUjc-PYoO-bMqI-53vh-uxOV-xHYv-0VejBY
  PV Status             allocatable
  Total PE / Free PE    511 / 102

A fontos sor itt az UUID "unknown device".

root #pvcreate --uuid T7bUjc-PYoO-bMqI-53vh-uxOV-xHYv-0VejBY --restorefile /etc/lvm/backup/vg0 /dev/loop1
  Couldn't find device with uuid T7bUjc-PYoO-bMqI-53vh-uxOV-xHYv-0VejBY.
  Physical volume "/dev/loop1" successfully created

Ez újraalkotja a fizikai kötet metaadatait, de nem a hiányzó logikai kötet vagy kötetcsoport adatait a fizikai kötetben.

root #vgcfgrestore -f /etc/lvm/backup/vg0 vg0
  Restored volume group vg0

Ez most rekonstruálja az összes hiányzó metaadatot a fizikai kötetben, beleértve a logikai kötet és a kötetcsoport adatait is. Azonban ez nem állítja helyre az adatokat, így a tükör nincs szinkronban.

root #vgchange -ay vg0
  device-mapper: reload ioctl on  failed: Invalid argument
  1 logical volume(s) in volume group "vg0" now active
root #lvchange --resync vg0/lvm_raid1
Do you really want to deactivate logical volume lvm_raid1 to resync it? [y/n]: y

Ez újraszinkronizálja a tükröt. Ez működik RAID 4, 5 és 6 esetén is.

Logikai kötet deaktiválása

Egy logikai kötet deaktiválása a következő paranccsal lehetséges:

root #umount /dev/vg0/lvol1
root #lvchange -a n /dev/vg0/lvol1

Amíg a logikai kötetet nem aktiválják újra, nem lehetséges bárhol csatlakoztatni:

root #lvchange -a y /dev/vg0/lvol1

További olvasnivaló a témában

Külső források