Útmutató a ZFS telepítéséhez és használatához a CentOS 7-on

ZFS, a Zettabyte Filesystem rövid formája egy fejlett és nagy méretű fájlrendszer. Eredetileg a Sun Microsystems fejlesztette ki, és most része az OpenZFS projektnek. Mivel a Linux rendszeren olyan sok fájlrendszer létezik, teljesen természetes, hogy megkérdezzük, mi a ZFS-vel kapcsolatban. Más fájlrendszerektől eltérően ez nem csak fájlrendszer, hanem logikai kötetmenedzser is. A ZFS egyik jellemzője, hogy népszerűvé teszi a következőket:

  • Data Integrity – data consistency and integrity are ensured through copy-on-write and checksum techniques
  • Pooling of storage space – available storage drives can be put together into a single pool called zpool
  • Software RAID – Setting up a raidz array is as simple as issuing a single command.
  • Inbuilt volume manager – ZFS acts as a volume manager as well.
  • Snaphots, clones, compression – these are some of the advanced features that ZFS provides.

A ZFS egy 128-bites fájlrendszer, és képes 256 zetta bájtok tárolására! Ebben az útmutatóban megtudhatjuk, hogyan kell telepíteni, beállítani és használni néhány fontos ZFS parancsot egy CentOS 7 szerveren.

MEGJEGYZÉS: A telepítési rész a CentOS szerverre jellemző, míg a parancsok minden Linux rendszeren gyakoriak

Terminológia

Mielőtt továbblépnénk, érdemes megértenünk néhány, a ZFS-ben általánosan használt terminológiát.

Pool

A tárolóeszközök logikai csoportosítása. Ez a ZFS alapvető építőköve, és innen származik a tárolóterület az adatkészletekhez.

Datasets

A ZFS fájlrendszer elemei, nevezetesen a fájlrendszer, a klónok, a pillanatfelvételek és a kötetek adatkészletek.

Tükör

Egy virtuális eszköz, amely azonos adatmásolatokat tárol két vagy több lemezen. Olyan esetekben, amikor egy lemez meghibásodik, ugyanazon adatok állnak rendelkezésre a tükör más lemezén.

Resilvering

Az adat másolásának folyamata egyik lemezről a másikra eszköz visszaállítása esetén.

Cserjés

A súrolást a ZFS konzisztencia ellenőrzésére használják, mint hogy az fsck-t más fájlrendszerekben használják

A ZFS telepítése

Annak érdekében, hogy a ZFS-t a CentOS-ra telepítsük, először be kell állítanunk az EPEL repository csomagok támogatását, majd a ZFS-replikátor telepítését a szükséges ZFS-csomagok telepítéséhez.

Megjegyzés: Kérjük, hogy az összes parancsra adja meg a sudo parancsot, ha nem a root felhasználó.

yum localinstall –nogpgcheck http://epel.mirror.net.in/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

yum localinstall –nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release.el7.noarch.rpm

Most telepítse a kernel fejlesztési és zfs csomagokat. Kernelfejlesztési csomagok szükségesek, mivel a ZFS egy modulként épül fel, és beillesztésre kerül a rendszermagba.

yum telepítse a kernel-devel zfs-t

Verify if the zfs module is inserted into the kernel using ‘lsmod’ command and if not, insert it manually using ‘modprobe’ command.

[root @ li1467-130 ~] # lsmod | grep zfs

[root @ li1467-130 ~] # modprobe zfs

[root @ li1467-130 ~] # lsmod | grep zfs
zfs 2790271 0
zunicode 331170 1 zfs
zavl 15236 1 zfs
zcommon 55411 1 zfs
znvpair 89086 2 zfs, zcommon
spl 92029 3 zfs, zcommon, znvpair

Ellenőrizzük, tudjuk-e használni a zfs parancsokat:

[root @ li1467-130 ~] # zfs lista
nincs adatkészlet

Adminisztráció

A ZFS-nek két fő segédprogramja van: a zpool és a zfs. Bár a zpool foglalkozik a zfs segédprogramokkal rendelkező poolok létrehozásával és karbantartásával, az adatkészletek létrehozásáért és karbantartásáért felelős.

