本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 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 个字符的文件路径。超过此文件路径长度将导致文件导入错误。
有关更多信息,请参阅 A3。
在 NFS 服务启动之前,Snowcone 设备上的可用存储空间并不准确。
您可以使用单个 Snowcone 设备传输高达 8 TB 的数据集,也可以通过多台设备parallel 或按顺序传输更大的数据集。例如,您可以使用三台 Snowcone 设备传输 24 TB 的数据。对于更大的数据传输任务,您可以使用 Snowball Edge Storage Optimized 设备。您可以使用单个 Snowball Edge Storage Optimized 设备传输多达 80 TB,并使用多个设备parallel 或按顺序传输更大的数据集。
注意
您可以为允许装载设备公开的 NFS 共享的 IP 范围提供 CIDR 块。例如,
10.0.0.0/16
。如果您没有提供允许的 CIDR 块,则所有装载请求都将遭到拒绝。有关详细信息,请参阅在 NFS 运行时限制对 NFS 共享的访问在 NFS 运行访问。-
对于基于 NFS 的传输,标准 POSIX 风格的元数据将从 Snowball Edge 导入到 Amazon S3 时添加到您的对象中。此外,你还会看到元数据 “x-amz-meta-user-agent aws-datasync”,这是我们目前使用Amazon DataSync Amazon S3 内部导入机制的一部分,用于通过 NFS 选项导入 Snowball Edge。
Snow 系列设备的 NFS 配置
NFS 无处不在(存在或同时无处不在)。每台笔记本电脑、工作站和服务器都有 IP 连接,每个现代操作系统都有一个内置 NFS 客户端。对象存储系统通常使用 Amazon S3 API,它不如 NFS 那么普遍,尤其是在私有数据中心中。Amazon S3 S3 因此,在订购 Snow Family 设备之前,您必须决定使用 Amazon S3 接口或 NFS 接口。如果您选择 NFS 接口,请将 Snow Family 设备的 NFS 存储桶作为卷安装。
先决条件
-
2
-
一个用于激活 Snow Family 设备的物理网络接口(例如 192.168.0.9)
-
第二个用于安装 Snow Family 设备 NFS 卷的虚拟网络接口(例如 192.168.0.10)
-
-
工作站
配置 Snow 系列设备
确认 NFS 服务处于活动状态
snowballEdge describe-service --service-id nfs --profile sbe1 { "ServiceId" : "nfs", "Status" : { "State" : "ACTIVE" } }
如果State
名称的值为Active
,则可以安装 Snow Family 设备 NFS 卷,否则必须重新启动服务或创建虚拟网络接口。
创建虚拟网络接口并启动 NFS 服务
检查虚拟网络接口是否存在
$ snowballEdge describe-virtual-network-interfaces --profile sbe1
识别物理接口 ID
$ snowballEdge describe-device --profile sbe1
创建虚拟网络接口并识别虚拟网络接口 (VNI) 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
" ] } }
安装 Snow Family 设备 NFS 音量
在工作站上,您可以安装 Snow Family 设备卷,这是 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
注意
-
例如,检查安装点 /mnt/loc al的容量,显示经过存储优化的 Snow Family 设备的可用容量接近 “80TB”。
-
有关更多信息,请参阅存储优化设备的 NFS 数据传输
。
排查查查查查查中的问题
以下是在 Snow Family 设备上使用 NFS 时可能会遇到的错误。
我收到 “已停用” 错误消息
如果您在未事先停止 NFS 服务的情况下关闭 Snow Family 设备,则会收到此消息。下次启动 NFS 时,它可能会失败并显示 “已停用” 错误消息。
例如:在 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
命令确保服务处于活动状态:
SnowballeEdge 描述服务 —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" ] } }