创建文件系统后,您需要使用云服务器来挂载该文件系统,以实现多个云服务器共享访问文件系统的目的。本文介绍如何通过阿里云Windows ECS实例挂载SMB文件系统。

前提条件

  • 在创建文件系统的地域,已有可用的云服务器ECS(Windows)。具体操作,请参见创建ECS实例
  • 已创建SMB文件系统,并获取到文件系统的挂载点地址。具体操作,请参见通过控制台创建通用型NAS文件系统
  • 网络连通。
    • 选择经典网络进行挂载时,ECS和NAS属于同一阿里云UID。
    • 检查文件系统白名单,确保云服务器ECS(Linux)已经被授予访问该SMB文件系统的权限。
    • 确保端口445处于打开状态,SMB文件系统将通过TCP端口445通信。

      如果端口445未打开,请在目标ECS实例的安全组中添加关于端口445的安全组规则。具体操作,请参见添加安全组规则

背景信息

默认情况下,一般挂载文件系统是以登录系统的用户身份执行的。在Windows操作系统中,系统服务(Services)、计划任务(Scheduled Tasks)以及很多系统调用都是以SYSTEM系统账号进行操作。

步骤一:环境准备

以下操作步骤,请确保在挂载每台Windows服务器执行一次即可,不需要在每次挂载时都执行一次。

  1. 连接到ECS实例
  2. 对于Windows 2016以上的系统,需要配置允许客户端匿名访问,执行以下命令。
    REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters /f /v AllowInsecureGuestAuth /t REG_DWORD /d 1
  3. 开启Workstation服务。
    1. 选择所有程序 > 附件 > 运行或使用快捷键Win+R,输入services.msc进入本地服务。
    2. 在服务中找到Workstation,确认运行状态为已启动,启动类型为自动

      正常情况下,Workstation服务默认为启动状态。

      Workstation
  4. 开启TCP/IP NetBIOS Helper服务。
    1. 打开网络与共享中心,单击主机所连网络。
    2. 单击属性,双击Internet 协议版本 4进入属性框,单击高级
    3. 高级TCP IP设置对话框中,选择WINS > 启用TCP/IP上的NetBIOS启用 TCP/IP 上的 NetBIO
    4. 选择所有程序 > 附件 > 运行或使用快捷键Win+R,输入services.msc进入本地服务。
    5. 在服务中找到TCP/IP NetBIOS Helper,确认运行状态为已启动,启动类型为自动

      正常情况下,TCP/IP NetBIOS Helper服务默认为启动状态。

      TCP/IP NetBIOS Helpe

步骤二:挂载SMB文件系统

SMB文件系统支持通过手动挂载和自动挂载两种方式进行挂载。为避免已挂载文件系统的云服务器ECS重启后,挂载信息丢失,建议您在手动挂载SMB文件系统成功后,配置自动挂载SMB文件系统脚本,实现在云服务器ECS设置重启时SMB文件系统自动挂载。

手动挂载SMB文件系统

您需要使用文件系统的挂载点地址,将SMB文件系统挂载至Windows ECS实例。

  1. 连接到ECS实例
  2. 打开CMD命令行窗口,执行以下命令挂载SMB文件系统。
    net use Z: \\file-system-id.region.nas.aliyuncs.com\myshare
    参数 说明
    Z 当前Windows系统上要挂载的目标盘符,如果有冲突,或者挂载了多个NAS文件系统,则按字母顺序递减盘符。
    file-system-id.region.nas.aliyuncs.com 创建SMB文件系统时系统自动生成的挂载点地址,请根据实际值替换。

    您可以在NAS控制台,单击目标文件系统,然后单击挂载使用,将鼠标放置在挂载地址列的挂载点图标上获取挂载点地址。

    myshare SMB的共享名称,不允许变更。
    说明 对于Windows 2019及更高版本的操作系统,为了让所有用户都能访问挂载点,推荐使用PowerShell命令New-SmbGlobalMapping进行挂载。挂载命令如下所示:
    New-SmbGlobalMapping -LocalPath z: -RemotePath \\file-system-id.region.nas.aliyuncs.com\myshare -Persistent $true

    执行命令如需输入身份,请您输入工作域任何一个合法身份即可。例如workgroup\administrator

  3. 确认SMB文件系统挂载成功。
    • 执行命令
      net use
    • 返回示例

      如果回显包含如下类似信息,说明挂载成功。挂载成功后,您可以在ECS上访问NAS文件系统,执行读取或写入操作。

      查看挂载结果

自动挂载SMB文件系统

  1. 打开CMD命令行窗口,执行以下命令,配置脚本auto_mount.bat。
    echo %HOMEPATH%\mount.bat > auto_mount.bat
  2. 执行以下三条命令,将auto_mount.bat配置成用户登录后自动运行,并配置其他人的读和执行权限。
    MOVE auto_mount.bat "c:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp"
    icacls "c:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\auto_mount.bat" /grant everyone:rx
    REG ADD HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run /f /v MyMount /t REG_SZ /d "c:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\auto_mount.bat"
  3. 执行以下命令,配置实际执行挂载命令的脚本mount.bat。
    echo net use z: \\file-system-id.region.nas.aliyuncs.com\myshare > "%HOMEPATH%\mount.bat"

    请根据实际值替换盘符z和挂载点地址file-system-id.region.nas.aliyuncs.com

    说明 如果SMB文件系统支持AD、ACL,并且您希望使用Windows登录用户身份以外的其他域用户身份挂载SMB文件系统,则可以执行以下命令配置脚本。
    echo net use z: \\file-system-id.region.nas.aliyuncs.com\myshare /user:user@domain password > "%HOMEPATH%\mount.bat"

    请根据实际值替换盘符z、挂载点地址file-system-id.region.nas.aliyuncs.com,域用户名user@domain,域用户密码password

  4. 重启ECS服务器。
    用户重新登录后,执行net use命令验证挂载结果。

相关文档

  • 关于在文件存储NAS上搭建Windows应用程序的最佳实践,请参见Windows应用程序
  • 关于将文件存储NAS用于内容管理系统和Web服务应用程序,为网站及应用程序提供高效存储服务的场景,请参见Web服务和内容管理
  • 更多有关文件存储NAS应用场景的最佳方案,请参见最佳实践