zpool segédprogram

Poolok létrehozása és megsemmisítése

Először ellenőrizze a rendelkezésre álló lemezeket, hogy hozzon létre egy tárolókészletet.

[root @ li1467-130 ~] # ls -l / dev / sd *
brw-rw—- 1 root disk 8, 0 Mar 16 08:12 /dev/sda
brw-rw—- 1 root disk 8, 16 Mar 16 08:12 /dev/sdb
brw-rw—- 1 root disk 8, 32 Mar 16 08:12 /dev/sdc
brw-rw—- 1 root disk 8, 48 Mar 16 08:12 /dev/sdd
brw-rw—- 1 root disk 8, 64 Mar 16 08:12 /dev/sde
brw-rw—- 1 root disk 8, 80 Mar 16 08:12 /dev/sdf

Hozzon létre egy medencét egy sor meghajtóból.

zpool create <option> <pool name. <drive 1> <drive 2> …. <drive n>

[root @ li1467-130 ~] # zpool létrehozása -f zfspool sdc sdd sde sdf

‘zpool status’ command displays the status of the available pools

[root @ li1467-130 ~] # zpool állapot
medence: zfspool
állapot: ONLINE
letapogatás: nincs kérelem
config:

NÉV ÁLLAPOT OLVASSA FEL A CKSUMOT
zfspool ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0

hibák: Nincsenek ismert adathibák

Ellenőrizze, hogy a pool létrehozása sikeres volt-e.

[root @ li1467-130 ~] # df -h
Fájlrendszer mérete Használt Hasznosítás Használja a% -ot
/ dev / sda 19G 1.4G 17G 8% /
devtmpfs 488M 0 488M 0% / dev
tmpfs 497M 0 497M 0% / dev / shm
tmpfs 497M 50M 447M 11% / futás
tmpfs 497M 0 497M 0% / sys / fs / cgroup
tmpfs 100M 0 100M 0% / fut / felhasználó / 0
zfspool 3.7G 0 3.7G 0% / zfspool

As you can see, zpool has created a pool by name ‘zfspool’ of size 3.7 GB and has also mounted it in /zfspool.

To destroy a pool, use the ‘zpool destroy’ command

a zpool elpusztítja <pool name> -t

[root @ li1467-130 ~] # zpool elpusztítja a zfspool-ot
[root @ li1467-130 ~] # zpool állapot
nincs medence

Most próbáljuk meg létrehozni egy egyszerű tükör medencét.

zpool create <option> <pool name> mirror <drive 1> <drive 2>… <drive n>

Egyidejűleg több tükröt is létrehozhatunk a tükrök kulcsszó és a meghajtók ismétlésével.

[root @ li1467-130 ~] # zpool create -f mump tükör sdc sdd tükör sde sdf
[root @ li1467-130 ~] # zpool állapot
medence: mpool
állapot: ONLINE
letapogatás: nincs kérelem
config:

NÉV ÁLLAPOT OLVASSA FEL A CKSUMOT
mpool ONLINE 0 0 0
tükör-0 ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
tükör-1 ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0

hibák: Nincsenek ismert adathibák

A fenti példában két tárcsával hoztunk létre tükrös medencéket.

Hasonlóképpen létrehozhatunk egy raidz-medencét is.

[root @ li1467-130 ~] # zpool létrehozása -f rpool raidz sdc sdd sde sdf
[root @ li1467-130 ~] # zpool állapot
medence: rpool
állapot: ONLINE
letapogatás: nincs kérelem
config:

NÉV ÁLLAPOT OLVASSA FEL A CKSUMOT
rump ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0

hibák: Nincsenek ismert adathibák

Eszközök kezelése a ZFS poolokban

Miután létrejött egy pool, lehetőség van forró elemek és gyorsítótár eszközök hozzáadására vagy eltávolítására a medencéből, eszközök csatolásához vagy leválasztásához tükrözött poolokból és eszközök cseréjéről. De a nem redundáns és a raidz eszközök nem távolíthatók el a medencéből. Meg fogjuk látni, hogyan végezhetünk el néhány ilyen műveletet ebben a szakaszban.

