ZFS zkombinoval správce svazků a souborový systém s několika pokročilými funkcemi.
Toto je první díl ze série článků o ZFS.
V článku poskytneme úvod do ZFS na vysoké úrovni, vysvětlíme, jak nainstalovat ZFS na linux, vytvořit fond ZFS a několik příkazů ZFS zpool.
1. Úvod do ZFS
Níže jsou uvedeny některé vlastnosti souborového systému ZFS:
- Ochrana proti poškození dat
- Podpora pro velké úložné kapacity
- Efektivní komprese dat
- Pořizovat snímky souborového systému
- Klony kopírování při zápisu
- Podpora RAID Z
- Kontrola integrity
- Automatická oprava a podpora pro nativní NFSV4 ACL
Toto bylo původně vyvinuto společností Sun Microsystems pro platformu Solaris. V roce 2010 Oracle koupil Sun microsystems a provedl mnoho vylepšení souborového systému ZFS.
ZFS se v poslední době stává populárním na Linuxu, protože se stal stabilnější.
Port ZFS pro Linux vyrábí Lawrence Livermore National Laboratory (LLNL).
ZFS na Linuxu je modul jádra, který si můžete stáhnout, zkompilovat a nainstalovat. Nemusíte opravovat nebo překompilovat jádro.
Zde si můžete stáhnout zdrojové balíčky pro vaši příslušnou distribuci OS.
2. Nainstalujte ZFS na Linux
V tomto článku nainstalujeme ZFS na server CentOS. Příkazy zfs uvedené níže jsou však stejné pro téměř všechny distribuce v distribucích Linuxu kromě instalační části.
Chcete-li nainstalovat ZFS na Redhat / CentOS, spusťte následující příkazy yum.
# yum localinstall --nogpgcheck https://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release.el6.noarch.rpm # yum install kernel-devel zfs
Ujistěte se, že jsou splněny všechny závislosti. Jednou ze závislostí, kde instalace normálně selže, by byl požadavek na instalaci kompilátoru GCC. V tomto případě prosím nainstalujte kompilátor GCC před instalací ZFS.
Ujistěte se, že jsou moduly ZFS načteny příkazem us lsmod, jak je znázorněno níže:
# lsmod | grep zfs zfs 1188621 0 zcommon 45591 1 zfs znvpair 81046 2 zfs,zcommon zavl 6900 1 zfs zunicode 323051 1 zfs spl 264548 5 zfs,zcommon,znvpair,zavl,zunicode
V související poznámce si možná budete chtít přečíst základní informace o tom, jak se vytvářejí moduly Linux Loadable Kernel Modules.
Na tento server jsme přidali několik disků (/dev/sdb až /dev/sdf), abychom otestovali funkčnost ZFS.
# ls -l /dev/sd* brw-rw----. 1 root disk 8, 0 Jul 15 15:52 /dev/sda brw-rw----. 1 root disk 8, 1 Jul 15 15:52 /dev/sda1 brw-rw----. 1 root disk 8, 2 Jul 15 15:52 /dev/sda2 brw-rw----. 1 root disk 8, 3 Jul 15 15:52 /dev/sda3 brw-rw----. 1 root disk 8, 16 Jul 16 10:57 /dev/sdb brw-rw----. 1 root disk 8, 32 Jul 16 10:57 /dev/sdc brw-rw----. 1 root disk 8, 48 Jul 16 10:58 /dev/sdd brw-rw----. 1 root disk 8, 64 Jul 16 11:27 /dev/sde brw-rw----. 1 root disk 8, 80 Jul 16 11:27 /dev/sdf
3. Vytvořte zpool
Příkaz Zpool používaný ke konfiguraci fondů úložiště v ZFS. Storage pool je kolekce zařízení, která poskytuje fyzické úložiště a replikaci dat pro datové sady zfs.
Následující vytvoří zpool.
# zpool create -f mypool raidz sdb sdc sdd sde sdf
Ve výše uvedeném příkladu:
- create znamená vytvoření nového fondu.
- Volba -f je ignorovat označení diskových oddílů, protože se jedná o nové disky
- raidz je úroveň raidu. RAIDZ není nic jiného než varianta RAID-5, která umožňuje lepší rozložení parity a odstraňuje díru v zápisu „RAID-5“ (nekonzistence dat a parity po výpadku napájení).
- Skupina raidz může mít jednoduchou, dvojitou nebo kmenovou paritu, což znamená, že může vydržet jedno, dvě nebo tři selhání bez ztráty dat. Data a parita jsou rozloženy na všech discích v rámci skupiny raidz.
Dále ověřte stav zpool, který jsme právě vytvořili.
# zpool status pool: mypool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM mypool ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 sdb ONLINE 0 0 0 sdc ONLINE 0 0 0 sdd ONLINE 0 0 0 sde ONLINE 0 0 0 sdf ONLINE 0 0 0 errors: No known data errors
Jakmile je fond vytvořen, pokud provedete df –h, uvidíte, že nově vytvořený fond je automaticky připojen k mountpount.
# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vglocal-rootlv 14G 2.4G 11G 18% / tmpfs 939M 0 939M 0% /dev/shm /dev/sda1 504M 46M 433M 10% /boot mypool 3.9G 0 3.9G 0% /mypool
4. Vytvořte zrcadlený fond
Chcete-li vytvořit zrcadlený fond, použijte příkaz zpool create s následujícími možnostmi.
Pokud některý z disků v konkrétní skupině zrcadlení selže, data stále uchovává druhý disk. Jakmile je vadný disk vyměněn, obsah se zrcadlí zpět (známé také jako resilvering) na nově vyměněný disk.
# zpool create -f mypool mirror sdb sdc mirror sdd sde
Dále ověřte stav zrcadleného zpoolu, který jsme právě vytvořili:
# zpool status -v pool: mypool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM mypool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 sdb ONLINE 0 0 0 sdc ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 sdd ONLINE 0 0 0 sde ONLINE 0 0 0 errors: No known data errors
5. Import a export Zpool
V některých případech může být nutné migrovat fondy zfs mezi systémy.
ZFS to umožňuje exportem fondu z jednoho systému a jeho importem do jiného systému.
Chcete-li exportovat libovolný fond, použijte příkaz zpool export a příkaz zpool import se použije k importu fondu, jak je znázorněno v následujícím příkladu:
# zpool export mypool # zpool import mypool
6. Prohlédněte si I/O statistiky fondu ZFS
Chcete-li zobrazit statistiku I/O zpool, použijte příkaz zpool iostat, jak je ukázáno níže:
# zpool iostat -v mypool capacity operations bandwidth pool alloc free read write read write ---------- ----- ----- ----- ----- ----- ----- mypool 147K 4.95G 0 0 33 252 mirror 54K 3.97G 0 0 10 84 sdb - - 0 0 536 612 sdc - - 0 0 282 612 mirror 93K 1008M 0 0 23 168 sdd - - 0 0 288 696 sde - - 0 0 294 696 ---------- ----- ----- ----- ----- ----- -----
7. Smazat fond ZFS
Ke zničení fondu použijte příkaz zpool zničit, jak je znázorněno níže:
# zpool destroy mypool
8. Vyměňte poškozený disk ve fondu ZFS
Chcete-li vyměnit disk po selhání nebo poškození, použijte následující příkaz:
# zpool replace mypool sde sdf
9. Rozšiřte fond ZFS o nový disk
Chcete-li rozšířit zpool přidáním nového disku, použijte příkaz zpool, jak je uvedeno níže:
# zpool add -f mypool sde
10. Přidejte náhradní disk do fondu ZFS
Můžete také přidat náhradní disk do fondu zfs pomocí příkazu níže přidáním náhradního zařízení do fondu zfs.
Poškozené disky jsou automaticky nahrazeny náhradním zařízením a správce může vadné disky vyměnit později.
Vezměte prosím na vědomí, že náhradní zařízení můžete také sdílet mezi více fondy ZFS.
# zpool add -f mypool spare sde
V další části článku vysvětlíme, jak používat fondy ZFS k vytvoření souborového systému ZFS, připojení souborového systému ZFS a manipulaci s ním z příkazového řádku.