GNU/Linux >> Znalost Linux >  >> Cent OS

Průvodce instalací a používáním ZFS na CentOS 7

ZFS, krátká forma Zettabyte Filesystem, je pokročilý a vysoce škálovatelný souborový systém. Původně byl vyvinut společností Sun Microsystems a nyní je součástí projektu OpenZFS. S tolika souborovými systémy dostupnými na Linuxu je zcela přirozené ptát se, co je na ZFS zvláštního. Na rozdíl od jiných souborových systémů to není jen souborový systém, ale také správce logických svazků. Některé z funkcí ZFS, díky kterým je populární, jsou:

  • Integrita dat – konzistence a integrita dat jsou zajištěny pomocí technik kopírování při zápisu a kontrolního součtu
  • Sdružování úložného prostoru – dostupné úložné jednotky lze sloučit do jednoho fondu zvaného zpool
  • Softwarový RAID – Nastavení pole raidz je stejně jednoduché jako zadání jediného příkazu.
  • Vestavěný správce svazků – ZFS funguje také jako správce svazků.
  • Snímky, klony, komprese – to jsou některé z pokročilých funkcí, které ZFS poskytuje.

ZFS je 128bitový souborový systém a má kapacitu pro uložení 256 zetta bajtů! V této příručce se naučíme, jak nainstalovat, nastavit a také používat některé důležité příkazy ZFS na serveru CentOS 7.

POZNÁMKA:Instalační část je specifická pro server CentOS, zatímco příkazy jsou běžné na jakémkoli systému Linux

Terminologie

Než přejdeme dále, dovolte nám pochopit některé terminologie, které se běžně používají v ZFS.

Bazén

Logické seskupování úložných jednotek. Je to základní stavební blok ZFS a odtud je úložný prostor alokován pro datové sady.

Soubory dat

Komponenty souborového systému ZFS, jmenovitě souborový systém, klony, snímky a svazky, se označují jako datové sady.

Zrcadlo

Virtuální zařízení ukládající identické kopie dat na dva nebo více disků. V situacích, kdy jeden disk selže, jsou stejná data dostupná na dalších discích tohoto zrcadlení.

Přestříbření

Proces kopírování dat z jednoho disku na druhý v případě obnovy zařízení.

Vyčištění

Scrub se používá pro kontrolu konzistence v ZFS, jako je použití fsck v jiných souborových systémech

Instalace ZFS

Abychom mohli nainstalovat ZFS na CentOS, musíme nejprve nastavit úložiště EPEL pro podpůrné balíčky a poté úložiště ZFS pro instalaci požadovaných balíčků ZFS.

Poznámka:Pokud nejste uživatelem root, uveďte prosím předponu sudo ke všem příkazům.

yum localinstall --nogpgcheck http://epel.mirror.net.in/epel/7/x86_64/e/epel-release-7-5.noarch.rpmyum localinstall --nogpgcheck http:// archive.zfsonlinux.org/epel/zfs-release.el7.noarch.rpm 

Nyní nainstalujte balíčky vývoje jádra a zfs. Vývojové balíčky jádra jsou potřeba, protože ZFS je vytvořen jako modul a vložen do jádra.

yum install kernel-devel zfs 

Ověřte, zda je modul zfs vložen do jádra pomocí příkazu 'lsmod' a pokud ne, vložte jej ručně pomocí příkazu 'modprobe'.

[root@li1467-130 ~]# lsmod |grep zfs[root@li1467-130 ~]# modprobe zfs[root@li1467-130 ~]# lsmod |grep zfszfs 2790271 0zunicode 0zunicode 31111 zfszcommon 55411 1 zfsznvpair 89086 2 zfs,zcommonspl 92029 3 zfs,zcommon,znvpair 

Pojďme zkontrolovat, zda jsme schopni použít příkazy zfs:

[root@li1467-130 ~]# seznam zfs žádné dostupné datové sady 

Administrace

