使用 NFS 进行离线数据传输 - Amazon Snowball Edge 开发人员指南
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

使用 NFS 进行离线数据传输

您的 Snow Family 设备包含一个文件界面,用于访问内部设备存储空间。要使用 Snow Family 设备将数据离线导入 Amazon S3,请将该设备连接到本地网络然后使用Amazon OpsHub来解锁它。您可以通过 NFS 文件界面将数据从本地存储设备复制到 Snow Family 设备。

将数据复制到 Snow Family 设备后,E Ink 运输标签将被更新,以确保设备自动发送到正确的Amazon设施。您可以使用 Amazon SNS 生成的短信或电子邮件以及控制台跟踪 Snow Family 设备。有关 Amazon OpsHub 的信息,请参阅 使用 Amazon OpsHub for Snow Family 管理设备

注意

文件名是 Snow Family 设备上的本地 S3 存储桶中的对象密钥。键名称是 Unicode 字符序列,它的 UTF-8 编码长度最大为 1,024 字节。我们建议尽可能使用 NFSv4.1 并使用 Unicode UTF-8 对文件名进行编码,以确保成功导入数据。未使用 UTF-8 编码的文件名可能无法上传到 S3,也可能无法使用不同的文件名将其上传到 S3,具体取决于您使用的 NFS 编码。

确保文件路径的最大长度少于 1024 个字符。Snow Family 设备不支持大于 1024 个字符的文件路径。超过此文件路径长度将导致文件导入错误。

有关更多信息,请参阅 。对象键中的亚马逊简单存储服务用户指南.

您可以使用单个 Snowcone 设备传输高达 8 TB,然后通过多个设备 parallel 或顺序传输较大的数据集。例如,您可以使用三台 Snowcone 设备传输 24 TB 的数据。对于更大的数据传输作业,您可以使用 Snowball Edge Storage Optimized 设备。您可以使用单个 Snowball Edge Storage Optimized 设备传输高达 80 TB,parallel 或按顺序传输具有多个设备的较大数据集。

注意
  • 您只能使用单个 Snow Family 设备传输多达 40M 个文件。如果您需要在单个作业中传输超过 40M 个文件,请批处理这些文件,以减少每次传输的文件编号。单个文件可以是任意大小,最大文件大小可以为 5TB。这不是雪限制,而是 S3 的限制。S3 将文件大小限制为最大 5TB。

  • 您可以为允许装载设备公开的 NFS 共享的 IP 范围提供 CIDR 块。例如,10.0.0.0/16。如果您没有提供允许的 CIDR 块,则所有装载请求都将遭到拒绝。有关详细信息,请参阅。NFS 运行时限制对 NFS 共享的访问.

  • 对于基于 NFS 的传输,标准 POSIX 风格的元数据将在从 Snowball Edge 导入 Amazon S3 时添加到对象中。此外,你还会看到我们目前使用的元数据 “x-amz-meta-user 代理 aws-datasync”Amazon DataSync作为使用 NFS 选项进行 Snowball Edge 导入 Amazon S3 的内部导入机制的一部分。

Snowball Edge 的 NFS 配置

NFS 无处不在(已存在或同时存在于任何地方)。每台笔记本电脑、工作站和服务器都有 IP 连接,每个现代操作系统都有内置的 NFS 客户端。对象存储系统通常使用 Amazon S3 API,该 API 比 NFS 不那么普遍,尤其是在私有数据中心。Amazon S3 不支持 NFS。因此,在订购 SBE 之前,您必须决定使用 S3 接口或 NFS 接口。如果选择 NFS 接口,请将 SBE 的 NFS 存储桶装入为卷。

先决条件

  • 2 个 IP 地址:

    • 一个用于激活 SBE 的物理网络接口(例如 192.168.0.9)

    • 第二个用于挂载 SBE 的虚拟网络接口(例如 192.168.0.10)

  • 工作站

如何配置 Snowball Edge

确认 NFS 服务处于活动状态

