Jak długo fsck może przyjąć wolumin 30 TB?

17

W połowie listopada VPS, który wynajmuję od firmy hostingowej, przestał odpowiadać. Kiedy skontaktowałem się z pomocą techniczną, wyjaśnili, że awaria zasilania w centrum danych spowodowała wymuszony restart i fsck. W końcu zapytałem, dlaczego to trwa tak długo, i powiedziano mi, że rozmiar woluminu wynosi 30 TB. Ostatni raz otrzymałem aktualizację w lutym i nie odpowiedzieli na moje ostatnie zapytanie.

Rozumiem, że fsck może być bardzo wolny dla niektórych systemów plików, ale czy jest możliwe, aby fsck zajął 6 miesięcy na wolumenie 30 TB, czy też powinienem założyć, że ta firma hostingowa mnie okłamuje, aby nadal płacić rachunek co miesiąc?

Brian Bi
źródło
39
Prawdopodobnie kłamali ci od samego początku. Spodziewałbym się, że zajmie to godziny . Powinieneś przestać płacić w grudniu.
Michael Hampton
15
Nawet jeśli nie kłamią, wybranie konfiguracji oprogramowania HW +, która może wymagać FSCK, który długo pokazuje, że są niekompetentni. I bez względu na powód, nie zapewniają usługi, za którą płacisz.
Peter Cordes
34
Brzmi jak prawdziwy klaster fsck!
JMK,
2
@JMK Teraz chciałbym, aby istniał sposób na oznaczenie komentarzy dla dodatkowej zasługi, może dodać do galerii sław.
rura
2
Kluczowe jest to, co mówi @PeterCordes. Płacisz za usługę. Naprawdę przykro Ci słyszeć, że mają problemy, ale dzwonisz w sprawie usługi, za którą płacisz, a której nie otrzymujesz.
Rob Moir

Odpowiedzi:

31

fsckprędkość zależy głównie od liczby plików i sposobu ich rozproszenia w odpowiednim katalogu. To powiedziawszy, 6-miesięczny okres na fsckabsurd jest absolutnie absurdalny: powinien był zostać ukończony najwyżej za kilka godzin, zwłaszcza jeśli korzystasz xfsz szybkiego xfs_repairnarzędzia. Tutaj możesz znaleźć fsckbieg w skali - wszystkie ukończone w mniej niż godzinę (3600s). Tak więc nie jest możliwe, że Twój fscknadal działa.

W każdym razie nieoczekiwana utrata mocy nie spowoduje pełnego uderzenia fsck, a jedynie bardzo szybkie (kilka sekund) powtórzenie dziennika . Jeśli jednak niektóre kluczowe pliki zostaną uszkodzone, system operacyjny może nie zostać uruchomiony.

Ale prawdopodobnie właśnie cię okłamali. Powinieneś natychmiast przestać płacić, poprosić o wyjaśnienie i ubiegać się o całkowity zwrot pieniędzy.

Shodanshok
źródło
8
Jeśli używają ext2, to awaria zasilania będzie wymagała pełnego fscki nie zdziwiłbym się, gdyby zajęło to dni przy mocno zużytym wolumenie 30 TB. Z drugiej strony, jeśli korzystają ext2z wolumenu 30 TB, to samo w sobie jest powodem do szukania gdzie indziej usług hostingowych.
Mark
14
ext2 używa 32-bitowego licznika bloków, z maksymalnym rozmiarem bloku 4096 bajtów (tj. strony) na x86 i x86_64. Oznacza to, że ext2 (i ext3) są ograniczone do woluminów 8 TB, więc nie, OP nie może używać ext2 / 3. W każdym razie użycie dowolnego niezarejestrowanego systemu plików na woluminie 30 TB byłoby absolutnie szalone .
shodanshok
Myślę, że ext4 fsck może być trochę lepszy, jeśli ktoś ma 30 TB FS zawierający ogromną liczbę małych plików. Szaleństwo to stworzyć, więc wciąż powód, by szukać gdzie indziej.
nigel222
7

