O introducere în sistemul de fișiere Z (ZFS) pentru Linux
ZFS este folosit în mod obișnuit de operatorii de date, de iubitorii de NAS și de alți geeki care preferă să-și pună încrederea într-un sistem de stocare redundant propriu, și nu în cloud. Este un sistem de fișiere excelent folosit pentru a gestiona mai multe discuri de date și rivalizează unele dintre cele mai mari setări RAID.
Fotografie de Kenny Louie.
Ce este ZFS și de ce ar trebui să-l folosesc?
Sistemul de fișiere Z este un manager de volume logic liber și deschis, construit de Sun Microsystems, pentru utilizarea în sistemul lor de operare Solaris. Unele dintre caracteristicile sale cele mai atractive includ:
Endless scalability
Ei bine, nu este tehnic dar este un sistem de fișiere pe 128 de biți care este capabil să gestioneze zetabiți (un miliard de terabyte) de date. Indiferent cât spațiu aveți pe hard disk, ZFS va fi potrivit pentru gestionarea acestuia.
Integritate maximă
Tot ceea ce faceți în interiorul ZFS utilizează o sumă de control pentru a asigura integritatea fișierului. Puteți fi siguri că fișierele dvs. și copiile lor redundante nu vor întâmpina coruperea datelor silențioase. De asemenea, în timp ce ZFS este ocupat cu verificarea liniștită a datelor pentru integritate, va face reparații automate oricând poate.
Partajați unitatea
Creatorii de fișiere ZFS doresc să vă gândiți la ele ca fiind similare cu modul în care computerul utilizează memoria RAM. Când aveți nevoie de mai multă memorie în computer, introduceți un alt stick și ați terminat. În mod similar cu ZFS, atunci când aveți nevoie de mai mult spațiu pe hard disk, ați pus un alt hard disk și ați terminat. Nu este nevoie să vă petreceți timp de partiționare, formatare, inițializare sau de a face orice altceva pe discuri - atunci când aveți nevoie de o "piscină" de stocare mai mare, adăugați doar discuri.
RAID
ZFS este capabil de multe niveluri diferite de RAID, toate oferind performanțe comparabile cu cele ale controlorilor hardware RAID. Acest lucru vă permite să economisiți bani, să faceți configurarea mai ușoară și să aveți acces la niveluri RAID superioare pe care le-a îmbunătățit ZFS.
Instalarea ZFS
Din moment ce acoperim doar elementele de bază ale acestui ghid, nu vom instala ZFS ca sistem de fișiere rădăcină. Această secțiune presupune că utilizați ext4 sau alt sistem de fișiere și doriți să utilizați ZFS pentru unele hard discuri secundare. Iată comenzile pentru instalarea ZFS pe unele dintre cele mai populare distribuții Linux.
Solaris și FreeBSD ar trebui să vină deja cu ZFS instalat și gata de utilizare.
Ubuntu:
$ sudo add-apt-repository ppa: zfs-nativ / stabil
$ sudo apt-get actualizare
$ sudo apt-get instala ubuntu-zfs
Debian:
$ su -
# wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_2%7Ewheezy_all.deb
# dpkg -i zfsonlinux_2 ~ wheezy_all.deb
# apt-get update
# apt-get instalați debian-zfs
RHEL / CentOS:
$ sudo yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release-1-3.el6.noarch.rpm
$ sudo yum instala zfs
Dacă aveți altă distribuție, verificați zfsonlinux.org și faceți clic pe distribuția dvs. din lista "Packages" pentru instrucțiuni despre cum se instalează ZFS.
Pe măsură ce continuăm cu acest ghid, vom folosi Ubuntu pentru că aceasta pare a fi cea mai bună alegere pentru Linux. Încă ar trebui să puteți urmări indiferent de ce, deoarece comenzile ZFS nu se vor schimba în diferite distribuții.
Instalarea durează destul de mult, dar odată terminată, alerga $ sudo zfs listă
pentru a vă asigura că este instalat corect. Ar trebui să obțineți o ieșire astfel:
Folosim o instalare proaspătă a serverului Ubuntu chiar acum, cu un singur hard disk.
Configurarea ZFS
Acum, să spunem că am pus șase unități de hard disk în computerul nostru.
$ sudo fdisk -l | Grep grep
ne va arăta cele șase unități de hard disk pe care tocmai le-am instalat. În prezent, acestea sunt inutilizabile, deoarece nu conțin niciun fel de tabel de partiții.
Așa cum am menționat mai devreme, unul dintre lucrurile frumoase despre ZFS este că nu trebuie să ne deranjăm cu partiții (deși puteți dacă doriți). Să începem prin luarea a trei dintre hard discurile noastre și punerea lor într-o piscină de stocare, executând următoarea comandă:
$ sudo zpool creați -f geek1 / dev / sdb / dev / sdc / dev / sdd
spool create
este comanda utilizată pentru crearea unei noi baze de stocare, -f
suprascrie orice eroare care apare (cum ar fi dacă discurile au deja informații despre ele), geek1
este numele bazei de stocare și / dev / sdb / dev / sdc / dev / sdd
sunt hard disk-urile pe care le punem în piscină.
După ce ați creat piscina, ar trebui să o puteți vedea cu df
comanda sau lista sudo zfs
:
După cum puteți vedea, / geek1 a fost deja montat și este gata de utilizare.
Dacă doriți să vedeți care trei discuri ați selectat pentru piscina dvs., puteți rula sudo zpool status
:
Ceea ce am făcut până acum este crearea unei baze de bandă dinamică de 9 TB (efectiv, RAID 0). În cazul în care nu sunteți familiarizat cu ceea ce înseamnă asta, imaginați-vă că am creat un fișier de 3 KB pe / geek1. 1 KB va merge automat la sdb, 1 KB la sdc și 1 KB la sdd. Apoi, când mergem să citim fișierul de 3 KB, fiecare hard disk ne va prezenta 1 KB, combinând viteza celor trei unități. Acest lucru face ca scrierea și citirea datelor să fie rapidă, dar înseamnă, de asemenea, că avem un singur punct de eșec. Dacă un singur hard disk nu reușește, vom pierde fișierul de 3 KB.
Presupunând că protejarea datelor este mai importantă decât accesarea rapidă a acestora, să aruncăm o privire la alte setări populare. În primul rând, vom șterge dosarul pe care l-am creat pentru a putea folosi aceste discuri într-o configurație mai redundantă:
$ sudo zpool distrug geek1
Bam, nebunul nostru a dispărut. De data aceasta, hai să folosim cele trei discuri pentru a crea un pool RAID-Z. RAID-Z este, în esență, o versiune îmbunătățită a RAID 5, deoarece evită "gaura de scriere" prin copierea pe scriere. RAID-Z necesită minimum trei unități de hard disk și este un fel de compromis între RAID 0 și RAID 1. Într-o piscină RAID-Z, veți obține în continuare viteza de strivire la nivel de bloc, dar veți avea și paritate distribuită. Dacă un singur disc din bazinul dvs. moare, înlocuiți pur și simplu discul respectiv, iar ZFS va reconstrui automat datele bazate pe informații despre paritate de pe celelalte discuri. Pentru a pierde toate informațiile din bazinul de stocare, două discuri ar trebui să moară. Pentru a face lucrurile și mai redundante, puteți utiliza RAID 6 (RAID-Z2 în cazul lui ZFS) și aveți paritate dublă.
Pentru a realiza acest lucru, putem folosi același lucru spool create
comanda ca înainte, dar specificați raidz
după numele bazinului:
$ sudo zpool creare -f geek1 raidz / dev / sdb / dev / sdc / dev / sdd
După cum puteți vedea, df -h
arată că rezerva noastră de 9 TB a fost redusă acum la 6 TB, deoarece 3 TB sunt utilizate pentru a ține informațiile despre paritate. Cu statusul spool
comanda, vedem că bazinul nostru este în mare parte același ca înainte, dar utilizează acum RAID-Z.
Pentru a arăta cât de ușor este să adăugați mai multe discuri în bazinul nostru de stocare, să adăugăm celelalte trei discuri (încă 9 TB) la piscina noastră de stocare geek1 ca o altă configurație RAID-Z:
$ sudo zpool adăugați -f geek1 raidz / dev / sde / dev / sdf / dev / sdg
Încheiem cu:
Saga continuă ...
Abia am zgâriat suprafața ZFS și capabilitățile sale, dar folosind ceea ce ați învățat în acest articol, acum ar trebui să puteți crea zone de stocare redundante ale datelor dvs. Întoarceți-vă cu noi pentru articole viitoare despre ZFS, vedeți paginile manuale și căutați în jurul ghidurilor de nișă nesfârșite și videoclipuri Youtube care acoperă funcțiile ZFS.