Juhend ZFS-i installimiseks ja kasutamiseks CentOS 7-i jaoks

ZFS, lühike Zettabyte'i failisüsteem on täiustatud ja väga skaleeritav failisüsteem. See oli algselt välja töötatud Sun Microsystemsi poolt ja kuulub nüüd OpenZFSi projekti. Kui Linuxis on nii palju failisüsteeme, on loomulik, et küsida, mis on ZFS-i jaoks eriline. Erinevalt teistest failisüsteemidest ei ole see mitte ainult failisüsteem, vaid ka loogiline helitugevuse haldur. Mõned ZFS-i funktsioonid, mis seda populaarseks teevad, on järgmised:

  • Andmete terviklikkus - andmete järjepidevus ja terviklikkus on tagatud kopeerimise ja kirjutamise meetodite abil
  • Salvestusruumi ühendamine - saadaval olevad salvestusseadised saab kokku panna ühtsesse zoologruppi
  • Tarkvara RAID - rajad massiivi loomine on sama lihtne kui ühe käsu väljastamine.
  • Sisseehitatud helitugevusmehhanism - ZFS toimib ka helitugevuse haldurina.
  • Snaphots, kloonid, pakkimine - need on mõned ZFS-i täiustatud funktsioonid.

ZFS on 128-bitiste failisüsteemide ja see suudab salvestada 256 zetta baiti! Selles juhendis õpime, kuidas installida, seadistada ja kasutada ka mõnda tähtsat ZFS-i käsku CentOS 7-serveris.

MÄRKUS. Installeerimise osa on spetsiaalne CentOS-serverile, samas kui käsklused on levinud mis tahes Linuxi süsteemis

Terminoloogia

Enne kui me edasi liigutame, mõistage mõningad terminid, mida kasutatakse ZFS-is.

Piljard

Laadimisseadmete loogiline grupp. See on ZFSi põhiline ehitusplokk ja see on siit, et andmekogud eraldatakse ruumi.

Andmekogumid

ZFS-failisüsteemi komponendid, nimelt failisüsteem, kloonid, hetktõmmised ja mahud, viidatakse andmekogumitele.

Peegel

Virtuaalne seade, mis salvestab identseid andmeühikuid kahel või enamal kettal. Olukordades, kus üks ketas ebaõnnestub, on samad andmed selle peegli teiste ketaste puhul saadaval.

Resilvering

Andmete kopeerimine ühest kettast teise seadme taastamise korral.

nühkima

Järjepidevuse kontrollimiseks ZFS-is kasutatakse kruvi, näiteks kuidas fscki kasutatakse teistes failisüsteemides

ZFS-i installimine

Selleks, et installida ZFS CentOS-is, peame esmalt seadistama EPEL-i hoidlat pakettide toetamiseks ja seejärel ZFS-i hoidlalt vajalike ZFS-pakettide installimiseks.

Märkus: palun anna prefix sudo kõikidele käskudele, kui te pole juurkasutaja.

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

Nüüd installige kerneli arendus ja zfs-paketid. Kerneli arenduspaketid on vajalikud, sest ZFS on moodulis moodustatud ja sisestatud kernelisse.

yum paigaldada kernel-devel zfs

Kinnitage, kas zfs-moodul sisestatakse kernelisse käsuga lsmod, ja kui mitte, sisestage see käsitsi käsuga "modprobe".

[[Email kaitseb] ~] # lsmod | grep zfs

[[Email kaitseb] ~] # modprobe zfs

[[Email kaitseb] ~] # 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

Kontrollige, kas suudame zfs-käske kasutada:

[[Email kaitseb] ~] # zfs nimekirja
puuduvad andmekogud

haldus

ZFS-il on kaks peamist kommunikatsiooni, zpool ja zfs. Kuigi zpool tegeleb ketaste loomise ja hooldamisega, on ketaste loomine ja hooldamine zfs utility.

zpooli utiliit

Basseinide loomine ja hävitamine

