你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
可以使用服务器消息块 (SMB) 协议或网络文件系统 (NFS) 协议将 Azure 文件共享装载到 Linux 发行版中。 本文重点介绍如何使用 NFS 进行装载。 有关装载 SMB 文件共享的详细信息,请参阅 将 Azure 文件与 Linux 配合使用。 有关每个可用协议的详细信息,请参阅 Azure 文件共享协议。
适用于
| 管理模型 | 计费模式 | 媒体层 | 冗余 | SMB | NFS |
|---|---|---|---|---|---|
| Microsoft.文件共享 | 预配 v2 | SSD(高级) | 本地 (LRS) |
|
|
| Microsoft.文件共享 | 预配 v2 | SSD(高级) | 区域 (ZRS) |
|
|
| Microsoft.Storage | 预配 v2 | HDD(标准) | 本地 (LRS) |
|
|
| Microsoft.Storage | 预配 v2 | HDD(标准) | 区域 (ZRS) |
|
|
| Microsoft.Storage | 预配 v2 | HDD(标准) | 异地 (GRS) |
|
|
| Microsoft.Storage | 预配 v2 | HDD(标准) | GeoZone (GZRS) |
|
|
| Microsoft.Storage | 预配版本 v1 | SSD(高级) | 本地 (LRS) |
|
|
| Microsoft.Storage | 预配版本 v1 | SSD(高级) | 区域 (ZRS) |
|
|
| Microsoft.Storage | 即用即付 | HDD(标准) | 本地 (LRS) |
|
|
| Microsoft.Storage | 即用即付 | HDD(标准) | 区域 (ZRS) |
|
|
| Microsoft.Storage | 即用即付 | HDD(标准) | 异地 (GRS) |
|
|
| Microsoft.Storage | 即用即付 | HDD(标准) | GeoZone (GZRS) |
|
|
先决条件:配置网络安全
只能从受信任的网络访问 NFSv4.1 文件共享(经典共享和使用 Microsoft.FileShares 创建的文件共享)。 建议使用虚拟网络和其他网络安全设置来保护数据。 用于保护数据的任何其他工具(包括帐户密钥授权、Microsoft Entra 安全性和访问控制列表 (ACL))都无法用于授权 NFS v4.1 请求。 若要详细了解如何设置 NFS 4.1 文件共享、虚拟机和网络设置,请参阅 如何创建经典文件共享以及如何 创建文件共享 以获取详细信息。
装载 NFS Azure 文件共享
你可以在 Azure 门户中使用 AZNFS 装载助手来挂载共享,或者在 CLI 中使用 NFS 原生挂载命令。 还可以在 /etc/fstab 文件中创建一条记录,以便在 Linux 服务器或 VM 每次启动时自动装载共享。
你可以使用 nconnect Linux 装载选项大规模提高 NFS Azure 文件共享的性能。 有关详细信息,请参阅提高 NFS Azure 文件共享性能。
默认装载说明
经典 NFS 文件共享(Microsoft.Storage)
- 创建文件共享后,选择该共享,然后选择 “从 Linux 进行连接”。
- 输入要使用的装载路径,然后复制脚本并在客户端上运行它。 Azure 门户提供针对所选 Linux 分发版定制的分步就绪安装脚本,用于安装 AZNFS 装载帮助程序包,并使用 传输中的加密安全地装载共享。 脚本中仅包含所需的装载选项,但你可以添加其他建议的装载选项。
使用命令行中的 NFS 客户端装载来装载经典 NFS 共享
还可以在命令行中使用 NFS 客户端装载来装载 Azure 文件共享。 为 Linux 分发版选择以下选项卡以查看需要运行的命令。 请确保将 <YourStorageAccountName> 和 <FileShareName> 替换为你的信息。
sudo apt-get -y update
sudo apt-get install nfs-common
/mount/<YourStorageAccountName>/<FileShareName>
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)
创建文件共享后,选择该共享,然后选择 “从 Linux 进行连接”。
输入要使用的装载路径,然后复制脚本并在客户端上运行它。 Azure 门户提供针对所选 Linux 分发版定制的分步就绪安装脚本,用于安装 AZNFS 装载帮助程序包,并使用 传输中的加密安全地装载共享。 脚本中仅包含所需的装载选项,但你可以添加其他建议的装载选项。
使用命令行中的 NFS 客户端装载来装载 NFS 共享
还可以在命令行中使用 NFS 客户端装载来装载 Azure 文件共享。 为 Linux 分发版选择以下选项卡以查看需要运行的命令。 请务必将其替换为<your-subscription-id><your-reource-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 装载
如果希望在每次 Linux 服务器或 VM 启动时自动装载,请在 /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>自己的值。 对于文件共享,请记得替换 hostName 和 shortName 替换为正确的值。 有关详细信息,请从 Linux 命令行输入命令 man fstab。
使用 Aznfs 帮助程序装载传输中加密
如果使用 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.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.1,nolock,proto=tcp,nofail,_netdev 0 2
在没有传输中加密的情况下使用 Aznfs 帮助程序进行装载
如果使用的是 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.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.1,nolock,proto=tcp,nofail,_netdev,notls 0 2
使用本机装载命令进行装载
如果您使用没有 AZNFS 的原生 NFS 装载,/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 文件共享时,建议或需要以下装载选项。
| 装载选项 | 建议的值 | 说明 |
|---|---|---|
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 对 NFS 操作进行身份验证。 |
rsize |
1048576 | 推荐。 设置单个 NFS 读取操作中要传输的最大字节数。 指定最大级别为 1,048,576 字节通常会导致最佳性能。 |
wsize |
1048576 | 推荐。 设置单个 NFS 写入操作中要传输的最大字节数。 指定最大级别为 1,048,576 字节通常会导致最佳性能。 |
noresvport |
不适用 | 建议用于低于 5.18 的内核。 告知 NFS 客户端在与装入点的 NFS 服务器通信时使用非特权源端口。 使用 noresvport 装载选项有助于确保在重新连接后 NFS 共享具有不间断的可用性。 建议使用此选项来实现高可用性。 |
actimeo |
30至60 | 推荐。 指定 actimeo 会将所有 acregmin、acregmax、acdirmin 和 acdirmax 设置为相同的值。 使用小于 30 秒的值可能会导致性能下降,因为文件和目录的属性缓存很快就会过期。 建议将 actimeo 设置为 30 到 60 秒。 |
nconnect |
4 | 推荐。 Nconnect 通过使用客户端与 NFS 共享之间的多个 TCP 连接来提高性能。 我们建议将装载选项配置为最优设置,即 nconnect=4。 目前,对于 nconnect 的 Azure 文件存储实现来说,超过 4 个通道不会带来增益。 |
clean |
不适用 | 如果以前装载到同一服务器的 TLS 装载突然结束,则非 TLS 装载可能会失败,留下过时的条目。 若要解决此问题,请使用 clean 选项重新装载共享,该选项会立即清除任何过时条目。 这仅适用于 AZNFS 装载。 |
验证连接
如果装载失败,则可能是专用终结点未正确设置或无法访问。 有关确认连接的详细信息,请参阅验证连接。
NFS 文件共享快照
使用 NFS Azure 文件共享的客户可以创建文件共享快照。 借助此功能,用户可以回滚整个文件系统或恢复意外删除或损坏的文件。 请参阅将共享快照与 Azure 文件存储配合使用。
后续步骤
- 如果遇到任何问题,请参阅排查 NFS Azure 文件共享问题。