I’m first creating a pool called ‘testpool’ consisting of two devices, sdc and sdd. Another device sde will then be added to this.

[root @ li1467-130 ~] # a zpool create -f testpool sdc sdd

[root @ li1467-130 ~] # zpool add testpool sde
[root @ li1467-130 ~] # zpool állapot
medence: testpool
állapot: ONLINE
letapogatás: nincs kérelem
config:

NÉV ÁLLAPOT OLVASSA FEL A CKSUMOT
testpool ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0

hibák: Nincsenek ismert adathibák

Amint korábban említettem, nem tudom eltávolítani ezt az újonnan hozzáadott eszközt, mivel ez nem redundáns vagy raidz-pool.

[root @ li1467-130 ~] # zpool eltávolít testpool sde
nem lehet eltávolítani az sde-t: csak inaktív forró alkatrészeket, gyorsítótárat, felső szintű vagy naplóeszközöket lehet eltávolítani

De fel tudom adni egy tartaléklemezt ehhez a medencéhez és eltávolítom.

[root @ li1467-130 ~] # zpool adj hozzá testpool spare sdf-t
[root @ li1467-130 ~] # zpool állapot
medence: testpool
állapot: ONLINE
letapogatás: nincs kérelem
config:

NÉV ÁLLAPOT OLVASSA FEL A CKSUMOT
testpool ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0
pótalkatrészek
sdf AVAIL

hibák: Nincsenek ismert adathibák
[root @ li1467-130 ~] # a zpool eltávolítja a testpool sdf-et
[root @ li1467-130 ~] # zpool állapot
medence: testpool
állapot: ONLINE
letapogatás: nincs kérelem
config:

NÉV ÁLLAPOT OLVASSA FEL A CKSUMOT
testpool ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0

hibák: Nincsenek ismert adathibák

Hasonlóképpen, csatoljuk a parancsot a lemezek csatolásához tükrözött vagy nem tükrözött medencéhez, és leválaszthatjuk a parancsot a lemezek leválasztására egy tükrözött poolból.

zpool attach <options> <pool name> <eszköz> <new device>

zpool leválasztja <pool name> <eszköz>

When a device fails or gets corrupted, we can replace it using the ‘replace’ command.

A zpool helyettesítse a <options> <pool name> <device> <new device> elemet

Ezt tesztelni fogjuk, ha egy eszközt erőteljesen korrigálunk tükrözött konfigurációban.

[root @ li1467-130 ~] # zpool create -f testpool tükör sdd sde

Ez létrehoz egy tükör medencét, amely az sdd és sde lemezekből áll. Most szándékosan megsemmisítsük az sdd meghajtót, ha nullákat írunk bele.

[root @ li1467-130 ~] # dd ha = / dev / nulla = / dev / sdd
dd: "dev / sdd" -hoz ír: Nincs szabad hely az eszközön
2048001 + 0 rekordok vannak benne
2048000 + 0 rögzíti
1048576000 bájtok (1.0 GB) másolt, 22.4804 s, 46.6 MB / s

We will use the ‘scrub’ command to detect this corruption.

[root @ li1467-130 ~] # zpool cserje testpool
[root @ li1467-130 ~] # zpool állapot
medence: testpool
állapot: ONLINE
állapot: Egy vagy több eszköz nem használható, mert a címke hiányzik vagy
érvénytelen. Megfelelő replikák léteznek a medence folytatásához
működésképtelen állapotban.
action: Replace the device using ‘zpool replace’.
lásd: http://zfsonlinux.org/msg/ZFS-8000-4J
beolvasás: cserje javítása 0 0h0m 0 hibákkal pénteki 18 09: 59: 40 2016
config:

NÉV ÁLLAPOT OLVASSA FEL A CKSUMOT
testpool ONLINE 0 0 0
tükör-0 ONLINE 0 0 0
sdd UNAVAIL 0 0 0 sérült adatok
sde ONLINE 0 0 0

