在 Linux 上装载 NFS Azure 文件共享

适用于: ✔️ NFS 文件共享

可以使用服务器消息块(SMB)协议或网络文件系统(NFS)协议在 Linux 分发版中装载Azure文件共享。 本文重点介绍如何使用 NFS 进行装载。 它涵盖网络安全先决条件、装载说明、使用 /etc/fstab 自动装载以及建议的 NFS 装载选项。 有关装载 SMB 文件共享的详细信息,请参阅 将 Azure 文件与 Linux 配合使用。 有关可用协议的详细信息,请参阅Azure文件共享协议

先决条件:配置网络安全

只能从受信任的网络访问 NFSv4.1 文件共享。 使用虚拟网络和其他网络安全设置保护数据。 不能使用Microsoft Entra安全和访问控制列表(ACL)来授权 NFSv4.1 请求。 若要详细了解如何设置 NFSv4.1 文件共享,请参阅 如何创建经典文件共享

安装 NFS Azure 文件共享

你可以在 Azure 门户中使用 AZNFS 挂载辅助工具包(Azure NFS 挂载辅助包)挂载共享,或者使用CLI中的原生NFS挂载命令。 还可以在 /etc/fstab 文件中创建一条记录,以便在 Linux 服务器或 VM 每次启动时自动装载共享

nconnect使用 Linux 装载选项可大规模提高 NFS Azure文件共享的性能。 有关详细信息,请参阅提高 NFS Azure 文件共享性能

经典 NFS 文件共享(Microsoft.Storage)

按照以下步骤装载经典 NFS 文件共享。

  1. 创建文件共享后,选择该共享,然后选择 “从 Linux 进行连接”。
  2. 输入要使用的装载路径,然后复制脚本并在客户端上运行它。 Azure 门户提供一个逐步且可用的安装脚本,针对您选择的 Linux 发行版定制,用于安装 AZNFS 挂载辅助包。 该脚本仅包含所需的装载选项,但可以添加其他 建议的装载选项

截图展示了如何通过提供的挂载脚本从Linux连接NFS文件共享。

使用命令行中的 NFS 客户端挂载经典 NFS 共享

你也可以在命令行中使用 NFS 客户端挂载命令来挂载 Azure 文件共享。 为 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.chinacloudapi.cn:/<YourStorageAccountName>/<FileShareName> /mount/<YourStorageAccountName>/<FileShareName> -o vers=4,minorversion=1,sec=sys,nconnect=4

使用 /etc/fstab 装载

若要在每次启动 Linux 服务器或 VM 时自动装载 NFS 文件共享,请在 /etc/fstab 文件中为Azure文件共享创建记录。 记录因使用的是 AZNFS 装载帮助程序还是本机 NFS 装载命令而异。

若要检查是否在客户端上安装 AZNFS 装载帮助程序包,请运行以下命令:

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

如果已安装包,将显示该消息 AZNFS Mount Helper is installed!

<YourStorageAccountName><FileShareName> 替换为自己的值。 有关详细信息,请从 Linux 命令行输入命令 man fstab

使用 AZNFS 装载帮助程序进行装载

如果使用 AZNFS 装载帮助程序, 则 /etc/fstab 中的记录应如下所示:

<YourStorageAccountName>.file.core.chinacloudapi.cn:/<YourStorageAccountName>/<FileShareName> /media/<YourStorageAccountName>/<FileShareName> aznfs defaults,sec=sys,vers=4,minorversion=1,nolock,proto=tcp,nofail,_netdev,notls   0 2

使用原生 mount 命令进行挂载

如果使用不带 AZNFS 的 NFS 本地装载,则 /etc/fstab 中的记录应如下所示:

<YourStorageAccountName>.file.core.chinacloudapi.cn:/<YourStorageAccountName>/<FileShareName> /media/<YourStorageAccountName>/<FileShareName> nfs vers=4,minorversion=1,_netdev,nofail,sec=sys 0 0

Azure 文件共享的 NFS 挂载选项

装载 NFS Azure文件共享时,请使用以下装载选项。

装载选项 建议的值 Description
vers 4 Required. 指定要使用 NFS 协议的哪个版本。 Azure 文件存储仅支持 NFSv4.1。
minorversion 1 Required. 指定 NFS 协议的小版本号。 某些 Linux 发行版无法识别参数上的 vers 虚线次要版本。 因此不要使用 vers=4.1,应使用 vers=4,minorversion=1
sec sys Required. 指定在对 NFS 连接进行身份验证时要使用的安全类型。 设置 sec=sys 使用本地的UNIXUID和GID,这些UID使用AUTH_SYS(标准UNIX/Linux认证方案)来认证NFS操作。
rsize 1048576 Recommended. 设置在单个 NFS 读取操作中传输的最大字节数。 指定最大级别为 1,048,576 字节通常会导致最佳性能。
wsize 1048576 Recommended. 设置在单个 NFS 写入操作中传输的最大字节数。 指定最大级别为 1,048,576 字节通常会导致最佳性能。
noresvport n/a 推荐用于 5.18 之前的内核。 告知 NFS 客户端在与装入点的 NFS 服务器通信时使用非特权源端口。 使用 noresvport 装载选项有助于确保在重新连接后 NFS 共享具有不间断的可用性。 建议使用此选项来实现高可用性。
actimeo 30-60 Recommended. 指定 actimeo 会将所有 acregminacregmaxacdirminacdirmax 设置为相同的值。 使用小于 30 秒的值可能会导致性能下降,因为文件和目录的属性缓存很快就会过期。 将 actimeo 设置为 30 到 60 秒之间。
nconnect 4 Recommended. nconnect 通过在客户端和NFS共享之间使用多条TCP连接来提升性能。 使用 nconnect=4 的最佳设置配置装载选项。 目前,Azure 文件存储 实现的 nconnect 不支持超过四个渠道的增益。
clean n/a 如果以前装载到同一服务器的 TLS 装载突然结束,则非 TLS 装载可能会失败,留下过时的条目。 若要解决此问题,请使用 clean 选项重新装载共享,该选项会立即清除任何过时条目。 此选项仅适用于 AZNFS 装载。

验证连接

如果装载失败,则专用终结点可能未正确设置或无法访问。 有关详细信息,请参阅“验证连接”。

NFS 文件共享快照

使用 NFS Azure文件共享时,可以拍摄文件共享快照。 此功能允许回滚整个文件系统或恢复意外删除或损坏的文件。 请参阅使用共享快照与 Azure 文件

后续步骤