Влияние Kerberos на производительность томов Azure NetApp Files NFSv4.1

Azure NetApp Files поддерживает шифрование клиента NFS в режимах Kerberos (krb5, krb5i и krb5p) с использованием шифрования AES-256. Эта статья описывает влияние производительности Kerberos на тома NFSv4.1. Сравнения производительности, упомянутые в этой статье, проводятся относительно параметра безопасности sec=sys, тестируемого на одном томе с одним клиентом.

Доступные параметры безопасности

Доступные на данный момент опции безопасности для томов NFSv4.1 следующие:

  • sec=sys использует локальные UIDs и GIDs UNIX с использованием AUTH_SYS для аутентификации операций NFS.
  • sec=krb5 используется для проверки подлинности пользователей вместо локальных идентификаторов UNIX UIDs и GIDs, применяя Kerberos V5.
  • sec=krb5i использует Kerberos V5 для аутентификации пользователей и выполняет проверку целостности операций NFS с использованием защищённых контрольных сумм для предотвращения подделки данных.
  • sec=krb5p использует Kerberos V5 для аутентификации пользователей и проверки целостности. Он шифрует трафик NFS, чтобы предотвратить перехват трафика. Этот вариант является наиболее безопасной настройкой, но он также связан с самым большим снижением производительности.

Проверка векторов производительности

В этом разделе описывается влияние на производительность со стороны клиента различных вариантов sec=*.

  • Влияние на производительность было протестировано на двух уровнях: низкая параллельность (низкая нагрузка) и высокая параллельность (верхние пределы на ввод/вывод и пропускную способность).
  • Были протестированы три типа рабочих нагрузок:
    • Малые операции случайного чтения/записи (с использованием FIO)
    • Крупная операция последовательного чтения/записи (с использованием FIO)
    • Работы с высокой нагрузкой на метаданные, создаваемые приложениями, такими как git

Ожидаемое влияние на производительность

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

Область тестирования

  • Все сравнения выполняются с параметром безопасности sec=sys.
  • Тест был проведен на одном томе с использованием одного клиента.

Влияние на производительность krb5:

  • Среднее число I/OPS снизилось на 53%
  • Средняя пропускная способность уменьшилась на 53%
  • Средняя задержка увеличилась на 0,2 мс

Влияние на производительность krb5i:

  • Среднее количество операций ввода-вывода снизилось на 55%
  • Средняя пропускная способность уменьшилась на 55%
  • Средняя задержка увеличилась на 0,6 мс

Влияние на производительность krb5p:

  • Среднее число операций ввода-вывода (I/OPS) снизилось на 77%
  • Средняя пропускная способность уменьшилась на 77%
  • Средняя задержка увеличилась на 1,6 мс

Проблемы производительности с nconnect

Не рекомендуется использовать параметры монтирования nconnect и sec=krb5* вместе. Использование этих опций вместе может привести к ухудшению производительности.

Стандартный интерфейс программирования приложений Generic Security Standard (GSS-API) предоставляет способ для приложений защищать данные, отправляемые партнерским приложениям. Эти данные могут быть отправлены от клиента на одной машине к серверу на другой машине. 

При использовании nconnect в Linux контекст безопасности GSS делится между всеми соединениями nconnect к определённому серверу. TCP — это надежный транспортный протокол, который поддерживает доставку пакетов не по порядку для обработки таких пакетов в потоке GSS, используя скользящее окно номеров последовательностей. Когда пакеты, не входящие в окно последовательности, принимаются, контекст безопасности сбрасывается, и согласовывается новый контекст безопасности. Все сообщения, отправленные в теперь уже отброшенном контексте, больше не действительны, поэтому их требуется отправить заново. Большое количество пакетов в конфигурации nconnect вызывает частые пакеты вне окна, что приводит к описанному поведению. Невозможно указать конкретные проценты ухудшения для этого поведения.

Следующие шаги