Вопрос или проблема
https://www.youtube.com/watch?v=JXASmxGrHvY
в 5:30 делается заявление
если настроить NFS правильно, он невероятно быстр для ультра малых передаче файлов*…
в 6:05
Я слышал о 4.0 ГБ/с при последовательном чтении… но у вас должно быть все оборудование настроено правильно.
Что, где и как мне настроить NFS v4.2 в RHEL-8.10 или новее, чтобы достичь того, что утверждается выше? Это утверждение правда, ведь это видео на YouTube, похоже, было сделано 3 года назад?
Есть ли какая-нибудь хорошая документация по настройке NFS, относящаяся к NFS v4.2 в RHEL 8/9 или аналогах сегодня?
v4.2 – последняя версия NFS, правильно? Есть ли какие-либо предложения о более новой версии NFS на горизонте?
есть ли какие-либо лучшие настройки, чем по умолчанию в /etc/nfs.conf
и /etc/nfsmount.conf
?
если я могу назначить вознаграждение за это, я сделаю это –> какова максимальная скорость передачи в ГБ/с, которая должна быть достигнута в RHEL-8.10 или новее, по сети 100 Гбит/с Infiniband, на NFS v4.2 (предполагая RDMA?) и при всех “настроенных” опциях ?? Единственная настройка, о которой я знаю, это использование rdma
по Infiniband; если кто-то знает лучше/больше, дайте мне знать.
Я слышал о 4.0 ГБ/с при последовательном чтении… но у вас должно быть все оборудование настроено правильно.
Автор этого видео полагается на неподтвержденные слухи. Так что, игнорируйте любые их утверждения. Если только у них нет опыта в создании такой системы.
Их восторженное “что абсолютно безумно, но дело в том, что вам нужно, чтобы вся инфраструктура была правильной” по сути говорит о том, что они просто открыты в своем неведении. Это как если бы вы увидели, как я говорю о том, что слышал, что можно приготовить действительно вкусный, сочный рождественский обед для шести человек за 20 минут, но нужно правильно организовать всю кухню. Может быть, это правда, а может и нет, но было бы довольно очевидно, что я не повар.
Что безумного в том, чтобы прокачать 4 ГБ/с по проводу? Конечно, вам нужна система хранения, которая может читать так быстро, но особенно с учетом того, что уже есть буферизация на уровне блочного устройства, это не кажется экстремальным. Конечно, вам нужна сеть, которая может делать 32 Гбит/с, но с учетом того, что сетевое оборудование обычно имеет QSFP+28 / 100 Гбит/с (и мы не говорим о вашем домашнем компьютере, если мы говорим о …, хм, это звучит точно так, как эти устройства созданы для производства).
Что, где и как мне настроить NFS v4.2 в RHEL-8.10 или новее, чтобы достичь того, что утверждается выше? Это утверждение правда, ведь это видео на YouTube, похоже, было сделано 3 года назад?
У вас есть NIC > 40 Гбит/с? У вас есть хранилище, которое достаточно быстро? Если нет, никакая программная настройка не поможет вам.
Если да, вы начнете с конфигурации по умолчанию, затем определите узкие места, а затем устраните их. Очевидно, если бы был единственный способ сделать вашу систему быстрой без недостатков, то настройка по умолчанию и была бы такой.
Так что, нет универсального рецепта. Просто действительно понимать, чем заняты ваше аппаратное и программное обеспечение, а затем оптимизация на основе фактического профилирования.
Скорее всего, вам потребуется оптимизированное оборудование для этого. Интеграция в системы хранения является одним из способов, которыми компании, такие как Mellanox (теперь: Nvidia), продают свои сетевые карты. В общем, я думаю, что вы подходите к этому с ожиданием “какие параметры конфигурационного файла я должен изменить”, тогда как на самом деле это, вероятно, гораздо более архитектурно, например, “какой тип мультипутевого сервера хранения я должен купить и как мне построить сеть к клиентам, чтобы это было возможно?”.
v4.2 – последняя версия NFS, правильно?
да. Но обратите внимание, что есть необязательные функции, и ни одна реализация NFS не будет иметь их все.
Есть ли какие-либо предложения о более новой версии NFS на горизонте?
Да, NFS все еще является развивающимся протоколом, с оптимизациями для центров обработки данных (лучшая интеграция RoCE/RDMA, лучшее кеширование, лучшее согласование во всех аспектах, очереди, безопасность, обработка потерь пакетов, поддержка мультипутевого соединения…) — это то, на что давят компании и операторы. Я не имею отношения к передовым разработкам NFS, но для кого-то на старом RHEL это не имеет значения. Вы бы начали с обновления до современной системы, прежде чем задумываться, будет ли какой-либо будущий стандарт важен для вашей производительности.
Ответ или решение
Тонкая настройка NFS v4.2 на RHEL-8.10 или новее для достижения максимальной производительности
Настройка NFS (Network File System) версии 4.2 в операционной системе RHEL (Red Hat Enterprise Linux) 8.10 и выше может значительно повысить производительность при работе с малыми файлами, а также обеспечить высокую скорость передачи данных вплоть до 4 Гб/с, как упоминается в видео. Давайте рассмотрим ключевые аспекты настройки NFS, чтобы определить, как достичь этих показателей.
Основные уже описанные моменты:
-
Понимание базовой инфраструктуры:
- Достигнуть высокой производительности возможно лишь при наличии соответствующего аппаратного обеспечения. Убедитесь, что у вас есть сетевой интерфейс с пропускной способностью не менее 40 Гбит/с и быстрое хранилище данных. Оцените производительность вашего оборудования, включая процессоры, оперативную память и контроллеры хранения. Не существует софта, который мог бы найти узкое место, если ваше оборудование не может справиться с нагрузкой.
-
Тонкая настройка сервера NFS:
- Откройте и отредактируйте конфигурационные файлы:
/etc/nfs.conf
/etc/nfsmount.conf
- Рассмотрите возможность изменения следующих параметров:
vers=4.2
: убедитесь, что используете правильно настройку версии протокола.rsize
иwsize
: настройте максимальный размер блока для чтения и записи. Обычно рекомендуется устанавливать значения 1 Мб для оптимизации производительности передачи данных.tcp
: включите использование TCP вместо UDP для улучшения надежности передачи данных.no_subtree_check
: отключите проверку подсистем, чтобы увеличить скорость (это уменьшает количество обходов файловой системы, что полезно при работе с многофайловыми структурами).
- Откройте и отредактируйте конфигурационные файлы:
-
Использование RDMA:
- Если ваше оборудование поддерживает RDMA (Remote Direct Memory Access), убедитесь, что оно правильно настроено. Это может значительно снизить задержки и увеличить пропускную способность. Возможные параметры включают
rdma
в настройках монтирования ваших клиентов NFS.
- Если ваше оборудование поддерживает RDMA (Remote Direct Memory Access), убедитесь, что оно правильно настроено. Это может значительно снизить задержки и увеличить пропускную способность. Возможные параметры включают
-
Мониторинг и анализ производительности:
- Используйте инструменты для мониторинга производительности, такие как
iostat
,nfsstat
иdstat
. Анализируйте полученные данные, чтобы выявить узкие места. Это поможет внести более точно настроечные изменения в ваше оборудование и программное обеспечение.
- Используйте инструменты для мониторинга производительности, такие как
-
Документация и ресурсы:
- Существуют несколько хороших ресурсов для оптимизации NFS на RHEL 8 и 9, включая официальные документы от Red Hat, которые предлагают лучшие практики для настройки NFS и множества других параметров системы.
-
Будущее версии NFS:
- NFS 4.2 является последней стабильной версией. Однако в горизонте видны инициативы по улучшению протокола c учетом современных требований, таких как улучшенная интеграция RoCE/RDMA, кэширование, поддержка множества путей и безопасности.
Заключение
Для достижения лучших результатов с NFS v4.2 в RHEL 8.10 важно не только правильно настроить параметры, но и уделить внимание архитектуре всего решения. Внимательное анализирование производительности поможет выявить и устранить узкие места. Фактически, полученные результаты будут зависеть от ваших аппаратных средств и их настроек так же, как и от программного обеспечения.
Если у вас есть более 100 Гбит/с Infiniband и NFS v4.2 с правильно настроенным RDMA, теоретически возможно достичь до 10 Гб/с, но для этого вам потребуется хорошо сбалансированная и оптимально настроенная инфраструктура, учитывающая все вышеописанные рекомендации.