ZFS vs XFS

62

Rozważamy zbudowanie serwera pamięci o pojemności ~ 16 TB. W tej chwili rozważamy zarówno ZFS, jak i XFS jako system plików. Jakie są zalety, wady? Czego musimy szukać? Czy jest trzecia, lepsza opcja?

Tamas Czinege
źródło
7
Nawet ich nie porównuj. ZFS to nowoczesny system plików na poziomie przedsiębiorstwa, taki jak jfs2, wafl. XFS był dobry 10 lat temu, ale dziś to tylko fs epoki kamienia.
disserman
Pod pewnymi względami nie można ich porównać: XFS jest systemem plików; ZFS to system plików i wiele więcej: zastępuje system plików, menedżer woluminów (jak LVM) i RAID. Jednak JFS nie jest już utrzymywany, jeśli pamięć służy: jednak XFS jest aktywny, utrzymywany i niezawodny. Tak czy inaczej - ZFS lub XFS - moim zdaniem nie można się pomylić.
Mei
1
Nadal uważam, że to pytanie jest istotne, więc napiszę tutaj nasze doświadczenie: XFS jest prosty, instalujesz go, uruchamiasz, jest szybki, działa. (Najazd HW poniżej). ZFS jest zapisywany, ma kompresję, ale jest dużo pracy, aby dostroić się do pracy tak szybko, jak XFS. Zależy to również od sytuacji, w której oczekuje się uruchomienia serwera. (backend klastra. przechowywanie użytkowników, archiwum, ...)
SvennD
Jest też Hammer2 dragonflybsd.org/hammer
skan

Odpowiedzi:

44

Odkryłem, że XFS jest bardziej odpowiedni dla bardzo dużych systemów plików z możliwie wieloma dużymi plikami. Mam działający system plików XFS 3.6 TB od ponad 2 lat bez żadnych problemów. Zdecydowanie działa lepiej niż ext3 itp. W tym rozmiarze (szczególnie w przypadku wielu dużych plików i wielu operacji we / wy).

To, co zyskujesz dzięki ZFS, to pula urządzeń, paskowanie i inne zaawansowane funkcje wbudowane w sam system plików. Nie mogę rozmawiać o szczegółach (pozwolę innym komentować), ale z tego, co mogę powiedzieć, chciałbyś użyć Solaris, aby uzyskać jak najwięcej korzyści tutaj. Nie jest też dla mnie jasne, jak bardzo ZFS pomaga, jeśli już używasz sprzętowej macierzy RAID (tak jak ja).

Mark Renouf
źródło
33
Kluczową cechą ZFS, której (zwykle) nie dostajesz gdzie indziej, jest CRC na poziomie bloku, który ma wykrywać (i mam nadzieję, że zapobiegnie) cichego uszkodzenia danych. Większość systemów plików zakłada, że ​​jeśli zapis zakończy się pomyślnie, dane rzeczywiście zostaną zapisane na dysk. Nie zawsze tak jest, szczególnie jeśli sektor zaczyna być „marginalny”. ZFS wykrywa to, sprawdzając CRC względem wynikowego zapisu.
Avery Payne
3
I tak, bardzo lubię XFS. :) Jedyną rzeczą, o której musisz pamiętać, jest skłonność do zerowania sektorów, które były „złe” podczas odzyskiwania dziennika. W niektórych (rzadkich) przypadkach może dojść do utraty danych ... Znaleziono ten artykuł z wyszukiwanym hasłem
Avery Payne
3
Jedną z rzeczy, które lubię w XFS, jest program xfs_fsr„defragmentacji”.
Cristian Ciupitu
1
Przydatność CRC na poziomie bloku ZFS jest wątpliwa. Dyski twarde i dyski SSD używają kodu Hamminga ECC do korygowania błędów jednobitowych i zgłaszania błędów dwubitowych. Jeśli ECC nie może w sposób transparentny skorygować fizycznego błędu odczytu, dane i tak zostaną utracone, a błąd odczytu zostanie zgłoszony do systemu operacyjnego. CRC nie korygują błędów. Ta funkcja jest wprowadzana jako główna zaleta ZFS, ale prawda jest taka, że ​​jest zbędna i nie ma żadnej wartości. Jeśli chodzi o błąd zerowej awarii zasilania XFS, który został naprawiony dawno temu i nie jest dziś aktualny.
Jody Lee Bruchon,
@JodyLeeBruchon to, co napisałeś, jest niepoprawne: chociaż prawdą jest, że do urządzeń pamięciowych jest już dołączony kod parzystości do danych, nie oznacza to, że są one w stanie zapewnić kompleksową ochronę danych. Aby osiągnąć ten cel bez sprawdzania systemu plików, potrzebujesz: a) stosu pamięci SAS T10 / DIF / DIX lub b) używaj integralności devicemapper dm .
shodanshok
75