Esmalt kontrollige, kas kettad on teie jaoks salvestusbaasi loomiseks kättesaadavad.

[[Email kaitseb] ~] # ls -l / dev / sd *
brw-rw-- 1 root ketas 8, 0 Mar 16 08: 12 / dev / sda
brw-rw-- 1 juurkile 8, 16 Mar 16 08: 12 / dev / sdb
brw-rw-- 1 juure ketas 8, 32 Mar 16 08: 12 / dev / sdc
brw-rw-- 1 juurkile 8, 48 Mar 16 08: 12 / dev / sdd
brw-rw-- 1 juurkile 8, 64 Mar 16 08: 12 / dev / sde
brw-rw-- 1 juurkile 8, 80 Mar 16 08: 12 / dev / sdf

Loo kettaseadmete komplekt.

zpool luua <option> <pool nimi. <drive 1> <drive 2> .... <drive n>

[[Email kaitseb] ~] # zpool luua -f zfspool sdc sdd sde sdf

Käsk "zpool status" näitab saadaolevate kogumite olekut

[[Email kaitseb] ~] # zpool staatus
bassein: zfspool
riik: ONLINE
skaneerimine: ükski pole taotletud
config:

NAME STATE LUGEGE KIRJUTAGE CKSUM
zfspool ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
SED ONLINE 0 0 0
sdf ONLINE 0 0 0

vead: teadaolevaid andmevigu pole

Kontrollige, kas basseini loomine oli edukas.

[[Email kaitseb] ~] # df -h
Failisüsteemi suurus Kasutatav Käsitsi% paigaldatud
/ 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% / run
tmpfs 497M 0 497M 0% / sys / fs / cgroup
tmpfs 100M 0 100M 0% / run / kasutaja / 0
zfspool 3.7G 0 3.7G 0% / zfspool

Nagu näete, on zpool loonud basseini nimega "zfspool" suuruses 3.7 GB ja on sellel ka paigaldanud / zfspooli.

Basseini hävitamiseks kasutage käsku 'zpool destroy'

zpool hävitama <pool nimi>

[[Email kaitseb] ~] # zpool hävitada zfspool
[[Email kaitseb] ~] # zpool staatus
ühtegi basseini pole saadaval

Proovime nüüd luua lihtsa peegelpildi.

zpool luua <option> <pool name> peegel <drive 1> <drive 2> ... <drive n>

Me võime samal ajal luua ka mitut peeglit, korrates peegli märksõna, millele järgneb draiv.

[[Email kaitseb] ~] # zpool luua -f mpool peegel sdc sdd peegel sde sdf
[[Email kaitseb] ~] # zpool staatus
bassein: mpool
riik: ONLINE
skaneerimine: ükski pole taotletud
config:

NAME STATE LUGEGE KIRJUTAGE CKSUM
mpool ONLINE 0 0 0
peegel-0 ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
peegel-1 ONLINE 0 0 0
SED ONLINE 0 0 0
sdf ONLINE 0 0 0

vead: teadaolevaid andmevigu pole

Ülaltoodud näites oleme loonud peegelpildid kahe kettaga.

Samamoodi saame luua raidz basseini.

[[Email kaitseb] ~]# zpool create -f rpool raidz sdc sdd sde sdf
[[Email kaitseb] ~] # zpool staatus
bassein: rull
riik: ONLINE
skaneerimine: ükski pole taotletud
config:

NAME STATE LUGEGE KIRJUTAGE CKSUM
rpool ONLINE 0 0 0
ratid1-0 ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
SED ONLINE 0 0 0
sdf ONLINE 0 0 0

vead: teadaolevaid andmevigu pole

Managing devices in ZFS basseinid

Kui bassein luuakse, on võimalik lisada või eemaldada kuumade varuosade ja vahemällu seadmeid basseinilt, kinnitada või eraldada seadmeid peegelpildistest ja asendada seadmeid. Kuid seadmeid, mis ei ole koondatud ja ratid, ei saa basseinist eemaldada. Näeme, kuidas mõnda neist toimingutest käesolevas jaotises täita.