Przypuszczenie: ich system wykorzystuje RAID bez BBU / FBWC (lub nawet RAID programowy) z wszystkimi możliwymi pamięciami podręcznymi zapisu (w tym również z samych dysków twardych) ustawionymi na najbardziej agresywnych ustawieniach, aby uzyskać maksymalną wydajność przy minimalnych kosztach. Awaria zasilania w takiej konfiguracji może spowodować, że system plików kronikowania pozostanie w stanie, w którym nie można ufać kronikowi i nie można go użyć do odzyskiwania. Problem polega na tym, że taki system agresywnie zmienia kolejność i odkłada zapis, co oznacza, że ​​zapis do dziennika może zostać zapisany z efektem utraty akcji danych ... lub utraty pozycji dziennika w wyniku akcji danych, która była konsekwencją.

Odzyskiwanie takiego systemu po awarii w najgorszym przypadku może oznaczać, że musisz wykonać „powolne” fsck / repair, które faktycznie sprawdzają wszystkie struktury systemu plików takimi, jakie są, co może zająć dzień lub dwa dla 30 TB .... i to nie jest prawdopodobne, że będziesz musiał uruchomić wiele cykli napraw. Dodaj do tego, że personel może nie zawsze być w stanie to monitorować, możesz łatwo sprowadzić się do jednego fsck wykonywanego na tydzień. Prawdopodobnie się poddali i zapomnieli.

rackandboneman
źródło
1

W przypadku większości systemów plików będzie to znacznie szybsze, nawet jeśli wystąpią błędy, ponieważ zwykle sprawdzane są tylko metadane.

W najgorszym przypadku może odczytać cały dysk ( np. Coś w rodzaju fsck.ext4 -cc /dev/sdanieniszczącego testu zapisu na każdym bloku), co może zająć kilka dni dla 30 TB. Jeśli znasz prędkość napędów, możesz obliczyć rozmiar / prędkość . W przypadku dysku twardego z kopiowaniem około 100 MB / s kilka TB może zająć więcej godzin, niż większość ludzi by się spodziewała.

Gdyby to był twój serwer, mógłbyś mieć problem, że uruchamia się, a następnie zawiesza się, gdy fsckpyta cię, czy chcesz naprawić błąd. Ale administrator centrum danych nie pozostawi fsckzawieszenia przez 6 miesięcy, podczas gdy wszystkie VPS są offline.

Więc albo cię okłamują, albo istnieje ogromne nieporozumienie. Lub działali fsck jakiś czas temu i nie informowali cię o nowym problemie po jego zakończeniu.

allo
źródło
4
fsckprzegląda wszystkie struktury systemu plików, co w większości oznacza wykonywanie losowych operacji we / wy. Tak więc powyższe obliczenia, oparte na sekwencyjnej szybkości transferu, nie są zbyt przydatne.
shodanshok
@shodanshok rzeczywiście struktura plików nie ma znaczenia w ogólnym sprawdzaniu dysku, jak właśnie wyjaśniłem w mojej odpowiedzi.
Overmind
@shodanshok moje najgorsze założenie było oparte na bardzo obszernym fsck. Na przykład typowy xfs fsck niewiele robi. ext2 ma długą, obszerną kontrolę, a stary skandisk MS-DOS miał test odczytu-zapisu na każdym bloku dysku twardego, gdy był uruchomiony w trybie pełnym. Masz więc górną granicę rozmiaru dysku.
allo
1
@Overmind I odpowiedź nie ma znaczenia dla pytania, które dotyczy fsck, a nie ogólnej kontroli dysku.
BlackJack,
Należy pamiętać, że przyjmowanie typowej przepustowości dysku jako wskaźnika może wprowadzać w błąd. Zrobiłem matematykę, kiedy raz zsynchronizowałem tablicę, co powinno (moim zdaniem) zająć mniej niż dzień, a zajęło to ponad dwa tygodnie! Poszukiwania są dominującym czynnikiem w całkowitym czasie, a nawet jeśli myślisz , że wykonujesz ściśle sekwencyjną operację, czasami nie jest to jeden. Teraz fsck jest ściśle niesekwencyjny, więc ... w żaden sposób nie można ocenić od zwykłej przepustowości dysku do długości operacji (wciąż miesiące są absurdalne ... to oczywiste kłamstwo).
Damon