ZFS zapewni Ci korzyści wykraczające poza oprogramowanie RAID. Struktura poleceń jest bardzo starannie zaprojektowana i intuicyjna. Ma również kompresję, migawki, klonowanie, wysyłanie / odbieranie systemu plików oraz pamięć podręczną (te nowe, wymyślne dyski SSD), aby przyspieszyć indeksowanie metadanych.

Kompresja:

#zfs set compression=on filesystem/home

Obsługuje proste tworzenie migawek kopiowania przy zapisie, które można montować na żywo:

# zfs snapshot filesystem/home/user@tuesday
# cd filesystem/home/user/.zfs/snapshot/tuesday

Klonowanie systemu plików:

# zfs clone filesystem/home/user@tuesday filesystem/home/user2

System plików wysyłaj / odbieraj:

# zfs send filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

Przyrostowe wysyłanie / odbieranie:

# zfs send -i filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

Urządzenia buforujące:

# zpool add filesystem cache ssddev

To tylko wierzchołek góry lodowej, gorąco polecam zakup instalacji Open Solaris i wypróbowanie tego.

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

Edycja : Jest to bardzo stary, Open Solaris został wycofany, najlepszym sposobem korzystania z ZFS jest prawdopodobnie na Linuksie lub FreeBSD .


Pełne ujawnienie: Byłem architektem pamięci masowej firmy Sun, ale nie pracowałem dla nich od ponad roku, jestem tylko podekscytowany tym produktem.

Chris
źródło
Ten link nie działał dla mnie z www. Użyjhttp://opensolaris.org/os/TryOpenSolaris/
aggregate1166877
Powiedziałbym, że najlepszym rozwiązaniem dla ZFS jest nadal FreeBSD. Od kilku lat jest częścią systemu. Domyślam się, że jest najmniejsza szansa na paskudne niespodzianki. Chociaż to tylko moje 0,02 $.
Fox
18

używanie migawek lvm i xfs na żywych systemach plików to przepis na katastrofę, szczególnie przy użyciu bardzo dużych systemów plików.

Przez ostatnie 6 lat działałem wyłącznie na LVM2 i xfs na moich serwerach (w domu, nawet jeśli Zfs-Fuse jest po prostu zbyt wolny) ...

Jednak nie mogę już liczyć różnych trybów awarii napotkanych podczas używania migawek. Przestałem ich całkowicie używać - to po prostu zbyt niebezpieczne.

Jedynym wyjątkiem, który zrobię teraz, jest moja osobista kopia zapasowa serwera poczty / serwera WWW, w której wykonam kopie zapasowe w ciągu nocy przy użyciu efemerycznej migawki, która jest zawsze równa rozmiarowi źródłowego pliku fs, i jest natychmiast usuwana.

