System plików Linux dla dużego serwera plików

8

Chciałbym wiedzieć, od bardziej doświadczonych osób, jaki byłby najlepszy wybór systemu plików dla serwera plików posiadającego więcej niż 20 TB dysków twardych. Osobiście zawsze używałem EXT3 (za czasów) i EXT4 (od kiedy są dostępne) [i raz ReiserFS 3, chociaż spowodował wiele uszkodzeń danych] na moich komputerach osobistych oraz na dyskach BOOT i ROOT „małych serwerach”.

Ponieważ jednak narzędzia EXT4 (choć nie samo EXT4) są ograniczone do partycji 16 TB, może to nie być mój najlepszy wybór. Dystrybucją będzie Debian 6.0 (Squeeze) i / lub Gentoo (najnowsza wersja), więc jądro powinno być całkiem nowe (na Debianie przynajmniej z backportami), co oznacza, że ​​jądro Linuksa> = 2.6.32.

Serwer plików będzie wykorzystywany do trzech celów pocztowych (a także do oddzielnych partycji, ponieważ celem jest zapewnienie bezpieczeństwa danych i nie przejmowanie się nadmiernymi kosztami). Wszystkie dyski mają być jednak szyfrowane przy użyciu LUKS :

  1. Media, pliki do pobrania i lokalne repozytorium debiana [Mam co najmniej 6 komputerów z systemem Debian]> 20 TB (być może dalsze oddzielenie mediów, plików do pobrania i repozytorium Debiana)
  2. Dane (dokumenty, zdjęcia, ...) ~ 4 TB BEZPIECZNE (co oznacza dysk raid1 lub raid6 +)
  3. Kopie zapasowe> = 20 TB dla kopii zapasowych innych komputerów w moim gigabit LAN (czy możesz zasugerować oprogramowanie, które tworzy kopię zapasową całego systemu operacyjnego, nawet jeśli jest to system Windows, BackupPC twierdzi, że to robi, jakieś alternatywy?)

Szybkie prędkości nie są tak naprawdę konieczne (równoczesny dostęp: maksymalnie 2 lub 3 duże pliki, powiedzmy filmy), nawet jeśli „zaledwie” 200 MB / s odczytuje z 10 dysków HDD Raid6, z którymi mogę żyć.

Podsumowując, szukam niezawodnego, skalowalnego (tj. Łatwo rozszerzalnego) systemu plików, który obsługuje ponad 20 TB / partycję. Im bezpieczniejszy i niezawodny FS, tym lepiej. Zastosowany sprzęt będzie co najmniej czterordzeniowy (amd x4 630 lub intel i5-2500k) i dużo pamięci RAM (> 8 GB, może> 16 GB), więc wymagania sprzętowe powinny zostać spełnione.

Moje komputery / serwer zostaną podłączone do UPS (nieprzerwanego źródła zasilania) w przypadku awarii zasilania Może również wykonywać media i kopie zapasowe na oddzielnych komputerach (tj. Na dwóch serwerach).

użytkownik51166
źródło
7
W tej skali naprawdę musisz poważnie oceniać ZFS. Czasy odbudowy i poziomy błędów stają się poważnym problemem z tyloma dyskami, o których mówisz, a zfs jest jedynym stabilnym fs dostępnym teraz z solidnym sprawdzaniem błędów i poprawianiem przez cały stos.
afrazier
1
ZFS nie jest natywnie obsługiwany przez Linuksa (tylko z FUSE) lub jest natywnie obsługiwany we wczesnym stanie sprzed alfa. Nie uważam używania solaris za opcję. Nigdy nie próbowałem FreeBSD raz i być może będę zainteresowany, ale nie teraz, jeśli jego wsparcie dla oprogramowania (i ogólna obsługa sprzętu) jest tak dobre, jak Linuksa
51166,
1
Wiem, ale ZFS działa natywnie na innych platformach. Chociaż wsparcie sprzętowe nie jest takie samo jak Linux, to powinno być najmniejsze z twoich zmartwień. ZFS to pełny stos pamięci, więc nalot programowy nie wchodzi w rachubę. Oceń, jak zamierzasz przechowywać, zarządzać, chronić i tworzyć kopie zapasowe danych przed wybraniem systemu operacyjnego lub systemu pamięci masowej. Nie dyskontuj ZFS tylko dlatego, że nie jest natywny w Linuksie, jest to prawdopodobnie najbardziej zaawansowane rozwiązanie pamięci masowej dostępne obecnie za darmo.
afrazier
Dziękuję za twoje odpowiedzi, ale nie rozumiem: nawet jeśli mógłbym używać FreeBSD bez problemów (nie jestem tego pewien), czy jest coś takiego jak zaimplementowany raid oprogramowania? Coś takiego jak LUKS (Linux Encryption) dla FreeBSD? Dzięki. Znam głównie Gentoo i Debian GNU / Linux. Serwer jest serwerem domowym .
user51166,
A może sugerujesz inny system operacyjny niż FreeBSD?
user51166,

