本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在亚马逊 EC2 Linux 实例上挂载文件共享
您可以在 Amazon EC2 Linux 实例上挂载 FSx 适用于 Windows 文件服务器的文件共享,该实例要么已加入您的活动目录,要么未加入,才能访问您 FSx 的 Windows 文件服务器文件系统。
注意
以下命令中指定的参数(SMB 协议、缓存,以及读取和写入缓冲区的大小)仅作为示例。Linux
cifs命令的参数选择以及所使用的 Linux 内核版本可能会影响客户端和 Amazon FSx 文件系统之间网络操作的吞吐量和延迟。有关更多信息,请参阅cifs文档,了解您使用的 Linux 环境。Linux 客户端不支持基于 DNS 的自动失效转移。有关更多信息,请参阅 Linux 客户端的失效转移经验。
-
如果你还没有正在运行的 EC2 Linux 实例加入你的 Microsoft Active Directory,请参阅AWS Directory Service 管理指南中的手动加入 Linux 实例,了解操作说明。
-
连接到你的 EC2 Linux 实例。有关更多信息,请参阅《亚马逊 EC2 用户指南》中的 “连接到您的 Linux 实例”。
-
要安装
cifs-utils软件包,请运行以下命令。此软件包用于在 Linux FSx 上挂载 Amazon 等网络文件系统。$sudo yum install cifs-utils -
创建挂载点目录
/mnt/fsx。您将在此处装载 Amazon FSx 文件系统。$sudo mkdir -p /mnt/fsx -
使用以下命令通过 Kerberos 进行身份验证。
$kinit -
使用以下命令挂载文件共享。
$sudo mount -t cifs //,ip=file_system_dns_name/file_sharemount_point--verbose -o vers=SMB_version,sec=krb5,cruid=ad_user,rsize=CIFSMaxBufSize,wsize=CIFSMaxBufSize,cache=nonepreferred-file-server-Ip您可以通过选择 Windows 文件服务器、网络和安全在亚马逊 FSx控制台
上找到 DNS 名称。或者,您可以在 CreateFileSystem或DescribeFileSystemsAPI 操作的响应中找到它们。对于加入 AWS 托管 Microsoft 活动目录的单可用区文件系统,DNS 名称如下所示。
fs-0123456789abcdef0.ad-domain.com对于加入自行管理的 Active Directory 的单可用区文件系统,以及所有多可用区文件系统,DNS 名称如下所示。
amznfsxaa11bb22.ad-domain.com
将
替换为内核允许的最大值。运行以下命令,以获取此值。CIFSMaxBufSize$modinfo cifs | grep CIFSMaxBufSizeparm: CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (uint)输出显示最大缓冲区大小为 130048。
-
运行以下命令,验证文件系统是否已挂载,该命令仅返回通用 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)
此过程中使用的挂载命令会在指定点执行以下操作:
-
//– 指定要挂载的文件系统的 DNS 名称和共享。file_system_dns_name/file_share -
mount_point— 您要将文件系统挂载到的 EC2 实例上的目录。 -
-t cifs vers=– 将文件系统的类型指定为 CIFS 和 SMB 协议版本。亚马逊版 Window FSx s 文件服务器支持 SMB 版本 2.0 到 3.1.1。SMB_version -
sec=krb5– 指定使用 Kerberos 版本 5 进行身份验证。 -
cache=– 设置缓存模式。此 CIFS 缓存选项可能会影响性能,您应该测试哪些设置更适合您的内核和工作负载(并查看 Linux 文档)。建议使用选项cache_modestrict和none,因为loose可能会因协议语义较宽松而导致数据不一致。 -
cruid=– 将凭证缓存所有者的 UID 设置为 AD 目录管理员。ad_user -
— 指定您的 EC2 实例上的 Amazon FSx 文件共享的挂载点。/mnt/fsx -
rsize=– 将读取和写入缓冲区大小指定为 CIFS 协议允许的最大值。将CIFSMaxBufSize,wsize=CIFSMaxBufSize替换为内核允许的最大值。通过运行以下命令来确定CIFSMaxBufSizeCIFSMaxBufSize。$modinfo cifs | grep CIFSMaxBufSizeparm: CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (uint)输出显示最大缓冲区大小为 130048。
-
ip=– 将目标 IP 地址设置为文件系统首选文件服务器的 IP 地址。preferred-file-server-Ip您可以按如下方式检索文件系统的首选文件服务器 IP 地址:
使用 Amazon FSx 控制台,在文件系统详情页面的 “网络和安全” 选项卡上。
在
describe-file-systemsCLI 命令或等效 DescribeFileSystemsAPI 命令的响应中。
以下过程将亚马逊 FSx 文件共享挂载到未加入您的活动目录 (AD) 的 Amazon EC2 Linux 实例。对于未加入您的 AD 的 EC2 Linux 实例,您只能使用其私有 IP 地址挂载 FSx 适用于 Windows 文件服务器的文件共享。您可以使用 Amazon FSx 控制台
此示例使用 NTLM 身份验证。为此,您需要以用户身份装载文件系统,该用户是 Windows 文件服务器文件系统所加入的 Microsoft Active Directory 域的成员。 FSx 用户账户的证书以您在 EC2 实例上创建的文本文件中提供creds.txt。此文件包含用户的用户名、密码和域。
$cat creds.txtusername=user1 password=Password123 domain=EXAMPLE.COM
启动和配置 Amazon Linux EC2 实例
-
使用亚马逊 EC2控制台
启动亚马逊 Linux EC2 实例。有关更多信息,请参阅 Amazon EC2 用户指南中的启动实例。 -
连接到您的亚马逊 Linux EC2 实例。有关更多信息,请参阅《亚马逊 EC2 用户指南》中的 “连接到您的 Linux 实例”。
-
要安装
cifs-utils软件包,请运行以下命令。此软件包用于在 Linux FSx 上挂载 Amazon 等网络文件系统。$sudo yum install cifs-utils -
创建您计划挂载 Amazon FSx 文件系统的挂载点
/mnt/fsxx。$sudo mkdir -p /mnt/fsx -
使用之前显示的格式在
/home/ec2-user目录中创建creds.txt凭证文件。 -
设置
creds.txt文件权限,以便只有您(所有者)可以通过运行以下命令来读取和写入文件。$chmod 700 creds.txt
挂载文件系统
-
您可以使用私有 IP 地址挂载未加入 Active Directory 的文件共享。您可以使用 Amazon FSx 控制台
的 “网络和安全” 选项卡的 “首选文件服务器 IP 地址” 获取文件系统的私有 IP 地址。 -
使用以下命令挂载文件系统:
$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 CIFSMaxBufSizeparm: CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (uint)输出显示最大缓冲区大小为 130048。
-
运行以下命令,验证是否挂载了文件系统,该命令仅返回 CIFS 文件系统。
$mount -l -t cifs//file-system-IP-address/file_shareon /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)
此过程中使用的挂载命令会在指定点执行以下操作:
-
//– 指定要挂载的文件系统的 IP 地址和共享。file-system-IP-address/file_share -
-t cifs vers=– 将文件系统的类型指定为 CIFS 和 SMB 协议版本。亚马逊版 Window FSx s 文件服务器支持 SMB 版本 2.0 到 3.1.1。SMB_version -
sec=ntlmsspi– 指定使用 NT LAN Manager Security Support Provider Interface(NTLMSSPI)进行身份验证。 -
cache=– 设置缓存模式。此 CIFS 缓存选项可能会影响性能,您应该测试哪些设置更适合您的内核和工作负载(并查看 Linux 文档)。建议使用选项cache_modestrict和none,因为loose可能会因协议语义较宽松而导致数据不一致。 -
cred=/home/ec2-user/creds.txt– 指定从何处获取用户凭证。 -
— 指定您的 EC2 实例上的 Amazon FSx 文件共享的挂载点。/mnt/fsx -
rsize=– 将读取和写入缓冲区大小指定为 CIFS 协议允许的最大值。将CIFSMaxBufSize,wsize=CIFSMaxBufSize替换为内核允许的最大值。通过运行以下命令来确定CIFSMaxBufSizeCIFSMaxBufSize。$modinfo cifs | grep CIFSMaxBufSizeparm: CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (uint)