Устранение неполадок общих папок Azure NFS

Примечание.

CentOS, упоминаемая в этой статье, является дистрибутивом Linux и достигнет конца жизненного срока (EOL). Рассмотрите возможность использования и спланируйте соответствующие планы. Дополнительные сведения см. в руководстве по окончании жизненного циклов CentOS.

В этой статье перечислены распространенные проблемы, связанные с общими папками Azure NFS, а также приведены возможные причины и обходные решения.

Важно!

Содержимое этой статьи относится только к общим папкам NFS. Сведения об устранении неполадок SMB в Linux см. в статье Устранение проблем с Файлы Azure в Linux (SMB). Общие папки Azure NFS не поддерживаются для Windows.

Сфера применения

Тип общей папки SMB NFS
Общие папки уровня "Стандартный" (GPv2), LRS/ZRS
Общие папки уровня "Стандартный" (GPv2), GRS/GZRS
Общие папки уровня "Премиум" (FileStorage), LRS/ZRS

Ошибка chgrp filename: недопустимый аргумент (22)

Причина 1: idmapping не отключена

Так как Файлы Azure запрещает буквенно-цифровой UID/GID, необходимо отключить idmapping.

Причина 2: идентификация была отключена, но снова включена после обнаружения неправильного имени файла или каталога.

Даже если вы правильно отключите idmapping, в некоторых случаях его можно автоматически включить повторно. Например, когда Файлы Azure обнаруживает неправильное имя файла, он отправляет обратно ошибку. После просмотра этого кода ошибки клиент NFS 4.1 Linux решает повторно включить idmapping и отправляет будущие запросы с буквенно-цифровым UID/GID. Список неподдерживаемых символов на Файлы Azure см. в этой статье. Двоеточие — один из неподдерживаемых символов.

Обходной путь

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

  1. Отключите общую папку.

  2. Отключите idmapping с помощью:

    sudo echo Y > /sys/module/nfs/parameters/nfs4_disable_idmapping
    
  3. Подключите общую папку обратно.

  4. При выполнении rsync запустите rsync с —numeric-ids аргументом из каталога без неправильного имени каталога или файла.

Не удается создать общую папку NFS

Причина. Неподдерживаемые параметры учетной записи хранения

NFS доступна только в учетных записях хранения со следующей конфигурацией:

Решение

Следуйте инструкциям в разделе Создание общей папки NFS.

Не удается подключиться к общей папке Azure NFS или подключить ее

Причина 1. Запрос исходит от клиента в ненадежной сети или ненадежном IP-адресе

В отличие от SMB, NFS не поддерживает проверку подлинности на основе пользователя. Проверка подлинности для общей папки основана на конфигурации правила безопасности сети. Чтобы клиенты устанавливали только безопасные подключения к общей папке NFS, необходимо использовать либо конечную точку службы, либо частные конечные точки. Чтобы получить доступ к общим папкам из локальной среды, а также из частных конечных точек, необходимо настроить VPN-подключение или Подключение ExpressRoute. IP-адреса, добавленные в список разрешений учетной записи хранения для брандмауэра, игнорируются. Для настройки доступа к общей папке NFS необходимо использовать один из следующих методов:

  • Конечная точка службы

    • Доступ к общедоступной конечной точке.

    • Доступно только в том же регионе.

    • Пиринг виртуальных сетей нельзя использовать для общего доступа.

    • Необходимо добавить каждую виртуальную сеть или подсеть по отдельности в список разрешенных.

    • Для локального доступа можно использовать конечные точки служб с ExpressRoute, VPN типа "точка — сеть" и VPN типа "сеть — сеть". Мы рекомендуем использовать частную конечную точку, так как она более безопасна.

      На следующей схеме показано подключение с помощью общедоступных конечных точек.

      Схема подключения к общедоступной конечной точке.

  • Частная конечная точка

    • Доступ более защищен, чем конечная точка службы.

    • Доступ к общей папке NFS через приватный канал доступен из региона Azure учетной записи хранения и за его пределами (между регионами, локально).

    • Пиринг виртуальных сетей с виртуальными сетями, размещенными в частной конечной точке, предоставляет общей папке NFS доступ к клиентам в пиринговых виртуальных сетях.

    • Частные конечные точки можно использовать с ExpressRoute, VPN типа "точка — сеть" и VPN типа "сеть — сеть".

      Схема подключения к частной конечной точке.