Esmalt luuakse bassein nimega testpool, mis koosneb kahest seadmest, sdc ja sdd. Seejärel lisatakse teine ​​seade sde.

[[Email kaitseb] ~]# zpool create -f testpool sdc sdd

[[Email kaitseb] ~]# zpool add testpool sde
[[Email kaitseb] ~] # zpool staatus
bassein: testpool
riik: ONLINE
skaneerimine: ükski pole taotletud
config:

NAME STATE LUGEGE KIRJUTAGE CKSUM
testpool ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
SED ONLINE 0 0 0

vead: teadaolevaid andmevigu pole

Nagu varem mainitud, ei saa ma seda äsja lisatud seadet eemaldada, kuna see ei ole koondatud või raidin basiilik.

[[Email kaitseb] ~]# zpool remove testpool sde
ei saa sde eemaldada: saab eemaldada ainult mitteaktiivsed kuumad varuosad, vahemälu, tipptaseme või logifailid

Kuid ma võin lisada selle basseini varuratasse ja eemaldada.

[[Email kaitseb] ~]# zpool add testpool spare sdf
[[Email kaitseb] ~] # zpool staatus
bassein: testpool
riik: ONLINE
skaneerimine: ükski pole taotletud
config:

NAME STATE LUGEGE KIRJUTAGE CKSUM
testpool ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
SED ONLINE 0 0 0
varuosad
sdf AVAIL

vead: teadaolevaid andmevigu pole
[[Email kaitseb] ~]# zpool remove testpool sdf
[[Email kaitseb] ~] # zpool staatus
bassein: testpool
riik: ONLINE
skaneerimine: ükski pole taotletud
config:

NAME STATE LUGEGE KIRJUTAGE CKSUM
testpool ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
SED ONLINE 0 0 0

vead: teadaolevaid andmevigu pole

Samamoodi võime kasutada käsuga attach, et lisada kettaid peegel- või mittepeegelduvasse basseini ja eraldada käsu, et eemaldada kettad peegelpildist.

zpool attach <options> <pool name> <device> <new device>

zpool eemalda <pool nimi> <seade>

Kui seade ebaõnnestub või rikub, saame selle asendada käsuga "asenda".

zpool asenda <options> <pool name> <device> <new device>

Me testime seda, peegeldades konfiguratsiooni seadme jõuliselt rikkudes.

[[Email kaitseb] ~]# zpool create -f testpool mirror sdd sde

See loob peegelpilti, mis koosneb kettadest sdd ja sde. Nüüd laske meid teadlikult rikkuda sdd-draivi, kirjutades sellele nullid.

[[Email kaitseb] ~]# dd if=/dev/zero of=/dev/sdd
dd: kirjuta faili "/ dev / sdd": seadmesse pole ühtegi ruumi
2048001 + 0 kirjad sisse
2048000 + 0 kirjutab välja
Kopeeritud 1048576000 baiti (1.0 GB), 22.4804 s, 46.6 MB / s

Selle korruptsiooni avastamiseks kasutame käsku "puhastamine".

[[Email kaitseb] ~]# zpool scrub testpool
[[Email kaitseb] ~] # zpool staatus
bassein: testpool
riik: ONLINE
olek: üks või mitu seadet ei saanud kasutada, kuna silt puudub või
kehtetu. Basseini jätkamiseks on olemas piisavad koopiad
toimib halvenenud seisundis.
toiming: asendage seade, asendades "zpool replace".
vt: http://zfsonlinux.org/msg/ZFS-8000-4J
skannimine: puhastada 0i puhastamine 0h0m-s koos 0i vigadega Fri Mar 18 09: 59: 40 2016
config:

