无法挂载 NFS 数据存储
search cancel

无法挂载 NFS 数据存储

book

Article ID: 324873

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:
免责声明:本文为 Unable to mount NFS datastore (1005948) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。

  • ESX/ESXi 主机无法挂载 NFS 数据存储
  • /var/log/vmkernel (ESX) 或 /var/log/messages (ESXi) 日志文件中,显示与下面类似的错误:
Jun 15 13:01:39 esx-02 vmkernel: 2:13:51:38.221 cpu2:4287)WARNING: NFS: 201: Got error 13 from mount call
Jun 15 13:01:39 esx-02 vmkernel: 2:13:51:38.221 cpu9:4262)WARNING: NFS: 944: MOUNT failed with MOUNT status 13 (Permission denied) trying to mount Server (192.168.10.10) Path(/opt/esx-mounts)
  • 在 ESXi 5.0 主机的 vobd 日志中,显示下面的错误:

    [esx.problem.vmfs.nfs.mount.error.perm.denied] NFS mount ip-address:mountpoint failed: The mount request was denied by the NFS server. Check that the export exists and that the client is permitted to mount it.


Environment

VMware ESXi 4.1.x Embedded
VMware ESXi 4.0.x Installable
VMware ESX 4.1.x
VMware ESXi 4.0.x Embedded
VMware ESXi 4.1.x Installable
VMware ESXi 3.5.x Installable
VMware vSphere ESXi 5.0
VMware ESX Server 3.0.x
VMware ESX 4.0.x
VMware ESXi 3.5.x Embedded
VMware vSphere ESXi 5.1
VMware ESX Server 3.5.x

Resolution

注意:如果您在同一网段上有多个 vmkernel 端口,可能会出现此问题。VMware 建议,除非使用端口绑定,否则请在每个网段上只配置一个 vmkernel 端口。有关此建议的详细信息,请参见 ESX/ESXi 上的多宿主机制 (2010877) (Multi-homing on ESX/ESXi (2010877))

以下面的配置为例:

通过检查 vmkernel 端口配置,我们可以看到 10.1.1.0 网络上有两个 vmkernel 端口:

# esxcfg-vmknic -l

Interface Port Group/DVPort IP Family IP Address Netmask Broadcast MAC Address MTU TSO MSS Enabled Type
vmk2 Backup IPv4 10.1.1.23 255.255.255.0 10.1.1.255 xx:xx:xx:xx:xx:xx 1500 65535 true STATIC
vmk0 0 IPv4 10.1.1.33 255.255.255.0 10.1.1.255 xx:xx:xx:xx:xx:xy 9000 65535

在上例中,我们希望将 vmk0 用于 NFS 连接(已为此通信启用巨型帧或 MTU 9000)。

检查当前的路由表以查看哪个 vmkernel 端口是 10.1.1.0 网络的默认端口。

# esxcfg-route -l

VMkernel Routes:
Network Netmask Gateway Interface
10.1.1.0 255.255.255.0 Local Subnet vmk2
192.168.55.0 255.255.255.0 Local Subnet vmk3
default 0.0.0.0 10.1.1.1 vmk2


从上述路由表中,我们可以看到 vmk2 是 10.1.1.0 网络的默认 vmkernel 接口,而且它目前用于 NFS 通信;这种配置不甚理想,原因如下:

  • 无法预测将使用哪一 vmkernel 端口。
  • 在本例中,使用的是非巨型帧 vmkernel 端口,这样将导致性能降低。
  • NFS 服务器上的访问控制列表 (ACL) 可能不包含 ACL 中 vmk2 的 IP 地址,因此它将拒绝连接到此主机的 NFS 导出。

如果主机在同一网络上没有两个或两个以上的 vmkernel 端口,请按照以下故障排除步骤操作:

  • 确保 NFS 服务器支持基于 TCP 的 NFSv3。ESX/ESXi 不对 NFS 使用 UDP。
  • 所有 ESX/ESXi 主机必须都可通过读写模式访问 NFS 服务器。
  • NFS 服务器必须允许 root 系统帐户 (rw) 进行读写访问。
  • 必须为 no_root_squashchmod 1777 设置 NFS 导出。
  • 通过检查导出列表确保允许 ESX/ESXi VMkernel IP 挂载 NFS 共享。
  • 通过运行 exportfs -a 重新导出所有 NFS 共享,确保将挂载导出。
  • 通过以下检查确保 ESX/ESXi 主机已正确配置为使用 NFS 共享:
    • 确保存在一个 vmkernel 端口组。
    • 检查 VMKernel IP 地址:
      1. 使用 VI/vSphere Client 连接到 Virtual Center/vCenter Server。
      2. 选择 ESX/ESXi 主机。
      3. 单击配置选项卡。
      4. 单击网络
      5. 查看 VMKernel 的网络图,或单击属性 > 端口 > VMKernel。如果 VMKernel 未列出,必须添加它。

    • 检查 NFS 服务器是否可以使用 vmkping 访问。
    • 您可以尝试从 NFS 存储对 ESX/ESXi VMkernel IP 执行 ping 命令。

仅限 ESX

  • 通过以下检查确保 NFS 服务可以接受来自 ESX 主机的 NFS 连接。
  • 确保服务器上正在运行 NFS 守护进程,为此,请使用命令 rpcinfo -p localhost service nfs status

    # rpcinfo -p localhost
    program vers proto port
    100000 2 tcp 111 portmapper
    100000 2 udp 111 portmapper
    100011 1 udp 925 rquotad
    100011 2 udp 925 rquotad
    100011 1 tcp 928 rquotad
    100011 2 tcp 928 rquotad
    100003 2 udp 2049 nfs
    100003 3 udp 2049 nfs
    100003 4 udp 2049 nfs

    100021 1 udp 60528 nlockmgr
    100021 3 udp 60528 nlockmgr
    100021 4 udp 60528 nlockmgr
    100003 2 tcp 2049 nfs
    100003 3 tcp 2049 nfs
    100003 4 tcp 2049 nfs
    100021 1 tcp 50217 nlockmgr
    100021 3 tcp 50217 nlockmgr
    100021 4 tcp 50217 nlockmgr
    100005 1 udp 949 mountd
    100005 1 tcp 952 mountd
    100005 2 udp 949 mountd
    100005 2 tcp 952 mountd
    100005 3 udp 949 mountd
    100005 3 tcp 952 mountd

    # service nfs status

rpc.mountd (pid 2469) is running...
nfsd (pid 2466 2465 2464 2463 2462 2461 2460 2459)
is running...



Additional Information

如果您使用的是 Lab Manager,请勿通过 ESX 主机上的 VI Client 设置 NFS 数据存储。与 VMFS 数据存储不同的是,Lab Manager 无法识别通过 VI Client 创建的 NFS 数据存储。这些数据存储与通过 Lab Manager Web 控制台创建的 NFS 数据存储存在冲突。有关详细信息,请参见配置主机期间出现以下错误:NFS 错误: 无法挂载文件系统 (1003803) (Error during the configuration of the host: NFS Error: Unable to mount filesystem (1003803))

Unable to mount NFS datastore