在亚马逊 EC2 Linux 实例上挂载文件共享 - FSx适用于 Windows 文件服务器的亚马逊
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在亚马逊 EC2 Linux 实例上挂载文件共享

您可以在 Amazon EC2 Linux 实例上挂载FSx适用于 Windows 文件服务器的文件共享,该实例要么已加入您的活动目录,要么未加入,才能访问您FSx的 Windows 文件服务器文件系统。

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

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

  1. 如果你还没有正在运行的 EC2 Linux 实例加入你的 Microsoft Active Directory,请参阅Amazon Directory Service 管理指南中的手动加入 Linux 实例,了解操作说明。

  2. 连接到你的 EC2 Linux 实例。有关更多信息,请参阅《亚马逊EC2用户指南》中的 “连接到您的 Linux 实例”。

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

    $ 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

    您可以通过选择 “Windows 文件服务器网络和安全” 在亚马逊FSx控制台上找到该DNS名称。或者,你可以在CreateFileSystemDescribeFileSystemsAPI操作的响应中找到它们。

    • 对于加入 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协议版本。亚马逊版 Window FSx s 文件服务器支持 2.0 到 3.1.1 SMB 版本。

  • 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-systemsCLI命令或等效DescribeFileSystemsAPI命令的响应中。

以下过程将亚马逊FSx文件共享挂载到未加入您的活动目录 (AD) 的 Amazon EC2 Linux 实例。对于未加入您的 AD 的 EC2 Linux 实例,您只能使用其私有 IP 地址挂载FSx适用于 Windows 文件服务器的文件共享。您可以使用 Amazon FSx 控制台的 “网络和安全” 选项卡的 “首选文件服务器 IP 地址” 中获取文件系统的私有 IP 地址

此示例使用NTLM身份验证。为此,您需要以用户身份装载文件系统,该用户是 Windows 文件服务器文件系统所加入的 Microsoft Active Directory 域的成员。FSx用户账户的凭证以您在EC2实例上创建的文本文件中提供creds.txt。此文件包含用户的用户名、密码和域。

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

  2. 连接到您的亚马逊 Linux EC2 实例。有关更多信息,请参阅《亚马逊EC2用户指南》中的 “连接到您的 Linux 实例”。

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

    $ 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协议版本。亚马逊版 Window FSx s 文件服务器支持 2.0 到 3.1.1 SMB 版本。

  • sec=ntlmsspi— 指定使用 NT LAN Manager Security Support 提供者接口 (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)