ZFS vs XFS (Administrarea sistemului, Sisteme De Fișiere, Stocare, Zfs, Xfs)

Tamas Czinege a intrebat.

Ne gândim să construim un server de stocare de ~16TB. În acest moment, avem în vedere atât ZFS, cât și XFS ca sistem de fișiere. Care sunt avantajele, dezavantajele? Ce trebuie să căutăm? Există o a treia opțiune, mai bună?

Comentarii

  • Nici măcar nu le comparați. ZFS este un sistem de fișiere modern la nivel de întreprindere, precum jfs2, wafl. XFS a fost bun acum 10 ani, dar astăzi este doar un sistem de fișiere din epoca de piatră. –  > Por disserman.
  • În unele privințe, nu le poți compara: XFS este un sistem de fișiere; ZFS este un sistem de fișiere și mult mai mult decât atât: înlocuiește sistemul de fișiere, managerul de volum (precum LVM) și, în plus, RAID. Cu toate acestea, JFS nu mai este întreținut, dacă nu mă înșel: totuși, XFS este activ, întreținut și robust. În orice caz – ZFS sau XFS – nu puteți da greș, după părerea mea. –  > Por Mei.
  • Încă mai cred că această întrebare este relevantă, așa că voi scrie aici experiența noastră: XFS este simplu, îl instalezi, îl rulezi, este rapid, funcționează. (HW raid mai jos). ZFS este salvator, are compresie, dar necesită multă muncă pentru a fi reglat pentru a funcționa la fel de rapid ca XFS. Deci, depinde și de situația în care vă așteptați ca serverul să funcționeze. (partea din spate a clusterului, stocare pentru utilizatori, arhivă, …) –  > Por SvennD.
  • Există, de asemenea, Hammer2 dragonflybsd.org/hammer –  > Por skan.
12 răspunsuri
Mark Renouf

Am constatat că XFS se potrivește mai bine pentru sisteme de fișiere extrem de mari, cu posibil multe fișiere mari. Am avut un sistem de fișiere XFS de 3,6TB funcțional de peste 2 ani, fără probleme. Cu siguranță funcționează mai bine decât ext3, etc. la această dimensiune (mai ales atunci când aveți de-a face cu multe fișiere mari și multe I/O).

Ceea ce obțineți cu ZFS este pooling-ul de dispozitive, striping-ul și alte caracteristici avansate încorporate în sistemul de fișiere în sine. Nu pot vorbi despre detalii (îi voi lăsa pe alții să comenteze), dar, din câte îmi dau seama, ar trebui să folosiți Solaris pentru a obține cele mai multe beneficii în acest caz. De asemenea, nu îmi este clar cât de mult vă ajută ZFS dacă folosiți deja RAID hardware (așa cum fac eu).

Comentarii

    35

  • Caracteristica cheie a ZFS pe care (de obicei) nu o obțineți în altă parte este CRC la nivel de bloc, care ar trebui să detecteze (și, sperăm, să prevină) corupția silențioasă a datelor. Majoritatea sistemelor de fișiere presupun că, dacă o scriere s-a finalizat cu succes, atunci datele au fost într-adevăr scrise pe disc. Acest lucru nu este întotdeauna valabil, mai ales dacă un sector începe să devină „marginal”. ZFS detectează acest lucru prin verificarea CRC în raport cu scrierea rezultată. –  > Por Avery Payne.
  • Și da, îmi place foarte mult XFS. 🙂 Singura problemă pe care trebuie să o aveți în vedere este tendința de a elimina sectoarele care au fost „rele” în timpul recuperării jurnalului. În unele cazuri (rare), se poate ajunge la pierderi de date… Am găsit această lucrare cu termenul de căutare pe Google „xfs zeros out sectors upon recovery” (xfs elimină sectoarele la recuperare) pages.cs.wisc.edu/~vshree/xfs.pdf –  > Por Avery Payne.
  • Unul dintre lucrurile care îmi plac la XFS este faptul că xfs_fsr programul de „defragmentare”. –  > Por Cristian Ciupitu.
  • Utilitatea CRC-urilor la nivel de bloc ZFS este discutabilă. Hard disk-urile și SSD-urile folosesc codul Hamming ECC pentru a corecta erorile pe un singur bit și pentru a raporta erorile pe doi biți. Dacă ECC nu poate corecta în mod transparent eroarea fizică de citire, datele se pierd oricum și un eșec de citire va fi raportat către sistemul de operare. CRC-urile nu corectează erorile. Această caracteristică este prezentată ca un avantaj major al ZFS, dar adevărul este că este redundantă și nu are nicio valoare. În ceea ce privește bug-ul XFS „zero-after-power-fail-fail”, acesta a fost corectat cu mult timp în urmă și nu este relevant astăzi. –  > Por Jody Bruchon.
  • @JodyLeeBruchon ceea ce ați scris este incorect: deși este adevărat că dispozitivele de stocare au deja un cod de paritate atașat datelor, acest lucru nu înseamnă că sunt capabile să asigure protecția datelor de la un capăt la altul. Pentru a atinge acest obiectiv fără un sistem de fișiere cu chechsumming, aveți nevoie de a) un SAS T10/DIF/DIX storage stack sau b) să utilizați devicemapper dm-integrity. –  > Por shodanshok.