Najważniejsze aspekty, o których należy pamiętać:

  1. jeśli masz duży (ish) system plików z migawką, wydajność zapisu jest strasznie obniżona
  2. jeśli masz duży (ish) system plików, który ma migawkę, czas uruchamiania zostanie opóźniony dosłownie o kilkadziesiąt minut, podczas gdy dysk będzie się obracał i zwalniał podczas importowania grupy woluminów. Żadne wiadomości nie będą wyświetlane. Ten efekt jest szczególnie przerażający, jeśli root jest na lvm2 (ponieważ oczekiwanie na urządzenie root skończy się, a system nie uruchomi się)
  3. jeśli masz migawkę, bardzo łatwo zabraknie Ci miejsca. Po wyczerpaniu miejsca migawka jest uszkodzona i nie można jej naprawić.
  4. Migawek nie można obecnie przywrócić / scalić (patrz http://kerneltrap.org/Linux/LVM_Snapshot_Merging ). Oznacza to, że jedynym sposobem na przywrócenie danych z migawki jest skopiowanie (rsync?). NIEBEZPIECZEŃSTWO NIEBEZPIECZEŃSTWO: nie chcesz tego robić, jeśli pojemność migawki nie jest co najmniej wielkości źródła fs; Jeśli tego nie zrobisz, wkrótce uderzysz w ceglaną ścianę i skończysz na uszkodzeniu zarówno źródła fs, jak i migawki. (Byłam tam!)
sehe
źródło
1
Jak to się dzieje, po prostu dzisiaj ktoś potwierdził, że VG z migawce - niezdolny do startu systemu Linux jest nadal aktualna: bugs.launchpad.net/lvm2/+bug/360237
sehe
Wracając tego błędu, ale nadal uważam, że katastrofalnej problemów z rozruchem z snaphots są „normalne zachowanie dla LVM”: bugs.launchpad.net/lvm2/+bug/360237/comments/7 (na 2012-01-07)
sehe
1
Aktualizacja: Ten sam stan. Dopiero teraz minęło 7 lat.
patrz
14

Kilka dodatkowych rzeczy do przemyślenia.

  • Jeśli dysk umrze w sprzętowej macierzy RAID niezależnie od systemu plików, który jest na nim, wszystkie bloki urządzenia muszą zostać odbudowane. Nawet te, które nie zawierały żadnych danych. ZFS jest natomiast menedżerem woluminów, systemem plików oraz zarządza redundancją i rozłożeniem danych. Dzięki temu może inteligentnie odbudować tylko bloki zawierające dane. Powoduje to szybszy czas przebudowy inny niż wtedy, gdy wolumin jest pełny w 100%.

  • ZFS ma czyszczenie w tle, które zapewnia spójność danych na dysku i naprawia wszelkie znalezione problemy, zanim doprowadzi to do utraty danych.

  • Systemy plików ZFS są zawsze w spójnym stanie, więc fsck nie jest potrzebny.

  • ZFS oferuje także większą elastyczność i funkcje dzięki swoim migawkom i klonom w porównaniu do migawek oferowanych przez LVM.

Po uruchomieniu dużych pul pamięci do produkcji wideo w dużym formacie na stosie Linux, LVM i XFS. Z mojego doświadczenia wynika, że ​​łatwo jest popaść w mikro-zarządzanie pamięcią masową. Może to spowodować duże ilości niewykorzystanego przydzielonego miejsca i czasu / problemy z zarządzaniem woluminami logicznymi. To może nie być wielka sprawa, jeśli masz pełnoetatowego administratora pamięci masowej, którego zadaniem jest mikro-zarządzanie pamięcią. Odkryłem jednak, że metoda przechowywania puli w ZFS usuwa te problemy z zarządzaniem.

3dinfluence
źródło
8

ZFS jest absolutnie niesamowity. Używam go jako mojego domowego serwera plików dla serwera plików HD 5 x 1 TB, a także używam go w produkcji z prawie 32 TB miejsca na dysku twardym. Jest szybki, łatwy w użyciu i zawiera jedne z najlepszych zabezpieczeń przed uszkodzeniem danych.

Używamy OpenSolaris na tym serwerze, w szczególności dlatego, że chcieliśmy mieć dostęp do nowszych funkcji oraz ponieważ zapewnił on nowy system zarządzania pakietami i sposób aktualizacji.

X-Istence
źródło
7

Który system operacyjny zamierzasz uruchomić? Czy to kolejna część rozważań? Jeśli korzystasz z systemu Solaris, XFS nie jest nawet opcją, o ile wiem. Jeśli nie korzystasz z systemu Solaris, jak zamierzasz korzystać z ZFS? Wsparcie jest ograniczone na innych platformach.

Jeśli mówisz o serwerze Linux, osobiście trzymałbym się Ext3, choćby dlatego, że otrzymuje najwięcej testów. Zfs-fuse jest wciąż bardzo młody. Miałem też problemy z XFS, kiedy błąd spowodował uszkodzenie danych po aktualizacji jądra. Przewagi XFS nad Ext3 zdecydowanie nie przeważały nad kosztami związanymi z przywracaniem komputera, który znajdował się w zdalnym centrum danych.

Kjetil Limkjær
źródło
6
FreeBSD ma dojrzały macierzysty port ZFS
Brian Gianforcearo
7
wiki.freebsd.org/ZFSKnownProblems Myślę, że twoja definicja dojrzałości może być inna niż moja :-) Może zastanowiłbym się po wydaniu 8.0.
Kjetil Limkjær
9
ext3 z 16 TB? Nie nie nie. Nie rób tego. Będziesz płakać. Moim zdaniem ZFS lub XFS to najlepsze systemy plików. Użyj ZFS, jeśli możesz (nie uruchamiaj go w systemie Linux). Mówię to z dużym doświadczeniem na dużych woluminach w systemie Linux i Solaris przez 5 lat.
Thomas
3
FreeBSD 7.2 po wersji 20090601 sprawił, że większość ZFSKnownProblems stała się przedmiotem kontrowersji. Jeśli używasz wersji systemu operacyjnego AMD64, jest ona teraz stabilna. W wersji 8.0 FreeBSD oznaczyło ZFS jako wystarczająco stabilny do produkcji.
Walter
3
ZFS w systemie Linux jest już dostępny ( zfsonlinux.org )
James Moore,
7

