Jaki system plików dla dużych LVM dysków (8 TB)?


21

Mam serwer Linux z wieloma dyskami 2 TB, wszystkie obecnie w LVM, co daje około 10 TB miejsca. Używam całego tego miejsca na partycji ext4 i obecnie mam około 8,8 TB danych.

Problem polega na tym, że często dostaję błędy na moich dyskach i nawet jeśli je wymienię (to znaczy skopiuję stary dysk na nowy za pomocą dd, a następnie wstawię nowy na serwer), gdy tylko pojawią się błędy, Często dostaję na nim około 100 MB uszkodzonych danych. To sprawia, że ​​e2fsck szaleje za każdym razem i często powrót systemu plików ext4 do normalnego stanu zajmuje tydzień.

Pytanie brzmi: co poleciłbyś mi użyć jako systemu plików na mojej LVM? Albo co poleciłbyś mi zamiast tego (tak naprawdę nie potrzebuję LVM)?

Profil mojego systemu plików:

  • wiele folderów o różnych rozmiarach całkowitych (niektóre łącznie 2 TB, niektóre łącznie 100 MB)
  • prawie 200 000 plików o różnych rozmiarach (3/4 z nich około 10 MB, 1/4 między 100 MB a 4 GB; obecnie nie mogę uzyskać więcej statystyk plików, ponieważ moja partycja ext4 jest całkowicie zniszczona przez kilka dni)
  • dużo czyta, ale mało pisze
  • i potrzebuję tolerancji na awarie (przestałem używać mdadm RAID, ponieważ nie lubi JEDEN błąd na całym dysku, a czasami mam awarie dysków, które wymieniam tak szybko, jak to możliwe, ale to oznacza, że ​​mogę uzyskać uszkodzone dane na mój system plików)

Głównym problemem są awarie dysków; Mogę stracić niektóre pliki, ale nie stać mnie na utratę wszystkiego w tym samym czasie.

Jeśli nadal używam ext4, słyszałem, że powinienem spróbować stworzyć mniejsze systemy plików i jakoś je „scalić”, ale nie wiem jak.

Słyszałem, że btrfs byłby miły, ale nie mogę znaleźć żadnych wskazówek, jak radzi sobie z utratą części dysku (lub całego dysku), gdy dane NIE są replikowane ( mkfs.btrfs -d single?).

Wszelkie porady w tej sprawie będą mile widziane, z góry dzięki!


1
Dokładnie jakie błędy dysku masz. To powinno dać wskazówkę
Soham Chakraborty

Złe sektory, często jest to tylko jeden lub dwa złe sektory na całym dysku ...
alphatiger

Oznacza to, że dysk się psuje. Prawie nic wspólnego z systemem plików. Jeśli dysk jest zły, bez względu na to, jakiego używasz, będzie przydatny. Jak wspomnieli inni, wybierz dyski RAID i / lub kup dyski dla przedsiębiorstw. Poszukaj również kontrolerów jakości.
Soham Chakraborty

Tak, wiem, dlatego wymieniam dyski, które się psują. Przepraszam, jeśli moje pytanie nie było jasne. Ale nadal myślałem, że niektóre systemy plików będą działać lepiej z uszkodzonymi danymi ...
alphatiger

Naprawdę powinieneś wymienić wadliwe elementy swojego sprzętu. To tak, jakby patrzeć na manekina do testów zderzeniowych po przejechaniu samochodem o ścianę z prędkością 200 km / h. „Och, patrz! Jego lewa noga jest prawie OK! Test zakończył się powodzeniem!” ... żaden system plików nie może ci pomóc, jeśli podstawowy sprzęt zostanie zepsuty. XFS ma szybszy fsck niż ext *, a po upływie wystarczającego czasu i systemu plików dojrzewa nieco więcej, być może btrfs też by działało. Potem jest ZFS, ale w Linuksie jego stan jest trochę smutny.
Janne Pikkarainen

Odpowiedzi:


22

To nie problem z systemem plików, to fizyczne ograniczenia dysków. Oto niektóre dane:

Dyski SATA są zwykle określane z nieusuwalnym współczynnikiem błędów odczytu (URE) wynoszącym 10 ^ 14. Oznacza to, że 1 bajt na 12 TB zostanie nieodwracalnie utracony, nawet jeśli dyski będą działać poprawnie.

Oznacza to, że bez RAID utracisz dane, nawet jeśli nie dojdzie do awarii dysku - RAID jest twoją jedyną opcją.

Jeśli wybierzesz RAID5 (całkowita pojemność n-1, gdzie n = liczba dysków), to wciąż za mało. Z 10 TB RAID5 składającym się z 6 x 2 TB HDD będziesz miał 20% szansy na awarię jednego dysku rocznie, a przy awarii jednego dysku, dzięki URE będziesz miał 50% szans na pomyślną odbudowę RAID5 i odzyskanie 100% swoich danych .

Zasadniczo dzięki dużej pojemności dysków i stosunkowo wysokiemu URE potrzebujesz RAID6, aby zabezpieczyć się nawet przed awarią pojedynczego dysku.