NAME STATE LUGEGE KIRJUTAGE CKSUM
testpool ONLINE 0 0 0
peegel-0 ONLINE 0 0 0
sdd UNAVAIL 0 0 0 rikutud andmed
SED ONLINE 0 0 0

vead: teadaolevaid andmevigu pole

Asendame sdd sdc-ga.

[[Email kaitseb] ~]# zpool replace testpool sdd sdc; zpool status
bassein: testpool
riik: ONLINE
skannimine: resulvered 83.5K 0h0m-s koos 0i vigadega Fri Mar 18 10: 05: 17 2016
config:

NAME STATE LUGEGE KIRJUTAGE CKSUM
testpool ONLINE 0 0 0
peegel-0 ONLINE 0 0 0
asendades-0 UNAVAIL 0 0 0
sdd UNAVAIL 0 0 0 rikutud andmed
sdc ONLINE 0 0 0
SED ONLINE 0 0 0

vead: teadaolevaid andmevigu pole

[[Email kaitseb] ~] # zpool staatus
bassein: testpool
riik: ONLINE
skannimine: resulvered 74.5K 0h0m-s koos 0i vigadega Fri Mar 18 10: 00: 36 2016
config:

NAME STATE LUGEGE KIRJUTAGE CKSUM
testpool ONLINE 0 0 0
peegel-0 ONLINE 0 0 0
sdc ONLINE 0 0 0
SED ONLINE 0 0 0

vead: teadaolevaid andmevigu pole

Poolide ränne

Me võime migreerida hoidla basseinid eri hostide vahel, kasutades ekspordi- ja impordikäske. Selleks peaks basseinis kasutatavad kettad olema kättesaadavad mõlemast süsteemist.

[[Email kaitseb] ~]# zpool export testpool
[[Email kaitseb] ~] # zpool staatus
ühtegi basseini pole saadaval

Käsk "zpool import" loetleb kõik importimiseks kättesaadavad kogumid. Käivitage see käsk sellest süsteemist, kuhu soovite kogumi importida.

[[Email kaitseb] ~]# zpool import
bassein: testpool
id: 3823664125009563520
riik: ONLINE
tegevus: basseini saab importida selle nime või numbrilise identifikaatori abil.
config:

testpool ONLINE
sdc ONLINE
sdd ONLINE
SED ONLINE

Nüüd importige nõutav bassein

[[Email kaitseb] ~]# zpool import testpool
[[Email kaitseb] ~] # zpool staatus
bassein: testpool
riik: ONLINE
skaneerimine: ükski pole taotletud
config:

NAME STATE LUGEGE KIRJUTAGE CKSUM
testpool ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
SED ONLINE 0 0 0

vead: teadaolevaid andmevigu pole

iostat

Iostat-käsuga saab kontrollida io-statistikat basseinide seadmetest.

[[Email kaitseb] ~]# zpool iostat -v testpool
läbilaskevõime operatsioone ribalaius
bassein alloc tasuta loe kirjutan loe kirjutama
---- - - - - - -
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 utiliit

Nüüd läheme edasi zfs-i utiliiti. Siin vaatame, kuidas luua, hävitada andmekogusid, failisüsteemi tihendust, kvoote ja pilte.

Failisüsteemi loomine ja hävitamine

ZFS-failisüsteemi saab luua kasutades käsku zfs create

zfs luua <filesystem>

[[Email kaitseb] ~]# zfs create testpool/students
[[Email kaitseb] ~]# zfs create testpool/professors
[[Email kaitseb] ~] # df -h
Failisüsteemi suurus Kasutatav Käsitsi% paigaldatud
/ 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% / run
tmpfs 497M 0 497M 0% / sys / fs / cgroup
testpool 2.8G 0 2.8G 0% / testpool
tmpfs 100M 0 100M 0% / run / kasutaja / 0
testpool / üliõpilased 2.8G 0 2.8G 0% / testpool / õpilased
testpool / professorid 2.8G 0 2.8G 0% / testpool / professorid