Nie sądzę, że powinieneś skupić się na wydajności. Czy Twoje dane są bezpieczne w XFS, ext4 itp.? Nie. Przeczytaj tezy doktorskie i prace badawcze:

XFS nie jest bezpieczny przed uszkodzeniem danych: pages.cs.wisc.edu/~vshree/xfs.pdf

I nie jest też ext3, JFS, ReiserFS itp .: zdnet.com/blog/storage/how-microsoft-puts-your-data-at-risk/169?p=169&tag=mantle_skin%3bcontent „Natknąłem się na fascynującą pracę doktorską Vijayana Prabhakarana, IRON File Systems, który analizuje, w jaki sposób pięć systemów plików z księgowaniem towarów - NTFS, ext3, ReiserFS, JFS i XFS - radzi sobie z problemami z pamięcią.

W skrócie stwierdził, że wszystkie systemy plików mają

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

Ale ZFS skutecznie chroni twoje dane. Oto artykuł badawczy na ten temat: zdnet.com/blog/storage/zfs-data-integrity-tested/811


źródło
5

Nie jest to odpowiedź zorientowana na FS, ale pamiętaj, że wiele kontrolerów dysków nie poradzi sobie z> LUNS / dyskami logicznymi o pojemności 2 TB - może to znacznie ograniczyć sposób organizacji pamięci. Chciałem tylko, abyś był świadomy, abyś mógł sprawdzić swój system od końca do końca, aby upewnić się, że poradzi sobie z 16 TB przez cały czas.

Siekacz 3
źródło
1

Zależy, jakie funkcje chcesz ..., dwa rozsądne wybory to xfs i zfs, jak powiedziałeś, kod xfs jest dość dobrze przetestowany. Po raz pierwszy użyłem go 8 lat temu w systemie IRIX

Możliwe jest uzyskanie migawek z XFS (przy użyciu lvm i xfs_freeze)

Możliwe jest posiadanie osobnego urządzenia rejestrującego, np. SSD

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

Duże XFS tradycyjnie wymagają dużej ilości pamięci do sprawdzenia

Problem z pojawianiem się zer był funkcją „bezpieczeństwa”, która, jak sądzę, zniknęła jakiś czas temu.

James
źródło
1

Oprócz tego, co już wspomniano, z punktu widzenia wydajności xfs na MD Raid działa lepiej niż zfs na streamingu mediów. Używam tego samego sprzętu przez pół dekady z XFS i mniej więcej tyle samo czasu z ZFS na moim serwerze medialnym. Na procesorze Intel Atom 330 z XFS nigdy nie doświadczam twardszego, na ZFS w złożonych scenach ten sam sprzęt nie może nadążyć i zaczyna upuszczać klatki.

użytkownik718960
źródło
0

Zamiast budować własne, alternatywą jest Sun 7410 aka Toro. Ma bardzo przydatne oprogramowanie, które jest dołączone do rozwiązania.

Jauder Ho
źródło
0

Cóż, nie zapomnijmy o najnowszym dodatku do ZFS: deduplikacji. I porozmawiajmy o dzieleniu się w locie iscsi, nfs lub smb. Jak już powiedzieli inni, eksport systemów plików ZFS, migawki, suma kontrolna bloków raidz (= raid5), szerokość pasków dynamicznych, zarządzanie pamięcią podręczną i wiele innych. Głosuję na ZFS.

PiL
źródło