AWS Snowball
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本指南适用于 Snowball Edge。如果您正在查找 Snowball 的相关文档,请参阅 AWS Snowball 用户指南

AWS Snowball Edge 的故障排除

在接下来的内容中,您将了解有助于您排查 AWS Snowball Edge 设备问题的相关信息。如果您无法建立与 Snowball 的连接,请参阅 AWS 知识中心 中的为何我的 AWS Snowball 设备无法建立与网络的连接?。此外,请注意以下事项:

  • Amazon S3 中对象的文件最大大小为 5 TB。

  • 传输到 AWS Snowball Edge 设备上的对象的最大键长度为 933 字节。键名中包含的每个字符都占用超过 1 个字节时,键名的最大键长度仍为 933 字节。确定键长度时,您需要包括文件或对象名及其路径或前缀。因此,位于多层嵌套路径中名称很短的文件,其键长度会超过 933 字节。确定键长度时,存储桶名称不计入在内。以下为一些示例。

    对象名 存储桶名称 路径和存储桶名称 键长度
    sunflower-1.jpg pictures sunflower-1.jpg 15 个字符
    receipts.csv MyTaxInfo /Users/Eric/Documents/2016/January/ 47 个字符
    bhv.1 $7$zWwwXKQj$gLAOoZCj$r8p /.VfV/FqGC3QN$7BXys3KHYePfuIOMNjY83dVx ugPYlxVg/evpcQEJLT/rSwZc$MlVVf/$hwefVISRqwepB$/BiiD/PPF$twRAjrD/fIMp/0NY 135 个字符
  • 如果您在使用 AWS Snowball Edge 设备时遇到意外错误,希望您能随时告知我们。请在发送给 AWS Support 的邮件中复制相关日志,并提供所遇问题的简要说明。有关日志的更多信息,请参阅“Snowball 客户端的命令”。

如何识别您的设备

Snowball 设备类型分为两种:Snowball 和 Snowball Edge。如果您不能确定手头的设备类型,请参阅AWS Snowball 设备差异

解决连接问题

以下信息可帮助您排除您在连接到 Snowball Edge 时可能遇到的某些问题:

  • 以 100 MB/秒的速率工作的路由器和交换机将无法用于 Snowball Edge。建议您使用以 1 GB/秒 (或更快) 的速率工作的交换机。

  • 如果在设备上遇到奇怪的连接错误,则关闭 Snowball Edge 的电源,拔下所有电缆,将其保留 10 分钟。10 分钟过去后,重新启动设备,然后重试。

  • 确保没有防病毒软件或防火墙阻止 Snowball Edge 设备的网络连接。

  • 请注意,文件接口和 适用于 Snowball 的 Amazon S3 Adapter 具有不同的 IP 地址。

要进行更高级的连接问题排查,您可以执行以下步骤:

  • 如果您无法与 Snowball Edge 进行通信,则 ping 设备的 IP 地址。如果 ping 返回 no connect,则确认设备的 IP 地址并确认本地网络配置。

  • 如果 IP 地址正确无误且设备背面的指示灯闪烁,则使用 telnet 在端口 22 和 8080 上测试设备。测试端口 22 可确定 Snowball Edge 是否正常工作。测试端口 8080 可确保设备可以写入到其上的 Amazon S3 存储桶。如果您可以在端口 22 上连接,但不能在端口 8080 上连接,请先关闭 Snowball Edge 的电源,然后拔下所有电缆。将设备保留 10 分钟,然后重新连接设备并再次启动。

排除清单文件问题

每个任务都有一个与之关联的特定清单文件。如果您创建多个任务,则跟踪哪个清单用于哪个任务。

如果您丢失了清单文件或清单文件已损坏,您可以重新下载特定任务的清单文件。您可以使用控制台、AWS CLI 或其中一个 AWS API 来实现。

排查凭证问题

使用以下主题可帮助您解决使用 Snowball Edge 时遇到的凭证问题。

无法查找 AWS CLI 凭证