hibák: Nincsenek ismert adathibák

Most helyettesítjük az sdd-t sdc-vel.

[root @ li1467-130 ~] # zpool helyettesíti a testpool sdd sdc; zpool állapot
medence: testpool
állapot: ONLINE
scan: 83.5K 0K 0K 0 18 10 05 17: 2016 XNUMX XNUMX XNUMX
config:

NÉV ÁLLAPOT OLVASSA FEL A CKSUMOT
testpool ONLINE 0 0 0
tükör-0 ONLINE 0 0 0
helyettesítő-0 UNAVAIL 0 0 0
sdd UNAVAIL 0 0 0 sérült adatok
sdc ONLINE 0 0 0
sde ONLINE 0 0 0

hibák: Nincsenek ismert adathibák

[root @ li1467-130 ~] # zpool állapot
medence: testpool
állapot: ONLINE
scan: 74.5K 0K 0K 0 18 10 00 36: 2016 XNUMX XNUMX XNUMX
config:

NÉV ÁLLAPOT OLVASSA FEL A CKSUMOT
testpool ONLINE 0 0 0
tükör-0 ONLINE 0 0 0
sdc ONLINE 0 0 0
sde ONLINE 0 0 0

hibák: Nincsenek ismert adathibák

Medencék áttelepítése

A tárolóhelyeket különböző állomások között exportálhatjuk és importálhatunk. Ehhez a medencében használt lemezeknek mindkét rendszerről elérhetőnek kell lenniük.

[root @ li1467-130 ~] # zpool export testpool
[root @ li1467-130 ~] # zpool állapot
nincs medence

The command ‘zpool import’ lists all the pools that are available for importing. Execute this command from the system where you want to import the pool.

[root @ li1467-131 ~] # zpool importálás
medence: testpool
id: 3823664125009563520
állapot: ONLINE
fellépés: A medencét importálhatja a saját nevével vagy numerikus azonosítójával.
config:

testpool ONLINE
sdc ONLINE
sdd ONLINE
sde ONLINE

Most importálja a szükséges medencét

[root @ li1467-131 ~] # zpool import testpool
[root @ li1467-131 ~] # zpool állapot
medence: testpool
állapot: ONLINE
letapogatás: nincs kérelem
config:

NÉV ÁLLAPOT OLVASSA FEL A CKSUMOT
testpool ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0

hibák: Nincsenek ismert adathibák

iostat

Az iostat parancs segítségével ellenőrizheti a pool-eszközök io statisztikáját.

[root @ li1467-130 ~] # zpool iostat -v testpool
kapacitás műveletek sávszélességét
pool alloc szabad olvasni írni olvasni írni
———- —– —– —– —– —– —–
testpool 1.80M 2.86G 22 27 470K 417K
sdc 598K 975M 8 9 200K 139K
sdd 636K 975M 7 9 135K 139K
sde 610K 975M 6 9 135K 139K
———- —– —– —– —– —– —–

zfs segédprogram

Most áttérünk a zfs segédprogramra. Itt megnézzük, hogyan lehet létrehozni, megsemmisíteni az adatkészleteket, fájlrendszer-tömörítést, kvótákat és pillanatfelvételeket.

A fájlrendszer létrehozása és megsemmisítése

ZFS fájlrendszer létrehozható a zfs create parancs használatával

A zfs létrehozza a <fájlrendszert>

[root @ li1467-130 ~] # zfs hoz létre testpool / diákokat
[root @ li1467-130 ~] # zfs hoz létre testpoolot / professzorokat
[root @ li1467-130 ~] # df -h
Fájlrendszer mérete Használt Hasznosítás Használja a% -ot
/ dev / sda 19G 1.4G 17G 8% /
devtmpfs 488M 0 488M 0% / dev
tmpfs 497M 0 497M 0% / dev / shm
tmpfs 497M 50M 447M 11% / futás
tmpfs 497M 0 497M 0% / sys / fs / cgroup
testpool 2.8G 0 2.8G 0% / testpool
tmpfs 100M 0 100M 0% / fut / felhasználó / 0
testpool / hallgatók 2.8G 0 2.8G 0% / testpool / diákok
testpool / professzorok 2.8G 0 2.8G 0% / testpool / professzorok

