本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在亚马逊 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,请参阅Amazon 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_share
mount_point
--verbose -o vers=SMB_version
,sec=krb5,cruid=ad_user
,rsize=CIFSMaxBufSize
,wsize=CIFSMaxBufSize
,cache=nonepreferred-file-server-Ip
您可以通过选择 “Windows 文件服务器、网络和安全” 在亚马逊FSx控制台
上找到该DNS名称。或者,你可以在 CreateFileSystem
或DescribeFileSystems
API操作的响应中找到它们。对于加入 Amazon 托管 Microsoft Active Directory 的单可用区文件系统,其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 文件服务器支持 2.0 到 3.1.1 SMB 版本。SMB_version
-
sec=krb5
– 指定使用 Kerberos 版本 5 进行身份验证。 -
cache=
– 设置缓存模式。此CIFS缓存选项可能会影响性能,您应该测试哪些设置最适合您的内核和工作负载(并查看 Linux 文档)。建议使用选项cache_mode
strict
和none
,因为loose
可能会因协议语义较宽松而导致数据不一致。 -
cruid=
– 将凭证缓存所有者的 UID 设置为 AD 目录管理员。ad_user
-
— 指定您的EC2实例上的 Amazon FSx 文件共享的挂载点。/mnt/fsx
-
rsize=
— 将读取和写入缓冲区大小指定为CIFS协议允许的最大值。将CIFSMaxBufSize
,wsize=CIFSMaxBufSize
替换为内核允许的最大值。通过运行以下命令来确定CIFSMaxBufSize
CIFSMaxBufSize
。$
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-systems
CLI命令或等效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.txt
username=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_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)
此过程中使用的挂载命令会在指定点执行以下操作:
-
//
– 指定要挂载的文件系统的 IP 地址和共享。file-system-IP-address
/file_share
-
-t cifs vers=
— 指定文件系统的类型CIFS和SMB协议版本。亚马逊版 Window FSx s 文件服务器支持 2.0 到 3.1.1 SMB 版本。SMB_version
-
sec=ntlmsspi
— 指定使用 NT LAN Manager Security Support 提供者接口 (NTLMSSPI) 进行身份验证。 -
cache=
– 设置缓存模式。此CIFS缓存选项可能会影响性能,您应该测试哪些设置最适合您的内核和工作负载(并查看 Linux 文档)。建议使用选项cache_mode
strict
和none
,因为loose
可能会因协议语义较宽松而导致数据不一致。 -
cred=/home/ec2-user/creds.txt
– 指定从何处获取用户凭证。 -
— 指定您的EC2实例上的 Amazon FSx 文件共享的挂载点。/mnt/fsx
-
rsize=
— 将读取和写入缓冲区大小指定为CIFS协议允许的最大值。将CIFSMaxBufSize
,wsize=CIFSMaxBufSize
替换为内核允许的最大值。通过运行以下命令来确定CIFSMaxBufSize
CIFSMaxBufSize
。$
modinfo cifs | grep CIFSMaxBufSizeparm: CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (uint)