Przeczytaj to: http://www.zdnet.com/blog/storage/why-raid-5-stops-working-in-2009/162


3
Czekaj, URE oznacza Nieodwracalne Read Error ale to nie znaczy, że dysk faktycznie HAS błąd. Następny odczyt może (i prawdopodobnie zwróci) prawidłowy bit. System operacyjny prawdopodobnie po prostu ponownie przeczyta sektor i uzyska prawidłowe dane. Zapomniałeś także mówić o SMART: zanim sektor zostanie trwale uszkodzony, SMART spróbuje odczytać / zapisać dane z niego / do niego. Jeśli wykryje zbyt wiele awarii, SMART po prostu przenosi zawartość sektora w inne miejsce i oznacza sektor jako ZŁY i nikt już nie będzie mógł na nim pisać.
Avio

Sugerujesz więc, aby kupić mnóstwo dysków bez pytania DLACZEGO jego dyski są tak wadliwe. Może to być problem z wysoką temperaturą, może to być problem z wadliwym kontrolerem SATA, może to być problem ze złymi złączami SATA itp. Itp.
Avio

@Avio Mówię, że z 10 TB danych będziesz mieć błędy odczytu z powodu ograniczeń dysku twardego, nawet jeśli wszystkie dyski, kontroler SATA, złącza SATA itp. Są w idealnym stanie i działają zgodnie ze specyfikacjami. Mówię również, że nawet jeśli zdecydujesz się użyć RAID w celu złagodzenia, powinieneś iść z RAID6, ponieważ pojemność dysku + URE sprawia, że ​​nawet RAID5 nie jest wystarczająco niezawodny. Nawet awaria pojedynczego dysku w macierzy RAID5 ma dużą szansę na utratę danych (50% FFS!).
c2h5oh

1
@Avio U w URE oznacza Nieodwracalne, ponieważ już nie ma go na dobre.
c2h5oh

Może to być problem z systemami plików, jeśli użyjesz kopii w systemie plików zapisu, takim jak btrfs lub xfs, najprawdopodobniej możesz odzyskać poprzednią wersję pliku, więc tracisz tylko ostatnią zmianę w pliku. (jeśli kiedykolwiek został zmieniony)
Jens Timmerman

13

Zrób sobie przysługę i użyj RAID dla swoich dysków, może to być nawet RAID programowy z mdadm. Zastanów się także, dlaczego „często występują błędy na dyskach” - nie jest to normalne, z wyjątkiem sytuacji, gdy używasz tanich dysków SATA klasy stacjonarnej zamiast dysków klasy RAID.

Po tym system plików nie jest już tak ważny - ext4, xfs są dobrym wyborem.


1
Zgadzam się, że powinienem;) ale nie używam RAID z wielu powodów. Główną jest cena, ponieważ są one 2-3 razy droższe i naprawdę nie stać mnie na to. Drugim powodem jest to, że ostatnim razem, gdy użyłem RAID 5, miałem szczęście zdobyć dwa złe dyski, zanim mogłem podłączyć nowy i zsynchronizować go (nie miałem wtedy żadnych zapasowych dysków, musiałem czekać na nowy; zgadzam się, że z dyskami klasy RAID miałbym ten problem). Trzeci powód jest taki, że w miarę wzrostu ilości danych, które muszę przechowywać, stopniowo dodaję nowe dyski o większych rozmiarach, czego nie mogę zrobić z konfiguracją RAID.
alphatiger

Próbuję więc sprawdzić, czy istnieje system plików, który ktoś poleciłby mi do użycia w konfiguracji, w której nie mogę polegać na nieuszkodzonych danych. Mimo to dziękuję za odpowiedź!
alphatiger

4
Mówisz, że twoje dane nie są warte dodatkowych kosztów? Jeśli nie możesz sobie pozwolić na co najmniej dwie kopie danych, powinieneś uznać je za utracone. Masz rację, że RAID5 prawdopodobnie nie jest dobrym wyborem, prawdopodobnie powinieneś spojrzeć na RAID6 lub RAID10.
Zoredache,

@alphatiger: Dyski są zbyt drogie tylko wtedy, gdy twój czas i dane są zbyt tanie.
Przywróć Monikę - M. Schröder

8

Miałem szczęście z ZFS, możesz sprawdzić, czy jest dostępny w jakiejkolwiek dystrybucji, której używasz. Uczciwe ostrzeżenie, prawdopodobnie oznacza przebudowę całego systemu, ale daje naprawdę dobrą wydajność i odporność na uszkodzenia.


Obecnie używam Debian GNU / Linux, wygląda na to, że jest implementacja FUSE, ale nie ma pakietu (z powodu problemów z licencjonowaniem). Prawdopodobnie spróbuję (po skompilowaniu ze źródeł, ponieważ używanie FUSE nie jest bardzo przyjemne z powodu wysokiej wydajności), nie martwię się o konieczność odbudowania całego systemu plików. Dzięki !
alphatiger