A fenti kimenetről vegye figyelembe, hogy bár a fájlrendszer létrehozásakor nincs csatolási pont, akkor a csatolási pontot ugyanazzal az elérési útvonalakkal hozza létre, mint a medenceé.

A zfs create lehetővé teszi a -o használatát, amivel megadhatunk olyan beállításokat, mint a csatolási pont, a tömörítés, a kvóta, a végrehajtás stb.

Az elérhető fájlrendszereket a zfs listán lehet felsorolni:

[root @ li1467-130 ~] # zfs lista
NÉV FELHASZNÁLÁSA AVAIL REFER MOUNTPOINT
testpool 100M 2.67G 19K / testpool
testpool / professzorok 31K 1024M 20.5K / testpool / professzorok
testpool / hallgatók 1.57M 98.4M 1.57M / testpool / diákok

Elpusztíthatunk egy fájlrendszert az elpusztítási lehetőség használatával

A zfs elpusztítja a <fájlrendszert>

Tömörítés

We will now understand how compression works in ZFS. Before we start using compression, we need to enable it using ‘set compression’

A zfs beállítása <tömörítés = érték> <fájlrendszer | kötet | snapshot>

Ha ez megtörtént, akkor a fájlrendszeren átlátható módon a tömörítés és a dekompresszió történik.

Példánkban engedélyezem a tömörítést a diákkönyvtárban az lz4 tömörítési algoritmussal.

[root @ li1467-130 ~] # zfs set compression = lz4 testpool / diákok

Most másolom az 15M méretű fájlt ebbe a fájlrendszerbe, és ellenőrizni fogom a méretet, miután másoltam.

[root @ li1467-130 /] # cd / var / napló
[root @ li1467-130 napló] # du-h biztonságos
15M biztonságos

[root @ li1467-130 ~] # cp / var / log / secure / testpool / tanulók /

[root @ li1467-130 diákok] # df -h.
Fájlrendszer mérete Használt Hasznosítás Használja a% -ot
testpool / hallgatók 100M 1.7M 99M 2% / testpool / diákok

Vegye figyelembe, hogy a fájlrendszerben használt méret csak 1.7M, míg a fájl mérete 15M volt. A tömörítési arányt is ellenőrizhetjük.

[root @ li1467-130 ~] # zfs get compressratio testpool
NÉV TULAJDON ÉRTÉK FORRÁSA
testpool compressratio 9.03x –

Kvóták és foglalás

Let me explain quotas with a real life example. Suppose we have a requirement in a university to limit the disk space used by the filesystem for professors and students. Let us assume that we need to allocate 100MB for students and 1GB for professors. We can make use of ‘quotas’ in ZFS to fulfill this requirement. Quotas ensure that the amount of disk space used by a filesystem doesn’t exceed the limits set. Reservation helps in actually allocating and guaranteeing that the required amount of disk space is available for the filesystem.

zfs set quota = <érték> <fájlrendszer | kötet | snapshot>

zfs set reservation = <érték> <fájlrendszer | kötet | pillanatkép>

[root @ li1467-130 ~] # zfs set quota = 100M testpool / diákok
[root @ li1467-130 ~] # zfs beállítása foglalás = 100M testpool / diákok
[root @ li1467-130 ~] # zfs lista
NÉV FELHASZNÁLÁSA AVAIL REFER MOUNTPOINT
testpool 100M 2.67G 19K / testpool
testpool / professzorok 19K 2.67G 19K / testpool / professzorok
testpool / hallgatók 1.57M 98.4M 1.57M / testpool / diákok

[root @ li1467-130 ~] # zfs set quota = 1G testpool / professzorok
[root @ li1467-130 ~] # zfs lista
NÉV FELHASZNÁLÁSA AVAIL REFER MOUNTPOINT
testpool 100M 2.67G 19K / testpool
testpool / professzorok 19K 1024M 19K / testpool / professzorok
testpool / hallgatók 1.57M 98.4M 1.57M / testpool / diákok

