本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
排查 DataSync 位置的相关问题
以下信息可帮助您解决与 AWS DataSync 位置相关的问题。其中一些问题可能包括:
-
NFS 位置的权限和挂载错误
-
文件所有权问题
-
访问使用 Kerberos 身份验证的 SMB 位置时出现问题
-
对象存储的权限与访问问题,例如 Amazon S3 和 Microsoft Azure Blob 位置
我的任务失败,出现 NFS 权限被拒绝错误
如果用 root_squash 或 all_squash 配置 NFS 服务器,并且您的文件没有所有读取访问权限,则可能会显示“权限被拒绝”错误消息。
要采取的操作
要修复此问题,请用 no_root_squash 配置 NFS 导出,或者确保要传输的所有文件的权限允许所有用户进行读取访问。
要使 DataSync 能够访问目录,您还必须启用全部执行访问权限。要确保可以挂载目录,首先连接到与代理具有相同网络配置的任何计算机。然后运行以下 CLI 命令:
mount -t nfs -o nfsvers=<your-nfs-server-version>
<your-nfs-server-name>:<nfs-export-path-you-specified>
<new-test-folder-on-your-computer>
如果问题仍未解决,请联系AWS 支持 中心
我的任务失败,出现 NFS 挂载错误
在运行涉及 NFS 文件服务器位置的 DataSync 任务时,可能会出现以下错误:
Task failed to access location loc-1111222233334444a: x40016: mount.nfs: Connection timed out
要采取的操作
在错误得到解决之前,请执行以下操作:
-
确保在 DataSync 位置中指定的 NFS 文件服务器和导出有效。如果无效,请删除您的位置和任务,然后创建使用有效 NFS 文件服务器和导出的新位置和任务。有关更多信息,请参阅 使用 DataSync 控制台。
-
检查代理和 NFS 文件服务器之间的防火墙配置。有关更多信息,请参阅 本地、自我管理和其他云存储的网络要求。
-
确保代理可以访问 NFS 文件服务器并挂载导出。有关更多信息,请参阅 提供 DataSync 对 NFS 文件服务器的访问权限。
-
如果您仍然看到错误,请打开与 支持 的支持通道。有关更多信息,请参阅 我不知道我的代理出了什么问题。有人能帮我吗?。
我的任务失败,出现 Amazon EFS 挂载错误
在运行涉及 Amazon EFS 位置的 DataSync 任务时,可能会出现以下错误:
Task failed to access location loc-1111222233334444a: x40016: Failed to connect to EFS mount target with IP: 10.10.1.0.
如果您在位置中配置的 Amazon EFS 文件系统的挂载路径被更新或删除,则可能会发生这种情况。DataSync 不知道文件系统中的这些更改。
要采取的操作
删除您的位置和任务,并使用新的挂载路径创建新的 Amazon EFS 位置。
NFS 传输未保留文件所有权
传输后,您可能会发现 DataSync 目标位置中的文件与源位置中的相同文件具有不同的用户 ID(UID)或组 ID(GID)。例如,目标位置中文件的 UID 可能是 65534、99 或 nobody。
如果传输中涉及的文件系统使用了 DataSync 不支持的 NFS 版本 4 ID 映射,则可能发生这种情况。
要采取的操作
您有几种方法可以解决此问题:
-
为使用 NFS 版本 3(而不是版本 4)的文件系统创建一个新位置。
-
在文件系统上禁用 NFS 版本 4 ID 映射。
重试传输。无论哪种方法都应解决问题。
我的任务无法访问使用 Kerberos 的 SMB 位置
使用 Kerberos 身份验证的 SMB 位置出现的 DataSync 错误通常与相应位置和 Kerberos 配置不匹配有关。也可能存在网络问题。
- 无法访问位置
-
以下错误表示 SMB 位置或 Kerberos 设置可能存在配置问题:
Task failed to access location请验证以下内容:
-
您为所在位置指定的 SMB 文件服务器是一个域名。对于 Kerberos,无法指定文件服务器的 IP 地址。
-
您为所在位置指定的 Kerberos 主体与用于创建 Kerberos 密钥表(keytab)文件的主体相匹配。主体名称区分大小写。
-
自创建 keytab 文件以来,Kerberos 主体的映射用户密码未出现更改。如果密码更改(由于密码轮换或其他原因),则任务执行可能会失败,并出现以下错误消息:
Task failed to access location loc-1111222233334444a: x40015: kinit: Preauthentication failed while getting initial credentials
-
- 无法连接到 KDC 领域
-
以下错误表示存在网络问题:
kinit: Cannot contact any KDC for realm 'MYDOMAIN.ORG' while getting initial credentials"请验证以下内容:
-
为 DataSync 提供的 Kerberos 配置文件 (
krb5.conf) 包含有关 Kerberos 领域的正确信息。有关示例krb5.conf文件,请参阅 Kerberos 身份验证的先决条件。 -
Kerberos 密钥分配中心(KDC)的服务器端口已打开。KDC 端口通常为 TCP 端口 88。
-
网络上的 DNS 配置。
-
我的任务因输入/输出错误而失败
如果您的存储系统未能响应 DataSync 代理的 I/O 请求,则可能会收到输入/输出错误消息。常见原因包括服务器磁盘故障、防火墙配置更改或网络路由器故障。
如果错误涉及 NFS 文件服务器或 Hadoop Distributed File System(HDFS)集群,请跟随以下步骤来解决错误。
采取的操作(NFS)
首先检查 NFS 文件服务器的日志和指标,以确定问题是否始于 NFS 服务器。如果是,请解决该问题。
接下来,检查网络配置是否尚未更改。要检查 NFS 文件服务器是否已正确配置并且 DataSync 可以访问,请执行以下操作:
-
在与代理相同的网络子网上设置另一个 NFS 客户端。
-
在客户端上装载您的共享。
-
验证客户端可以成功地读取和写入共享。
采取的操作(HDFS)
在解决错误之前,请执行以下操作:
-
确保您的 HDFS 集群允许 DataSync 代理与集群的 NameNode 和 DataNode 端口进行通信。
在大多数集群中,您可以在以下配置文件中找到集群使用的端口号:
-
要查找 NameNode 端口,请在
fs.default或者fs.default.name属性下的文件core-site.xml中查找(取决于 Hadoop 发行版本)。 -
要找到 DataNode 端口,请在
dfs.datanode.address属性下的文件hdfs-site.xml中查找。
-
-
在您的
hdfs-site.xml文件中,验证您的dfs.data.transfer.protection属性是否只有一个值。例如:<property> <name>dfs.data.transfer.protection</name> <value>privacy</value> </property>
错误:FsS3UnableToConnectToEndpoint
DataSync 无法连接到您的 Amazon S3 位置。这可能意味着无法访问该位置的 S3 存储桶,或者该位置的配置不正确。
在解决问题之前,请执行以下操作:
-
检查 DataSync 是否可以访问您的 S3 存储桶。
-
使用 DataSync 控制台或 DescribeLocationS3 操作确保位置配置正确。
错误:FsS3HeadBucketFailed
DataSync 无法访问您正在传入或传出的 S3 存储桶。使用 Amazon S3 HeadBucket 操作检查 DataSync 是否有权访问存储桶。如果您需要调整权限,请参阅 提供 DataSync 对 S3 存储桶的访问权限。
任务因 Unable to list Azure Blobs on the volume root 错误而失败
如果您的 DataSync 传输任务因 Unable to list Azure Blobs on the
volume root 错误而失败,则可能是您的共享访问签名 (SAS) 令牌或 Azure 存储账户的网络存在问题。
要采取的操作
尝试以下操作并再次运行任务,直到问题得到解决:
-
确保您的 SAS 令牌具有访问您的 Microsoft Azure Blob Storage 的相应权限。
-
如果您在 Azure 中运行 DataSync 代理,请将您的存储账户配置为允许从代理所在的虚拟网络进行访问。
-
如果您在 Amazon EC2 上运行代理,请将 Azure 存储防火墙配置为允许从代理的公有 IP 地址进行访问。
有关如何配置 Azure 存储账户网络的信息,请参阅Azure Blob Storage 文档
错误:FsAzureBlobVolRootListBlobsFailed
DataSync 用于访问 Microsoft Azure Blob Storage 的共享访问签名(SAS)令牌不具有列表权限。
要解决问题,请使用具有列表权限的令牌更新您的位置,然后尝试重新运行任务。
错误:SrcLocHitAccess
DataSync 无法访问您的源位置。检查 DataSync 是否有访问位置的权限,然后尝试重新运行任务。
错误:SyncTaskErrorLocationNotAdded
DataSync 无法访问您的位置。检查 DataSync 是否有访问位置的权限,然后尝试重新运行任务。
错误:S3 location creation failed with (InvalidRequestException) when calling the
CreateLocationS3 operation
此错误可能与 IAM 权限、Amazon S3 存储桶策略、AWS KMS 权限或其他权限问题相关。如果遇到此错误,请使用以下信息进行故障排除:
-
《Amazon Simple Storage Service 用户指南》中的排查 Amazon S3 中的拒绝访问(403 禁止)错误。
-
AWS re:Post 中的如何对来自 Amazon S3 的“403 拒绝访问”错误进行故障排除?
S3 源位置的任务失败并显示 HeadObject 或 GetObjectTagging 错误
与 HeadObject 或 GetObjectTagging 相关的错误
如果要从 S3 存储桶中传输具有特定版本 ID 的对象,可能会看到与 HeadObject 或 GetObjectTagging 相关的错误。例如,以下是与 GetObjectTagging 相关的错误:
[WARN] Failed to read metadata for file/picture1.png(versionId:111111): S3 Get Object Tagging Failed [ERROR] S3 Exception: op=GetObjectTaggingphotos/picture1.png, code=403, type=15, exception=AccessDenied, msg=Access Denied req-hdrs: content-type=application/xml, x-amz-api-version=2006-03-01 rsp-hdrs: content-type=application/xml, date=Wed, 07 Feb 2024 20:16:14 GMT, server=AmazonS3, transfer-encoding=chunked, x-amz-id-2=IOWQ4fDEXAMPLEQM+ey7N9WgVhSnQ6JEXAMPLEZb7hSQDASK+Jd1vEXAMPLEa3Km, x-amz-request-id=79104EXAMPLEB723
如果您看到这其中的任何一种错误,请验证 DataSync 用于访问 S3 源位置的 IAM 角色是否具有以下权限:
-
s3:GetObjectVersion -
s3:GetObjectVersionTagging
如果您需要更新角色,使其具有这些权限,请参阅 为创建 IAM 角色 DataSync 以访问您的 Amazon S3 位置。