+1 dla ZFS. Tradycyjna macierz RAID po cichu uszkodzi dane, ponieważ nie jest wystarczająco inteligentna, aby wiedzieć, kiedy bloki są nieprawidłowe lub jak je naprawić. ZFS natomiast wykryje uszkodzone bloki (za pomocą sum kontrolnych) i naprawi je ze znanych dobrych kopii lustrzanych. Uruchamianie ZFS pod FUSE, choć nie jest idealne, będzie działać wystarczająco dobrze dla wielu obciążeń. To powiedziawszy, należy załadować przetestować aplikację przed użyciem jej w środowisku produkcyjnym.
bahamat

1
Kolejny +1 dla ZFS. Prawie wszystkie serwery tutaj działają na Linuksie i jestem jego wielkim fanem, ale ZFS okazał się tak przydatny w ciągu ostatnich 3 lat, że faktycznie przeszedłem wysiłek uczenia się i konfigurowania FreeBSD na duża maszyna do przechowywania, aby móc korzystać z ZFS bez żadnych problemów z licencjonowaniem lub wydajnością.
ssc

Używam go w systemie Solaris na mojej starej stacji roboczej Sun, a wydajność jest niesamowita, biorąc pod uwagę sprzęt (jednordzeniowy Opteron @ 2,2 GHz z 3G pamięci i parę napędów SATA 250G).
TMN

8

Stopniowo dodaję nowe dyski o większych rozmiarach

Ponieważ interesujesz się używaniem LVM i chcesz obsługiwać wiele dysków, prostą odpowiedzią byłoby po prostu użycie funkcji kopii lustrzanej, która jest częścią LVM. Po prostu dodaj wszystkie woluminy fizyczne do LVM. Podczas tworzenia woluminu logicznego podaj tę --mirrorsopcję. To powiela twoje dane.

Inną opcją może być po prostu skonfigurowanie kilku par RAID1. Następnie dodaj wszystkie woluminy RAID1 jako PV do swojego VG. Następnie, gdy chcesz rozszerzyć przestrzeń dyskową, po prostu kup parę dysków.


7

Zobacz moje komentarze do odpowiedzi SvenW, aby zobaczyć, dlaczego tak naprawdę nie chcę RAID. (W rzeczywistości już skonfigurowałem wiele programowych macierzy RAID w firmie, na którą było to stać ...) Mimo to, dzięki!
alphatiger

Zawsze stosowałem dyski towarowe dla macierzy RAID, nigdy nie korzystałem z dysków przystosowanych do RAID i nigdy nie miałem z tym problemów, dopóki wybierzesz macierz RAID, która ma wystarczającą nadmiarowość (RAID 6 lub RAID 60). Używając RAID 6 potrzebujesz parzystej liczby. Możesz dość łatwo rozwijać macierze RAID, zastępując istniejących członków większymi dyskami, a następnie powiększając przestrzeń na nowe dyski.
slm

4

Jeśli naprawdę martwisz się uszkodzeniem danych, poleciłbym system plików z kontrolną kontrolą, taki jak zfs i btrfs - choć zauważ, że btrfs wciąż jest uważany za opracowywany i nie gotowy do produkcji.

Nie ma gwarancji, że dane odczytane (nawet pomyślnie odczytane) z dysku będą prawidłowe. Bloki mają sumy kontrolne, ale są to proste sumy kontrolne, które nie zawsze wychwytują błędy. Nowsze systemy plików, takie jak ZFS, dołączają do plików bardziej wydajne sumy kontrolne i mogą (i podobno robią) wychwytywać i naprawiać błędy danych niezauważone przez dysk twardy lub kontroler RAID.


1

Jak @ C2H5OH mówi The Nieodwracalne jest krytyczny - oznacza to, że dysk został już wypróbowany i nie re-read sektora.

Z mojego doświadczenia wynika, że ​​gdy dysk zacznie generować nieodwracalne błędy odczytu (URE), niektóre dane zostaną utracone na zawsze, a jedyną nadzieją jest natychmiastowe wykonanie kopii zapasowej wszystkich danych za pomocą GNU ddrescue , które mogą ponowić awarie sektorów, a także pominąć te nieodwracalne.

Zakładając, że masz kopie zapasowe, mogą się nie powieść z powodu URE i na pewno będą miały uszkodzone pliki, więc będziesz musiał zebrać pełny zestaw danych z różnych kopii zapasowych tego samego systemu plików.

Warto zapoznać się z innymi odpowiedziami zalecającymi ZFS, ponieważ jego ciągłe czyszczenie danych i funkcje RAID pomogą zachować bezpieczeństwo danych w przyszłości - choć nadal nie zastąpi kopii zapasowych, które również chronią przed błędami użytkowników i administratorów.

Używałbym LVM tylko wtedy, gdy nie potrzebujesz migawek - nie integruje się tak dobrze z RAID, nie obejmuje czyszczenia danych / sum kontrolnych danych, a nadal potrzebujesz kopii zapasowych, więc coś takiego jak ZFS jest prawdopodobnie lepszą opcją. Zobacz tę odpowiedź na temat problemów i ryzyka LVM, aby uzyskać więcej.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.