ZFS má dva hlavní nástroje, zpool a zfs. Zatímco zpool se zabývá vytvářením a údržbou fondů pomocí disků, nástroj zfs je zodpovědný za vytváření a údržbu datových sad.

nástroj zpool

Vytváření a ničení bazénů

Nejprve ověřte dostupné disky pro vytvoření fondu úložiště.

[root@li1467-130 ~]# ls -l /dev/sd*brw-rw---- 1 kořenový disk 8,  0  16. března 08:12 /dev/sdabrw-rw--- - 1 kořenový disk 8, 16. března 16 08:12 /dev/sdbbrw-rw---- 1 kořenový disk 8, 32. března 16 08:12 /dev/sdcbrw-rw---- 1 kořenový disk 8, 48. března 16 08:12 /dev/sddbrw-rw---- 1 kořenový disk 8, 64. března 16 08:12 /dev/sdebrw-rw---- 1 kořenový disk 8, 80. března 08:12 /dev/sdf  

Vytvořte fond ze sady disků.

vytvořit zpool    ....  
[root@li1467-130 ~]# zpool create -f zfspool sdc sdd sde sdf 

Příkaz 'zpool status' zobrazuje stav dostupných fondů

[root@li1467-130 ~]# stavový fond fondu:zfspoolstate:ONLINEscan:none requiredconfig:NAME STATE ČÍST ZAPISOVAT CKSUMzfspool ONLINE 0 0 0sdd ONLINE 0 0 0sde ONLINE 0 0 00sd error :Žádné známé chyby dat 

Ověřte, zda bylo vytvoření fondu úspěšné.

[root@li1467-130 ~]# df -Hfilesystem Velikost Použitá využití DEV/SHMTMPFS 497M 50M 447M 11%/RUNTMPFS 497M 0 497M 0%/SYS/FS/CGROUPTMPFS 100M 0 100M 0%/RUN/Uživatel/0ZFSPOOL 3,7G 0 3,7G/ZFSPOL

Jak můžete vidět, zpool vytvořil fond s názvem 'zfspool' o velikosti 3,7 GB a také jej připojil do /zfspool.

Ke zničení bazénu použijte příkaz 'zpool zničit'

zpool zničit [root@li1467-130 ~]# zpool zničit zfspool[root@li1467-130 ~]# fond zpool žádný dostupný fond 

Pokusme se nyní vytvořit jednoduchý fond zrcadlení.

zpool vytvořit   zrcadlit  ...  

Můžeme také vytvořit více zrcadel současně opakováním klíčového slova mirror následovaného drives.

[root@li1467-130 ~]# vytvoření zpool -f mpool mirror sdc sdd mirror sde sdf[root@li1467-130 ~]# fond stavu fondu:mpoolstate:ONLINEscan:žádné požadovanéconfig:NAME STATE READ WRITE CKSUMmpool ONLINE 0 0 0mirror-0 ONLINE 0 0 0sdc ONLINE 0 0 0sdd ONLINE 0 0 0mirror-1 ONLINE 0 0 0sde ONLINE 0 0 0sdf ONLINE 0 0 0chyby:Žádné známé chyby dat 

Ve výše uvedeném příkladu jsme vytvořili zrcadlové fondy, každý se dvěma disky.

Podobně můžeme vytvořit raidz pool.

[root@li1467-130 ~]# vytvoření fondu -f rpool raidz sdc sdd sde sdf[root@li1467-130 ~]# fond stavu fondu:rpoolstate:ONLINEscan:none requiredconfig:NAME STATE ČTĚTE ZAPIŠTE CKSUMrpool ONLINE 0 0 0raidz1-0 ONLINE 0 0 0sdc ONLINE 0 0 0sdd ONLINE 0 0 0sde ONLINE 0 0 0sdf ONLINE 0 0 0chyby:Žádné známé chyby dat 

Správa zařízení ve fondech ZFS

