Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описано, как подключить контейнер, сохраненный в Хранилище BLOB-объектов Azure, к виртуальной машине Azure на базе Linux или к локальной системе Linux по протоколу NFS версии 3.0. Дополнительные сведения о поддержке NFS 3.0 в Хранилище BLOB-объектов Azure см. в разделе Поддержка протокола NFS 3.0 в хранилище BLOB-объектов Azure.
Ваша учетная запись хранения должна содержаться в виртуальной сети. Виртуальная сеть позволяет клиентам безопасно подключаться к учетной записи хранения. Дополнительные информацию о виртуальной сети Azure и о том, как создать виртуальную сеть, см. в документации по виртуальной сети.
Примечание
Клиенты в той же виртуальной сети могут подключать контейнеры в вашей учетной записи. Вы также можете подключить контейнер к клиенту, который работает в локальной сети, но для этого необходимо подключить локальную сеть к виртуальной сети. См. раздел Поддерживаемые сетевые подключения.
В настоящее время есть только один способ защитить данные в учетной записи хранения — настроить виртуальную сеть и другие параметры безопасности сети. См. Рекомендации по сетевой безопасности для хранилища Blob-объектов.
Любые другие средства, используемые для защиты данных, включая авторизацию ключа учетной записи, безопасность Microsoft Entra и списки управления доступом (ACL), нельзя использовать для авторизации запроса NFS 3.0. Если добавить запись для именованного пользователя или группы в ACL объекта или каталога, этот файл становится недоступным на клиенте для некорневых пользователей. Эту запись необходимо удалить, чтобы восстановить доступ к не корневым пользователям на клиенте.
Важно!
Протокол NFS 3.0 использует порты 111 и 2048. Если вы подключаетесь из локальной сети, убедитесь, что клиент разрешает исходящий обмен данными через эти порты. Если у вас есть доступ к определенным виртуальным сетям, убедитесь, что все группы безопасности сети, связанные с этими виртуальными сетями, не содержат правил безопасности, которые блокируют входящий обмен данными через эти порты.
Чтобы подключить контейнер по протоколу NFS 3.0, необходимо создать учетную запись хранения. Включить существующие учетные записи нельзя.
Протокол NFS 3.0 поддерживается для учетных записей хранения общего назначения версии 2 (ценовая категория "Стандартный") и учетных записей хранилища блочных BLOB-объектов (ценовая категория "Премиум"). Дополнительные сведения об учетных записях хранения см. в этой обзорной статье.
Для настройки учетной записи выберите следующие значения:
Настройка | Производительность уровня "Премиум" | Стандартная производительность |
---|---|---|
Расположение | Все доступные регионы | Все доступные регионы |
Производительность | Премиум | Стандарт |
Тип учетной записи | BlockBlobStorage | Универсального назначения Версия 2 |
Репликация | Локально избыточное хранилище (LRS), зонально избыточное хранилище (ZRS) | Локально-избыточное хранилище (LRS), Зонально-избыточное хранилище (ZRS) |
Метод подключения | Общедоступная конечная точка (выбранные сети) или частная конечная точка | Общедоступная конечная точка (выбранные сети) или частная конечная точка |
Иерархическое пространство имен | Включен | Включен |
NFS V3 | Включен | Включен |
Для остальных параметров оставьте значения по умолчанию.
Создайте контейнер в учетной записи хранения с помощью любого из этих средств или пакетов SDK:
Инструменты | Пакеты SDK |
---|---|
Портал Azure | .NET |
AzCopy | Java |
PowerShell | Python |
Azure CLI | JavaScript |
REST |
Примечание
По умолчанию параметр root squash для нового контейнера имеет значение No Root Squash. Но вы можете изменить это на Root Squash или All Squash. Дополнительные сведения об этих параметрах сжатия см. в документации операционной системы.
На следующем изображении показаны параметры сжатия так, как они отображаются на портале Azure.
Пакет вспомогательной программы монтирования AZNFS помогает клиентам Linux NFS надежно получать доступ к NFS-общим ресурсам Azure Blob, даже если IP-адрес конечной точки изменяется. Этот пакет запускает фоновое задание с именем aznfswatchdog
, которое отслеживает изменения IP-адреса конечной точки для подключенных общих папок. Если обнаружено изменение, это фоновое задание обновляет правила преобразования сетевых адресов назначения (DNAT). Для получения дополнительной информации см. помощник монтирования AZNFS.
Определите, установлен ли на клиент пакет вспомогательного средства подключения AZNFS.
systemctl is-active --quiet aznfswatchdog && echo -e "\nAZNFS mounthelper is installed! \n"
Если пакет установлен, появится сообщение
AZNFS mounthelper is installed!
.Если пакет еще не установлен, используйте следующую команду для его установки.
wget -O - -q https://github.com/Azure/AZNFS-mount/releases/latest/download/aznfs_install.sh | bash
Примечание
AZNFS поддерживается в следующих дистрибутивах Linux:
- Ubuntu (18.04 LTS, 20.04 LTS, 22.04 LTS)
- RedHat7, RedHat8, RedHat9
- Роки8, Роки9
- SUSE (SLES 15)
Создайте каталог в системе Linux и подключите контейнер в учетной записи хранения.
Чтобы создать каталог в системе Linux, выполните:
mkdir -p /nfsdata
Подключите контейнер с помощью одного из описанных ниже методов. В обоих методах замените заполнитель
<storage-account-name>
именем учетной записи хранения, а<container-name>
— именем контейнера.Чтобы общий ресурс был подключен автоматически при перезагрузке:
Создайте запись в файле /etc/fstab, добавив следующую строку:
<storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdata aznfs defaults,sec=sys,vers=3,nolock,proto=tcp,nofail,_netdev 0 0
Выполните следующую команду, чтобы немедленно обработать записи /etc/fstab и попытаться смонтировать указанный путь.
mount /nfsdata
Для временного подключения, которое не сохраняется после перезагрузки, выполните следующую команду:
mount -t aznfs -o sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdata
Совет
Используя
-t aznfs
параметр подключения, вы гарантируете, что клиент NFS всегда будет правильно подключен к конечной точке хранилища, даже если IP-адрес конечной точки изменяется после подключения. NFS-ресурсы, смонтированные с помощью опции-t nfs
, могут быть отключены от конечной точки хранилища, если IP-адрес этой конечной точки изменяется.Другие необязательные параметры доступны с помощью команды mount. Эти параметры в первую очередь влияют на поведение на стороне клиента.
sys
— это единственное значение, которое в настоящее время поддерживается параметромsec
.Важно!
Опция монтирования
nconnect
работает только на клиентах с поддержкой Azure nconnect. Использование параметраnconnect
в неподдерживаемом клиенте приведет к снижению пропускной способности и тайм-ауту или неправильной работе команд. Дополнительные сведения о том, как убедиться, что у клиента есть поддержка Azure nconnect, см. в статье "Увеличение числа TCP-подключений".
Ошибка | Причина/разрешение |
---|---|
Access denied by server while mounting |
Убедитесь, что клиент работает в поддерживаемой подсети. См. раздел Поддерживаемые расположения в сети. |
No such file or directory |
Команду mount и ее параметры лучше не копировать, а вручную вводить непосредственно в терминале. Если вы скопируете любую часть этой команды в терминал из другого приложения, скрытые символы в скопированных данных могут вызвать ошибку. Эта ошибка также может появиться, если для учетной записи не включена поддержка NFS 3.0. |
Permission denied |
По умолчанию для вновь созданного контейнера NFS версии 3.0 устанавливается режим доступа 0750. Непривилегированные пользователи не имеют доступа к тому. Если требуется предоставить доступ непривилегированным пользователям,привилегированный пользователь должен установить режим доступа 0755. Пример команды: sudo chmod 0755 /nfsdata |
EINVAL ("Invalid argument" ) |
Эта ошибка может возникать, когда клиент пытается выполнить следующие действия: |
EROFS ("Read-only file system" ) |
Эта ошибка может возникать, когда клиент пытается выполнить следующие действия: |
NFS3ERR_IO/EIO ("Input/output error" ) |
Эта ошибка может возникать, когда клиент пытается прочитать, записать или задать атрибуты больших двоичных объектов, которые хранятся на архивном уровне доступа. |
Ошибка OperationNotSupportedOnSymLink |
Эта ошибка может быть возвращена во время операции записи через хранилище BLOB-объектов или API Azure Data Lake Storage. Использовать эти API для записи или удаления символьных ссылок, созданных с помощью NFS 3.0, запрещено. Используйте конечную точку NFS версии 3.0 для работы с символьными ссылками. |
mount: /nfsdata: bad option; |
Установите программу-помощник NFS с помощью sudo apt install nfs-common . |
Connection Timed Out |
Убедитесь, что клиент разрешает исходящий обмен данными через порты 111 и 2048. Протокол NFS 3.0 использует эти порты. Убедитесь, что учетная запись хранения подключена с использованием конечной точки службы BLOB, а не конечной точки Data Lake Storage. |