snowballEdge describe-service --service-id nfs --profile sbe1 { "ServiceId" : "nfs", "Status" : { "State" : "ACTIVE" } }

如果状态为 “活动”,则可以装载 SBE 卷,否则必须重新启动服务或创建虚拟网络接口

创建虚拟网络接口并启动 NFS 服务

检查虚拟网络接口是否已存在

$ snowballEdge describe-virtual-network-interface --profile sbe1

识别物理接口 ID

$ snowballEdge describe-device --profile sbe1

创建虚拟网络接口并识别 v-nic arn

$ snowballEdge create-virtual-network-interface \ --physical-network-interface-id s.ni-abcd1234 \ --ip-address-assignment STATIC \ --static-ip-address-configuration IpAddress=192.168.0.10,Netmask=255.255.255.0 --profile sbe1

启动 NFS 服务

$ snowballEdge start-service --virtual-network-interface-arns arn:aws:snowball-device:::interface/s.ni-8712e3a5cb180e65d --service-id nfs --service-configuration AllowedHosts=0.0.0.0/0 —profile sbe1

检查服务状态

$ snowballEdge describe-service --service-id nfs --profile sbe1 { "ServiceId" : "nfs", "Status" : { "State" : "ACTIVE" }, "Endpoints" : [ { "Protocol" : "nfs", "Port" : 2049, "Host" : "192.168.0.10" } ], "ServiceConfiguration" : { "AllowedHosts" : [ "192.168.0.6/32", "11.160.2.156/32", "192.168.0.10/32" ] } }

挂载 SBE

在工作站上,您可以装载 SBE 卷,它是 NFS 存储的存储桶名称。

$ sudo mkdir /mnt/local $ sudo mount -t nfs 192.168.0.10:/buckets/your-nfs-bucket-name /mnt/local

安装 SBE 卷后,您可以使用 'df' 命令检查卷大小。

$ df -h* */mnt/local Filesystem Size Used Avail Use% Mounted on 192.168.0.10 80TB 20G 79TB 1% /mnt/local
注意

排查 NFS 问题

以下是在 Snow Family 设备上使用 NFS 时可能遇到的错误。

我收到已停用的错误消息

如果您在没有先停止 NFS 服务的情况下关闭 Snow Family 设备,则会收到此消息。下次启动 NFS 时,它可能会失败并显示 DEACTIVATE 错误消息。

例如:在 Snowball Edge 上启动服务。

snowballEdge start-service --service-id nfs --virtual-network-interface-arns arn:aws:snowball-device:::interface/s.ni-84991da69040a7xxx

您可以使用确定服务的状态。describe-service命令。

snowballEdge describe-service --service-id nfs { "ServiceId" : "nfs", "Status" : { "State" : "DEACTIVATED" } }

如何纠正问题

要纠正此问题,请使用以下步骤停止并重新启动 NFS 服务。

第 1 步:使用describe-service命令以确定服务的状态:

snowballEdge describe-service --service-id nfs { "ServiceId" : "nfs", "Status" : { "State" : "DEACTIVATED" } }

第 2 步:使用stop-service命令停止 NFS 服务:

snowballEdge stop-service --service-id nfs --profile 11

第 3 步:使用start-service命令以正常启动 NFS 服务:

snowballEdge start-service --virtual-network-interface-arns arn:aws:snowball-device:::interface/s.ni-8712e3a5cb180e65d --service-id nfs --service-configuration AllowedHosts=0.0.0.0/0 --profile 11

第 4 步:使用describe-service命令以确保服务处于活动状态:

SnowbalLedge 描述服务 —service id nfs

{ "ServiceId" : "nfs", "Status" : { "State" : "ACTIVE" }, "Endpoints" : [ { "Protocol" : "nfs", "Port" : 2049, "Host" : "192.168.0.10" } ], "ServiceConfiguration" : { "AllowedHosts" : [ "192.168.0.6/32", "11.160.2.156/32", "192.168.0.10/32" ] } }