Ülaltoodud väljundist märkate, et kuigi failisüsteemi loomise ajal pole antud pöördpunkti, luuakse pöörduspunkt, kasutades sama suuna kui basseini suuna.

zfs loob võimaldab kasutada -o seda kasutades, mille abil saame määrata selliseid valikuid nagu mountpoint, compression, kvot, exec jne

Võimalik on loetleda saadaolev failisüsteem, kasutades zfs-loendit:

[[Email kaitseb] ~] # zfs nimekirja
NIMI USED AVAIL REFER MOUNTPOINT
testpool 100M 2.67G 19K / testpool
testpool / professorid 31K 1024M 20.5K / testpool / professorid
testpool / üliõpilased 1.57M 98.4M 1.57M / testpool / õpilased

Me saame hävitada failisüsteemi, kasutades hävitamisvalikut

zfs hävitada <filesystem>

Kokkusurumine

Nüüd saame aru, kuidas kompressioon töötab ZFS-is. Enne kompressiooni kasutuselevõtmist peame selle lubama, kasutades "seatud kompressiooni"

zfs määrake <compression = value> <filesystem | volume | snapshot>

Kui see on tehtud, toimub tihedus ja dekompressioon läbipaistval viisil failemissüsteemil.

Meie näites lubasin lindiseadme kataloogi pakkimise abil lz4-i pakkimisalgoritmi.

[[Email kaitseb] ~]# zfs set compression=lz4 testpool/students

Nüüd kopeerin faili suurus 15M sellesse failisüsteemi ja kontrollin selle suurust pärast selle kopeerimist.

[[Email kaitseb] /]# cd /var/log
[[Email kaitseb] log]# du -h secure
15M on turvaline

[[Email kaitseb] ~]# cp /var/log/secure /testpool/students/

[[Email kaitseb] students]# df -h .
Failisüsteemi suurus Kasutatav Käsitsi% paigaldatud
testpool / üliõpilased 100M 1.7M 99M 2% / testpool / õpilased

Pange tähele, et failisüsteemis kasutatav suurus on ainult 1.7M, samal ajal kui faili suurus oli 15M. Saame ka tihendussuhte kontrollida ..

[[Email kaitseb] ~]# zfs get compressratio testpool
NAME OMANDI VÄÄRTUSAURK
testpool compressratio 9.03x -

Kvoodid ja broneerimine

Lubage mul seletada kvoote reaalse elu näitega. Oletame, et meil on ülikoolis nõue piirata failisüsteemi kasutatavat kettaruumi professorite ja õpilaste jaoks. Oletame, et peame 100MB-d üliõpilastele ja 1GB-le määrama professorite jaoks. Selle nõude täitmiseks saame kasutada ZFS-i kvoote. Kvoodid tagavad, et failisüsteemi poolt kasutatav kettaruum ei ületa kehtestatud piire. Reservatsioon aitab tegelikult eraldada ja tagada, et failisüsteemile on saadaval vajalik kogus kettaruumi.

zfs määratud kvoot = <väärtus> <filesystem | maht | snapshot>

zfs set reservation = <value> <filesystem | volume | snapshot>

[[Email kaitseb] ~]# zfs set quota=100M testpool/students
[[Email kaitseb] ~]# zfs set reservation=100M testpool/students
[[Email kaitseb] ~] # zfs nimekirja
NIMI USED AVAIL REFER MOUNTPOINT
testpool 100M 2.67G 19K / testpool
testpool / professorid 19K 2.67G 19K / testpool / professorid
testpool / üliõpilased 1.57M 98.4M 1.57M / testpool / õpilased

[[Email kaitseb] ~]# zfs set quota=1G testpool/professors
[[Email kaitseb] ~] # zfs nimekirja
NIMI USED AVAIL REFER MOUNTPOINT
testpool 100M 2.67G 19K / testpool
testpool / professorid 19K 1024M 19K / testpool / professorid
testpool / üliõpilased 1.57M 98.4M 1.57M / testpool / õpilased

