Na této stránce
- Předpoklady:
ZFS je kombinovaný souborový systém a správce logických svazků. Mezi funkce ZFS patří ochrana proti poškození dat, podpora velkých úložných kapacit, efektivní komprese dat, integrace souborového systému a koncepce správy svazků, snímky a klony kopírování při zápisu, průběžná kontrola integrity a automatické opravy, RAID-Z a nativní NFSv4 ACL.
ZFS byl původně implementován jako software s otevřeným zdrojovým kódem, licencovaný pod Common Development and Distribution License (CDDL).
Když mluvíme o souborovém systému ZFS, můžeme zdůraznit následující klíčové pojmy:
- Integrita dat.
- Jednoduchá správa úložiště pouze se dvěma příkazy:zfs a zpool.
- Všechno lze provést, když je souborový systém online.
Úplný přehled a popis všech dostupných funkcí naleznete v tomto podrobném článku na wikipedii.
V tomto tutoriálu vás krok za krokem provedu instalací souborového systému ZFS na Debian 8.1 (Jessie). Ukážu vám, jak vytvořit a nakonfigurovat fondy pomocí raid0 (stripe), raid1 (Mirror) a RAID-Z (Raid s paritou) a vysvětlím, jak nakonfigurovat systém souborů pomocí ZFS.
Na základě informací z webu www.zfsonlinux.org je ZFS podporováno pouze na 64bitové architektuře AMD64 a Intel (amd64). Začněme s nastavením.
Předpoklady:
- Debian 8 s 64bitovým jádrem.
- práva root.
Krok 1 – Aktualizace úložiště a aktualizace systému Debian Linux
Chcete-li přidat úložiště zfsonlinux do našeho systému, stáhněte a nainstalujte balíček zfsonlinux, jak je znázorněno níže. Tím do počítače přidáte soubory /etc/apt/sources.list.d/zfsonlinux.list a /etc/apt/trusted.gpg.d/zfsonlinux.gpg. Poté můžete zfs nainstalovat jako jakýkoli jiný balíček Debianu pomocí příkazu apt-get. Další výhodou používání úložiště zfsonlinux je, že aktualizace získáváte automaticky spuštěním "apt-get update &&apt-get upgrade".
Přihlaste se k serveru Debian s přístupem SSH, staňte se uživatelem root a poté spusťte následující příkazy.
# uname -a
Linux debian-zfs 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (24.05.2015) x86_64 GNU/Linux
# wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_6_all.deb
# dpkg -i zfsonlinux_6_all.deb
# aktualizace apt-get
Krok 2 – Instalace zfsonlinux
Zfsonlinux má mnoho softwarových závislostí, které se apt instalují automaticky. Tento proces bude chvíli trvat. Po dokončení instalace restartujte server.
# apt-get install lsb-release
# apt-get install debian-zfs
# shutdown -r now
Krok 3 – Vytvoření a konfigurace fondu
Po restartování serveru zkontrolujte, zda je nainstalován zfsonlinux a zda dobře běží.
# dpkg -l | GREP ZFS
II Debian-ZFS 7 ~ Jessie AMD64 Native Zfs Filesystem Metapackage pro Debian.
II libzfs2 0,6.5.2-2 AMD64 Nativní knihovna souborových systémů ZFS pro Linux
ii ZFS-DKMS 0,6.5.2 -2 Všechny nativní moduly jádra souborového systému ZFS pro Linux
ii ZfsonLinux 6 All Archive.ZfsonLinux.org Trust Package
II ZfSutils 0.6.5.2-2 AMD64 příkazové linie pro správu souborů ZFSVýše uvedený výsledek ukazuje, že zfs na linuxu je již nainstalován, takže můžeme pokračovat ve vytváření prvního fondu.
Na tento server jsem přidal pět disků, každý o velikosti 2 GB. Dostupné disky můžeme zkontrolovat pomocí tohoto příkazu:
# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda5 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdgVidíme, že máme /dev/sda, dokud /dev/sdg, /dev/sda se používá pro operační systém Debian Linux Jessie 8.1. Pro souborový systém ZFS budeme používat /dev/sdb až do /dev/sdg.
Nyní můžeme začít vytvářet pool, pro první vám ukážu, jak vytvořit raid0 (stripe).
# zpool list
žádné bazény nejsou k dispozici# zpool create -f pool0 /dev/sdb
# zpool list
JMÉNO VELIKOST ALOC ZDARMA ROZŠÍŘENÍ FRAG CAP DEDUP ZDRAVÍ ALTROOT
pool0 1,98 G 64 K % 0 % % % x ONLINE -Příkaz "zpool list" ukazuje, že jsme úspěšně vytvořili jeden fond raid0 zfs, název fondu je pool0 a velikost je 2 GB.
Dále vytvoříme raid1 (zrcadlení) s ostatními disky.
# zpool create -f pool1 mirror /dev/sdc /dev/sdd
# zpool list
JMÉNO VELIKOST ALOC ZDARMA ROZŠÍŘENÍ FRAG CAP DEDUP HEALTH ALTROOT
980 1,98 G 1 1 0 % 0 % 1,00x ONLINE -
pool1 1,98G 64K 1,98G - 0% 0% 1,00x ONLINE -Vidíme, že nyní máme dva fondy, pool0 pro raid0 a pool1 pro raid1.
Chcete-li zkontrolovat stav fondu, můžeme použít příkaz níže:
# stav zpool
fond:pool0
stav:ONLINE
skenování:není požadováno
config:
JMÉNO STAV PŘEČTĚTE ZÁPIS CKSUM
pool0 ONLINE 0 0 0
sdb ONLINE 0 0 0
chyby:Žádné známé chyby bazénu:1>
Skenování:Žádné požadováno
Konfigurace:
Název Stav Číst zápis cksum
Pool1 online 0 0 0
Mirror-0 online 0 0 0
SDC online 0 0 0
sdd ONLINE 0 0 0
chyby:Žádné známé chyby datStav fondu můžeme zkontrolovat příkazem "zpool status". Můžeme vidět rozdíl mezi pool0 a pool1, pool0 má pouze jeden disk a pool1 má dva disky a stav disků je zrcadlení (mirror-0).
Dále vytvoříme fond s RAID-Z, RAID-Z je schéma distribuce dat/parity jako RAID-5, ale používá šířku dynamického pruhu:každý blok má svůj vlastní pruh RAID, bez ohledu na velikost bloku, což má za následek, že každý zápis RAID-Z je zápis v celém proužku.
RAID-Z vyžaduje minimálně tři pevné disky a je jakýmsi kompromisem mezi RAID 0 a RAID 1. Ve fondu RAID-Z:Pokud jeden disk ve vašem fondu zemře, jednoduše jej vyměňte a ZFS automaticky obnoví data na základě informací o paritě z ostatních disků. Chcete-li přijít o všechny informace ve vaší oblasti úložiště, musely by zemřít dva disky. Aby bylo nastavení disku ještě redundantnější, můžete použít RAID 6 (RAID-Z2 v případě ZFS), abyste získali dvojitou paritu.
Nejprve vytvořte fond RAID-Z s jednou paritou.
# zpool create -f poolz1 raidz sde sdf sdg
# zpool list poolz1
JMÉNO VELIKOST ALLOC ZDARMA ROZŠÍŘENÍ FRAG CAP DEDUP HEALTH ALTROOT 0 HEALTH ALTROOT 0 5,99 G G 5,99 % % 5,99 % % 1,00x ONLINE -# stav zpool poolz1
pool:poolz1
stav:ONLINE
skenování:není požadováno
config:
JMÉNO STAV PŘEČTĚTE ZÁPIS CKSUM
Poolz1 online 0 0 0
Raidz1-0 online 0 0 0 0
SDE online 0 0 0
SDF online 0 0 0
SDG online 0 0 0
<
<
chyby:Žádné známé chyby dat# df -h /poolz1
Systém souborů Velikost Využitá Dostupnost Využití % Namontováno na
poolz1 3,9G 0 3,9G 0 % /poolz1Jak vidíme, df -h ukazuje, že náš 6GB fond byl nyní zredukován na 4GB, 2GB se používají k uložení informací o paritě. Pomocí příkazu zpool status vidíme, že náš fond nyní používá RAID-Z.
Dále vytvoříme RAID-Z2 (raid 6), pro tento účel musíme odstranit stávající fond, protože nejsou k dispozici žádné další disky. Odstranění fondu je velmi snadné, můžeme k tomu použít příkaz zpool zničit.
# Zpool seznam
Velikost názvu přidělení zdarma ExpandSZ Frag Cap DeDup Health Altroot
Pool0 1,98G 64K 1,98G -0%0%1,00x online -
Pool1 1,98 g 64K 1,98G - 0 % 0 % 1,00x ONLINE -
poolz1 5,94G 117K 5,94G - 0% 0% 1,00x ONLINE -# zpool zničit pool0
# zpool zničit pool1
# zpool zničit poolz1
# zpool seznam
žádné dostupné fondyNyní jsou všechny naše fondy pryč, takže můžeme vytvořit fond RAID-Z2.
# zpool vytvořit poolz2 raidz2 sdb sdc sdd sde
# zpool list
NÁZEV VELIKOST PŘIDĚLENÍ ZDARMA ROZŠÍŘENÍ FRAG CAP DEDUP HEALTH ALTROOT
poolz2 7,95 G 0 0 0 7 % 1 0 7 % ONLINE -# df -h /poolz2
Souborový systém Velikost Využitá Dostupnost Využití % Namontováno na
poolz2 3,9G 0 3,9G 0 % /poolz2# stav zpool poolz2
fond:poolz2
stav:ONLINE
skenování:žádné není požadováno
config:
JMÉNO STAV STAV PŘEČTĚTE ZÁPIS CKSUM
Poolz2 online 0 0 0
Raidz2-0 online 0 0 0 0
SDB online 0 0 0
SDC online 0 0 0 0
SDD online 0 0 0
SDE ONLINE 0 0 0
Chyby:Žádné známé chyby datJak vidíme, df -h ukazuje, že náš 8GB fond byl nyní zredukován na 4GB, protože 4GB se používá k uchování informací o paritě dvakrát. S příkazem "zpool status" vidíme, že náš fond nyní používá RAID-Z2.
Krok 4 – Simulace selhání disku
V tomto kroku budeme simulovat katastrofální selhání disku (tj. jeden z pevných disků ve zpoolu přestane fungovat).
Vytvořte soubor v poolz2 a ujistěte se, že k němu máme přístup.
# echo "Pouze test"> /poolz2/test.txt
# cat /poolz2/test.txt
Pouze testNež nasimulujeme selhání:zkontrolujte stav poolz2 a ujistěte se, že stav je Online a že stav všech disků je Online.
Selhání je simulováno zápisem náhodných dat pomocí příkazu dd do /dev/sdb .
# dd if=/dev/urandom of=/dev/sdb bs=1024 count=20480
# zpool scrub poolz2
# zpool stav
pool:poolz2
stav :ONLINE
stav:U jednoho nebo více zařízení došlo k neopravitelné chybě. Byl učiněn
pokus o opravu chyby. Aplikace nejsou ovlivněny.
akce:Určete, zda je třeba zařízení vyměnit, a odstraňte chyby
pomocí příkazu „zpool clear“ nebo nahraďte zařízení příkazem „zpool replacement“.
viz:http://zfsonlinux.org/msg/ZFS-8000-9P
skenování:čištění opraveno 17 kB za 0h0m s 0 chybami v úterý 8. prosince 22:37:49 2015
config:
Název State Read Write Cksum
Poolz2 online 0 0 0
Raidz2-0 online 0 0 0
SDB online 0 0 25
SDC online 0 0 0
SDD online 0 0 0
sde ONLINE 0 0 0
chyby:Žádné známé chyby datNyní vidíme, že u jednoho nebo více disků došlo k neopravitelné chybě, takže musíme disk vyměnit. V tomto případě nahradíme disk /dev/sdb diskem /dev/sdf.
# zpool nahradit poolz2 sdb sdf
# stav zpool
pool:poolz2
stav:ONLINE
skenování:přestříbřeno 49,5 kB za 0h0m s 0 chybami v úterý 8. prosince 22:43:35 2015
Konfigurace:
Název State Read Write Cksum
Poolz2 online 0 0 0
Raidz2-0 online 0 0 0
SDF online 0 0 0
SDC online 0 0 0
SDD online 0 0 0 0
SDE Online 0 0 0
Chyby:Žádné známé chyby datPoté, co jsme nahradili /dev/sdb za /dev/sdf, chyba je pryč a stále máme přístup k testovacímu souboru, který jsme vytvořili dříve.
# cat /poolz2/test.txt
Pouze testDo tohoto kroku víme, jak vytvořit a nakonfigurovat zpool.
Krok 5 – Vytvoření a konfigurace systému souborů ZFS
V dalším kroku se naučíme, jak vytvořit a nakonfigurovat souborový systém ZFS.
# zfs list
NÁZEV POUŽITÉ DOSTUPNÉ REFEROVAT MOUNTPOINT
poolz2 105 000 3,83 G 26,1 000 /poolz2Již máme jeden souborový systém ZFS, který se automaticky přidá, když vytvoříme zpool. Nyní vytvoříme další souborový systém ZFS.
# zfs vytvořit poolz2/tank
# zfs list
NÁZEV POUŽITÉ DOSTUPNÉ REFEROVAT MOUNTPOINT
poolz2 132 K 3,83 G 26,1 K /poolz2
84 G 25 5.5. /poolz2/tank# df -h | grep poolz2
poolz2 3,9G 128K 3,9G 1 % /poolz2
poolz2/tank 3,9G 128K 3,9G 1 % /poolz2/tankVelmi snadné, že? Vytvoříme nový souborový systém ZFS s názvem tank a automaticky jej připojíme jako /poolz2/tank.
Jak vytvořit vlastní přípojný bod pro souborový systém ZFS? Použijte níže uvedený příkaz:
# zfs create poolz2/data -o mountpoint=/data
# df -h | grep poolz2
poolz2 3,9G 0 3,9G 0 % /poolz2
poolz2/tank 3,9G 0 3,9G 0 % /poolz2/tank data . . 9 0 % /3,9 G % dat/3 . G zJak upravit stávající přípojný bod? Můžeme to udělat pomocí příkazu níže:
# zfs set mountpoint=/tank poolz2/tank
# df -h | grep poolz2
poolz2 3,9G 0 3,9G 0 % /poolz2
poolz2/data 3,9G 0 3,9G 0 % /data
0 3 % / nádrž G 9 G před>Chcete-li připojit a odpojit souborový systém, použijte příkaz níže:
# zfs odpojit /data
# df -h | grep poolz2
poolz2 3,9G 0 3,9G 0 % /poolz2
poolz2/tank 3,9G 0 3,9G 0 % /tank# zfs mount poolz2/data
# df -h | grep poolz2
poolz2 3,9G 0 3,9G 0 % /poolz2
poolz2/tank 3,9G 0 3,9G 0 % /tank
0 z 3,9 % dat
Odstranění souborového systému zfs je velmi snadné, můžeme k tomu použít příkaz zfs zničit.
# zfs zničit poolz2/data
# zfs list
NÁZEV POUŽÍT DOSTUPNOST REFEROVAT MOUNTPOINT
poolz2 152 000 3,83 G 26,1 000 /poolz2
3 000 G 25 000/000 /tankSouborový systém /data je pryč.
Závěr
Souborový systém ZFS je nový revoluční souborový systém, který zásadně mění způsob správy souborových systémů na operačních systémech podobných Unixu. ZFS poskytuje funkce a výhody, které nebyly nalezeny v žádném jiném dnes dostupném souborovém systému. ZFS je robustní, škálovatelný a snadno se spravuje.
Jak zkompilovat a nainstalovat bitcoinové jádro na Debian Wheezy Jak získat aktualizace LTS pro Debian 6 (Squeeze)Debian