Mechanizm kopiowania na Write (COW)
Oba systemy plików używają mechanizmu kopiowania na wwirowaniu. Oznacza to, że jeśli próbujesz zmodyfikować plik, żaden z systemów plików nie będzie próbował zastąpić istniejących danych na dysku za pomocą nowszych danych. Zamiast tego nowsze dane są zapisywane gdzie indziej, a po zakończeniu operacji zapisu system plików po prostu wskazuje na nowsze bloki danych, a stare bloki są poddawane recyklingowi z czasem. Ten mechanizm pozwala zarówno systemom plików mieć takie funkcje, jak migawki i klonowanie.
Krowa zapobiega również przypadkom krawędziowym, takim jak częściowe zapisy, które mogą się zdarzyć z powodu paniki jądra lub awarii zasilania i potencjalnie uszkodzonego całego systemu plików. Z krowy na miejscu, pismo albo się wydarzyło, albo nie wydarzyło się, nie ma pomiędzy.
Łączenie i nalot
Oba systemy plików zamierzają wyeliminować potrzebę menedżera woluminów, RAID i innych abstrakcji, które znajdują się między systemem plików a dyskami. Jest to bardziej niezawodne i niezawodne niż posiadanie kontrolera rajdów sprzętowych, po prostu dlatego, że eliminuje pojedynczy punkt awarii - sam kontroler RAID.
OpenZFS oferuje stabilny, niezawodny i przyjazny dla użytkownika mechanizm nalotowy. Możesz odzwierciedlać między dyskami, użyć RaIDZ1, który rozkłada Twoje dane na 3 lub więcej dysku za pomocą jednego bloku parytetu. Dzięki czemu może wytrzymać awarię dysku Upton 1 na VDEV. Podobnie, RaIDZ2 może używać 4 lub więcej dysków i wytrzymać niepowodzenie 2 dysków i podobnie mamy RaIdz3.
BTRFS również ma zaimplementowane te funkcje, różnica polega na tym, że nazywa je RAID, zamiast Raidza i tak dalej. Niektóre bardziej skomplikowane konfiguracje macierzy RAID, takie jak RAID56, są wadli i nie są odpowiednie do użytku, w momencie tego pisania.
Koncesjonowanie
Jednym z powodów, dla których OpenZFS przyszedł tak późno na ekosystemie GNU/Linux, jest jego niezgodność licencyjna z GNU GPL. Bez zbyt wiele szczegółów, BTRFS znajduje się w GPL, co pozwala użytkownikom przyjmować kod źródłowy i modyfikować go, ale modyfikacje powinny być również publikowane w GPL i pozostać open source.
Z drugiej strony OpenZFS jest licencjonowany w CDDL, który jest znacznie bardziej dopuszczalny i pozwala użytkownikom modyfikować i rozpowszechniać kod z większym stopniem swobody.
Społeczności i firmy za nimi
Openzfs ma za sobą ogromną społeczność. FreeBSD Community, Illumos Community i wielu innych projektów open source opiera. Od czasu jego powstania od samego początku wzrosła pod względem podstawy kodu, podstawy użytkowników, funkcji i elastyczności. Firmy takie jak Delphix, IXSystems, Joyent i wiele bardziej polegają na nim i mają do czynienia z ich programistami, ponieważ jest to podstawowy element ich działalności. Wiele innych organizacji może korzystać z OpenZFS bez naszej wiedzy, dzięki licencji CDDL nie muszą wychodzić i mówić, że z niego korzystają.
BTRFS miał Red Hat jako jeden z głównych stewardów swojej społeczności. Jednak otrzymało to poważny cios, kiedy Red Hat stał się srektem plików, oznacza to, że nie zobaczysz go w żadnym przyszłym RHEL, a firma nie zapewni komercyjnego wsparcia na pudełku z pudełka. Suse posunął się jednak tak daleko, aby uczynić to ich domyślnymi, a ich prosperująca społeczność stojąca za systemem plików z wkładem Facebooka, Intel i innych goryli 800 funtów w Dolinie Krzemowej.
Niezawodność
ZFS był zaprojektowany być niezawodnym od samego początku. Ludzie mają ZPOOL z początku 2000 roku, które nadal są użyteczne i gwarantują, że nie zwracają błędnych danych. Tak, było kilka snafus z plikami znikającymi dla Openzfs w Linux, ale biorąc pod uwagę jego długą historię, osiągnięcia jest zaskakujące czyste.
Z drugiej strony BTRFS miał problemy od samego początku. Z interfejsami Buggy do utraty danych i uszkodzenia plików. Nawet teraz jest to śmiech w społeczności. Zrób to, co będziesz.
Obsługiwane systemy OSE
BTRFS ma swoje pochodzenie ma system plików dla Linuksa, podczas gdy ZFS był opracowany w Sun, dla Solaris OS. Jednak OpenZFS już dawno został przeniesiony do FreeBSD, OS X Apple, pochodne open source Solaris. Jego wsparcie dla Linuksa przyszło nieco później, niż bywaby się przewidywać, ale jest tutaj, a korporacje na nim polegają. Projekt, który sprawił, że działał w Microsoft Windows, również robi sporo postępów, chociaż jeszcze nie jest tam.
Wniosek: Uwaga na temat monokultur
Cała ta rozmowa może przekonać cię do użycia OpenZFS, aby zapewnić bezpieczeństwo danych, a to nie jest zły sposób działania. Jest obiektywnie lepszy niż BTRFS pod względem funkcji, niezawodności, społeczności i wielu więcej. Jednak na dłuższą metę może to nie być dobre dla społeczności typu open source, ogólnie.
W poście zatytułowanym podobnym do tego autora opowiada o niebezpiecznych monokulturach. Zachęcam do przejścia przez ten post. Istotnie jest to - Opcje są ważne. Jedną z największych sił oprogramowania open source (i ogólnie oprogramowania) jest to, że mamy wiele opcji do przyjęcia. Jest apache, a potem nginx, są BSD i Linux, jest OpenSsl i jest Libressl.
Jeśli istnieje śmiertelna wada w żadnej z tych kluczowych technologii, świat nie przestanie się kręcić. Ale wraz z rozpowszechnieniem OpenZFS technologia przechowywania zamieniła się w coś w rodzaju monokultury. Bardzo chciałbym dla programistów i programistów systemowych, którzy to czytają, aby przyjąć nie Openzfs, ale projekty takie.