Odpowiedzi:

3

Wiele osób sugeruje ZFS. Ale ZFS nie jest dostępny natywnie pod Linuksem inaczej niż przez bezpiecznik. Nie poleciłbym tego w twojej sytuacji, w której wydajność może być ważna.

Niestety, ZFS nigdy nie będzie dostępny jako natywny moduł jądra, chyba że problemy licencyjne zostaną jakoś rozwiązane.

XFS jest dobry, ale niektóre osoby zgłosiły problemy z korupcją i tak naprawdę nie mogę tego komentować. Grałem z małymi partycjami XFS i nie miałem tych problemów, ale nie produkowałem.

ZFS ma zbyt wiele zalet i przydatnych funkcji, których nie można jednak zignorować. Podsumowując, są (patrz Wiki ZFS, aby uzyskać pełny opis ich znaczenia):

  • Integralność danych
  • Pule pamięci
  • L2ARC
  • Wysoka pojemność
  • Kopiuj podczas zapisu
  • Migawki i klony
  • Dynamiczne pasy
  • Zmienne rozmiary bloków
  • Lekkie tworzenie systemu plików
  • Zarządzanie pamięcią podręczną
  • Adaptacyjna endianizm
  • Deduplikacja
  • Szyfrowanie

Jak więc sobie z tym poradzić? Moja sugerowana alternatywa, która może pasować do twojej sytuacji, to rozważyć nexenta . To jest jądro Open Solaris z uruchomionymi narzędziami GNU Userland. Posiadanie jądra Open Solaris oznacza natywną dostępność ZFS.

Matt H.
źródło
Z ich strony „Community Edition: nieograniczona, DARMOWA wersja do 18 TB przestrzeni dyskowej”. Wydaje się, że
dostałbym
I zrozumiałem, że ZFS jest po prostu „najlepszy”, jak prawie wszyscy mówią. Próbuję tylko znaleźć „najlepszą” dystrybucję systemu operacyjnego / solaris, która może go uruchomić.
user51166
Debian GNU / kFreeBSD wydaje się wspierać ZFS i podoba mi się sposób Debiana, nie jestem jednak pewien, czy mogę go użyć, ponieważ wydaje się, że istnieje niewielka społeczność wspierająca i wciąż ma kilka poważnych błędów.
user51166
@ user51166 - Powinieneś również rozważyć FreeBSD lub FreeNAS, jeśli twój serwer służy wyłącznie do przechowywania. Oba mają obsługę ZFS.
Matt H
4

Powinieneś spróbować XFS, dobrze pasującego do twoich wymagań:

XFS to 64-bitowy system plików. Obsługuje maksymalny rozmiar systemu plików wynoszący 8 ekbibajtów minus jeden bajt, choć podlega to ograniczeniom bloków narzuconym przez system operacyjny hosta. W 32-bitowych systemach Linux ogranicza to rozmiar pliku i systemu plików do 16 tebibajtów.

Aleroot
źródło
Słyszałem, że może to spowodować utratę danych w przypadku awarii zasilania, a jego kronikowanie nie obejmuje danych (tylko kronika metadanych). Użyłem go raz na pulpicie, ale wygenerowałem wiele błędów fsck, dlatego wolałem go nie używać. Powtarzam: wydajność nie jest (głównym) zakresem tego wyboru: stabilność jest.
user51166,
Nie sądzę, że XFS jest niestabilny, używam go na kilku serwerach plików i nie miałem żadnych problemów ...
aleroot
Nie, jest stabilny w sensie stabilnej wersji. Czy to oznacza, że ​​przez lata nie będę tracił danych? XFS jest z pewnością dobry, jeśli szukasz wydajności, choć pamiętam, że czytając w sieci wystąpiły problemy z utratą danych (choć na szczęście nie tak wiele, jak w przypadku Reiser 3). Zapomniałem podać, ale patrzę na konfigurację LUKS, dlatego LVM zostanie użyty , jeśli to może pomóc.
user51166,
Nie istnieje idealny system plików ... Myślę, że do twoich wymagań najlepiej pasuje XFS. Nie powinno być problemu z użyciem LVM na XFS.
aleroot,
Na pewno nie. Jakieś specjalne „ograniczenia” / „cechy”? Problemy z fsck i / lub defragmentacją online, takie jak problemy z ext4?
user51166,
4

