如何在未加入 Active Directory 的 Linux EC2 实例上挂载 FSx for ONTAP CIFS 共享?
我想使用 Amazon FSx for NetApp ONTAP 在我的 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例上挂载 Common Internet File System (CIFS) 共享。我的实例未加入 Microsoft Active Directory。
解决方案
**注意:**以下解决方法适用于运行 Amazon Linux 2023 (AL2023) 且实例客户端未加入 Active Directory 的 EC2 实例。
先决条件:
- 该实例允许 TCP 端口 445 上的出站流量。
- NetApp ONTAP 文件系统允许 TCP 端口 445 上的入站流量。
在 FSx NetApp ONTAP 文件系统上创建 CIFS 共享
完成以下步骤:
- 登录到 FSx for ONTAP 文件系统,以便您能够访问 ONTAP 命令行界面 (CLI)。
- 要验证您的配置,请运行以下命令。
要检查存储虚拟机 (SVM) 的 Active Directory 集成情况,请运行以下命令:
要检查 CIFS 服务器配置,请运行下列命令:vserver services name-service dns show
**注意:**如果上述命令显示您必须设置配置,请配置您的 Active Directory 或 CIFS 服务器。vserver cifs show - 要验证卷是否使用 NTFS 安全类型,请运行以下命令:
如果卷未使用 NTFS 安全类型,请运行以下命令创建具有 NTFS 安全类型的新卷:volume show -fields security-style, junction-path, size, available, state
**注意:**请将 volume-name 替换为卷名称,将 svm-name 替换为 SVM 名称,将 junction-path-of-volume 替换为卷的连接路径。此外,请将 size-of-volume 替换为您的卷大小,将 aggregate-ID 替换为卷的聚合 ID。volume create -volume volume-name -vserver svm-name -junction-path junction-path-of-volume -state online -size size-of-volume -aggregate aggregate-ID -security-style ntfs - 要使用卷的连接路径在卷上创建 CIFS 共享,请运行以下命令:
**注意:**请将 cifs-share-name 替换为 CIFS 共享名称,将 junction-path-of-volume 替换为卷的连接路径。您将在以下部分中使用 cifs-share-name 来挂载文件系统。vserver cifs share create -share-name cifs-share-name -path junction-path-of-volume -share-properties oplocks,browsable,changenotify,show-previous-versions -symlink-properties symlinks - 要验证 CIFS 共享配置,请运行以下命令:
vserver cifs share show
将 ONTAP 卷的 CIFS 共享挂载到您的 AL2023 实例上
完成以下步骤:
-
要安装所需的软件包,请运行以下命令:
sudo yum install -y cifs-utils -
要创建挂载点,请运行以下命令:
sudo mkdir /mnt/fsx-cifs -
要在 /home/ec2-user 目录中创建凭证文件,请运行以下命令:
sudo vi /home/ec2-user/creds.txt -
将以下内容添加到 creds.txt 文件中,以便您能够以明文形式查看密码:
username=usernameexample password=passwordexample domain=EXAMPLE.COM**注意:**请将 usernameexample 替换为您的用户名,将 passwordexample 替换为您的密码,将 EXAMPLE.COM 替换为您的域。
-
要配置凭证文件的权限,请运行以下命令:
chmod 700 /home/ec2-user/creds.txt**注意:**请将 EXAMPLE.COM 替换为您的域。出现提示时,输入您的 Active Directory 用户的用户名和密码。
-
要检查 CIFS 内核支持的最大缓冲区大小,请运行以下命令:
modinfo cifs | grep CIFSMaxBufSize输出示例:
parm: CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (uint)**注意:**在上述示例中,支持的最大缓冲区大小为 130048。
-
要挂载 CIFS 共享,请运行以下命令:
sudo mount -t cifs //W.X.Y.Z/cifs-share-name /mnt/fsx-cifs -o sec=ntlmsspi, cred=/home/ec2-user/creds.txt,vers=3.1.1, rsize=130048,wsize=130048,cache=none**注意:**请将 W.X.Y.Z 替换为 SMB DNS 名称或 SVM 的 SMB IP 地址。如果您使用 Active Directory DNS 服务器,则可以使用 SVM 的 SMB DNS 名称。否则,请使用 SMB IP 地址。此外,请将 3.1.1 替换为您的 SMB 协议版本,将 cifs-share-name 替换为 CIFS 共享的名称。
-
(可选)要设置在启动过程中自动挂载,请将以下行添加到 /etc/fstab 文件中:
//W.X.Y.Z/cifs-share-name /mnt/fsx-cifs cifs sec=ntlmsspi,_netdev,auto,x-systemd.automount,x-systemd.requires=network-online.target,cred=/home/ec2-user/creds.txt,rsize=130048,wsize=130048,cache=none,vers=3.1.1, 0 0**注意:**请将 W.X.Y.Z 替换为 SMB DNS 名称或 SVM 的 SMB IP 地址。如果您使用 Active Directory DNS 服务器,则可以使用 DNS 名称。否则,请使用 SMB IP 地址。此外,请将 3.1.1 替换为您的 SMB 协议版本,将 cifs-share-name 替换为 CIFS 共享的名称。
对 CIFS 挂载问题进行故障排除
**重要事项:**最佳做法是在 NetApp 上创建账户。您必须拥有 NetApp 账户才能访问 NetApp 故障排除文档。
如果您在挂载文件系统时遇到问题,请执行以下故障排除操作:
- 要检查所需端口上的连接,请运行以下命令:
**注意:**请将 W.X.Y.Z 替换为您的 SVM SMB IP 地址。telnet W.X.Y.Z 445 - 要验证您的凭证,请运行以下命令:
**注意:**请将 W.X.Y.Z 替换为您的 SVM SMB IP 地址,将 username 替换为您的用户名。smbclient //W.X.Y.Z/share -U username - 要使用 --verbose 选项检查错误,请运行以下命令:
**注意:**请将 W.X.Y.Z 替换为 SMB DNS 名称或 SVM 的 SMB IP 地址。此外,请将 cifs-share-name 替换为 CIFS 共享的名称,将 3.1.1 替换为您的 SMB 协议版本。sudo mount -t cifs //W.X.Y.Z/cifs-share-name /mnt/fsx-cifs --verbose -o sec=ntlmsspi, cred=/home/ec2-user/creds.txt,vers=3.1.1, rsize=130048,wsize=130048,cache=none - 要检查日志中是否存在错误,请运行以下命令之一:
dmesg | grep CIFSjournalctl | grep -i cifs
验证 FSx for ONTAP 服务器配置
要检查您的安全类型是否会影响您的权限,请在 FSx for ONTAP 文件系统上运行以下命令:
volume show -volume volume_name -fields security-style
**注意:**请将 volume_name 替换为文件系统的卷名称。有关详细信息,请参阅 NetApp 网站上的了解 ONTAP NAS 安全类型。
要检查您与域控制器的网络连接,请运行以下命令:
network ping -node node_name -destination dc_ip
**注意:**请将 node_name 替换为您的节点名称,将 dc_ip 替换为 Active Directory IP 地址。
