Поддерживает ли очистка ZFS распараллеливание для повышения производительности, например, с 64-ядерным процессором AMD Threadripper Pro?

У меня есть zpool из 24 дисков, состоящий из 3 виртуальных устройств RAIDZ1 с 8 дисками Seagate Exos X18 емкостью 16 ТБ на каждое виртуальное устройство. Это Supermicro MB с 64-ядерным процессором AMD Threadripper Pro (128 потоков) и 256 ГБ оперативной памяти ECC.

Загрузка системы во время очистки показывает, что одновременно используются не более двух процессоров, а общее время очистки может занять от пяти до семи дней.

Есть ли способ заставить все ядра ЦП работать параллельно при очистке, чтобы ускорить ее?

2 ответа

Скорее всего, процессор не является ограничивающим фактором производительности. Шпиндели со скоростью 7200 об/мин имеют примерно 60–70 произвольных операций ввода-вывода в секунду. Даже 24 диска не оставляют много запаса производительности для проверки целостности с более низким приоритетом.

Запланируйте на текущий момент, возможно, один скраб в неделю. Если ваша цель — точка восстановления из ночной резервной копии, источник восстановления не будет полностью очищен. Возможно, какой-нибудь снимок. Что может быть для вас приемлемо.

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

Судя по всему, работа по распараллеливанию операций чтения/записи диска для ZFS продолжается, но работа еще не готова к тестированию.

Параметры и немного математики для ответов:

Емкость каждого диска: 16000000000000 байт (не 16 ТБ).

Устойчивая скорость чтения/записи: 270 МБ/с (258 МБ/с).

Среднее время наработки на отказ: 285 лет.

Невосстановимые ошибки чтения сектора на прочитанный бит: 1 битовая ошибка на 116415 ТБ прочитанных данных.

Произвольное чтение 4K QD16 QCD: 170 операций ввода-вывода в секунду.

Произвольная запись 4K QD16 QCD: 550 операций ввода-вывода в секунду.

Каждое виртуальное устройство RAIDZ1 с 8 дисками подключено к 8-канальному адаптеру PCIe 3.0x HBA, который поддерживает постоянную пропускную способность 512 МБ/с на каждый подключенный диск.

HBA подключается к слоту PCI4.0 x16 на 128-полосной материнской плате.

Работая параллельно, система поддерживает полное чтение всех 24 дисков емкостью 16 ТБ за 22 часа.

Я ожидаю, что скраб завершится менее чем за 24 часа; следовательно, узким местом является загрузка ЦП для проверки контрольной суммы. Учитывая наличие 5 вычислительных потоков на диск (это система со 128 потоками на 24 диска), распараллеливание контрольных сумм должно решить проблему узких мест.

По надежности:

Стохастическая теория предсказывает, что отказ привода маловероятен, учитывая, что наработка на отказ производителя составляет 285 лет, а доверительный интервал составляет шесть стандартных отклонений. Тем не менее, у меня есть 4 диска, предназначенных для исправления ошибок и аварийного восстановления.

Поражение битов (неустранимые ошибки чтения сектора на каждый прочитанный бит) является отдельной проблемой, поэтому меня беспокоят операции очистки. Ожидаемая частота ошибок составляет 1 бит ошибки на 116415 ТБ прочитанных данных. Это означает, что одна ошибка чтения бита каждые 14 лет. Непрерывное чтение IFF с полной пропускной способностью 270 МБ/с поддерживается круглосуточно и без выходных в течение 14 лет.

Этот компьютер является частью кластера с возможностью горячего переключения на 1024 узла размером 1 петабайт.

Другие вопросы по тегам