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

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

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

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

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

решение1

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

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

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

решение2

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

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

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

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

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

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

Случайное чтение 4K QD16 QCD: 170 IOPS.

Случайная запись 4K QD16 QCD: 550 IOPS.

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

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

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

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

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

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

Bit rot (невосстановимые ошибки чтения сектора на прочитанный бит) — это отдельная проблема, поэтому я беспокоюсь об операциях очистки. Ожидаемая частота ошибок составляет 1 битовая ошибка на 116 415 ТБ прочитанных данных. Это предполагает одну ошибку чтения бита каждые 14 лет, если непрерывное чтение при полной пропускной способности 270 МБ/с поддерживается 24x7 в течение 14 лет.

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

Связанный контент