Что лучше — JBOD или чередование для большого количества мелких файлов?

Что лучше — JBOD или чередование для большого количества мелких файлов?

У меня есть сервер в многодисковой конфигурации, использующийLVM-на-LUKSв режиме JBOD. Но я заметил, htopчто время ядра в использовании ЦП (не)обычно очень высокое, и iotopвjbd2/dm-5-8иdmcrypt_write/2процессы часто занимают большую часть IO%

Я проверил fioи понял, что 4K случайный IOPS также намного ниже значения для каждого диска, не говоря уже о целом наборе дисков LVM. Я думал, что при добавлении большего количества дисков в набор JBOD LVM может предоставлять доступ к отдельным дискам параллельно, так что, например, у меня есть 4 SSD-диска по 600k IOPS каждый, тогда он должен достичь ~4×600k IOPS, но, похоже, это не так

Поэтому я пытаюсь сделать некоторую настройку, возможно, перестроив набор дисков с нуля. Поскольку сервер должен иметь дело с большим количеством маленьких файлов ~40-80 КБ в среднем, я думаю, что JBOD должен быть лучше, потому что даже размер полосы RAID0 по умолчанию больше, чем сами файлы. Кроме того, если работать в режиме RAID0, то каждый раз, когда маленький файл читается/записывается, все полосы на всех дисках будут ненужно использоваться

Правильно ли я понимаю? Как можно улучшить IOPS в этом случае? Поможет ли переход на Btrfs или ZFS и удаление слоя LVM?

решение1

Обновление - Мой первоначальный ответ все еще полезен, но перечитав, я вижу, что вы используете SSD. Это заставляет меня думать, что вы ищете не в том месте. Я полагаю, что то, что вас замедляет, - это шифрование/дешифрование ваших данных. Может быть, вы можете перенести это в прошивку SSD.

Первоначальный ответ -

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

(Предположим на мгновение, что массив состоит из 5 дисков одинакового размера, заполненных на 1/5 и не фрагментированных — данные будут распределены по 5 дискам для RAUD0, но все на 1 диске в JBOD. Даже если диск будет заполнен (но разумно nrw) — все последние файлы будут на 1 диске — поэтому операции, просматривающие только последние файлы, снова будут выполняться только на 1 диске в JBOD)

Если файлы находятся в одном секторе/блоке диска, то все равно нет преимуществ jbod перед RAID0. Преимущества JBODS — возможность использовать диски разного размера, возможность частичного восстановления данных и более легкое увеличение дискового пространства.

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