Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
CentOS, на который ссылается в этой статье, является дистрибутивом Linux и достигнет конца жизни (EOL). Думайте об использовании и планировании соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.
В этой статье перечислены распространенные проблемы, связанные с общими папками NFS Azure, а также возможные причины и обходные пути.
Внимание
Содержимое этой статьи применяется только к NFS-ресурсам. Сведения об устранении неполадок SMB в Linux см. в статье Устранение проблем с файлами Azure в Linux (SMB). Общие папки NFS Azure не поддерживаются для Windows.
Применяется к
| Тип общей папки | SMB | NFS |
|---|---|---|
| Стандартные общие папки (GPv2), LRS/ZRS | ||
| Стандартные общие папки (GPv2), GRS/GZRS | ||
| Премиум файловые хранилища (FileStorage), LRS/ZRS |
Используйте диагностический инструмент Always-On
Средство диагностики Always-On (AOD) можно использовать для сбора журналов на клиентах NFSv4 и SMB Linux. Управляющая программа выполняется в фоновом режиме в качестве системной службы и может быть настроена для обнаружения аномалий в различных источниках, таких как журналы dmesg, отладочные данные, метрики ошибок и метрики задержки. Он может записывать данные из tcpdump, nfsstat, mountstsat и других источников, а также использования ЦП и памяти системы. Это средство полезно для сбора сведений об отладке проблем на местах, которые трудно воспроизвести.
Средство диагностики Always-On в настоящее время совместимо с системами под управлением SUSE Linux Enterprise Server 15 (SLES 15) и Red Hat Enterprise Linux 8 (RHEL 8). Выполните действия по установке, соответствующие операционной системе:
В RHEL 8 выполните следующие инструкции, чтобы установить средство диагностики Always-On:
Скачайте пакет конфигурации репозитория.
curl -ssl -O https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpmУстановите пакет конфигурации репозитория.
sudo rpm -i packages-microsoft-prod.rpmУдалите пакет конфигурации репозитория после установки и обновления файлов индекса пакета.
rm packages-microsoft-prod.rpm sudo dnf updateУстановите пакет .
sudo dnf install aod
Сбой команды chgrp "имя_файла": недопустимый аргумент (22)
Причина 1: сопоставление идентификаторов не отключено
Таким образом, так как Файлы Azure запрещает буквенно-цифровые UID/GID, необходимо отключить отображение идентификаторов.
Причина 2. Сопоставление идентификаторов было отключено, но включилось повторно после обнаружения неправильного имени файла или каталога
Даже если вы правильно отключите отображение идентификаторов, его можно автоматически повторно включить в некоторых случаях. Например, если Файлы Azure обнаруживает неправильное имя файла, он отправляет ошибку. Увидев этот код ошибки, клиент Linux NFS 4.1 решает повторно включить отображение идентификаторов и отправляет будущие запросы с буквенно-цифровым идентификатором UID/GID. Список неподдерживаемых символов в Файлы Azure см. в этом article. Одним из неподдерживаемых символов является двоеточие.
Обходное решение
Убедитесь, что вы отключили idmapping и что ничто не включает его снова. В этом случае выполните следующие шаги.
Отключите общую папку.
Отключите idmapping с помощью:
sudo echo Y > /sys/module/nfs/parameters/nfs4_disable_idmappingПодключите общую папку обратно.
При запуске rsync запустите его с аргументом
-numeric-idsиз каталога, который не имеет некорректного имени каталога или файла.
Не удалось создать общую папку NFS
Причина: неподдерживаемые параметры учетной записи хранения
Файловая система NFS доступна только для учетных записей хранения со следующей конфигурацией:
- Уровень: Премиум
- Тип учетной записи: FileStorage
Решение
Следуйте инструкциям из статьи "Создание общей папки NFS".
Не удается подключиться к сетевому ресурсу NFS Azure или смонтировать его
Причина 1. Запрос поступает от клиента из недоверенной сети или с недоверенным IP-адресом
В отличие от SMB, NFS не имеет пользовательской проверки подлинности. Проверка подлинности для общей папки основана на конфигурации правила безопасности сети. Чтобы клиенты устанавливали безопасные подключения только к вашему NFS-ресурсу, необходимо использовать конечную точку службы или частные конечные точки. Чтобы получить доступ к общим ресурсам из локальной среды, помимо частных конечных точек, необходимо настроить VPN-подключение или ExpressRoute. IP-адреса, добавленные в список разрешений учетной записи хранения для брандмауэра, игнорируются. Для настройки доступа к общей папке NFS необходимо использовать один из следующих методов.
-
Доступ через общедоступную конечную точку.
Доступна только в том же регионе.
Нельзя использовать VNet-пиринг для доступа к общим ресурсам.
Вы должны добавить в список разрешений каждую виртуальную сеть или подсеть по отдельности.
Для локального доступа можно использовать конечные точки службы с поддержкой ExpressRoute, а также VPN типов "точка — сеть" и "сеть — сеть". Рекомендуем использовать частную конечную точку, так как она безопаснее.
На следующей схеме показано подключение с помощью общедоступных конечных точек:
-
Доступ более безопасен, чем при использовании конечной точки службы.
Доступ к общей папке NFS через частное подключение доступен внутри и за пределами региона учетной записи хранения Azure (межрегионально и из локальной среды).
Пиринг виртуальных сетей с сетями, размещёнными в частной конечной точке, обеспечивает доступ к NFS-ресурсу клиентам в пиринговых виртуальных сетях.
Частные конечные точки можно использовать вместе с ExpressRoute, VPN типа "точка — сеть" и VPN типа "сеть — сеть".
Причина 2: Пакет 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
Причина 3. Блокировка брандмауэра порта 2049
Протокол NFS взаимодействует с сервером через порт 2049. Убедитесь, что этот порт открыт для учетной записи хранения (сервер NFS).
Решение
Убедитесь, что в клиенте открыт порт 2049, выполнив следующую команду. Если порт не открыт, откройте его.
sudo nc -zv <storageaccountnamehere>.file.core.windows.net 2049
Причина 4. Удаленная учетная запись хранения
Если не удается подключить общую папку из-за ошибки: истекло время ожидания подключения, учетная запись хранения, содержащая общую папку, может быть удалена случайно.
Решение
Восстановление учетной записи хранения. Затем удалите и повторно создайте частную конечную точку, чтобы она связана с новым идентификатором ресурса учетной записи хранения.
Причина 5. Вы пытаетесь подключить общую папку с помощью клиента NFS вместо вспомогательного средства подключения AZNFS, а в учетной записи хранения включена настройка Необходима безопасная передача и/или Требовать шифрование при передаче для NFS.
Настройка Обязательная безопасная передача применяет шифрование в процессе передачи для всех файловых ресурсов в учетной записи хранения, если только не включена настройка Требовать шифрование для передачи NFS, тогда Обязательная безопасная передача применяется только к трафику REST/HTTPS. Для общих папок NFS, при использовании шифрования при передаче требуется подключение общей папки с помощью вспомогательного средства монтирования AZNFS — клиентского пакета утилит, который упрощает создание защищенных туннелей для трафика NFSv4.1.
Решение
Отключите настройки Требуется безопасная передача данных и Требовать шифрование при передаче данных для NFS в учетной записи хранилища или используйте вспомогательный инструмент монтирования AZNFS для подключения общего ресурса. Дополнительные сведения см. в разделе Шифрование при передаче данных для общих папок NFS Azure.
Команда ls зависает при перечислении файлов в больших каталогах в некоторых ядрах
Причина: ошибка появилась в ядре Linux версии 5.11 и исправлена в версии 5.12.5
В некоторых версиях ядра существует ошибка, из-за которой перечень каталогов приводит к бесконечной последовательности READDIR. Небольшие каталоги, в которых все записи могут быть отправлены в одном вызове, не имеют этой проблемы. Эта ошибка появилась в ядре Linux версии 5.11 и была исправлена в версии 5.12.5. Ошибка присутствует во всём, что находится между ними. RHEL 8.4 имеет эту версию ядра.
Обходное решение: понижение или обновление ядра
Понижение или обновление ядра до версии, не затронутой проблемой, должно устранить ошибку.
Системные команды завершаются ошибкой "Файл не найден"
Причина
32-разрядные приложения Linux, использующие номера инодеров, могут не работать должным образом с Файлы Azure из-за форматирования 64-разрядных номеров инодеров, созданных службой NFS.
Решение
Чтобы решить эту проблему, используйте один из указанных ниже способов.
Сжать 64-разрядные номера инодера до 32 бит, используя параметр загрузки ядра
nfs.enable_ino64=0.Задайте параметр модуля, добавив
options nfs enable_ino64=0в файл /etc/modprobe.d/nfs.conf и перезагрузив виртуальную машину.
Этот параметр загрузки ядра также можно сохранить в файле grub.conf . Дополнительные сведения см. в документации по дистрибутиву Linux.
Не удается изменить владение файлами и каталогами
Причина
Разрешения для общих папок NFS применяются клиентской ОС, а не службой Файлы Azure.
Если параметр root Squash включен в общей папке NFS, корневой пользователь в клиентской системе рассматривается как анонимный (не привилегированный) пользователь для управления доступом. Это означает, что даже если вы вошли в систему в качестве пользователя root на клиентской системе, вы не можете использовать команду chown для изменения владения файлами и каталогами, которыми вы не владеете.
Решение
На портале Azure перейдите к общей папке и выберите Properties. Измените параметр Root Squash на No Root Squash. Дополнительные сведения см. в разделе Configure root squash for Файлы Azure.
С No Root Squash корневой пользователь на клиентской системе имеет те же привилегии, что и корневой пользователь на серверной системе. Теперь вы можете chown изменить владельца любого файла или каталога в общей папке, независимо от текущего владельца. После внесения изменений можно повторно включить root Squash при необходимости.
Нужна помощь?
Если вам все еще нужна помощь, обратитесь в службу поддержки, которая поможет быстро устранить проблему.
См. также
- Устранение неполадок Файлы Azure
- Устранение неполадок производительности Файлы Azure
- Устранение неполадок подключения Файлы Azure (SMB)
- Устранение неполадок с аутентификацией и авторизацией Файлы Azure (SMB)
- Устранение неполадок SMB в Файлы Azure на Linux
Заявление об отказе от ответственности за сведения о продуктах сторонних производителей
Сторонние продукты, которые обсуждаются в этой статье, производятся компаниями, которые не зависят от Майкрософт. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно производительности или надежности этих продуктов.