对 DataSync位置问题进行故障排除 - Amazon DataSync
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

对 DataSync位置问题进行故障排除

使用以下信息来帮助您解决 Amazon DataSync 营业地点问题。其中一些问题可能包括:

  • NFS 位置存在权限和装载错误

  • 文件所有权问题

  • 访问使用 Kerberos 身份验证的 SMB 位置时出现问题

  • 对象存储的权限和访问问题,例如亚马逊 S3 和微软 Azure Blob 位置

我的任务失败,出现 NFS 权限被拒绝错误

如果用 root_squashall_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>

如果问题仍未解决,请联系Amazon Web Services 支持 中心

我的任务失败,出现 NFS 挂载错误

在运行涉及 NFS 文件服务器位置的 DataSync 任务时,您可能会看到以下错误:

Task failed to access location loc-1111222233334444a: x40016: mount.nfs: Connection timed out

要采取的操作

在错误得到解决之前,请执行以下操作:

  1. 确保您在 DataSync所在位置指定的 NFS 文件服务器和导出文件有效。如果无效,请删除您的位置和任务,然后创建使用有效 NFS 文件服务器和导出的新位置和任务。有关更多信息,请参阅 使用 DataSync 控制台

  2. 检查代理和 NFS 文件服务器之间的防火墙配置。有关更多信息,请参阅 本地存储、自我管理的存储、其他云存储和边缘存储的网络要求

  3. 确保代理可以访问 NFS 文件服务器并挂载导出。有关更多信息,请参阅 提供 DataSync 对 NFS 文件服务器的访问权限

  4. 如果您仍然看到错误,请使用打开支持频道 Amazon Web Services 支持。有关更多信息,请参阅 我不知道我的代理出了什么问题。有人能帮我吗?

我的任务失败,出现 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 目标位置的文件具有不同的用户 IDs (UIDs) 或组 IDs (GIDs),而不是源位置的相同文件。例如,目标位置中文件的 UID 可能是 6553499nobody

如果传输中涉及的文件系统使用 NFS 版本 4 ID 映射(该功能 DataSync 不支持),则可能会发生这种情况。

要采取的操作

您有几种方法可以解决此问题:

  • 为使用 NFS 版本 3(而不是版本 4)的文件系统创建一个新位置。

  • 在文件系统上禁用 NFS 版本 4 ID 映射。

重试传输。无论哪种方法都应解决问题。

我的任务无法访问使用 Kerberos 的 SMB 位置

DataSync 使用 Kerberos 身份验证的 SMB 位置出现错误通常与您的位置与 Kerber os 配置不匹配有关。也可能存在网络问题。

无法访问位置

以下错误表示您的 SMB 位置或 Kerberos 设置可能存在配置问题:

Task failed to access location

验证以下内容

  • 您为所在位置指定的 SMB 文件服务器是一个域名。对于 Kerberos,您无法指定文件服务器的 IP 地址。

  • 您为所在位置指定的 Kerberos 主体与您用于创建 Kerberos 密钥表 (keytab) 文件的主体相匹配。主体名称区分大小写。

  • 自您创建 keytab 文件以来,Kerberos 主体的映射用户密码一直未更改。如果密码更改(由于密码轮换或其他原因),则任务执行可能会失败并出现以下错误:

    任务无法访问位置 loc-111122223333444a:x40015:kinit:获取初始凭证时预身份验证失败

无法联系 KDC 领域

以下错误表示存在网络问题:

kinit: Cannot contact any KDC for realm 'MYDOMAIN.ORG' while getting initial credentials"

验证以下内容

  • 您提供的 Kerberos 配置文件 (krb5.conf) 包含有关您的 K DataSync erberos 领域的正确信息。有关示例krb5.conf文件,请参阅 Kerberos 身份验证先决条件。

  • Kerberos 密钥分发中心 (KDC) 服务器端口已打开。KDC 端口通常是 TCP 端口 88。

  • 您网络上的 DNS 配置。

我的任务因输入/输出错误而失败

您可以收到 DataSync 代理的input/output error message if your storage system fails I/O请求。常见原因包括服务器磁盘故障、防火墙配置更改或网络路由器故障。

如果错误涉及 NFS 文件服务器或 Hadoop Distributed File System(HDFS)集群,请跟随以下步骤来解决错误。

采取的操作(NFS)

首先检查 NFS 文件服务器的日志和指标,以确定问题是否始于 NFS 服务器。如果是,请解决该问题。

接下来,检查网络配置是否尚未更改。要检查 NFS 文件服务器的配置是否正确以及是否 DataSync 可以访问它,请执行以下操作:

  1. 在与代理相同的网络子网上设置另一个 NFS 客户端。

  2. 在客户端上装载您的共享。

  3. 验证客户端可以成功地读取和写入共享。

采取的操作(HDFS)

在解决错误之前,请执行以下操作:

  1. 确保您的 HDFS 集群允许您的 DataSync 代理与集群 NameNode 和 DataNode 端口通信。

    在大多数集群中,您可以在以下配置文件中找到集群使用的端口号:

    • 要找到 NameNode 端口,请在fs.defaultfs.default.name属性下的core-site.xml文件中查找(取决于 Hadoop 发行版)。

    • 要找到端 DataNode 口,请在dfs.datanode.address属性下的hdfs-site.xml文件中查找。

  2. 在您的 hdfs-site.xml 文件中,验证您的 dfs.data.transfer.protection 属性是否只有一个值。例如:

    <property> <name>dfs.data.transfer.protection</name> <value>privacy</value> </property>

错误:FsS3UnableToConnectToEndpoint

DataSync 无法连接到你的 Amazon S3 地点。这可能意味着无法访问该位置的 S3 存储桶,或者该位置的配置不正确。

在解决问题之前,请执行以下操作:

错误: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) 令牌或您的共享访问签名 (SAS) 令牌有问题 Azure 存储帐户的网络。

要采取的操作

尝试以下操作并再次运行任务,直到问题得到解决:

  • 确保您的 SAS 令牌具有访问您的 SAS 令牌的相应权限 Microsoft Azure Blob Storage.

  • 如果你正在运行你的 DataSync 代理 Azure,将您的存储帐户配置为允许从代理所在的虚拟网络进行访问。

  • 如果您在 Amazon 上运行代理 EC2,请配置您的 Azure 存储防火墙,允许从代理的公共 IP 地址进行访问。

有关如何配置您的的信息 Azure 存储账户的网络,请参阅 Azure Blob Storage 文档

错误:FsAzureBlobVolRootListBlobsFailed

DataSync 用于访问您的共享访问签名 (SAS) 令牌 Microsoft Azure Blob Storage 没有 “列表” 权限。

要解决问题,请使用具有列表权限的令牌更新您的位置,然后尝试重新运行任务。

错误:SrcLocHitAccess

DataSync 无法访问您的来源位置。检查是否 DataSync 有权访问该地点,然后尝试再次运行您的任务。

错误:SyncTaskErrorLocationNotAdded

DataSync 无法访问您的位置。检查是否 DataSync 有权访问该地点,然后尝试再次运行您的任务。

带有 S3 源位置的任务失败并GetObjectTagging显示HeadObject或错误

如果您要 IDs 从 S3 存储桶传输具有特定版本的对象,则可能会看到与HeadObject或相关的错误GetObjectTagging。例如,以下是与 GetObjectTagging 相关的错误:

[WARN] Failed to read metadata for file /picture1.png (versionId: 111111): S3 Get Object Tagging Failed [ERROR] S3 Exception: op=GetObjectTagging photos/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 位置