In the above example, we have allocated 100MB for students and 1GB for professors. Observe the ‘AVAIL’ column in ‘zfs list’. Initially they had the size of 2.67GB each and after setting the quota, the values have changed accordingly.

Pillanatképek

A pillanatfelvételek a ZFS fájlrendszer csak olvasható példányai egy adott időpontban. Nem használnak extra helyet a zfs poolban. Egy későbbi szakaszban visszaléphetünk ugyanabba az állapotba, vagy kiválaszthatunk egyetlen vagy egy sor állományt a felhasználói igények szerint.

I will now create some directories and a file under ‘/testpool/professors’ from our previous example and then take a snapshot of this filesystem.

[root @ li1467-130 ~] # cd / testpool / professzorok /

[root @ li1467-130 professzorok] # mkdir matematika fizika kémia

[root @ li1467-130 professzorok] # cat> qpaper.txt
Kérdőív az 2016-17 évhez
[root @ li1467-130 professzorok] # ls -la
Összesen 4
drwxr-xr-x 5 root gyökér 6 Mar 19 10: 34.
drwxr-xr-x 4 root gyökér 4 Mar 19 09: 59 ..
drwxr-xr-x 2 root gyökér 2 Mar 19 10: 33 kémia
drwxr-xr-x 2 root gyökér 2 Mar 19 10: 32 matematika
drwxr-xr-x 2 root gyökér 2 Mar 19 10: 32 fizika
-rw-r–r– 1 root root 36 Mar 19 10:35 qpaper.txt

Pillanatfelvétel készítéséhez használja a következő szintaxist:

zfs pillanatkép <fájlrendszer | kötet @ <snap>

[root @ li1467-130 professzorok] # zfs snapshot testpool / professzorok @ 03-2016
[root @ li1467-130 professzorok] # zfs list -t snapshot
NÉV FELHASZNÁLÁSA AVAIL REFER MOUNTPOINT
testpool/professors@03-2016 0 – 20.5K –

I’ll now delete the file that was created and extract it from the snapshots

[root @ li1467-130 professzorok] # rm -rf qpaper.txt
[root @ li1467-130 professzorok] # ls
kémia matematika fizika
[root @ li1467-130 professzorok] # cd .zfs
[root @ li1467-130 .zfs] # cd pillanatkép / 03-2016 /
[root @ li1467-130 03-2016] # ls
kémia matematika fizika qpaper.txt

[root @ li1467-130 03-2016] # cp -a qpaper.txt / testpool / professzorok /
[root @ li1467-130 03-2016] # cd / testpool / professzorok /
[root @ li1467-130 professzorok] # ls
kémia matematika fizika qpaper.txt

A törölt fájl a helyére került.

A rendelkezésre álló pillanatfelvételek listáját a zfs listán lehet felsorolni:

[root @ li1467-130 ~] # zfs list -t snapshot
NÉV FELHASZNÁLÁSA AVAIL REFER MOUNTPOINT
testpool/professors@03-2016 10.5K – 20.5K –

Finally, let’s destroy the snapshot using the zfs destroy command:

A zfs elpusztítja <fájlrendszert | kötet @ <snap>

[root @ li1467-130 ~] # zfs megsemmisíti a tesztosztermet / professzorokat @ 03-2016

[root @ li1467-130 ~] # zfs list -t snapshot
nincs adatkészlet

Következtetés

Ebben a cikkben megtanultad, hogyan telepítsd a ZFS-t a CentOS 7-ra és használj néhány alapvető és fontos parancsot a zpool és a zfs segédprogramokból. Ez nem egy átfogó lista. A ZFS-nek sokkal több lehetősége van, és tovább lehet felfedezni őket hivatalos oldal.

Hagy egy Válaszol

Ez az oldal Akismet-et használ a levélszemét csökkentése érdekében. Ismerje meg, hogyan dolgozik a megjegyzésed.

GTranslate Your license is inactive or expired, please subscribe again!