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

标准 Snowball 的故障排除

以下内容可帮助您排查在 AWS Snowball (Snowball) 中可能遇到的问题。如果您无法建立与 Snowball 的连接,请参阅 AWS 知识中心 中的为何我的 AWS Snowball 设备无法建立与网络的连接?

如何识别您的设备

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

解决连接问题

以下内容可帮助您解决在连接到 Snowball 时可能遇到的问题。

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

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

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

  • 如果 LCD 显示屏显示设备超时错误,则关闭 Snowball 的电源,拔下所有电缆,将设备保留 10 分钟,然后重新连接设备并再次启动

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

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

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

排除清单文件问题

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

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

数据传输问题故障排除

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

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

  • 传输到 Snowball 上的对象的最大键长度为 933 字节。键名中包含的每个字符都占用超过一个字节时,键名的最大键长度仍为 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 个字符

    如果键长度超过 933 字节,在您尝试将对象复制到 Snowball 时会看到以下错误消息:

    Failed to copy the following file: <Name of object with a keylength over 933 bytes> PARENT_NOT_FOUND:

    如果收到此错误消息,您可以通过减少对象的键长度来解决问题。

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

  • 如果您在传输数据到 Snowball 期间遇到意外错误,希望您能随时告知我们。请在发送到 AWS Support 的消息中复制您的日志,并提供所遇到问题的简要说明。有关日志的更多信息,请参阅“Snowball 日志”。

排除 AWS CLI 问题

使用以下主题帮助您解决在使用 Snowball 和 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

  • 如果该文件已损坏

要采取的操作

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

解决客户端问题

以下内容可帮助您解决 Snowball 客户端存在的问题。

  • 如果您在使用 Snowball 客户端时遇到问题,请键入命令 snowball help 以查看该工具所有可用操作的列表。

  • 虽然您可以在 Snowball 客户端上运行多个实例;不过对于内存密集型任务(例如执行 snowball cp 命令),该客户端的每个实例最高需要 7 GB 的专用 RAM。如果您的工作站在运行 Snowball 客户端时耗尽了内存,就会看到终端窗口中返回 Java OutOfMemoryError 异常。您可以通过释放工作站上的资源或者增加工作站的内存来解决这一问题,然后再重新执行 Snowball 客户端任务。

  • 如果您在使用位于运行 Microsoft Windows Server 的 PC 上的客户端将数据传输到 Snowball 时遇到问题,则可能是由 Windows 中的重复数据删除功能导致的。如果您已开启重复数据删除功能,则建议您改为将 适用于 Snowball 的 Amazon S3 Adapter 与 AWS CLI 结合使用来传输数据。有关更多信息,请参阅使用适用于 Snowball 的 Amazon S3 Adapter 传输数据

解决 Snowball 客户端验证问题

当您传输数据时,复制操作首先对要复制的每个文件的元数据执行预检查。如果文件元数据的以下任意属性为 true,则复制操作在传输任何文件之前停止:

  • 文件大小超过 5 TB – Amazon S3 中的对象不能超过 5 TB,因此大小超过 5 TB 的文件无法传输到 Snowball。如果您遇到此问题,请将文件分割为小于 5 TB 的几部分,压缩文件以使其在 5 TB 限制之内,或者减少文件大小并重试。

  • 该文件是一个符号链接,只包含对其他文件或目录的引用 – 符号链接(或联接)无法传输到 Amazon S3 中。

  • 访问文件时存在权限问题 – 例如,用户可能尝试读取 Snowball 客户端上的文件,但该用户没有此文件的读取权限。权限问题会导致预检查失败。

  • 对象键长度太大 – 如果对象键的长度超过 933 个字节,则无法通过验证。

如需无法传输的文件列表,请在数据复制开始前查看终端。您还可以在 <temp directory>/snowball-<random-character-string>/failed-files 文件中查找此列表,该文件保存在您工作站上的 Snowball 客户端文件夹中。对于 Windows,此临时目录位于 C:/Users/<username>/AppData/Local/Temp 中。对于 Linux 和 Mac,此临时目录位于 /tmp 中。

如果您在运行 snowball validate 命令时发现错误,请确定导致传输失败的文件,解决错误消息报告的问题,然后再次传输这些文件。如果您的验证命令失败并显示相同的错误消息,则可以使用 –f 选项与 snowball cp 命令强制执行复制操作并覆盖无效文件。

Snowball 客户端出现 Java 堆错误

在下面几类情况下,Snowball 客户端可能会出现 Java 堆错误:

  • 如果您用于传输数据的物理工作站未满足最低硬件规格

  • 如果基于 Java 的资源出现问题。

要采取的操作

确保您的工作站符合建议的硬件规格。有关更多信息,请参阅 工作站规格。不支持将虚拟机用作工作站。

由于 Snowball 客户端是一个 Java 应用程序,如果您的工作站满足最低硬件要求,但您遇到此问题,则有其他选项。下面介绍这些内容。

重要

这些是高级故障排除步骤。如果您不确定如何继续,请联系 AWS Support。

  • 您可以使用 -w 选项增加与此命令关联的工作线程数量,具体取决于可用于该应用程序的专用物理内存量,如以下示例所示。

    snowball -w 20 cp [source] [destination] —-recursive
  • 您可以通过编辑 Snowball 客户端批处理文件本身来更新 Java 堆大小。我们建议:仅当您知道可用于该应用程序的专用物理内存量以及您可以增加的确切内存量时,才执行此操作。

    编辑 Snowball 客户端批处理文件

    1. 打开终端窗口并停止 Snowball 客户端

    2. 导航到 snowball.bat 文件。在 Windows 上,默认情况下,此文件保存到以下路径:C:\Program Files (x86)\SnowballClient\bin

    3. 打开 snowball.bat 文件,根据可用于该应用程序的专用物理内存量将 -Xmx7G 值从 7 增加至更高的数字。

    4. 保存文件,然后重新启动 Snowball 客户端

解决适配器问题

使用以下主题解决您使用 适用于 Snowball 的 Amazon S3 Adapter 时遇到的问题。

无法将适配器连接到您的 Snowball

在某些情况下,您可能无法将适配器连接到 Snowball。在这种情况下,请记住以下几点:

  • 您运行解锁命令的终端会话必须保持打开状态,以便建立连接。要启动连接命令,请打开一个辅助终端窗口。

  • 适配器终端节点使用安装了适配器的工作站的 IP 地址,而不是 Snowball 的 IP 地址。

无法找到适配器的凭证

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

要采取的操作

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

解决导入任务问题

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

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

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

要采取的操作

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

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

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

解决导出任务问题

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

文件无法导出到 Microsoft Windows Server

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

要采取的操作

  1. 创建将导致错误的名称的列表。您可以在日志中查找无法导出的文件和文件夹的名称。有关更多信息,请参阅 从控制台中获取任务完成报告和日志

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

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

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