如果您使用 AWS CLI 通过 适用于 Snowball 的 Amazon S3 Adapter 与 AWS Snowball Edge 设备 进行通信,可能会遇到一条错误消息,指示 Unable to locate credentials. You can configure credentials by running "aws configure".

要采取的操作

配置 AWS CLI 用来运行命令的 AWS 凭证。有关更多信息,请参阅 AWS Command Line Interface 用户指南 中的配置 AWS 命令行界面

错误消息:检查您的秘密访问密钥和签名

当使用 适用于 Snowball 的 Amazon S3 Adapter 将数据传输到 Snowball Edge 时,您可能会遇到以下错误消息。

An error occurred (SignatureDoesNotMatch) when calling the CreateMultipartUpload operation: The request signature we calculated does not match the signature you provided. Check your AWS secret access key and signing method. For more details go to: http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html#ConstructingTheAuthenticationHeader

要采取的操作

从 Snowball 客户端获取凭证。有关更多信息,请参阅获取凭证

数据传输问题故障排除

如果在 Snowball Edge 中传入或传出数据时遇到性能问题,请参阅 性能以获取有关改善传输性能的建议和指南。以下内容可帮助您解决在 Snowball Edge 中传入或传出数据时可能遇到的问题。

  • 您无法将数据传输到 Snowball Edge 的根目录。如果您在将数据传输到设备时遇到问题,请确保将数据传输到子目录。顶层子目录具有您在任务中包含的 Amazon S3 存储桶的名称。将您的数据放在这些子目录中。

  • 如果您使用的是 Linux 且无法将使用 UTF-8 字符的文件上传到 AWS Snowball Edge 设备,则可能是因为 Linux 服务器无法识别 UTF-8 字符编码。您可以通过在 Linux 服务器上安装 locales 程序包并将该服务器配置为使用 UTF-8 区域设置之一 (例如 en_US.UTF-8) 来更正这一问题。您可以通过导出环境变量 LC_ALL 来配置 locales 程序包,例如:export LC_ALL=en_US.UTF-8

  • 当您结合使用 适用于 Snowball 的 Amazon S3 Adapter 与 AWS CLI 时,可以使用其名称中包含空格的文件或文件夹,如 my photo.jpgMy Documents。但是,请确保正确处理空格。有关更多信息,请参阅 AWS Command Line Interface 用户指南 中的为 AWS 命令行界面指定参数值

排查使用文件接口传输数据遇到的问题

如果您在使用文件接口传输数据时遇到问题,请谨记以下事项:

  • 您可以传输到 Snowball Edge 的文件接口的最大文件大小为 150 GB。如果您尝试传输大于 150 GB 的文件,则文件接口会写入该文件的前 150 GB,然后返回一条错误消息,指示文件太大。

  • 建议您只使用一种方法读取数据并将数据写入 Snowball Edge 设备上的每个存储桶。如果在同一存储桶上既使用文件接口又使用 适用于 Snowball 的 Amazon S3 Adapter,则可能导致未定义的行为。

  • 文件接口支持所有 NFS 文件操作,但截断、重命名和更改所有权除外。使用这些不受支持的文件操作的请求将被拒绝,而且会有错误消息发送到您的 NFS 客户端。如果在 Snowball Edge 上创建文件后尝试更改文件的权限,则会忽略该尝试,而不发送错误消息。

  • 如果 Snowball Edge 出现电源故障或重启,则文件接口缓冲区中的数据仍然存在。重启时,这些缓冲的数据会上传到设备上的存储桶中。当 File interface 选项卡上的 Write status 显示 100% 且带有绿色进度条时,文件接口缓冲区中的所有数据都将上传到设备上的存储桶中。

  • 请勿将数据写入已满的 Snowball Edge。此外,不要向 Snowball Edge 中写入高于剩余可用存储空间可容纳的数据量。这两种操作引起的错误都可能会损坏数据。我们建议您使用 Snowball 客户端命令 snowballEdge status 来确定 Snowball Edge 上剩余的空间量。将剩余空间与您要使用文件接口复制的数据量进行比较,然后才复制数据。

  • 当您完成使用文件接口将数据复制到 Snowball Edge 后,您必须禁用文件接口。这样做是为了避免丢失可能位于缓冲区中但尚未写入到 Amazon S3 存储桶的任何数据。有关更多信息,请参阅禁用文件接口

  • 我们建议您为写入文件接口的所有数据保留一个本地副本,直到 Snowball Edge 运输回 AWS 并且数据已提取到 Amazon S3 中。