Jakmile je fond vytvořen, je možné přidávat nebo odebírat horké náhradní díly a zařízení mezipaměti z fondu, připojovat nebo odpojovat zařízení od zrcadlených fondů a nahrazovat zařízení. Ale neredundantní a raidz zařízení nelze z fondu odstranit. V této části uvidíme, jak provést některé z těchto operací.

Nejprve vytvářím fond nazvaný „testpool“ sestávající ze dvou zařízení, sdc a sdd. K tomu se pak přidá další sde zařízení.

[root@li1467-130 ~]# zpool vytvořit -f testpool sdc sdd[root@li1467-130 ~]# zpool přidat testpool sde[root@li1467-130 ~]# zpool statuspool:testpoolstate:ONLINEscan :none requiredconfig:NAME STATE ČÍST ZAPISOVAT CKSUMtestpool ONLINE 0 0 0sdc ONLINE 0 0 0sdd ONLINE 0 0 0sde ONLINE 0 0 0chyby:Žádné známé chyby dat 

Jak již bylo zmíněno dříve, nemohu toto nově přidané zařízení odebrat, protože se nejedná o redundantní nebo raidz fond.

[root@li1467-130 ~]# zpool odebrat testpool sdenelze odstranit sde:lze odebrat pouze neaktivní horké náhradní díly, mezipaměť, zařízení nejvyšší úrovně nebo protokolová zařízení 

Ale mohu do tohoto fondu přidat náhradní disk a odebrat jej.

[root@li1467-130 ~]# zpool přidat testpool náhradní sdf[root@li1467-130 ~]# zpool statuspool:testpoolstate:ONLINEscan:žádné požadovanéconfig:NAME STATE ČÍST ZAPISOVAT CKSUMtestpool ONLINE 0 0 0sdc ONLINE 0 0 0sdd ONLINE 0 0 0sde ONLINE 0 0 0sparessdf AVAILerrors:Žádné známé chyby dat[root@li1467-130 ~]# zpool odebrat testpool sdf[root@li1467-130 ~]# fond stavu fondu:testpoolstate:ONLINEscan:žádná požadovaná config NAME Přečtěte si napsat CKSUMTESTPOOL Online 0 0 0 0SDC Online 0 0 0sdd online 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0. 

Podobně můžeme použít příkaz připojit k připojení disků k zrcadlené nebo nezrcadlené oblasti a příkaz odpojit k odpojení disků ze zrcadlené oblasti.

připojení zpool    zpool odpojit   

Když zařízení selže nebo se poškodí, můžeme jej nahradit příkazem 'nahradit'.

zpool nahradit     

Vyzkoušíme to násilným poškozením zařízení v zrcadlené konfiguraci.

[root@li1467-130 ~]# zpool create -f testpool mirror sdd sde 

Tím se vytvoří zrcadlový fond skládající se z disků sdd a sde. Nyní úmyslně poničme sdd disk tím, že na něj zapíšeme nuly.

[root@li1467-130 ~]# dd if=/dev/zero of=/dev/sdddd:zápis do '/dev/sdd':Na záznamech zařízení2048001+0 v záznamech 2048000+0 nezbývá místo out1048576000 bytes (1,0 GB) zkopírováno, 22,4804 s, 46,6 MB/s 

K detekci tohoto poškození použijeme příkaz 'scrub'.

[root@li1467-130 ~]# zpool scrub testpool[root@li1467-130 ~]# zpool statuspool:testpoolstate:ONLINEstav:Jedno nebo více zařízení nebylo možné použít, protože štítek chybí nebo je neplatný. Existuje dostatek replik, aby fond mohl nadále fungovat ve zhoršeném stavu. akce:Vyměňte zařízení pomocí „zpool nahradit“. Viz:http://zfsonlinux.org/msg/ZFS-8000-4Jscan:čištění opraveno 0 za 0h0m s 0 chybami v pátek 18. března 09:59:40 2016config:NAME STATE ČTĚTE ZAPISujte CKSUMtestpool ONLINE 0 0 0mirror-0 ONLINE 0 0 0sdd NEDOSTUPNÉ 0 0 0 poškozená datasde ONLINE 0 0 0chyby:Žádné známé chyby dat 

