Подключение файловых ресурсов Azure NFS в Linux

✔️ Область применения: классические общие папки NFS, созданные с помощью поставщика ресурсов Microsoft.Storage

✔️ Применяется к: общим файловым ресурсам, созданным с помощью поставщика ресурсов Microsoft.FileShares

Вы можете монтировать общие файловые ресурсы Azure в дистрибутивах Linux, используя либо протокол Server Message Block (SMB), либо протокол Network File System (NFS). В этой статье рассматривается подключение с помощью NFS. В статье рассматриваются предварительные требования к сетевой безопасности, инструкции по подключению для обоих поставщиков ресурсов — Microsoft.Storage и Microsoft.FileShares, автоматическое подключение с помощью /etc/fstab и рекомендуемые параметры подключения NFS. Дополнительные сведения о подключении общих папок SMB см. в статье "Использование файлов Azure с Linux". Дополнительные сведения о доступных протоколах см. в статье Протоколы общего файлового ресурса Azure.

Предварительные требования. Настройка сетевой безопасности

Вы можете получить доступ к общим файловым ресурсам NFSv4.1 (как к классическим общим файловым ресурсам, созданным с помощью поставщика ресурсов Microsoft.Storage, так и к общим файловым ресурсам, созданным с помощью поставщика ресурсов Microsoft.FileShares) только из доверенных сетей. Защита данных с помощью виртуальной сети и других параметров безопасности сети. Вы не можете использовать списки управления безопасностью и доступом Microsoft Entra для авторизации запросов NFSv4.1. Дополнительные сведения о настройке общих папок NFSv4.1 см. в статье о создании общей папки и создании классической общей папки.

Подключение общей папки NFS Azure

Вы можете подключить общий ресурс с помощью AZNFS mount helper (пакета вспомогательного средства подключения Azure NFS) в портале Azure или использовать собственные команды подключения NFS в интерфейсе командной строки. Вы также можете создать запись в файле /etc/fstab, чтобы автоматически подключать общий ресурс при каждой загрузке сервера Linux или виртуальной машины.

nconnect Используйте параметр подключения Linux для повышения производительности общих папок NFS Azure в большом масштабе. Для получения дополнительной информации см. статью «Улучшение производительности общей папки NFS в Azure».

Инструкции по подключению различаются в зависимости от того, был ли общий файловый ресурс NFS создан с помощью поставщика ресурсов Microsoft.Storage (классический файловый ресурс) или поставщика ресурсов Microsoft.FileShares.

Классическая общая папка NFS (Microsoft.Storage)

Выполните следующие действия, чтобы подключить классическую общую папку NFS.

  1. После создания общей папки выберите общую папку, а затем выберите "Подключиться" из Linux.
  2. Введите путь подключения, который вы хотите использовать, а затем скопируйте скрипт и запустите его на клиенте. Портал Azure предлагает готовый пошаговый скрипт установки, адаптированный под выбранный вами дистрибутив Linux, для установки вспомогательного пакета подключения AZNFS и безопасного подключения общего ресурса с использованием шифрования при передаче. Сценарий включает только необходимые параметры подключения, но вы можете добавить другие рекомендуемые параметры подключения.

Скриншот, показывающий, как подключиться к NFS-файловому ресурсу с Linux с помощью предоставленного скрипта монтирования.

Смонтировать классический NFS-share, используя клиентское крепление NFS в командной строке

Вы также можете смонтировать общий файловый ресурс Azure из командной строки с помощью команды монтирования клиента NFS. Перейдите на вкладку ниже для дистрибутива Linux, чтобы просмотреть необходимые команды. Замените <YourStorageAccountName> и <FileShareName> вашей информацией.

sudo apt-get -y update
sudo apt-get install nfs-common

sudo mkdir -p /mount/<YourStorageAccountName>/<FileShareName>
sudo mount -t nfs <YourStorageAccountName>.file.core.windows.net:/<YourStorageAccountName>/<FileShareName> /mount/<YourStorageAccountName>/<FileShareName> -o vers=4,minorversion=1,sec=sys,nconnect=4