Najłatwiejszą opcją jest użycie XFS. Wiele złych doświadczeń związanych z XFS opiera się na starych wersjach i problemach ze sprzętem komputerowym, które nie są tak naprawdę istotne w przypadku nowych wdrożeń na standardowym sprzęcie serwerowym. Napisałem wpis na blogu na ten temat, który może pomóc w rozwiązaniu bieżącej sytuacji. Istnieje wiele zajętych instalacji baz danych XFS z setkami użytkowników i terabajtami danych, którym pomagam zarządzać. Wszystkie są w jądrze Debiana Lenny'ego (2.6.26) lub nowszego i od lat nie słyszałem o nich żadnych kłopotów. Nie użyłbym XFS z żadnym wcześniejszym jądrem niż to. Słyszałem niektóre bezpośrednie doniesienia o tym, że ludzie widzą dziwne zachowanie XFS, gdy w systemie kończy się pamięć lub miejsce na dysku; Jednak sam tego jeszcze nie widziałem.

Jedyną inną rozsądną opcją jest użycie ext4 z pewnym hakowaniem do obsługi większych systemów plików. Nie spodziewałbym się, że będzie miał zupełnie inny poziom niezawodności. Musiałem odzyskać dane z wielu zepsutych systemów ext4, które napotkały błędy jądra, jak dotąd wszystkie naprawione w górę, ale nie w tym czasie w jądrze dystrybutora. ext4 ma swój własny zestaw problemów z metadanymi, takich jak opóźniona utrata danych alokacji , rzeczy, które były mniej prawdopodobne na ext3. Szacowałbym, że szanse na trafienie w błąd ext4 byłyby nawet wyższe niż normalnie, jeśli wymuszasz przekroczenie normalnego limitu rozmiaru, po prostu dlatego, że wydaje się bardziej prawdopodobne, że w pewnym momencie trafisz na mniej sprawdzoną ścieżkę kodu .

Alternatywnym pomysłem jest użycie bezpieczniejszego i nudniejszego ext3, zaakceptowanie limitu 16 TB i lepsze dzielenie partycji, aby żaden pojedynczy system plików nie musiał być tak duży.

Jeden luźny koniec związany z wydaniami czasopisma. Nie mówiłeś o tym, jak wszystkie te dyski zostaną połączone. Upewnij się, że rozumiesz konsekwencje buforowania zapisu w twoim łańcuchu pamięci tutaj. Wyłącz go lub upewnij się, że system plików opróżnia pamięć podręczną. Złożyłem trochę zasobów na ten temat w Reliable Writes, jeśli jeszcze tego nie sprawdzasz.

Napędy są do dupy. Macierze RAID są do kitu. Systemy plików są do dupy. Zdarzają się liczne awarie. Cieszę się, że już myślisz o kopiach zapasowych; przejście od dobrej do wysokiej niezawodności w zakresie pamięci wymaga więcej niż tylko RAID i niektórych zapasowych dysków. Nadmiarowość kosztuje coś na każdym poziomie, a pieniądze na sprzęt vs. złożoność oprogramowania są trudne w nawigacji. I obserwuj swoje oczekiwania dotyczące wydajności. Podczas gdy macierz RAID, którą rozważasz, z łatwością wykona setki MB / s, wystarczy dwóch współbieżnych czytników, którzy stale szukają dysku, aby upuścić go do kilku MB / s. Mogę łatwo zmiażdżyć 24-dyskową macierz RAID10, dzięki czemu zapewnia ona jedynie <5 MB / s przy obciążeniu testowym . Jedną rzeczą, która pomaga, jest upewnienie się, że podnosisz „readahead” w górę, jeśli możliwych jest wiele czytników strumieniowych.