Ülaltoodud näites oleme andnud õpilastele 100MB ja professori jaoks 1GB. Tähelepanu "zfs list" veerus AVAIL. Esialgu oli neil 2.67GB suurus ja kvoodi seadistamisel väärtused on vastavalt muutunud.

Snapshots

Snapshots on loogiline koopia ZFS-failisüsteemist antud ajahetkel. Nad ei tarbi täiendavat ruumi zfs basseinis. Me võime kas hiljem tagasi pöörduda tagasi samasse olekusse või eraldada ainult ühe või sama faili komplekti vastavalt kasutaja nõudele.

Nüüd luues mõned meie kataloogi ja faili "/ testpool / professorid" meie eelmises näites ja võtke siis pilt sellest failisüsteemist.

[[Email kaitseb] ~]# cd /testpool/professors/

[[Email kaitseb] professors]# mkdir maths physics chemistry

[[Email kaitseb] professors]# cat > qpaper.txt
Küsimuspaber aasta 2016-17 jaoks
[[Email kaitseb] professors]# ls -la
Kokku 4
drwxr-xr-x 5 juur root 6 Mar 19 10: 34.
drwxr-xr-x 4 juur root 4 Mar 19 09: 59 ..
drwxr-xr-x 2 juur root 2 Mar 19 10: 33 keemia
drwxr-xr-x 2 juur root 2 Mar 19 10: 32 matemaatika
drwxr-xr-x 2 juur root 2 Mar 19 10: 32 füüsika
-rw-r-r- 1 juur root 36 Mar 19 10: 35 qpaper.txt

Pildistamiseks kasutage järgmist süntaksit:

zfs snapshot <filesystem|[Email kaitseb]<snap>>

[[Email kaitseb] professors]# zfs snapshot testpool/[Email kaitseb]
[[Email kaitseb] professors]# zfs list -t snapshot
NIMI USED AVAIL REFER MOUNTPOINT
testpool/[Email kaitseb] 0 XCHARX 20.5K XCHARX

Ma kustutan nüüd loodud faili ja eemaldan selle hetktõmmisest

[[Email kaitseb] professors]# rm -rf qpaper.txt
[[Email kaitseb] professors]# ls
keemia matemaatika füüsika
[[Email kaitseb] professors]# cd .zfs
[[Email kaitseb] .zfs]# cd snapshot/03-2016/
[[Email kaitseb] 03-2016]# ls
keemia matemaatika füüsika qpaper.txt

[[Email kaitseb] 03-2016]# cp -a qpaper.txt /testpool/professors/
[[Email kaitseb] 03-2016]# cd /testpool/professors/
[[Email kaitseb] professors]# ls
keemia matemaatika füüsika qpaper.txt

Kustutatud fail on selle asemel tagasi.

Saame loetleda kõik saadaolevad hetktõmmised, kasutades zfs-loendit:

[[Email kaitseb] ~]# zfs list -t snapshot
NIMI USED AVAIL REFER MOUNTPOINT
testpool/[Email kaitseb] 10.5K XCHARX 20.5K XCHARX

Lõpuks hävitame hetktõmmise, kasutades zfs destroy käsku:

zfs destroy <filesystem|[Email kaitseb]<snap>>

[[Email kaitseb] ~]# zfs destroy testpool/[Email kaitseb]

[[Email kaitseb] ~]# zfs list -t snapshot
puuduvad andmekogud

järeldus

Selles artiklis olete õppinud, kuidas ZFS-i installida CentOS 7-sse ja kasutada ZPooli ja zfsi-kommunikatsioonide mõningaid põhilisi ja olulisi käske. See pole terviklik nimekiri. ZFS-il on palju rohkem võimalusi ja saate seda veelgi uurida ametlik lehekülg.

seotud Post

Jäta vastus

Sellel saidil kasutatakse rämpsposti vähendamiseks Akismetit. Vaadake, kuidas teie andmeid töödeldakse.