使用 Microsoft Windows 文件共享 - Amazon FSx for Windows File Server
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Microsoft Windows 文件共享

Microsoft Windows 文件共享是文件系统中的特定文件夹。它包括文件夹的子文件夹,您可以使用服务器消息块(SMB)协议让这些子文件夹可供计算实例访问。文件系统随附名为 share 的默认 Windows 文件共享。您可以使用名为 Shared Folders 的 Windows 图形用户界面(GUI)工具,根据需要创建和管理任意数量的其他 Windows 文件共享。

访问文件共享

要访问文件共享,您可以使用 Windows Map Network Drive 功能,将计算实例上的驱动器盘符映射到 Amazon FSx 文件共享。将文件共享映射到计算实例上的驱动器,这一过程在 Linux 中称为挂载文件共享。此过程因计算实例的类型和操作系统而异。映射文件共享后,您的应用程序和用户可以像访问本地文件和文件夹一样访问文件共享中的文件和文件夹。

以下是在不同的支持计算实例上映射文件共享的过程。

在 Amazon EC2 Windows 实例上映射文件共享

您可以使用 Windows File Explorer 或命令提示符在 EC2 Windows 实例上映射文件共享。

  1. 启动 EC2 Windows 实例,并将其连接到 Amazon FSx 文件系统加入的 Microsoft Active Directory。为此,请从《Amazon Directory Service 管理指南》中选择以下过程:

  2. 连接到您的 EC2 Windows 实例。有关更多信息,请参阅《适用于 Windows 实例的 Amazon EC2 用户指南》中的连接您的 Windows 实例

  3. 连接后,请打开 File Explorer。

  4. 在导航窗格中,打开网络的上下文(右键单击)菜单,然后选择映射网络驱动器

  5. 驱动器中,选择一个驱动器盘符。

  6. 文件夹中,输入文件系统的 DNS 名称或与文件系统关联的 DNS 别名,以及共享名称。

    重要

    使用 IP 地址(而不是 DNS 名称),这可能在多可用区文件系统的失效转移过程中导致不可用的错误。此外,在多可用区和单可用区文件系统中,基于 Kerberos 的身份验证需要 DNS 名称或关联的 DNS 别名。

    您可以通过选择 Windows File Server网络与安全,在 Amazon FSx 控制台上找到文件系统的 DNS 名称和任何关联的 DNS 别名。或者,您可以在 CreateFileSystemDescribeFileSystems API 操作的响应中找到它们。有关使用 DNS 别名的更多信息,请参阅管理 DNS 别名

    • 对于加入 Amazon 托管的 Microsoft Active Directory 的单可用区文件系统,DNS 名称如下所示。

      fs-0123456789abcdef0.ad-domain.com
    • 对于加入自行管理的 Active Directory 的单可用区文件系统,以及所有多可用区文件系统,DNS 名称如下所示。

      amznfsxaa11bb22.ad-domain.com

    例如,要使用单可用区文件系统的 DNS 名称,请在文件夹中输入以下内容。

    \\fs-0123456789abcdef0.ad-domain.com\share

    要使用多可用区文件系统的 DNS 名称,请在文件夹中输入以下内容。

    \\famznfsxaa11bb22.ad-domain.com\share

    要使用与文件系统关联的 DNS 别名,请在文件夹中输入以下内容。

    \\fqdn-dns-alias\share
  7. 登录时重新连接选择一个选项,指示文件共享是否应在登录时重新连接,然后选择完成

  1. 启动 EC2 Windows 实例,并将其连接到 Amazon FSx 文件系统加入的 Microsoft Active Directory。为此,请从《Amazon Directory Service 管理指南》中选择以下过程:

  2. 以 Amazon Managed Microsoft AD 目录中的用户身份连接 EC2 Windows 实例。有关更多信息,请参阅《适用于 Windows 实例的 Amazon EC2 用户指南》中的连接您的 Windows 实例

  3. 连接后,请打开命令提示符窗口。

  4. 使用所选的驱动器盘符、文件系统的 DNS 名称和共享名称挂载文件共享。您可以在 Amazon FSx 控制台上选择 Windows File Server网络与安全,从而找到 DNS 名称。或者,您可以在 CreateFileSystemDescribeFileSystems API 操作的响应中找到它们。

    • 对于加入 Amazon 托管的 Microsoft Active Directory 的单可用区文件系统,DNS 名称如下所示。

      fs-0123456789abcdef0.ad-domain.com
    • 对于加入自行管理的 Active Directory 的单可用区文件系统,以及所有多可用区文件系统,DNS 名称如下所示。

      amznfsxaa11bb22.ad-domain.com

    下面是用于挂载文件共享的命令示例。

    $ net use H: \\amzfsxaa11bb22.ad-domain.com\share /persistent:yes

    除了net use命令之外,您还可以使用任何支持的 PowerShell 命令来装载文件共享。

 