Причина 2. Требуется безопасная передача

Общие папки Azure NFS в настоящее время не поддерживают двойное шифрование. Azure предоставляет уровень шифрования для всех данных, передаваемых между центрами обработки данных Azure, с помощью MACSec. Доступ к общим ресурсам NFS можно получить только из доверенных виртуальных сетей и через VPN-туннели. В общих папках NFS не доступно шифрование дополнительного транспортного уровня.

Решение

Отключите требуемую безопасную передачу в колонке конфигурации учетной записи хранения.

Снимок экрана, на котором показана колонка конфигурации учетной записи хранения с отключением необходимой безопасной передачи.

Причина 3. Пакет nfs-utils, nfs-client или nfs-common не установлен.

Перед выполнением mount команды установите пакет nfs-utils, nfs-client или nfs-common.

Чтобы проверка, установлен ли пакет NFS, выполните следующую команду:

Те же команды, приведенные в этом разделе, применяются к CentOS и Oracle Linux.

sudo rpm -qa | grep nfs-utils

Решение

Если пакет не установлен, установите пакет с помощью команды дистрибутива.

Те же команды, приведенные в этом разделе, применяются к CentOS и Oracle Linux.

Версия ОС 7.X

sudo yum install nfs-utils

ВЕРСИЯ ОС 8.X или 9.X

sudo dnf install nfs-utils

Причина 4. Брандмауэр блокирует порт 2049

Протокол NFS обменивается данными со своим сервером через порт 2049. Убедитесь, что этот порт открыт для учетной записи хранения (сервера NFS).

Решение

Убедитесь, что порт 2049 открыт для клиента, выполнив следующую команду. Если порт не открыт, откройте его.

sudo nc -zv <storageaccountnamehere>.file.core.windows.net 2049

Причина 5. Удалена учетная запись хранения

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

Решение

Восстановление учетной записи хранения. Затем удалите и повторно создайте частную конечную точку, чтобы она была связана с новым идентификатором ресурса учетной записи хранения.

ls зависает для перечисления больших каталогов в некоторых ядрах

Причина: ошибка появилась в ядре Linux версии 5.11 и исправлена в версии 5.12.5.

Некоторые версии ядра имеют ошибку, из-за которой списки каталогов приводят к бесконечной последовательности READDIR. Небольшие каталоги, в которые все записи могут быть отправлены в одном вызове, не имеют этой проблемы. Эта ошибка появилась в ядре Linux версии 5.11 и исправлена в версии 5.12.5. Так что все, что между ними, имеет ошибку. RHEL 8.4 имеет эту версию ядра.

Обходной путь: переход на более раннюю версию или обновление ядра

Эту проблему необходимо устранить при понижении или обновлении ядра за пределами затронутого ядра.

Системные команды завершаются ошибкой "Файл не найден"

Причина

32-разрядные приложения Linux, использующие номера inode, могут не работать должным образом с Файлы Azure из-за форматирования 64-разрядных номеров inode, созданных службой NFS.

Решение

Для решения этой проблемы воспользуйтесь одним из указанных ниже способов.

  • Сжать 64-разрядные номера inode до 32 бит с помощью nfs.enable_ino64=0 параметра загрузки ядра.

  • Задайте параметр модуля, добавив options nfs enable_ino64=0 в файл /etc/modprobe.d/nfs.conf и перезагрузив виртуальную машину.

Этот параметр загрузки ядра также можно сохранить в файле grub.conf . Дополнительные сведения см. в документации по дистрибутиву Linux.

Нужна помощь?

Если вам по-прежнему нужна помощь, обратитесь в службу поддержки , чтобы быстро устранить проблему.

См. также

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.