Как долго fsck может занять объем 30 ТБ?

17

В середине ноября перестал отвечать VPS, который я арендую у хостинговой компании. Когда я связался со службой поддержки, они объяснили, что отключение питания в центре обработки данных вызвало принудительную перезагрузку и fsck. В конце концов я спросил, почему это занимает так много времени, и мне ответили, что размер тома составляет 30 ТБ. Последний раз я получал обновления в феврале, и они не ответили на мой последний запрос.

Я понимаю, что fsck может быть очень медленным для некоторых файловых систем, но возможно ли, чтобы fsck занял 6 месяцев при объеме в 30 ТБ, или я должен предположить, что эта хостинговая компания лжет мне, чтобы я продолжал оплачивать свой счет каждый месяц?

Брайан Би
источник
39
Вероятно, они лгали вам с самого начала. Я ожидаю, что это займет несколько часов . Вы должны были перестать платить в декабре.
Michael Hampton
15
Даже если они не лгут, выбирая настройку программного обеспечения HW +, которая может потребовать FSCK, который долго показывает их некомпетентность. И независимо от причины, они не предоставляют услуги, за которые вы платите.
Питер Кордес
34
Звучит как настоящий кластер fsck!
JMK
2
@JMK Теперь я хотел бы, чтобы был способ пометить комментарии для дополнительной заслуги, возможно, добавить в зал славы.
труба
2
То, что говорит @PeterCordes, является ключевым моментом. Вы платите за услугу. Вам действительно жаль слышать, что у них проблемы, но вы звоните по поводу услуги, за которую платите, а не получаете.
Роб Мойр

Ответы:

31

fsckСкорость в основном зависит от количества файлов и того, как они распространяются в соответствующем каталоге. Тем не менее, 6 месяцев для a fsckабсолютно абсурдно: он должен был закончиться максимум за несколько часов, особенно если использовать xfsкоторый имеет быструю xfs_repairутилиту. Здесь вы можете найти fsckпробежку в масштабе - все выполнено менее чем за час (3600 с). Таким образом, это не возможно, что ваш fsckвсе еще работает.

В любом случае, неожиданная потеря питания не вызовет полного удара fsck, а только очень быстрое (несколько секунд) воспроизведение журнала . Однако, если некоторые ключевые файлы были повреждены, ОС может не загружаться.

Но они, вероятно, просто лгали вам. Вы должны немедленно прекратить оплату, попросить объяснения и подать заявку на полный возврат средств.

shodanshok
источник
8
Если они используют ext2, то сбой питания потребует полного fsck, и я не удивлюсь, если это займет несколько дней на интенсивно используемых 30TB тома. С другой стороны, если они используют ext2том объемом 30 ТБ, это само по себе является причиной для поиска услуг хостинга в других местах.
Марк
14
В ext2 используется 32-разрядный счетчик блоков с максимальным размером блока 4096 байт (т. е. страница) в x86 и x86_64. Это означает, что ext2 (и ext3) ограничены объемом 8 ТБ, поэтому нет, OP не может использовать ext2 / 3. В любом случае, использование любой не журналируемой файловой системы на томе объемом 30 ТБ было бы абсолютно безумным .
Сёданшок
Я думаю, что ext4 fsck может быть немного лучше, если у вас есть 30Tb FS, содержащий огромное количество крошечных файлов. Безумие, чтобы создать это, так что все еще повод искать в другом месте.
nigel222
7

Предположение: в их системе используется RAID-массив без BBU / FBWC (или даже программный RAID) со всеми возможными кэшами записи (в том числе в самих жестких дисках), настроенными на самые агрессивные настройки, чтобы получить максимальную производительность при минимальных затратах. Отключение питания при такой установке может привести к тому, что файловая система журналирования окажется в состоянии, когда журнал не может быть доверенным и не может использоваться для восстановления. Проблема заключается в том, что такая система агрессивно переупорядочивает и откладывает записи, что означает, что запись в журнале может быть записана с эффектом потери действия с данными ... или с потерей записи журнала в отношении действия с данными, которое было косвенным.

Восстановление такой системы после простоя в худшем случае может означать, что вы должны выполнить «медленный» fsck / repair, который на самом деле проверяет все структуры файловой системы, как они есть, что может действительно занять день или два за 30 ТБ .... и это не исключено, что вам придется выполнить несколько циклов ремонта. Добавьте к этому, что персонал может быть не всегда доступен для мониторинга, вы можете легко сократить время на одну fsck в неделю. Вероятно, они сдались и забыли.

rackandboneman
источник
1

Для большинства файловых систем это будет намного быстрее, даже при наличии ошибок, поскольку обычно проверяются только метаданные.

В худшем случае он может прочитать весь диск ( например, что-то вроде того fsck.ext4 -cc /dev/sda, который выполняет неразрушающий тест записи для каждого блока), что может занять несколько дней для 30 ТБ. Если вы знаете скорость дисков, вы можете рассчитать размер / скорость . Для потребительского жесткого диска со скоростью около 100 МБ / с копирование нескольких ТБ может занять больше часов, чем большинство людей ожидают.

Если бы это был ваш сервер, у вас могла бы быть проблема, что он загружается, а затем зависает, когда fsckспрашивает вас, хотите ли вы исправить ошибку. Но администратор центра обработки данных не будет зависать в fsckтечение 6 месяцев, пока все VPS отключены.

Значит, они либо лгут вам, либо существует огромное недоразумение. Или они запускали fsck некоторое время назад и не сообщали вам о новой проблеме после ее завершения.

алло
источник
4
fsckОбходит все структуры файловой системы, что в основном означает выполнение случайного ввода-вывода. Поэтому приведенный выше расчет, основанный на последовательной скорости передачи, не очень полезен.
Shodanshok
@shodanshok действительно, файловая структура не имеет отношения к общей проверке диска, как я только что объяснил в своем ответе.
Сверхразум
@shodanshok Мое предположение наихудшего случая основывалось на очень обширном fsck. Например, типичный xfs fsck мало что делает. У ext2 длительная расширенная проверка, а старый скандиск MS-DOS проводил тест чтения-записи на каждом блоке жесткого диска при запуске в полном режиме. Таким образом, у вас есть верхняя граница для размера диска.
Алло
1
@ Overmind И ваш ответ не имеет отношения к вопросу, касающемуся fsck, а не общей проверки диска.
Блэкджек
Помните, что использование типичной пропускной способности диска в качестве индикатора может ввести в заблуждение. Я сделал математику, когда однажды повторно синхронизировал массив, который должен (по моему мнению) занял меньше дня, и это заняло более двух недель! Поиск - один из доминирующих факторов общего времени, и даже если вы думаете, что выполняете строго последовательную операцию, иногда это не так. Теперь fsck строго непоследователен, так что ... вы никак не можете судить от обычной пропускной способности диска до продолжительности операции (тем не менее, месяцы - это смешно ... это очевидная ложь).
Деймон