在 Amazon EC2 Mac 实例上挂载文件共享

不管 Amazon EC2 Mac 实例是否已加入您的 Active Directory,您都可以在该实例上挂载文件共享。如果实例未加入您的 Active Directory,请务必为实例所在的 Amazon Virtual Private Cloud(Amazon VPC)更新 DHCP 选项设置,以包含您的 Active Directory 域的 DNS 名称服务器。然后,重新启动实例。

  1. 启动 EC2 Mac 实例。为此,请从《适用于 Linux 实例的 Amazon EC2 用户指南》中选择以下过程之一:

  2. 使用 Virtual Network Computing(VNC)连接到 EC2 Mac 实例。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的 使用 VNC 连接到实例

  3. 在 EC2 Mac 实例上,连接到 Amazon FSx 文件共享,如下所示:

    1. 打开查找器,选择前往,然后选择连接到服务器

    2. 连接到服务器对话框中,输入文件系统的 DNS 名称或与文件系统关联的 DNS 别名,以及共享名称。然后选择连接

      您可以通过选择 Windows File Server网络与安全,在 Amazon FSx 控制台上找到文件系统的 DNS 名称和任何关联的 DNS 别名。或者,您可以在 CreateFileSystemDescribeFileSystems API 操作的响应中找到它们。有关使用 DNS 别名的更多信息,请参阅管理 DNS 别名

      
                      Mac 连接屏幕截图,显示了文件系统窗格的 DNS 和共享名称。
    3. 在下一个屏幕上,选择连接以继续。

    4. 输入 Amazon FSx 服务账户的 Microsoft Active Directory(AD)凭证,如以下示例所示。然后选择连接

      
                      Mac 连接屏幕截图,显示了如何输入文件系统窗格的用户凭证。
    5. 如果连接成功,您会在 Finder 窗口的位置下方看到 Amazon FSx 共享。

  1. 启动 EC2 Mac 实例。为此,请从《适用于 Linux 实例的 Amazon EC2 用户指南》中选择以下过程之一:

  2. 使用 Virtual Network Computing(VNC)连接到 EC2 Mac 实例。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的 使用 VNC 连接到实例

  3. 使用以下命令挂载文件共享。

    mount_smbfs //file_system_dns_name/file_share mount_point

    您可以在 Amazon FSx 控制台上选择 Windows File Server网络与安全,从而找到 DNS 名称。或者,您可以在 CreateFileSystemDescribeFileSystems API 操作的响应中找到它们。

    • 对于加入 Amazon 托管的 Microsoft Active Directory 的单可用区文件系统,DNS 名称如下所示。

      fs-0123456789abcdef0.ad-domain.com
    • 对于加入自行管理的 Active Directory 的单可用区文件系统,以及所有多可用区文件系统,DNS 名称如下所示。

      amznfsxaa11bb22.ad-domain.com

    此过程中使用的挂载命令会在指定点执行以下操作:

    • //file_system_dns_name/file_share – 指定要挂载的文件系统的 DNS 名称和共享。

    • mount_point – 要挂载文件系统的 EC2 实例上的目录。

 

在 Amazon EC2 Linux 实例上挂载文件共享

不管 Amazon EC2 Linux 实例是否已加入您的 Active Directory,您都可以在该实例上挂载 FSx for Windows File Server 文件共享。