Nyní nahradíme sdd sdc.

[root@li1467-130 ~]# zpool nahradit testpool sdd sdc; zpool statuspool:testpoolstate:ONLINEscan:resilvered 83,5K za 0h0m s 0 chybami v pátek 18. března 10:05:17 2016config:NAME STATE ČTĚTE ZAPIŠTE CKSUMtestpool ONLINE 0 0 0mirror-0 ONLINE 0 0 0UNAVAILsd000 0 poškozený datasdc ONLINE 0 0 0sde ONLINE 0 0 0chyby:Žádné známé chyby dat[root@li1467-130 ~]# fond stavu fondu:testpoolstate:ONLINEscan:resilvered 74,5 kB za 0h0m s 0 chybami v pátek 18. března 10:001636 :JMÉNO STÁT ČÍST ZAPISOVAT CKSUMtestpool ONLINE 0 0 0mirror-0 ONLINE 0 0 0sdc ONLINE 0 0 0sde ONLINE 0 0 0chyby:Žádné známé chyby dat 

Migrace fondů

Můžeme migrovat úložiště mezi různými hostiteli pomocí příkazů export a import. Za tímto účelem by měly být disky používané ve fondu dostupné z obou systémů.

[root@li1467-130 ~]# zpool export testpool[root@li1467-130 ~]# zpool stav žádné fondy k dispozici 

Příkaz 'zpool import' uvádí seznam všech fondů, které jsou k dispozici pro import. Tento příkaz spusťte ze systému, do kterého chcete fond importovat.

[root@li1467-131 ~]# fond importpool:testpoolid:3823664125009563520state:ONLINEakce:Fond lze importovat pomocí jeho názvu nebo číselného identifikátoru.config:testpool ONLINEsdc ONLINEsdd ONLINEsde ONLINE 

Nyní importujte požadovaný fond

[root@li1467-131 ~]# zpool import testpool[root@li1467-131 ~]# zpool statuspool:testpoolstate:ONLINEscan:none requiredconfig:NAME STATE ČÍST ZAPISOVAT CKSUMtestpool ONLINE 0 0 0sdc ONLINE 0 0 0sdd ONLINE 0 0 0sde ONLINE 0 0 0chyby:Žádné známé chyby dat 

iostat

Statistiku io zařízení fondu lze ověřit pomocí příkazu iostat.

[root@li1467-130 ~]# Zpool iostat -V Testpoolcapacity Operations Bandwidthpool přidělovače zdarma Číst Read Read Write ---------- -------------------------------------------------- --- ----- ----- ----- Testpool 1,80 m 2,86G 22 27 470K 417KSDC 598K 975M 8 9 200K 139KDD 636K 975M 7 9 135K 139KSDE 610K 975M 6 95K 139K ----- -----   -----     -----           -----          -----               -----  -----

nástroj zfs

Nyní přejdeme k obslužnému programu zfs. Zde se podíváme na to, jak vytvořit, zničit datové sady, kompresi souborového systému, kvóty a snímky.

Vytvoření a zničení souborového systému

Souborový systém ZFS lze vytvořit pomocí příkazu zfs create

zfs vytvořit  
[root@li1467-130 ~]# zfs vytvořit testovací fond/studenti[root@li1467-130 ~]# zfs vytvořit testpool/professors[root@li1467-130 ~]# df -hFilesystem                                                                                                                                % Namontováno na/dev/sda 19G 1,4G 17G 8%/devtmpfs 488M 0 488M 0%/devtmpfs 497m 0 497m 0%/dev/shmtmpfs 497m 50m 447m 11%/RuntMPFS 497M 0 497M 0%/fs/fs/fs/frouptestspool 2,8. G 0 2,8G 0%/testpooltmpfs 100m 0 100 m 0%/běh/uživatel/0testpool/studenti 2.8G „ 