排除 AWS CLI 问题

使用以下主题可帮助您解决在使用 AWS Snowball Edge 设备和 AWS CLI 时遇到的问题。

AWS CLI 错误消息:“配置文件不能为 Null”

当使用 AWS CLI 时,您可能会看到指示 "Profile cannot be null" 的错误消息。如果 AWS CLI 尚未安装或 AWS CLI 配置文件尚未配置,则可能会遇到此错误。

要采取的操作

确保您已在您的工作站上下载并配置 AWS CLI。有关更多信息,请参阅 AWS Command Line Interface 用户指南 中的使用捆绑安装程序安装 AWS CLI(Linux、macOS 或 Unix)

通过 AWS CLI 传输数据时出现 Null 指针错误

当使用 AWS CLI 传输数据时,可能会遇到 Null 指针错误。在以下情况下可能出现此错误:

  • 如果指定的文件名出现拼写错误,例如 flowwer.pngflower.npg,而不是 flower.png

  • 如果指定的路径不正确,例如 C:\Doccuments\flower.png 而不是 C:\Documents\flower.png

  • 如果文件已损坏

要采取的操作

确认您的文件名和路径都正确无误,然后重试。如果您继续遇到此问题,请确认该文件未被损坏、放弃传输或尝试修复文件。

解决导入任务问题

有时,文件无法导入 Amazon S3 中。如果出现以下问题,请尝试指定的操作来解决您的问题。如果某个文件导入失败,您可能需要重新尝试导入该文件。重新导入文件可能需要 Snowball Edge 的新任务。

由于对象名称中的字符无效,文件无法导入到 Amazon S3 中

如果文件名或文件夹名包含 Amazon S3 不支持的字符,则会出现此问题。Amazon S3 具有有关对象名称中可包含的字符的规则。有关更多信息,请参阅对象键命名指南

要采取的操作

如果您遇到此问题,您将在任务完成报告中看到无法导入的文件和文件夹的列表。

在某些情况下,此列表过大或列表中的文件太大,无法通过 Internet 进行传输。在这些情况下,您应创建一个新的 Snowball 导入任务,更改文件和文件夹名称以符合 Amazon S3 规则并重新传输文件。

如果文件很小且数量不大,您可以通过 AWS CLI 或 AWS 管理控制台将文件复制到 Amazon S3 中。有关更多信息,请参阅 Amazon Simple Storage Service 控制台用户指南 中的如何将文件和文件夹上传至 S3 存储桶?

解决导出任务问题

有时,文件无法导出到您的工作站中。如果出现以下问题,请尝试指定的操作来解决您的问题。如果某个文件导出失败,您可能需要重新尝试导出该文件。重新导出文件可能需要 Snowball Edge 的新任务。

文件无法导出到 Microsoft Windows Server

如果文件或相关文件夹以 Windows 不支持的格式命名,则文件无法导出到 Microsoft Windows Server。例如,如果文件名或文件夹名包含冒号 (:),则导出将失败,因为 Windows 不允许文件名或文件夹名包含该字符。

要采取的操作

  1. 创建将导致错误的名称的列表。您可以在日志中查找无法导出的文件和文件夹的名称。有关更多信息,请参阅 AWS Snowball Edge 日志

  2. 更改 Amazon S3 中导致此问题的对象的名称以删除或替换不支持的字符。

  3. 如果名称列表过大或列表中的文件过大,无法通过 Internet 进行传输,请为这些对象专门创建一个新的导出任务。

    如果文件很小且数量不大,则可通过 AWS CLI 或 AWS 管理控制台复制 Amazon S3 中已重命名的对象。有关更多信息,请参阅Amazon Simple Storage Service 控制台用户指南 中的如何从 S3 存储桶下载对象?