Общая папка NFS (Microsoft.FileShares)

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

  1. После создания общей папки выберите общую папку, а затем выберите "Подключиться" из Linux.

  2. Введите путь подключения, который вы хотите использовать, а затем скопируйте скрипт и запустите его на клиенте. Портал Azure предлагает готовый к использованию пошаговый сценарий установки, адаптированный для выбранного вами дистрибутива Linux, чтобы установить вспомогательный пакет монтирования AZNFS и безопасно подключить общий ресурс с помощью шифрования при передаче данных. Если файловый ресурс требует шифрования при передаче, скрипт монтирования использует помощник AZNFS. Если функция «Требовать шифрование при передаче» отключена, снимите флажок «Подключать с шифрованием при передаче», чтобы использовать другие команды монтирования для подключения общего файлового ресурса. Сценарий включает только необходимые параметры подключения, но вы можете добавить другие рекомендуемые параметры подключения.

    Скриншот, показывающий маунт с опцией шифрования в транзите в портале Azure.

Смонтировать общий ресурс NFS с помощью команды mount клиента NFS из командной строки

Вы также можете смонтировать общий файл, используя NFS-клиентский монтаж в командной строке. Перейдите на вкладку ниже для дистрибутива Linux, чтобы просмотреть необходимые команды. Замените <your-subscription-id>, <your-resource-group>, и <your-file-share-name> с вашей информацией.

# Customize these placeholders:
# - `<your-subscription-id>` → Your Azure subscription ID.
# - `<your-resource-group>` → The resource group containing the file share.
# - `<your-file-share-name>` → The name of your file share.

# you will use $hostname later when mounting the file share.
hostName=$(az resource show \
  --ids "/subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group>/providers/Microsoft.FileShares/fileShares/<your-file-share-name>" \
  --query "properties.hostName" \
  --output tsv)
echo $hostName

# you will use shortName later when mounting the file share.
prefix=$(echo "$hostName" | sed 's/\.file\.storage\.azure\.net.*//')
shortName=$(echo "$prefix" | sed 's/\.[^.]*$//')
echo $shortName
sudo apt-get -y update
sudo apt-get install nfs-common
sudo mkdir -p /mount/<your-file-share-name>
sudo mount -t nfs $hostName:/$shortName/<your-file-share-name> /mount/<your-file-share-name> -o vers=4,minorversion=1,sec=sys

Подключение с помощью /etc/fstab

Чтобы автоматически подключить общую папку NFS при каждой загрузке сервера Linux или виртуальной машины, создайте запись в файле /etc/fstab для общей папки Azure. Запись различается в зависимости от того, используете ли вы вспомогательное средство монтирования AZNFS или встроенные команды монтирования NFS.

Чтобы проверить, установлен ли на вашем клиенте пакет AZNFS Mount Helper, выполните следующую команду:

systemctl is-active --quiet aznfswatchdog && echo -e "\nAZNFS Mount Helper is installed! \n"

Если пакет установлен, появится сообщение AZNFS Mount Helper is installed! .

Для классического общего файлового ресурса замените <YourStorageAccountName> и <FileShareName> на свои собственные значения. Для файлового ресурса Microsoft.FileShares замените hostName и shortName на правильные значения. Для получения дополнительных сведений выполните команду man fstab в командной строке Linux.

Монтирование с помощью вспомогательного средства монтирования AZNFS с шифрованием при передаче данных

Если вы используете AZNFS Mount Helper и хотите подключить общий ресурс с шифрованием данных при передаче, запись в /etc/fstab должна выглядеть следующим образом:

# For Microsoft.Storage file share, use:
<YourStorageAccountName>.file.core.windows.net:/<YourStorageAccountName>/<FileShareName> /media/<YourStorageAccountName>/<FileShareName> aznfs defaults,sec=sys,vers=4,minorversion=1,nolock,proto=tcp,nofail,_netdev   0 2

# For Microsoft.FileShares file share, use:
$hostName:/$shortName/<FileShareName> /media/$shortName/<FileShareName> aznfs defaults,sec=sys,vers=4,minorversion=1,nolock,proto=tcp,nofail,_netdev   0 2

Подключение с использованием вспомогательного средства монтирования AZNFS Mount Helper без шифрования при передаче данных

Если вы используете вспомогательный модуль подключения AZNFS, но не хотите использовать шифрование при передаче, запись в /etc/fstab должна выглядеть следующим образом:

# For Microsoft.Storage file share, use:
<YourStorageAccountName>.file.core.windows.net:/<YourStorageAccountName>/<FileShareName> /media/<YourStorageAccountName>/<FileShareName> aznfs defaults,sec=sys,vers=4,minorversion=1,nolock,proto=tcp,nofail,_netdev,notls   0 2

# For Microsoft.FileShares file share, use:
$hostName:/$shortName/<FileShareName> /media/$shortName/<FileShareName> aznfs defaults,sec=sys,vers=4,minorversion=1,nolock,proto=tcp,nofail,_netdev,notls   0 2

Подключите с помощью встроенной команды mount

Если вы используете встроенный NFS-монтаж без AZNFS, запись в /etc/fstab должна выглядеть следующим образом:

# For Microsoft.Storage file share, use:
<YourStorageAccountName>.file.core.windows.net:/<YourStorageAccountName>/<FileShareName> /media/<YourStorageAccountName>/<FileShareName> nfs vers=4,minorversion=1,_netdev,nofail,sec=sys 0 0

# For Microsoft.FileShares file share, use:
$hostName:/$shortName/<FileShareName> /media/$shortName/<FileShareName> nfs vers=4,minorversion=1,_netdev,nofail,sec=sys 0 0

Параметры монтирования NFS для общих файловых ресурсов Azure

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

Опция монтирования Рекомендуемое значение Описание
vers 4 Обязательный. Указывает версию используемого протокола NFS. Файлы Azure поддерживает только NFSv4.1.
minorversion 1 Обязательный. Указывает минорную версию протокола NFS. Некоторые дистрибутивы Linux не распознают минорные версии с точкой в параметре vers. vers=4.1Вместо этого используйте vers=4,minorversion=1.
sec sys Обязательный. Указывает тип безопасности, используемый при проверке подлинности подключения NFS. Настройка sec=sys использует локальные UNIX UID и GID, которые используют AUTH_SYS (стандартную схему аутентификации UNIX/Linux) для аутентификации операций NFS.
rsize 1048576 Рекомендуется. Задает максимальное количество байтов для передачи в одной операции чтения NFS. Указание максимального уровня 1048 576 байт обычно приводит к оптимальной производительности.
wsize 1048576 Рекомендуется. Задает максимальное количество байтов для передачи в одной операции записи NFS. Указание максимального уровня 1048 576 байт обычно приводит к оптимальной производительности.
noresvport Н/Д Рекомендуется для ядер до версии 5.18. Сообщает клиенту NFS использовать непривилегированный исходный порт при взаимодействии с сервером NFS для точки монтирования. Использование параметра монтирования noresvport помогает обеспечить непрерывную доступность вашей общей папки NFS после повторного подключения. Для обеспечения высокой доступности рекомендуется использовать этот параметр.
actimeo от 30 до 60 Рекомендуется. Указание actimeo устанавливает все acregmin, acregmax, acdirmin и acdirmax на одно и то же значение. Использование значения ниже 30 секунд может привести к снижению производительности, так как кэши атрибутов для файлов и каталогов истекают слишком быстро. Установите для actimeo значение от 30 до 60 секунд.
nconnect 4 Рекомендуется. nconnect Повышает производительность за счёт использования нескольких TCP-соединений между клиентом и вашим NFS-share. Настройте параметры монтирования, указав оптимальное значение nconnect=4. В настоящее время для реализации Файлы Azure нет увеличения числа каналов сверх четырех.
clean Н/Д Подключение, не использующее TLS, может завершиться сбоем, если предыдущее подключение TLS к тому же серверу прекратилось внезапно, оставляя неактуальные записи. Чтобы устранить эту проблему, повторно подключите общую папку с помощью clean параметра, который немедленно очищает устаревшие записи. Этот параметр применяется только к монтированию AZNFS.

Проверка подключения

Если не удаётся выполнить монтирование, возможно, ваша частная конечная точка настроена неправильно или недоступна. Дополнительные сведения см. в разделе "Проверка подключения".

Моментальные снимки файловых ресурсов NFS

Вы можете создавать моментальные снимки общих файловых ресурсов при использовании общих файловых ресурсов NFS в Azure. Эта возможность позволяет откатить все файловые системы или восстановить файлы, которые случайно удалены или повреждены. См. Использование моментальных снимков общего доступа с Файлы Azure.

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