Logikai kötetkezelés
(→Solaris Logikai kötetkezelése) |
(→Diskek) |
||
659. sor: | 659. sor: | ||
A Solaris 10 update 2 (6/06), illetve az opensolaris előtt a Solarisban nem vált szét élesen a logikai kötetkezelés és a szoftver RAID. Az így létrehozott metadevice-okon ugyanúgy UFS-t lehet használni, mint alapesetben a diskeken. 2006 júniusában azonban az megjelent a ZFS a kereskedelmi solarisban, ami elég sok újítést hozott, és valamilyen szinten elavulttá tette az addigi logikai kötetkezelést. A metadevice-ok létrehozásának lehetősége a Solaris 9-től volt része a kereskedelmi Solarisnak (előző verziókhoz is elérhető volt patch formájában). |
A Solaris 10 update 2 (6/06), illetve az opensolaris előtt a Solarisban nem vált szét élesen a logikai kötetkezelés és a szoftver RAID. Az így létrehozott metadevice-okon ugyanúgy UFS-t lehet használni, mint alapesetben a diskeken. 2006 júniusában azonban az megjelent a ZFS a kereskedelmi solarisban, ami elég sok újítést hozott, és valamilyen szinten elavulttá tette az addigi logikai kötetkezelést. A metadevice-ok létrehozásának lehetősége a Solaris 9-től volt része a kereskedelmi Solarisnak (előző verziókhoz is elérhető volt patch formájában). |
||
=== Diskek === |
=== Diskek === |
||
+ | SPARC architektúra esetén minden disk tartalmaz 8 slice-ot, ebbol 7-re lehet fájlrendszereket létrehozni, a 2-es számú pedig az egész disket jelöli (mint pl. linux alatt a /dev/hda). A diskek a format parancs segitsegevel tekinthetok meg. |
||
+ | SPARC: |
||
+ | <pre> |
||
+ | # format |
||
+ | Searching for disks...done |
||
+ | |||
+ | |||
+ | AVAILABLE DISK SELECTIONS: |
||
+ | 0. c0t0d0 <ST39140A cyl 17660 alt 2 hd 16 sec 63> |
||
+ | /pci@1f,0/pci@1,1/ide@3/dad@0,0 |
||
+ | 1. c1t2d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133> |
||
+ | /pci@1f,0/pci@1/scsi@1,1/sd@2,0 |
||
+ | 2. c1t3d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133> |
||
+ | /pci@1f,0/pci@1/scsi@1,1/sd@3,0 |
||
+ | 3. c1t5d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133> |
||
+ | /pci@1f,0/pci@1/scsi@1,1/sd@5,0 |
||
+ | 4. c1t8d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133> |
||
+ | /pci@1f,0/pci@1/scsi@1,1/sd@8,0 |
||
+ | 5. c1t9d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133> |
||
+ | /pci@1f,0/pci@1/scsi@1,1/sd@9,0 |
||
+ | 6. c1t10d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133> |
||
+ | /pci@1f,0/pci@1/scsi@1,1/sd@a,0 |
||
+ | </pre> |
||
+ | x86: |
||
+ | <pre> |
||
+ | bash-3.00# format |
||
+ | Searching for disks...done |
||
+ | |||
+ | |||
+ | AVAILABLE DISK SELECTIONS: |
||
+ | 0. c0d0 <DEFAULT cyl 4092 alt 2 hd 128 sec 32> |
||
+ | /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0 |
||
+ | 1. c0d1 <VMware V-0000000000000000-0001-8.00GB> |
||
+ | /pci@0,0/pci-ide@7,1/ide@0/cmdk@1,0 |
||
+ | 2. c1d0 <DEFAULT cyl 4093 alt 2 hd 128 sec 32> |
||
+ | /pci@0,0/pci-ide@7,1/ide@1/cmdk@0,0 |
||
+ | 3. c1d1 <VMware V-0000000000000000-0001-8.00GB> |
||
+ | /pci@0,0/pci-ide@7,1/ide@1/cmdk@1,0 |
||
+ | </pre> |
||
+ | |||
=== Meta devices === |
=== Meta devices === |
||
=== ZFS === |
=== ZFS === |
A lap 2006. szeptember 28., 20:51-kori változata
A logikai kötetkezelés egy új logikai absztrakciós réteget biztosít a gépben található háttértárolók és a fájlrendszerek között. Ez egyebek mellett lehetővé teszi, hogy a fizikai tárolóeszközöket logikai egységekbe szervezzük, és rugalmasan átméretezhető logikai köteteket hozzunk létre. Ha később új diszk kerül a gépbe, azt is hozzáadhatjuk egy kötetcsoporthoz, és teljesen transzparens módon átlóghatnak rá a filerendszereink, anélkül, hogy külön foglalkoznunk kellene azzal, hogy melyik fizikai diszkre is kerüljenek.
Tartalomjegyzék[elrejtés] |
1 Linux LVM
(Itt most csak a 2.6-os kernelben levő LVM2-vel foglalkozunk. A 2.4-es szériában található LVM1 nagyjából ugyanezt tudta, csak volt néhány korlátozása.)
A Linux LVM (Logical Volume Management) a következő fogalmakkal dolgozik:
1.1 Physical extent
Allokációs egység. Ekkora egységenként oszthatjuk szét a volume groupban levő helyet a logical volume-ok között (l. később).
Ha akarjuk, hívhatjuk magyarul fizikai mértéknek, de ez elég sután hangzik.
1.2 Physical volume
A physical volume olyan fizikai háttértároló, amin létrehoztuk az LVM metaadat-struktúráját a pvcreate paranccsal. Pl:
# pvcreate /dev/hda Physical volume "/dev/hda" successfully created # pvcreate /dev/loop0 Physical volume "/dev/loop0" successfully created # pvcreate /dev/sda3 Physical volume "/dev/sda3" successfully created
Fontosab opciók:
- --uuid: minden physical volume-nak van egy egyedi azonosítója. Ha egy diszket kicserélünk, és az új diszket be akarjuk tenni a régi helyére az LVM-be, akkor a --uuid kapcsolóval be kell állítanunk rajta a régi diszk azonosítóját.
Dokumentáció:
- man pvcreate: pvcreate(8)
- man lvm: lvm(8)
Ha akarjuk, a physical volume-ot hívhatjuk magyarul fizikai kötetnek.
1.2.1 Physical volume-ok kezelése
A pvdisplay paranccsal nézhetjük meg, milyen physical volume-jaink vannak:
# pvdisplay --- Physical volume --- PV Name /dev/md2 VG Name raid5 PV Size 697.91 GB / not usable 0 Allocatable yes PE Size (KByte) 32768 Total PE 22333 Free PE 4094 Allocated PE 18239 PV UUID elN9K7-dvxq-b0fd-daqR-693p-fHqD-SwbDpD --- NEW Physical volume --- PV Name /dev/loop0 VG Name PV Size 31.81 MB Allocatable NO PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID hlzs9k-H253-ERpK-R39N-8ICT-4bU6-D0xtc1
Láthatjuk, hogy az első megtalált physical volume a /dev/md2-n, egy RAID tömbön van, és a raid5 nevű volume group része (l. később). A második volume a /dev/loop0 loopback device-on (tehát valójában egy ehhez a device-hoz tartozó image file-ban) van, és még nem rendeltük hozzá volume grouphoz, ezért nem is használható a benne levő hely (Allocatable: no). A közölt adatok:
- PV Name - annak a unix device-nak a neve, amin a physical volume található.
- VG Name - annak a volume groupnak a neve, amelyhez a physical volume tartozik.
- PV Size - a PV mérete (mit jelent és milyen esetben jelenik meg a "not usable X"?)
- Allocatable - Felhasználható-e a PV-n levő hely (van valakinek kedve precízebb megfogalmazást keresni erre?)
- PE Size - a physical extentek mérete abban a volume groupban, amelyhez a PV tartozik.
- Total, Free, Allocated PE - összes physical extent száma, ebből hány szabad, hány foglalt.
- PV UUID - egyedi azonosító.
Majdnem ugyanezt tudja a pvs parancs is:
# pvs PV VG Fmt Attr PSize PFree /dev/loop0 lvm2 -- 31.81M 31.81M /dev/md2 raid5 lvm2 a- 697.91G 127.94G
A pvs esetén testreszabhatóbb a kimenet formája. Részletesebben l. a dokumentációban.
A pvscan outputja is nagyon hasonló:
PV /dev/md2 VG raid5 lvm2 [697.91 GB / 127.94 GB free] PV /dev/loop0 lvm2 [31.81 MB] Total: 2 [697.94 GB] / in use: 1 [697.91 GB] / in no VG: 1 [31.81 MB]
A különbség az, hogy a pvscan újra végignézi az összes block device-t, a pvs és a pvdisplay pedig a kernel adatstruktúráiból szedi az információt.
A pvmove segítségével az egyik phyiscal volume-ban levő physical extenteket átmozgathatjuk a volume group egy másik physical volume-jára. Ennek akkor van értelme, ha pl. ki akarjuk venni az adott fizikai diszket a gépből, vagy a volume groupból. A pvmove online művelet, vagyis menet közben is használhatjuk, írhatjuk és olvashatjuk az érintett volume-ot.
A pvremove segítségével eltávolíthatjuk az LVM-címkét egy PV-ről, így az LVM a továbbiakban nem vesz róla tudomást.
1.3 Volume group
A volume group lényegében egy logical volume-okkal "partícionálható" absztrakt merevlemez; physical volume-ok egy csoportja. Közvetlenül nem lehet rá adatokat írni, de a benne levő helyet tetszés szerint szétoszthatjuk logical volume-ok között.
Létrehozása a vgcreate paranccsal történik.
# vgcreate proba /dev/loop0 Volume group "proba" successfully created # pvdisplay [...] --- Physical volume --- PV Name /dev/loop0 VG Name proba PV Size 28.00 MB / not usable 0 Allocatable yes PE Size (KByte) 4096 Total PE 7 Free PE 7 Allocated PE 0 PV UUID hlzs9k-H253-ERpK-R39N-8ICT-4bU6-D0xtc1
Egynél több PV-t is felsorolhatunk a parancssorban; ezek mind bekerülnek az új volume groupba (hívhatjuk kötetcsoportnak).
Fontosabb opciók:
- -s, --physicalextentsize PhysicalExtentSize[kKmMgGtT]: a physical extentek méretét adja meg.
Ilyen granularitással oszthatjuk szét a helyet a logical volume-ok között. A filerendszer I/O teljesítményére elvileg nincs hatással, csak az LVM segédprogramjai lesznek lassúbbak, ha túl sok van (mert túl kicsik). A meta-adatok mennyisége is nagyobb lehet, ha több PE van. Manapság kevés olyan felhasználást lehet elképzelni, ahol szükség lehet 16MB-nál kisebb granularitásra.
Dokumentáció:
- man vgcreate: vgcreate(8)
- man lvm: lvm(8)
1.3.1 Volume groupok kezelése
Listázás: vgdisplay
# vgdisplay --- Volume group --- VG Name raid5 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 21 VG Access read/write VG Status resizable MAX LV 32 Cur LV 5 Open LV 5 Max PV 16 Cur PV 1 Act PV 1 VG Size 697.91 GB PE Size 32.00 MB Total PE 22333 Alloc PE / Size 18239 / 569.97 GB Free PE / Size 4094 / 127.94 GB VG UUID I4pM7R-wmD9-m3VP-0OI1-ahbb-hdKy-QIQXnL --- Volume group --- VG Name proba System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 28.00 MB PE Size 4.00 MB Total PE 7 Alloc PE / Size 0 / 0 Free PE / Size 7 / 28.00 MB VG UUID U2pJ4S-J3fj-ebb0-ojYt-Vn7c-VAHU-w7WIlS
A vgdisplaynek van egy -v kapcsolója, aminek a hatására a logical volume-okat is listázza.
A pv*-gal analóg módon van vgs és vgscan is.
A vgchange-dzsel lehet "aktiválni" és "deaktiválni" a kötetcsoportokat (ha nem aktiváljuk, nem tudjuk mountolni a benne levő LV-ket).
# vgchange -a y 5 logical volume(s) in volume group "raid5" now active 0 logical volume(s) in volume group "proba" now active
A vgcfgbackup/vgcfgrestore segítségével készíthetünk ill. állíthatunk vissza biztonsági mentést az LVM-konfigurációnkról. A felhasználói adatokat természetesen nem menti el, de arra az esetre, ha megsérülnének az LVM saját adatterületei, vagy véletlenül megszüntetnénk egy fontos LV-t, jól jön.
A vgck ellenőrzi a meta-adatok konzisztenciáját.
Ha egy kötetcsoportot át akarunk vinni egy másik számítógépbe, akkor először exportálnunk kell a vgexport segítségével:
# vgexport proba Volume group "proba" successfully exported # vgdisplay proba WARNING: volume group "proba" is exported --- Volume group --- VG Name proba System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status exported/resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 28.00 MB PE Size 4.00 MB Total PE 7 Alloc PE / Size 0 / 0 Free PE / Size 7 / 28.00 MB VG UUID U2pJ4S-J3fj-ebb0-ojYt-Vn7c-VAHU-w7WIlS
Az exportált kötetcsoport nem aktiválható, amíg nem importáljuk:
# vgchange -a y proba Volume group "proba" is exported # vgimport proba Volume group "proba" successfully imported # vgchange -a y proba 0 logical volume(s) in volume group "proba" now active
Növelés: vgextend. A vgextend segítségével a kötetcsoporthoz új PV-ot adhatunk hozzá.
Összehúzás: vgreduce. A vgreduce segítségével a kötetcsoportból eltávolíthatunk egy üres PV-t (tehát olyat, amin egyetlen PE-t - physical extentet - sem foglal egyetlen LV - logical volume - sem).
Összevonás: vgmerge. A vgmerge segítségével egy inaktív VG-ot beolvaszthatunk egy másik létező VG-ba, ha a PE-méretek megegyeznek. A cél-VG-ban ezután benne lesznek mindkét kiinduló-VG LV-jai.
Szétválasztás: vgsplit. A kiinduló kötetcsoport fizikai kötetei közül néhányból új kötetcsoportot hozunk létre. A logikai kötetek nem lóghatnak át egyik kötetcsoportból a másikba (erről előtte szükség esetén pvmove-val gondoskodni kell).
A vgmknodes boot közben fut le, létrehozza a /dev alatt a volume groupjainkhoz tartozó bejegyzéseket.
Törlés: vgremove. Teljesen megszünteti a kötetcsoportot és újra felszabadítja a PV-jait.
Átnevezés: vgrename.
Növeljük meg a proba kötetcsoportot; adjunk hozzá egy újabb 32MB-os loop device-t.
# dd if=/dev/zero of=loop1 bs=1048576 count=32 32+0 records in 32+0 records out 33554432 bytes (34 MB) copied, 0.146919 seconds, 228 MB/s # losetup /dev/loop1 loop1 # pvcreate /dev/loop1 Physical volume "/dev/loop1" successfully created # vgextend proba /dev/loop1 Volume group "proba" successfully extended
1.4 Logical volume
A logical volume (legyen logikai kötet) úgy viselkedik, mint egy merevlemezpartíció, azzal a különbséggel, hogy:
- szabadon, on-line átméretezhető (a rajta/benne található filerendszert ettől persze külön át kell méretezni);
- on-line átmozgatható másik diszkre;
- készíthető róla snapshot.
Létrehozása: lvcreate:
# lvcreate -L 8M -n proba_lv_1 proba Logical volume "proba_lv_1" created
Fontosabb opciók:
- -L - méret byte-ban, megabyteban, gigabyteban stb.
- -l - méret PE-ben
- -n - a létrehozandó LV neve
- -i - csíkszám (hány különböző PV-n szórja szét - kvázi RAID0)
- --mirrors - tükrök száma (hány különböző PV-n tárolja ugyanazt - kvázi RAID1, de naplózva, úgyhogy nem kell minden crash után resyncelni)
- --type - típus: striped, zero, error, snapshot, mirror
- Ebből közvetlenül csak a zerot és az errort lehet értelme megadni (ellenvélemény?)
- zero: nullákkal teli (írhatatlan) virtuális volume
- error: hibákkal teli (olvashatatlan és írhatatlan) virtuális volume
- Ezeket átméretezéskor is megadhatjuk, tehát bővíthetjük ilyen típusú PE-kkel a LV-ot.
- Házi feladat: mire jó ez?
A csíkozás és a tükrözés jelenleg nem használható egyszerre, de ez nem probléma, mert a hagyományos linuxos softraiddel mindezt meg tudjuk csinálni.
1.4.1 Logical volume-ok kezelése
Hozzunk létre egy tükrözött és egy csíkozott LV-t. Ehhez csináltam egy proba2 kötetcsoportot, ami három PV-ből áll; az egyikben lesz az első tükör, a másikban a második, a harmadikban pedig a napló (az LVM lognak hívja, nem journalnak).
# lvcreate --mirrors 1 -l 2 -n proba_lv_1 proba2 Logical volume "proba_lv_1" created # vgdisplay proba2 --- Volume group --- VG Name proba2 System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 4 Open LV 0 Max PV 0 Cur PV 3 Act PV 3 VG Size 180.00 MB PE Size 4.00 MB Total PE 45 Alloc PE / Size 5 / 20.00 MB Free PE / Size 40 / 160.00 MB VG UUID K03ymb-kgin-AHf4-vPBZ-6I5E-xKTs-LbLjRu # lvdisplay /dev/proba2/proba_lv_1 --- Logical volume --- LV Name /dev/proba2/proba_lv_1 VG Name proba2 LV UUID rF1Wa4-23kr-9G0o-GH0D-O8QG-M7oF-pPPRcI LV Write Access read/write LV Status available # open 0 LV Size 8.00 MB Current LE 2 Segments 1 Allocation inherit Read ahead sectors 0 Block device 253:8 # lvcreate -l 6 -i 3 -n proba_lv_2 proba2 Using default stripesize 64.00 KB Logical volume "proba_lv_2" created # vgdisplay proba2 --- Volume group --- VG Name proba2 System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 8 VG Access read/write VG Status resizable MAX LV 0 Cur LV 5 Open LV 0 Max PV 0 Cur PV 3 Act PV 3 VG Size 180.00 MB PE Size 4.00 MB Total PE 45 Alloc PE / Size 11 / 44.00 MB Free PE / Size 34 / 136.00 MB VG UUID K03ymb-kgin-AHf4-vPBZ-6I5E-xKTs-LbLjRu # lvdisplay /dev/proba2/proba_lv_2 --- Logical volume --- LV Name /dev/proba2/proba_lv_2 VG Name proba2 LV UUID q8OujL-uysn-75KG-2A6l-p15a-ewQ4-mgP8d8 LV Write Access read/write LV Status available # open 0 LV Size 24.00 MB Current LE 6 Segments 1 Allocation inherit Read ahead sectors 0 Block device 253:9 # lvs LV VG Attr LSize Origin Snap% Move Log Copy% proba_lv_1 proba2 mwi-a- 8.00M proba_lv_1_mlog 100.00 proba_lv_2 proba2 -wi-a- 24.00M # lvscan ACTIVE '/dev/proba2/proba_lv_1' [8.00 MB] inherit ACTIVE '/dev/proba2/proba_lv_2' [24.00 MB] inherit
dmsetuppal látjuk a mirrorokat és a logot is:
# dmsetup info Name: proba2-proba_lv_1_mimage_1 State: ACTIVE Tables present: LIVE Open count: 1 Event number: 0 Major, minor: 253, 7 Number of targets: 1 UUID: LVM-K03ymbkginAHf4vPBZ6I5ExKTsLbLjRuaM82P6ppVyBjJsv32VdW4a8auXRZNnaj Name: proba2-proba_lv_1_mimage_0 State: ACTIVE Tables present: LIVE Open count: 1 Event number: 0 Major, minor: 253, 6 Number of targets: 1 UUID: LVM-K03ymbkginAHf4vPBZ6I5ExKTsLbLjRuS4NGUUe90L1UOyuPDqVGMVBgTnLCPRQl Name: proba2-proba_lv_1_mlog State: ACTIVE Tables present: LIVE Open count: 1 Event number: 0 Major, minor: 253, 5 Number of targets: 1 UUID: LVM-K03ymbkginAHf4vPBZ6I5ExKTsLbLjRuc8xYiqrk26zrQMaJb14k6Fxlcw9QmETz Name: proba2-proba_lv_1 State: ACTIVE Tables present: LIVE Open count: 0 Event number: 1 Major, minor: 253, 8 Number of targets: 1 UUID: LVM-K03ymbkginAHf4vPBZ6I5ExKTsLbLjRurF1Wa423kr9G0oGH0DO8QGM7oFpPPRcI Name: proba2-proba_lv_2 State: ACTIVE Tables present: LIVE Open count: 0 Event number: 0 Major, minor: 253, 9 Number of targets: 1 UUID: LVM-K03ymbkginAHf4vPBZ6I5ExKTsLbLjRuq8OujLuysn75KG2A6lp15aewQ4mgP8d8 # dmsetup status proba2-proba_lv_1_mimage_1: 0 16384 linear proba2-proba_lv_1_mimage_0: 0 16384 linear proba2-proba_lv_1_mlog: 0 8192 linear proba2-proba_lv_2: 0 49152 striped proba2-proba_lv_1: 0 16384 mirror 2 253:6 253:7 16/16
A dmsetup amúgy a kernelben levő device mapper alrendszerrel kommunikál, és információnyerésen kívül más érdekes dolgokra is használható. A felhasználási területek körüljárása egy lehetséges házi feladat. Lehet vele pl. titkosított block device-t csinálni.
Átméretezés: lvextend, lvreduce, lvresize. A -L/-l kapcsolókkal megadhatjuk az új méretet abszolút értékkel vagy az előzőhöz képest (pl. lvextend -L +1G /dev/raid5/var - egy gigabyte-tal megnöveljük a raid5 kötetcsoport var nevű logikai kötetét).
Törlés: lvremove.
Átnevezés: lvrename.
1.4.2 Snapshot Logical Volume
- Pillanatfelvétel egy LV aktuális állapotáról.
- Copy-on-write szemantika: ha az eredetit módosítjuk, akkor a snapshotban létrejön a korábbi tartalom másolata.
- Ha kevés az írás, viszonylag kis snapshot volume is elég lehet viszonylag nagy adatterülethez.
- A snapshot írható is (az LVM1-ben csak olvasható volt).
- Felhasználás pl.:
- Majdnem-online adatbázis-backup:
- "Egy pillanatra" leállítjuk az adatbázist.
- Csinálunk az LV-ről egy snapshotot (ez gyors művelet).
- Újra elindítjuk az adatbázist. A snapshoton az eredeti, konzisztens tartalom látszik.
- A kedvenc offline backup-eszközünkkel elmentjük a snapshot volume-on található adatbázispéldányt.
- Töröljük a snapshot volume-ot.
- Rendszer-rollback:
- Upgrade vagy egyéb veszélyes beavatkozás előtt az összes volume-ról csinálunk snapshotot.
- Ha vissza akarunk térni a korábbi állapothoz, mindent visszamásolunk a snapshotból.
- Akár bootlhatunk is úgy, hogy a snapshotokat mountoljuk a "valódi" LV-k helyett.
- Ehhez az kell, hogy a rootfs snapshotjában levő fstabban a snapshotok szerepeljenek a valódi LV-k helyett.
- Tehát a snapshot létrehozása után át kell írni az fstabot a snapshoton.
- Sandbox:
- Snapshotot csinálunk a rendszerről.
- Belechrootolunk.
- Kipróbáljuk, amit ki akartunk próbálni. Csak a snapshot módosul.
- Töröljük a snapshotot.
- Ha jól működött, amit kipróbáltunk, megcsináljuk a valódi rendszeren is; ha nem, nem.
- VM klónozás:
- Ha sok hasonló virtuális gépet akarunk futtatni, csinálunk egy master LV-ot, amiben összerakjuk a filerendszert.
- Ennek a snapshotjait kapják meg a virtuális gépek (pl. UML vagy xenU).
- Így sokkal kevesebb helyet foglalnak, mivel az adatok nagy része közös helyen lesz.
- Ez csak akkor jó, ha kevés a változás; ha sok, akkor idővel (legfeljebb) ugyanannyi helyet fognak foglalni a snapshotok, mintha eleve külön LV-ket hoztunk volna létre.
- Majdnem-online adatbázis-backup:
Létrehozása: lvcreate -s.
Próbáljuk ki:
# mke2fs /dev/proba2/proba_lv_2 [...] # mount /dev/proba2/proba_lv_2 /mnt/proba_lv_2 # cat <<EOF >/mnt/proba_lv_2/tesztfile heredoc> Boci boci tarka heredoc> Se fule se farka heredoc> Oda megyunk lakni heredoc> Ahol tejet kapni heredoc> EOF # cd /mnt/proba_lv_2 # ls -la total 15 drwxr-xr-x 3 root root 1024 Sep 26 02:02 . drwxr-xr-x 18 root root 1024 Sep 26 02:01 .. drwx------ 2 root root 12288 Sep 26 02:00 lost+found -rw-r--r-- 1 root root 67 Sep 26 02:02 tesztfile # cat tesztfile Boci boci tarka Se fule se farka Oda megyunk lakni Ahol tejet kapni # lvcreate -l 1 -s -n proba_lv_2_snap /dev/proba2/proba_lv_2 Logical volume "proba_lv_2_snap" created # lvs LV VG Attr LSize Origin Snap% Move Log Copy% proba_lv_1 proba2 mwi-a- 8.00M proba_lv_1_mlog 100.00 proba_lv_2 proba2 owi-ao 24.00M proba_lv_2_snap proba2 swi-a- 4.00M proba_lv_2 0.39 # dmsetup status proba2-proba_lv_2-real: 0 49152 striped proba2-proba_lv_2_snap-cow: 0 8192 linear proba2-proba_lv_2_snap: 0 49152 snapshot 32/8192 proba2-proba_lv_1_mimage_1: 0 16384 linear proba2-proba_lv_1_mimage_0: 0 16384 linear proba2-proba_lv_1_mlog: 0 8192 linear proba2-proba_lv_2: 0 49152 snapshot-origin proba2-proba_lv_1: 0 16384 mirror 2 253:6 253:7 16/16 # lvdisplay /dev/proba2/* --- Logical volume --- LV Name /dev/proba2/proba_lv_1 VG Name proba2 LV UUID rF1Wa4-23kr-9G0o-GH0D-O8QG-M7oF-pPPRcI LV Write Access read/write LV Status available # open 0 LV Size 8.00 MB Current LE 2 Segments 1 Allocation inherit Read ahead sectors 0 Block device 253:8 --- Logical volume --- LV Name /dev/proba2/proba_lv_2 VG Name proba2 LV UUID q8OujL-uysn-75KG-2A6l-p15a-ewQ4-mgP8d8 LV Write Access read/write LV snapshot status source of /dev/proba2/proba_lv_2_snap [active] LV Status available # open 1 LV Size 24.00 MB Current LE 6 Segments 1 Allocation inherit Read ahead sectors 0 Block device 253:9 --- Logical volume --- LV Name /dev/proba2/proba_lv_2_snap VG Name proba2 LV UUID Am9wZ6-YHy2-DkeM-UDY1-K8X6-nZ1d-HAeoYl LV Write Access read/write LV snapshot status active destination for /dev/proba2/proba_lv_2 LV Status available # open 0 LV Size 24.00 MB Current LE 6 COW-table size 4.00 MB COW-table LE 1 Allocated to snapshot 0.59% Snapshot chunk size 8.00 KB Segments 1 Allocation inherit Read ahead sectors 0 Block device 253:12 # mount /dev/proba2/proba_lv_2_snap /mnt/proba_lv_2_snap /mnt# ls -la proba_lv_2* proba_lv_2: total 15 drwxr-xr-x 3 root root 1024 Sep 26 02:02 . drwxr-xr-x 19 root root 1024 Sep 26 02:07 .. drwx------ 2 root root 12288 Sep 26 02:00 lost+found -rw-r--r-- 1 root root 67 Sep 26 02:02 tesztfile proba_lv_2_snap: total 15 drwxr-xr-x 3 root root 1024 Sep 26 02:02 . drwxr-xr-x 19 root root 1024 Sep 26 02:07 .. drwx------ 2 root root 12288 Sep 26 02:00 lost+found -rw-r--r-- 1 root root 67 Sep 26 02:02 tesztfile # df -h Filesystem Size Used Avail Use% Mounted on [...] /dev/mapper/proba2-proba_lv_2 24M 14K 23M 1% /mnt/proba_lv_2 /dev/mapper/proba2-proba_lv_2_snap 24M 14K 23M 1% /mnt/proba_lv_2_snap # echo 'Ooooh, edes bociiii! Adj nekunk tejeeeeeeet!' >proba_lv_2/tesztfile # cat */tesztfile Ooooh, edes bociiii! Adj nekunk tejeeeeeeet! Boci boci tarka Se fule se farka Oda megyunk lakni Ahol tejet kapni # lvs LV VG Attr LSize Origin Snap% Move Log Copy% proba_lv_1 proba2 mwi-a- 8.00M proba_lv_1_mlog 100.00 proba_lv_2 proba2 owi-ao 24.00M proba_lv_2_snap proba2 swi-ao 4.00M proba_lv_2 0.59 # echo 'Ezt is lehet' >proba_lv_2_snap/tesztfile /mnt# cat */tesztfile Ooooh, edes bociiii! Adj nekunk tejeeeeeeet! Ezt is lehet # lvs LV VG Attr LSize Origin Snap% Move Log Copy% proba_lv_1 proba2 mwi-a- 8.00M proba_lv_1_mlog 100.00 proba_lv_2 proba2 owi-ao 24.00M proba_lv_2_snap proba2 swi-ao 4.00M proba_lv_2 0.98 # umount /mnt/proba_lv_2_snap # lvremove /dev/proba2/proba_lv_2_snap Do you really want to remove active logical volume "proba_lv_2_snap"? [y/n]: y Logical volume "proba_lv_2_snap" successfully removed # lvs LV VG Attr LSize Origin Snap% Move Log Copy% proba_lv_1 proba2 mwi-a- 8.00M proba_lv_1_mlog 100.00 proba_lv_2 proba2 -wi-a- 24.00M
xfs filerendszer esetén a snapshotot csak a nouuid opcióval tudjuk bemountolni; enélkül az xfs azt hiszi, hogy ugyanazt a fizikai filerendszert próbáljuk mountolni másodszor is.
1.5 EVMS
EVMS: Enterprise Volume Management System. Nem a népszerű scifisorozat hangerejének kezelésére szolgál.
LVM-ebb az LVM-nél. Részletek házi feladatként.
2 Solaris
A Solaris 10 update 2 (6/06), illetve az opensolaris előtt a Solarisban nem vált szét élesen a logikai kötetkezelés és a szoftver RAID. Az így létrehozott metadevice-okon ugyanúgy UFS-t lehet használni, mint alapesetben a diskeken. 2006 júniusában azonban az megjelent a ZFS a kereskedelmi solarisban, ami elég sok újítést hozott, és valamilyen szinten elavulttá tette az addigi logikai kötetkezelést. A metadevice-ok létrehozásának lehetősége a Solaris 9-től volt része a kereskedelmi Solarisnak (előző verziókhoz is elérhető volt patch formájában).
2.1 Diskek
SPARC architektúra esetén minden disk tartalmaz 8 slice-ot, ebbol 7-re lehet fájlrendszereket létrehozni, a 2-es számú pedig az egész disket jelöli (mint pl. linux alatt a /dev/hda). A diskek a format parancs segitsegevel tekinthetok meg. SPARC:
# format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c0t0d0 <ST39140A cyl 17660 alt 2 hd 16 sec 63> /pci@1f,0/pci@1,1/ide@3/dad@0,0 1. c1t2d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133> /pci@1f,0/pci@1/scsi@1,1/sd@2,0 2. c1t3d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133> /pci@1f,0/pci@1/scsi@1,1/sd@3,0 3. c1t5d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133> /pci@1f,0/pci@1/scsi@1,1/sd@5,0 4. c1t8d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133> /pci@1f,0/pci@1/scsi@1,1/sd@8,0 5. c1t9d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133> /pci@1f,0/pci@1/scsi@1,1/sd@9,0 6. c1t10d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133> /pci@1f,0/pci@1/scsi@1,1/sd@a,0
x86:
bash-3.00# format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c0d0 <DEFAULT cyl 4092 alt 2 hd 128 sec 32> /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0 1. c0d1 <VMware V-0000000000000000-0001-8.00GB> /pci@0,0/pci-ide@7,1/ide@0/cmdk@1,0 2. c1d0 <DEFAULT cyl 4093 alt 2 hd 128 sec 32> /pci@0,0/pci-ide@7,1/ide@1/cmdk@0,0 3. c1d1 <VMware V-0000000000000000-0001-8.00GB> /pci@0,0/pci-ide@7,1/ide@1/cmdk@1,0
2.2 Meta devices
2.3 ZFS
3 Ajánlott irodalom
- Tomka Gergely: RAID és ENBD - gyakorlati útmutató. Könnyed bevezetés a RAID, az LVM és az ENBD (Enhanced Network Block Device) használatába.