注意
  • 以下命令中指定的参数(SMB 协议、缓存,以及读取和写入缓冲区的大小)仅作为示例。Linux cifs 命令的参数选择以及所用 Linux 内核版本,可能会影响客户端与 Amazon FSx 文件系统之间网络操作的吞吐量和延迟。有关更多信息,请参阅 cifs 文档,了解您使用的 Linux 环境。

  • Linux 客户端不支持基于 DNS 的自动失效转移。有关更多信息,请参阅 Linux 客户端的失效转移经验

  1. 如果您还没有正在运行的 EC2 Linux 实例已加入 Microsoft Active Directory,请参阅《Amazon Directory Service 管理指南》中的手动加入 Linux 实例

  2. 连接到 EC2 Linux 实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的连接到您的 Linux 实例

  3. 要安装 cifs-utils 包,请运行以下命令。此包用于在 Linux 上挂载 Amazon FSx 等网络文件系统。

    $ sudo yum install cifs-utils
  4. 创建挂载点目录 /mnt/fsx。您将在此处挂载 Amazon FSx 文件系统。

    $ sudo mkdir -p /mnt/fsx
  5. 使用以下命令通过 Kerberos 进行身份验证。

    $ kinit
  6. 使用以下命令挂载文件共享。

    $ sudo mount -t cifs //file_system_dns_name/file_share mount_point --verbose -o vers=SMB_version,sec=krb5,cruid=ad_user,rsize=CIFSMaxBufSize,wsize=CIFSMaxBufSize,cache=none,ip=preferred-file-server-Ip

    您可以在 Amazon FSx 控制台上选择 Windows File Server网络与安全,从而找到 DNS 名称。或者,您可以在 CreateFileSystemDescribeFileSystems API 操作的响应中找到它们。

    • 对于加入 Amazon 托管的 Microsoft Active Directory 的单可用区文件系统,DNS 名称如下所示。

      fs-0123456789abcdef0.ad-domain.com
    • 对于加入自行管理的 Active Directory 的单可用区文件系统,以及所有多可用区文件系统,DNS 名称如下所示。

      amznfsxaa11bb22.ad-domain.com

    CIFSMaxBufSize 替换为内核允许的最大值。运行以下命令,以获取此值。

    $ modinfo cifs | grep CIFSMaxBufSize parm: CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (uint)

    输出显示最大缓冲区大小为 130048。

  7. 运行以下命令,验证文件系统是否已挂载,该命令仅返回通用 Internet 文件系统(CIFS)类型的文件系统。

    $ mount -l -t cifs //fs-0123456789abcdef0/share on /mnt/fsx type cifs (rw,relatime,vers=SMB_version,sec=krb5,cache=cache_mode,username=user1@CORP.NETWORK.COM,uid=0,noforceuid,gid=0,noforcegid,addr=192.0.2.0,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)

此过程中使用的挂载命令会在指定点执行以下操作:

  • //file_system_dns_name/file_share – 指定要挂载的文件系统的 DNS 名称和共享。

  • mount_point – 要挂载文件系统的 EC2 实例上的目录。

  • -t cifs vers=SMB_version – 将文件系统的类型指定为 CIFS 和 SMB 协议版本。Amazon FSx for Windows File Server 支持 SMB 版本 2.0 至 3.1.1。

  • sec=krb5 – 指定使用 Kerberos 版本 5 进行身份验证。

  • cache=cache_mode – 设置缓存模式。此 CIFS 缓存选项可能会影响性能,您应该测试哪些设置更适合您的内核和工作负载(并查看 Linux 文档)。建议使用选项 strictnone,因为 loose 可能会因协议语义较宽松而导致数据不一致。

  • cruid=ad_user – 将凭证缓存所有者的 UID 设置为 AD 目录管理员。

  • /mnt/fsx – 在 EC2 实例上指定 Amazon FSx 文件共享的挂载点。

  • rsize=CIFSMaxBufSize,wsize=CIFSMaxBufSize – 将读取和写入缓冲区大小指定为 CIFS 协议允许的最大值。将 CIFSMaxBufSize 替换为内核允许的最大值。通过运行以下命令来确定 CIFSMaxBufSize

    $ modinfo cifs | grep CIFSMaxBufSize parm: CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (uint)

    输出显示最大缓冲区大小为 130048。

  • ip=preferred-file-server-Ip – 将目标 IP 地址设置为文件系统首选文件服务器的 IP 地址。

    您可以按如下方式检索文件系统的首选文件服务器 IP 地址:

    • 使用 Amazon FSx 控制台,在文件系统详细信息页面的网络与安全选项卡上。

    • describe-file-systems CLI 命令或等效 DescribeFileSystemsAPI 命令的响应中。

以下过程将 Amazon FSx 文件共享挂载到未加入 Active Directory(AD)的 Amazon EC2 Linux 实例。对于未加入 AD 的 EC2 Linux 实例,您只能使用其私有 IP 地址挂载 FSx for Windows File Server 文件共享。您可以访问 Amazon FSx 控制台,在网络与安全选项卡上的首选文件服务器 IP 地址中获取文件系统的私有 IP 地址。

