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!
źródło
Odpowiedzi:
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
źródło
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.
źródło
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.
źródło
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ę
--mirrors
opcję. 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.
źródło
Naprawdę powinieneś używać RAID 5, 6, 10, 50 lub 60. Oto kilka zasobów na początek:
informacje podstawowe o macierzach RAID
instrukcje i konfiguracja
Sprawdź moje pyszne linki, aby uzyskać dodatkowe linki RAID: http://delicious.com/slmingol/raid
źródło
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.
źródło
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.
źródło