Chris

ZFS vă va oferi avantaje dincolo de RAID software. Structura comenzilor este foarte bine gândită și intuitivă. De asemenea, are compresie, instantanee, clonare, trimitere/recepție a sistemului de fișiere și dispozitive de cache (acele noi unități SSD sofisticate) pentru a accelera indexarea meta-datelor.

Compresie:

#zfs set compression=on filesystem/home

Suportă crearea simplă de instantanee de tip copy-on-write care pot fi montate live:

# zfs snapshot filesystem/home/[email protected]
# cd filesystem/home/user/.zfs/snapshot/tuesday

Clonarea sistemului de fișiere:

# zfs clone filesystem/home/[email protected] filesystem/home/user2

Trimiterea/recepția sistemului de fișiere:

# zfs send filesystem/home/[email protected] | ssh otherserver "zfs receive -v filesystem/home/user"

Trimitere/recepție incrementală:

# zfs send -i filesystem/home/[email protected] | ssh otherserver "zfs receive -v filesystem/home/user"

Dispozitive de cache:

# zpool add filesystem cache ssddev

Toate acestea sunt doar vârful icebergului, vă recomand cu căldură să puneți mâna pe o instalare de Open Solaris și să încercați acest lucru.

http://www.opensolaris.org/os/TryOpenSolaris/

Editați: Acest lucru este foarte vechi, Open Solaris a fost întrerupt, cea mai bună modalitate de a utiliza ZFS este probabil pe Linux, , sau FreeBSD.


Dezvăluire completă: am fost arhitect de stocare Sun, dar nu am mai lucrat pentru ei de peste un an, sunt doar încântat de acest produs.

Comentarii

  • Acest link nu a funcționat pentru mine cu www. Utilizați http://opensolaris.org/os/TryOpenSolaris/ –  > Por aggregate1166877.
  • De fapt, aș spune că cel mai bun pariu pentru zfs este încă FreeBSD. Face parte din sistem de câțiva ani. Așa că, după părerea mea, există cea mai mică posibilitate de surprize neplăcute. Cu toate că este doar 0,02 dolari ai mei. –  > Por Fox.
sehe

utilizarea instantaneelor lvm și a xfs pe sisteme de fișiere live este o rețetă pentru dezastru în special atunci când se utilizează sisteme de fișiere foarte mari.

În ultimii 6 ani, am folosit exclusiv LVM2 și xfs pe serverele mele (acasă, chiar și din moment ce zfs-fuse este pur și simplu prea lent)…

Cu toate acestea, nu mai pot număra diferitele moduri de eșec pe care le-am întâlnit atunci când am folosit instantanee. Am încetat să le mai folosesc cu totul – este pur și simplu prea periculos.

Singura excepție pe care o voi face acum este backup-ul meu personal pentru serverul de mail/serverul web, unde voi face backup-uri peste noapte folosind un instantaneu efemer, care este întotdeauna egal cu dimensiunea fs-ului sursă, și este șters imediat după aceea.

