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

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

每当挂载 FSx for Windows File Server 文件共享的 Amazon EC2 Linux 实例重启时,您可以自动挂载该文件共享以访问 FSx for Windows File Server 文件系统。为此,请在 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

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

启动和配置 Amazon Linux EC2 实例
  1. 使用 Amazon EC2 控制台启动 Amazon Linux EC2 实例。有关更多信息,请参阅《Amazon EC2 用户指南》中的启动实例

  2. 连接到您的实例。有关更多信息,请参阅《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 0 0

    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 不应在启动时运行。