本文主要介绍如何将NFS文件系统挂载至云服务器Windows ECS并进行读写操作。

背景信息

推荐Windows系统挂载使用SMB文件系统。由于Windows系统对NFS协议的兼容程度不如Linux系统完善,建议仅在需要跨操作系统共享数据的情况下使用Windows系统挂载NFS文件系统。

本案例以Windows Server 2012 R2系统为例,在VPC网络下的ECS Windows实例上挂载NFS文件系统。

背景信息

安装NFS客户端

  1. 打开服务器管理器
  2. 选择管理 > 添加角色和功能
  3. 根据添加角色和功能向导提示安装NFS客户端。
    • 服务器角色选项卡下,选择文件和存储服务 > 文件和iSCSI服务下的NFS服务器
    • 功能选项卡下,选择NFS客户端
  4. 重启ECS实例。
  5. 启动命令提示符,运行mount命令。

    如果返回以下信息,说明NFS客户端安装成功。

    安装结果

手动挂载NFS文件系统

  1. 运行以下命令挂载NFS文件系统。
    mount -o nolock -o mtype=hard -o timeout=60 \\file-system-id.region.nas.aliyuncs.com\! Z:

    file-system-id.region.nas.aliyuncs.com是挂载点地址,请根据实际值替换。

  2. 执行mount检查挂载结果。

    挂载完成后,回显信息必须包括mount=hard、locking=no以及timeout参数>=10,否则说明挂载有问题。

    检查UID和GID
  3. 这台电脑界面查看新的共享文件系统。

    在共享文件系统里新建文件夹和文件,检查是否能正常操作该文件系统。

    挂载结果

自动挂载NFS文件系统

  1. 在nas_auto.bat的脚本文件输入以下内容,保存到对应磁盘路径下。
    示例:mount -o nolock -o mtype=hard -o timeout=60 \\file-system-id.region.nas.aliyuncs.com\! Z:

    您需要自行替换盘符(Z:)和挂载点域名(file-system-id.region.nas.aliyuncs.com)。有关挂载参数,请参见自动挂载NFS文件系统

    说明 如果挂载NFS任务显示成功,但实际没有出现NAS盘,请尝试直接将nas_auto.bat移动至C:\ProgramData\Microsoft\Windows\StartMenu\Programs\StartUp目录下,无需在任务计划程序下创建任务
  2. 创建计划任务。
    1. 打开控制面板,选择管理工具 > 任务对话程序
    2. 任务计划程序页面,选择操作 > 创建任务
      创建任务
    3. 单击常规页签,输入计划任务的名称,选中不管用户是否登录都要运行使用最高权限运行
      常规设置
    4. 单击触发器页签,单击新建。在开始任务列表中选择登录时,在高级设置中选择已启用。单击确定
      触发器设置
    5. 单击操作页签,单击新建。在操作列表中选择启动程序,在程序或脚本中选择创建好的nas_auto.bat文件。单击确定
      启动程序
    6. 单击条件页签,选中只有在以下网络连接可用时才启动。在只有在以下网络连接可用时才启动列表中选择任何连接
      条件设置
    7. 单击设置页签,选中如果请求后任务还在运行,强行将其停止。在如果此任务已经运行,以下规则适用列表中选择请勿启动新实例
      设置
    8. 单击确定
    9. 重启ECS服务器,验证创建结果。

      如果系统显示如下信息,表示计划任务正常执行。

      创建结果

常见问题

如果在操作时系统报错file handle error,您需要确认以下注册表信息。

说明 如果找不到LockingAnonymousGIDAnonymousUID这三个注册表项,则按照Windows的字段格式要求进行创建。
HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > ClientForNFS > CurrentVersion > Users > Default > Mount,其中 Locking值必须为1。Locking

创建以下注册表项设置GID和UID。

  1. 进入Default注册表项目录:HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > ClientForNFS > CurrentVersion > Default
  2. 右击空白处,选择新建 > DWORD(32位)值,并创建以下两个注册表项。
    • AnonymousGID,值为0。
    • AnonymousUID,值为0。Default注册表
  3. 重启ECS实例。
  4. 运行以下命令挂载NAS文件系统。
    mount -o nolock -o mtype=hard -o timeout=60 \\file-system-id.region.nas.aliyuncs.com\! Z:

    file-system-id.region.nas.aliyuncs.com是挂载点地址,请根据实际值替换。

  5. 运行mount检查新的UID和GID。

    挂载完成后,回显信息必须包括mount=hard、locking=no以及timeout参数>=10,否则说明挂载有问题。

    检查UID和GID