Greg Smith
źródło
Zamierzam używać tego w domu, dlatego planuję używać sprzętu głównego nurtu. Równie dobrze mogę korzystać ze sprzętu serwerowego, ale wciąż muszę zobaczyć, co SB-E zaoferuje w przyszłym roku w dziale xeon (chciałbym także trochę zagrać z wirtualizacją). Jeśli nie jest to zbyt drogie, planuję zakup taniego sprzętu serwerowego i pamięci ECC (dużo). Pod względem wydajności nie chcę niczego wyjątkowego.
user51166,
I tak, myślę o kopiach zapasowych, ale wciąż ich nie wdrożyłem. Wciąż szukam rozwiązania do tworzenia kopii zapasowych zdolnego do utworzenia obrazu systemu i / lub łatwego archiwizowania / zip / ... wymaganych folderów z interfejsem zarządzania, który umożliwia automatyczne przywracanie. BackupPC wydaje się po prostu ograniczony i nie jestem pewien, czy zaufałbym Crashplanowi (użyj go do tworzenia kopii zapasowych danych w zdalnej lokalizacji, chciałbym redundancji, a zatem innego systemu). Czy muszę sam napisać internetowy interfejs GUI, czy coś takiego już istnieje (oprogramowanie typu open source lub przynajmniej bezpłatne w użyciu)
user51166
2

Wdrażanie na ZFS przy użyciu FreeBSD może się tutaj zdarzyć przy użyciu gbde do szyfrowania. Sam ZFS byłby dostawcą oprogramowania RAID za pośrednictwem RAIDZ . Złożoność zarządzania pamięcią masową przy budowaniu zpool nie różni się znacząco od tego, co Linux wprowadzi w mdadm, aw niektórych przypadkach będzie łatwiej. Moja pierwsza instalacja ZFS (na Solarisie 10 około 3 lata temu) miała system plików 17 TB na ponad 48 dyskach. Przeżyłem tam wiele awarii bez problemu, ucząc się zarządzania ZFS.

Główną zaletą jest to, że sumowanie kontrolne ZFS zapewnia lepsze wykrywanie błędów niż Linux, co jest warte obrony przed złym sprzętem. Główne wady dotyczą mniej popularnego FreeBSD. Nie wiesz jeszcze, jak go administrować, obsługa sprzętu jest nieco słabsza niż Linux, a ponieważ jest to mniej popularna platforma, nie ma tylu osób, które mogłyby poprosić o pomoc, jeśli napotkasz problemy.

Wiele terabajtowych macierzy pamięci naprawdę podkreśla, w czym ZFS jest dobry. Warto poważnie rozważyć, jeśli chcesz zanurzyć się w coś nowego. Jeśli chcesz odkryć prawdziwą paranoję tworzenia kopii zapasowych, zbuduj serwery kopii zapasowych Linux i FreeBSD, aby zmniejszyć prawdopodobieństwo błędów systemu operacyjnego jako jednego punktu przyczyny awarii.

Greg Smith
źródło
Mam już Linuksa jako serwer plików i nadal muszę go naprawdę używać (zacząłem tylko niektóre testy oprogramowania RAID-6 + LUKS na 6 dyskach). Jedynym problemem jest to, że mam bardzo mało czasu na zabawę. Podoba mi się twoja odpowiedź. Więc co sugerujesz jako system operacyjny, jeśli idziesz w kierunku ZFS? FreeBSD i opensolaris (już nieobsługiwany), OpenIndiana (OpenSolaris opensource, jak go widziałem) i Solaris Express 11 (Oracle: S) wydają się być jedynymi opcjami. Nie używam tego w pracy, to moje hobby w domu, ale i tak chciałbym czegoś stabilnego, a także łatwego w użyciu.
user51166,
Naprawdę przyzwyczaiłem się do używania umiejętności i pojawiania się. Rozumiem, w jaki sposób kompilujesz / zarządzasz / aktualizujesz porty w Freebsd (cd / usr / ... && make install) jest to, że po prostu nie wydaje się „właściwe” (mam nadzieję, że purysta wybaczy mi użycie tego terminu , ale wydaje mi się dziwne, że jeśli chcesz zaktualizować pakiet, musisz to zrobić, brak automatycznego rozwiązywania zależności [po prostu rzuciłem okiem na instrukcję FreeBSD]). A może istnieje prosty system zarządzania pakietami, taki jak Debian lub Gentoo?
user51166,
Wiem już, że mógłbym po prostu zsynchronizować to, co chcę lub tar / diff itp., Ale chciałbym wiedzieć, czy istnieje coś bardziej praktycznego. Dzięki
51166,
-1

Według strony porównawczej systemu plików wikipedia , istnieje wiele znaczących systemów plików, które odpowiadają twoim potrzebom, takich jak JFS, XFS, UDF, ZFS, GPFS i Btrfs. Po prostu kliknij maksymalny rozmiar pliku, aby posortować i wybrać najbardziej odpowiedni

phuclv
źródło