Cele mai importante aspecte de care trebuie să țineți cont:

  1. dacă aveți un sistem de fișiere mare(ish) care are un instantaneu, performanța de scriere este îngrozitor de degradată.
  2. dacă aveți un sistem de fișiere de dimensiuni mari care are un instantaneu, timpul de pornire va fi întârziat cu zeci de minute, în timp ce discul se va agita și se va agita în timpul importului grupului de volume. Nu se va afișa niciun mesaj. Acest efect este deosebit de oribil dacă root este pe lvm2 (deoarece așteptarea dispozitivului root va expira și sistemul nu pornește)
  3. dacă aveți un instantaneu este foarte ușor să rămâneți fără spațiu. Odată ce nu mai aveți spațiu, instantaneul este corupt și nu mai poate fi reparat.
  4. Instantaneele nu pot fi inversate/fuzate în acest moment (a se vedea http://kerneltrap.org/Linux/LVM_Snapshot_Merging). Acest lucru înseamnă că singura modalitate de a restaura datele dintr-un instantaneu este de a le copia efectiv (rsync?). PERICOL PERICOL: nu nu doriți să faceți acest lucru dacă capacitatea instantaneului nu este cel puțin egală cu dimensiunea fs sursă; dacă nu o faceți, vă veți lovi curând de un zid de cărămidă și veți sfârși atât cu fs sursă, cât și cu instantaneul corupt. (Am trecut prin asta!)

Comentarii

  • Din întâmplare, chiar astăzi cineva a confirmat că vg-ul cu snapshot – unable-to-boot-linux este încă actual: bugs.launchpad.net/lvm2/+bug/360237 –  > Por sehe.
  • Revăzând acest bug, ei încă mai cred că problemele abisale de boot cu snapshot-uri sunt „un comportament normal pentru lvm”: bugs.launchpad.net/lvm2/+bug/360237/comments/7 (la data de 2012-01-07) –  > Por sehe.
  • Actualizare: Aceeași stare. Doar că acum au trecut încă 7 ani. –  > Por sehe.
3dinfluence

Câteva lucruri suplimentare la care să te gândești.

  • Dacă o unitate moare într-o matrice RAID hardware, indiferent de sistemul de fișiere care se află deasupra ei, toate blocurile de pe dispozitiv trebuie reconstruite. Chiar și cele care nu conțineau date. ZFS, pe de altă parte, este managerul de volum, sistemul de fișiere și gestionează redundanța datelor și striping-ul. Astfel, poate reconstrui în mod inteligent numai blocurile care conțineau date. Acest lucru duce la timpi de reconstrucție mai rapizi decât atunci când volumul este 100% plin.

  • ZFS dispune de un sistem de curățare în fundal care se asigură că datele rămân consecvente pe disc și repară orice problemă pe care o găsește înainte de a duce la pierderea datelor.

  • Sistemele de fișiere ZFS sunt întotdeauna într-o stare consistentă, astfel încât nu este nevoie de fsck.

  • ZFS oferă, de asemenea, mai multă flexibilitate și caracteristici cu instantanee și clone în comparație cu instantaneele oferite de LVM.

După ce am rulat pool-uri mari de stocare pentru producția video de format mare pe o stivă Linux, LVM, XFS. Experiența mea a fost că este ușor să te lași pradă microgestionării stocării. Acest lucru poate avea ca rezultat cantități mari de spațiu alocat neutilizat și timp/probleme cu gestionarea volumelor logice. Acest lucru poate să nu fie o mare problemă dacă aveți un administrator de stocare cu normă întreagă, a cărui sarcină este de a microgestiona stocarea. Dar am constatat că abordarea de stocare în comun a ZFS elimină aceste probleme de gestionare.

X-Istence

ZFS este absolut uimitor. Îl folosesc ca server de fișiere de acasă pentru un server de fișiere HD de 5 x 1 TB și îl folosesc, de asemenea, în producție cu aproape 32 TB de spațiu pe hard disk. Este rapid, ușor de utilizat și conține unele dintre cele mai bune protecții împotriva corupției datelor.

Folosim OpenSolaris pe acest server în special pentru că am dorit să avem acces la caracteristici mai noi și pentru că a oferit noul sistem de gestionare a pachetelor și modul de actualizare.

Miklo

Nu cred că ar trebui să vă concentrați pe performanță. Datele dumneavoastră sunt în siguranță cu XFS, ext4, etc.? Nu. Citiți aceste teze de doctorat și lucrări de cercetare:

XFS nu este sigur împotriva corupției datelor:pages.cs.wisc.edu/~vshree/xfs.pdf

Și nici ext3, JFS, ReiserFS, etc:zdnet.com/blog/storage/how-microsoft-puts-your-data-at-risk/169?p=169&tag=mantle_skin%3bcontent „Am dat peste fascinanta teză de doctorat a lui Vijayan Prabhakaran, IRON File Systems, care analizează modul în care cinci sisteme de fișiere journaling de bază – NTFS, ext3, ReiserFS, JFS și XFS – rezolvă problemele de stocare.

Pe scurt, a constatat că toate sistemele de fișiere au următoarele caracteristici

. . . failure policies that are often inconsistent, sometimes buggy, and generally inadequate in their ability to recover from partial disk failures. "

însă ZFS protejează cu succes datele. Iată o lucrare de cercetare în acest sens:zdnet.com/blog/storage/zfs-data-integrity-tested/811

Kjetil Limkjær

Ce sistem de operare intenționați să folosiți? Sau aceasta este o altă parte a considerației? Dacă utilizați Solaris, XFS nu este o opțiune, din câte știu eu. Dacă nu folosiți Solaris, cum intenționați să utilizați ZFS? Suportul este limitat pe alte platforme.

Dacă este vorba despre un server Linux, eu personal aș alege Ext3, chiar și numai pentru că este cel mai testat. zfs-fuse este încă foarte tânăr. De asemenea, am avut odată probleme cu XFS, când o eroare a cauzat coruperea datelor după o actualizare a kernelului. Avantajele lui XFS față de Ext3 nu au depășit cu siguranță costurile implicate de restaurarea mașinii, care se afla într-un centru de date la distanță.

Comentarii

  • FreeBSD are un port nativ matur al ZFS –  > Por Brian Gianforcaro.
  • wiki.freebsd.org/ZFSProbleme cunoscute Cred că definiția ta de maturitate ar putea fi diferită de a mea 🙂 Poate că aș lua-o în considerare după ce va fi lansată versiunea 8.0. –  > Por Kjetil Limkjær.
  • ext3 cu 16TB? Nu, nu, nu, nu. NU o faceți. Veți plânge. În opinia mea, ZFS sau XFS sunt cele mai bune sisteme de fișiere existente. Folosiți ZFS dacă puteți (nu-l rulați pe Linux). Spun acest lucru cu multă experiență pe volume mari pe Linux și Solaris, timp de 5 ani. –  > Por Thomas.
  • FreeBSD 7.2 după 20090601 au făcut ca majoritatea problemelor cunoscute de ZFS să devină inutile. Dacă rulați versiunea AMD64 a sistemului de operare, aceasta este acum stabilă. În 8.0, FreeBSD a marcat ZFS ca fiind suficient de stabil pentru producție. –  > Por Walter.
  • ZFS pe Linux este disponibil acum (zfsonlinux.org) –  > Por James Moore.
Chopper3

Nu este un răspuns orientat spre FS, îmi pare rău, dar fiți conștienți de faptul că un număr de controllere de discuri nu se vor ocupa de >2TB LUNS / discuri logice – acest lucru poate limita destul de mult modul în care vă organizați stocarea. Am vrut doar să fiți conștienți, astfel încât să puteți verifica sistemul dvs. de la un capăt la altul pentru a vă asigura că se va ocupa de 16TB pe tot parcursul.

James

Depinde de caracteristicile pe care le doriți…, cele două opțiuni rezonabile sunt xfs și zfs, după cum ați spus, codul xfs este destul de bine testat, l-am folosit pentru prima dată acum 8 ani în IRIX.

este posibil să obțineți instantanee din xfs ( folosind lvm și xfs_freeze )

Este posibil să aveți un dispozitiv de jurnal separat, de exemplu, SSD.

mkfs.xfs -l logdev=/dev/sdb1,size=10000b /dev/sda1

xfs de mari dimensiuni necesită în mod tradițional multă memorie pentru verificare

Problema cu apariția zerourilor a fost o caracteristică de „securitate”, care cred că a dispărut cu ceva timp în urmă.

theking2

În afară de ceea ce este deja menționat, din punct de vedere al performanței, xfs pe raidul de bază MD se comportă mai bine decât zfs pe medii de streaming. Am folosit exact același hardware timp de o jumătate de deceniu cu xfs și aproximativ aceeași perioadă de timp cu zfs pe serverul meu media. Pe Intel Atom 330 cu xfs nu am experimentat niciodată stuter, pe zfs pe scene complexe același hardware nu poate ține pasul și începe să scadă cadrele.

Jauder Ho

Decât să vă construiți unul propriu, o alternativă este Sun 7410 aka Toro. Are niște software foarte util care vine la pachet cu soluția.

PiL

Ei bine, băieți, să nu uităm de cea mai recentă adăugare la zfs: deduplicarea. și să vorbim despre partajarea în zbor iscsi, nfs sau smb. așa cum au spus deja alții, exporturile de sisteme de fișiere zfs, instantanee, suma de verificare a blocurilor raidz(=raid5), lățimea dinamică a benzilor, gestionarea cache-ului și multe altele. eu votez pentru zfs.