此示例使用 NTLM 身份验证。为此,您需要以用户身份(即,FSx for Windows File Server 文件系统所加入的 Microsoft Active Directory 域的成员)挂载文件系统。EC2 实例 creds.txt 上所创建的文本文件中会提供用户账户的凭证。此文件包含用户的用户名、密码和域。

$ cat creds.txt username=user1 password=Password123 domain=EXAMPLE.COM
启动和配置 Amazon Linux EC2 实例
  1. 使用 Amazon EC2 控制台启动 Amazon Linux EC2 实例。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的启动实例

  2. 连接到 Amazon Linux EC2 实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的连接到您的 Linux 实例

  3. 要安装 cifs-utils 包,请运行以下命令。此包用于在 Linux 上挂载 Amazon FSx 等网络文件系统。

    $ sudo yum install cifs-utils
  4. 创建您计划挂载 Amazon FSx 文件系统的挂载点 /mnt/fsxx

    $ sudo mkdir -p /mnt/fsx
  5. 使用之前显示的格式在 /home/ec2-user 目录中创建 creds.txt 凭证文件。

  6. 设置 creds.txt 文件权限,以便只有您(所有者)可以通过运行以下命令来读取和写入文件。

    $ chmod 700 creds.txt
挂载文件系统
  1. 您可以使用私有 IP 地址挂载未加入 Active Directory 的文件共享。您可以访问 Amazon FSx 控制台,在网络与安全选项卡上的首选文件服务器 IP 地址中获取文件系统的私有 IP 地址。

  2. 使用以下命令挂载文件系统:

    $ sudo mount -t cifs //file-system-IP-address/file_share /mnt/fsx --verbose -o vers=SMB_version,sec=ntlmsspi,cred=/home/ec2-user/creds.txt,rsize=CIFSMaxBufSize,wsize=CIFSMaxBufSize,cache=none

    CIFSMaxBufSize 替换为内核允许的最大值。运行以下命令,以获取此值。

    $ modinfo cifs | grep CIFSMaxBufSize parm: CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (uint)

    输出显示最大缓冲区大小为 130048。

  3. 运行以下命令,验证是否挂载了文件系统,该命令仅返回 CIFS 文件系统。

    $ mount -l -t cifs //file-system-IP-address/file_share on /mnt/fsx type cifs (rw,relatime,vers=SMB_version,sec=ntlmsspi,cache=cache_mode,username=user1,domain=CORP.EXAMPLE.COM,uid=0,noforceuid,gid=0,noforcegid,addr=192.0.2.0,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)

此过程中使用的挂载命令会在指定点执行以下操作:

  • //file-system-IP-address/file_share – 指定要挂载的文件系统的 IP 地址和共享。

  • -t cifs vers=SMB_version – 将文件系统的类型指定为 CIFS 和 SMB 协议版本。Amazon FSx for Windows File Server 支持 SMB 版本 2.0 至 3.1.1。

  • sec=ntlmsspi – 指定使用 NT LAN Manager Security Support Provider Interface(NTLMSSPI)进行身份验证。

  • cache=cache_mode – 设置缓存模式。此 CIFS 缓存选项可能会影响性能,您应该测试哪些设置更适合您的内核和工作负载(并查看 Linux 文档)。建议使用选项 strictnone,因为 loose 可能会因协议语义较宽松而导致数据不一致。

  • cred=/home/ec2-user/creds.txt – 指定从何处获取用户凭证。

  • /mnt/fsx – 在 EC2 实例上指定 Amazon FSx 文件共享的挂载点。

  • rsize=CIFSMaxBufSize,wsize=CIFSMaxBufSize – 将读取和写入缓冲区大小指定为 CIFS 协议允许的最大值。将 CIFSMaxBufSize 替换为内核允许的最大值。通过运行以下命令来确定 CIFSMaxBufSize

    $ modinfo cifs | grep CIFSMaxBufSize parm: CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (uint)

 

在未加入 Active Directory 的 Amazon Linux EC2 实例上自动挂载文件共享

每当挂载 FSx for Windows File Server 文件共享的 Amazon EC2 Linux 实例重启时,您可以自动挂载该文件共享。为此,请在 EC2 实例上的 /etc/fstab 文件中添加一个条目。/etc/fstab 文件包含有关文件系统的信息。命令 mount -a 会在实例启动期间运行,用于挂载 /etc/fstab 文件中列出的文件系统。