Z výše uvedeného výstupu si všimněte, že ačkoliv v době vytváření souborového systému není uveden žádný bod připojení, je bod připojení vytvořen pomocí stejné cesty jako u fondu.

zfs create umožňuje použití -o, pomocí kterého můžeme specifikovat možnosti jako přípojný bod, komprese, kvóta, exec atd.

Dostupný souborový systém lze vypsat pomocí zfs list:

[root@li1467-130 ~]# ZFS LISTNAME Použité Dopřejte MountPointTestPool 100m 2,67G 19K/Testpooltestpool/Profesoři 31K 1024M 20,5K/TestPool/ProfesorStestpool/Studenti 1,57M 98,4M 1,57 m/Testpool/Studenti

Souborový systém můžeme zničit pomocí možnosti zničit

zfs zničit  

Komprese

Nyní pochopíme, jak funguje komprese v ZFS. Než začneme používat kompresi, musíme ji povolit pomocí 'nastavení komprese'

zfs set   

Jakmile je toto hotovo, komprese a dekomprese probíhá na souborovém systému transparentně za chodu.

V našem příkladu povolím kompresi v adresáři studentů pomocí kompresního algoritmu lz4.

[root@li1467-130 ~]# sada zfs komprese=lz4 testpool/studenti 

Nyní zkopíruji soubor o velikosti 15M do tohoto souborového systému a po zkopírování zkontroluji velikost.

[root@li1467-130 /]# cd /var/log[root@li1467-130 log]# du -h secure15M secure[root@li1467-130 ~]# cp /var/log/secure /testpool/students/[root@li1467-130 students]# df -h .Filesystem               Velikost     Použito   Dostupnost    Použít %      Namontovaný na testpool/studenti   100 mil.  /studentů   100 mil.  / 1,7 mil. %      %           

Všimněte si, že velikost použitá v souborovém systému je pouze 1,7M, zatímco velikost souboru byla 15M. Můžeme také zkontrolovat kompresní poměr..

[root@li1467-130 ~]# zfs získá komprimační poměr testpoolNAME      PROPERTY         HODNOTA            SOURCEtestpool    compressratio     9,03x                 -

Kvóty a rezervace

Dovolte mi vysvětlit kvóty na příkladu ze skutečného života. Předpokládejme, že máme na univerzitě požadavek na omezení místa na disku používaného souborovým systémem pro profesory a studenty. Předpokládejme, že potřebujeme přidělit 100 MB pro studenty a 1 GB pro profesory. Ke splnění tohoto požadavku můžeme využít 'kvóty' v ZFS. Kvóty zajišťují, že množství diskového prostoru používaného souborovým systémem nepřekročí nastavené limity. Rezervace pomáhá skutečně alokovat a zaručit, že je pro souborový systém k dispozici požadované množství místa na disku.

zfs nastavená kvóta= zfs nastavená rezervace=  
[root@li1467-130 ~]# zfs nastavená kvóta=100 mil. testpool/studenti[root@li1467-130 ~]# zfs nastavená rezervace=100 mil. testpool/students[root@li1467-130 ~]# zfs LISTNAME POUŽITY KVALUJTE VÝZNAM MOUNTOPTESTPOOL 100M 2,67G 19K/TESTPOOLTESTPOOL/Profesoři 19K 2,67G 19K/TestPool/ProfessorStestpool/Studenti 1,57M 98,4 m 1,57m/Testpool/Studenti [root@li1467-130 ~]# ZFS sada =1g testpool/profesoři/profesoři/profesoři/profesoři/profesoři [root@li1467-130 ~]# ZFS ListName Používá se aUVIVOT VISE MOUNTOPTIONTESTPOOL 100M 2,67G 19K/TESTPOOLTESTPOOL/Profesoři 19K 1024M 19K/TESTPOOL/ProfessorStestpool/Studenti 1,57M 98,4 m 1,57M/Testpool/Studenti>  

Ve výše uvedeném příkladu jsme vyčlenili 100 MB pro studenty a 1 GB pro profesory. Sledujte sloupec 'AVAIL' v 'zfs list'. Zpočátku měly velikost 2,67 GB každý a po nastavení kvóty se hodnoty odpovídajícím způsobem změnily.

Snímky

Snímky jsou kopie souborového systému ZFS v daném okamžiku pouze pro čtení. Nespotřebovávají žádné další místo v zfs poolu. Můžeme se buď vrátit do stejného stavu později, nebo extrahovat pouze jeden nebo sadu souborů podle požadavků uživatele.

Nyní vytvořím některé adresáře a soubor pod '/testpool/professors' z našeho předchozího příkladu a poté pořídím snímek tohoto souborového systému.

[root@li1467-130 ~]# cd /testpool/professors/[root@li1467-130 profesoři]# mkdir matematika fyzika chemie[root@li1467-130 profesoři]# kočka> qpaper.txtDotazník pro rok 2016-17[root@li1467-130 profesorů]# ls -latotal 4drwxr-xr-x  5  kořenový kořen    6   19. března 10:34 .drwxr-xr-x  4  kořenový kořen  w x 94 . 9. března xr-x  2  kořenový kořen    2   19. března 10:33 chemistrydrwxr-xr-x  2  kořenový kořen    2   19. března 10:32 mathsdrwxr-xr-x  2  kořenový kořenový adresář    2-1 w-3r 19. března 1  root root  36   19. března 10:35 qpaper.txt 

Chcete-li pořídit snímek, použijte následující syntaxi:

snímek zfs 
> 
[root@li1467-130 Profesoři]# ZFS Snapshot Testpool/Profesors@03-2016 [root@li1467-130 Profesoři]# ZFS Seznam -t SnapshotName Používá se aUVE MountPointTestPool/Profesors@03-2016 0- 20,5 kB          -

Nyní vymažu soubor, který byl vytvořen, a extrahuji jej ze snímků

[root@li1467-130 profesoři]# rm -rf qpaper.txt[root@li1467-130 profesoři]# lschemie matematika fyzika[root@li1467-130 profesoři]# cd .zfs[root@li1467- 130 .zfs]# cd snapshot/03-2016/[root@li1467-130 03-2016]# lschemie matematika fyzika qpaper.txt[root@li1467-130 03-2016]# cp -a qpaper.txt /testpool/professors /[root@li1467-130 03-2016]# cd /testpool/professors/[root@li1467-130 professors]# lschemie matematika fyzika qpaper.txt 

Smazaný soubor je zpět na svém místě.

Všechny dostupné snímky můžeme vypsat pomocí zfs list:

[root@li1467-130 ~]# ZFS List -T SnapshoTName Používá se a využít MountPointTestPool/Profesors@03-2016 10,5K -20,5K -

Nakonec zničme snímek pomocí příkazu zfs zničit:

zfs zničit 
> 
[root@li1467-130 ~]# zfs zničit testpool/professors@03-2016[root@li1467-130 ~]# seznam zfs -t snapshot žádné dostupné datové sady 

Závěr

V tomto článku jste se naučili, jak nainstalovat ZFS na CentOS 7 a používat některé základní a důležité příkazy z utilit zpool a zfs. Toto není úplný seznam. ZFS má mnohem více možností a můžete je dále prozkoumat z jeho oficiální stránky.


Cent OS
  1. Jak nainstalovat a používat PHP Composer na CentOS 7

  2. Jak nainstalovat a používat ifconfig na CentOS 7

  3. Jak nainstalovat a používat TeamSpeak Server na CentOS 7

  1. Jak nainstalovat a používat Docker na CentOS 7

  2. Jak nainstalovat a používat Docker Compose na CentOS 7

  3. Jak nainstalovat a používat PHP Composer na CentOS 7

  1. Jak nainstalovat a používat FFmpeg na CentOS 7

  2. Jak nainstalovat a používat FFmpeg na CentOS 8

  3. Jak nainstalovat a používat Curl na CentOS 8