对于加入 Active Directory 的 Amazon EC2 Linux 实例,您只能使用其私有 IP 地址挂载 FSx for Windows File Server 文件共享。您可以访问 Amazon FSx 控制台,在网络与安全选项卡上的首选文件服务器 IP 地址中获取文件系统的私有 IP 地址。

以下过程使用 Microsoft NTLM 身份验证。您需要以用户身份(即,FSx for Windows File Server 文件系统所加入的 Microsoft Active Directory 域的成员)挂载文件系统。文本文件 creds.txt 中会提供用户账户的凭证。此文件包含用户的用户名、密码和域。

$ cat creds.txt username=user1 password=Password123 domain=EXAMPLE.COM
启动和配置 Amazon Linux EC2 实例
  1. 使用 Amazon EC2 控制台启动 Amazon Linux EC2 实例。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的启动实例

  2. 连接到您的实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的连接到您的 Linux 实例

  3. 要安装 cifs-utils 包,请运行以下命令。此包用于在 Linux 上挂载 Amazon FSx 等网络文件系统。

    $ sudo yum install cifs-utils
  4. 创建 /mnt/fsx 目录。您将在此处挂载 Amazon FSx 文件系统。

    $ sudo mkdir /mnt/fsx
  5. /home/ec2-user 目录中创建 creds.txt 凭证文件。

  6. 设置文件权限,以便只有您(所有者)可以通过运行以下命令来读取文件。

    $ sudo chmod 700 creds.txt
自动挂载文件系统
  1. 您可以使用私有 IP 地址自动挂载未加入 Active Directory 的文件共享。您可以访问 Amazon FSx 控制台,在网络与安全选项卡上的首选文件服务器 IP 地址中获取文件系统的私有 IP 地址。

  2. 要使用文件共享的私有 IP 地址自动挂载文件共享,请在 /etc/fstab 文件中添加以下行。

    //file-system-IP-address/file_share /mnt/fsx cifs vers=SMB_version,sec=ntlmsspi,cred=/home/ec2-user/creds.txt,rsize=CIFSMaxBufSize,wsize=CIFSMaxBufSize,cache=none

    CIFSMaxBufSize 替换为内核允许的最大值。运行以下命令,以获取此值。

    $ modinfo cifs | grep CIFSMaxBufSize parm: CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (uint)

    输出显示最大缓冲区大小为 130048。

  3. 将带“fake”选项的 mount 命令与“all”和“verbose”选项结合使用,从而测试 fstab 条目。

    $ sudo mount -fav home/ec2-user/fsx : successfully mounted
  4. 要挂载文件共享,请重启 Amazon EC2 实例。

  5. 当实例再次可用时,运行以下命令以验证文件系统是否已挂载。

    $ sudo mount -l -t cifs //file-system-IP-address/file_share on /mnt/fsx type cifs (rw,relatime,vers=SMB_version,sec=ntlmsspi,cache=cache_code,username=user1,domain=CORP.EXAMPLE.COM,uid=0,noforceuid,gid=0,noforcegid,addr=192.0.20.0,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)

    在此过程中为 /etc/fstab 文件添加的行在指定点执行以下操作:

    • //file-system-IP-address/file_share – 指定要挂载的 Amazon FSx 文件系统的 IP 地址和共享。

    • /mnt/fsx – 在 EC2 实例上指定 Amazon FSx 文件系统的挂载点。

    • cifs vers=SMB_version – 将文件系统的类型指定为 CIFS 和 SMB 协议版本。Amazon FSx for Windows File Server 支持 SMB 版本 2.0 至 3.1.1。

    • sec=ntlmsspi – 指定使用 NT LAN Manager Security Support Provider Interface 来加速质询-响应身份验证。

    • cache=cache_mode – 设置缓存模式。此 CIFS 缓存选项可能会影响性能,您应该测试哪些设置更适合您的内核和工作负载(并查看 Linux 文档)。建议使用选项 strictnone,因为 loose 可能会因协议语义较宽松而导致数据不一致。

    • cred=/home/ec2-user/creds.txt – 指定从何处获取用户凭证。

    • _netdev – 向操作系统指示文件系统位于需要网络访问的设备上。该选项会禁止实例挂载文件系统,直到在客户端上启用了网络服务。

    • 0 – 指示文件系统应该由 dump 备份,如果它是非零值。对于 Amazon FSx,该值应该是 0

    • 0 – 指定 fsck 在启动时检查文件系统的顺序。对于 Amazon FSx 文件系统,该值应为 0,表示 fsck 不应在启动时运行。