管理 NFS 接口 - Amazon Snowball Edge 开发者指南
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

管理 NFS 接口

使用网络文件系统 (NFS) 界面将文件上传到 Snow Family 设备,就像该设备是操作系统的本地存储器一样。这使得传输数据的方式更加用户友好,因为您可以使用操作系统的功能,例如复制文件、拖放文件或其他图形用户界面功能。设备上的每个 S3 存储桶都可用作 NFS 接口终端节点,并且可以装载以将数据复制到。NFS 接口可用于导入任务。

如果 Snowball Edge 设备被配置为在创建订购设备任务时包含该接口,则可以使用 NFS 接口。如果设备未配置为包含 NFS 接口,请使用 Snow Family 设备上的 S3 适配器或 Amazon S3 兼容存储来传输数据。有关 S3 适配器的更多信息,请参阅管理 Amazon S3 Adapter 存储。有关 Snow Family 设备上与 Amazon S3 兼容存储的更多信息,请参阅在 Snow 系列设备上设置与 Amazon S3 兼容的存储

启动后,NFS 接口使用 1 GB 的内存和 1 个 CPU。这可能会限制在 Snow Family 设备上运行的其他服务的数量或可以运行的 EC2 兼容实例的数量。

通过 NFS 接口传输的数据在传输过程中未加密。配置 NFS 接口时,您可以提供 CIDR 块,Snow Family 设备将限制地址位于这些块中的客户端计算机访问 NFS 接口。

设备上的文件将在返回到 Amazon S3 时传输到 Amazon S3 Amazon。有关更多信息,请参阅将任务导入 Amazon S3 S 的工作原理。

有关在计算机操作系统中使用 NFS 的更多信息,请参阅操作系统的文档。

使用 NFS 接口时,请记住以下细节。

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

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

  • 有关更多信息,请参阅 Amazon 简单存储服务用户指南中的对象密钥

  • 对于基于 NFS 的传输,当您的对象从 Snow Family 设备导入到 Amazon S3 时,标准的 POSIX 样式的元数据将添加到您的对象中。此外,你还会看到元数据 “-x-amz-meta-user agent aws-datasync”,这是我们目前使用的 Amazon S3 内部导入机制的一部分,用于使用 Amazon DataSync NFS 选项导入 Snow Family 设备。

  • 使用一台 Snowball Edge 设备,您最多可以传输 4000 万个文件。如果您需要在单个作业中传输超过 4000 万个文件,请对文件进行批处理,从而减少每次传输的文件数量。对于具有增强型 NFS 接口或 S3 接口的 Snowball Edge 设备,单个文件在不超过 5 TB 的情况下大小不限。

您还可以使用 GUI 工具配置和管理 NFS 接口。Amazon OpsHub有关更多信息,请参阅 接口

Snow 系列设备的 NFS 配置

默认情况下,NFS 接口未在 Snow Family 设备上运行,因此您需要启动该接口才能将数据传输到该设备。您可以通过提供在 Snow Family 设备上运行的虚拟网络接口 (VNI) 的 IP 地址来配置 NFS 接口,并在需要时限制对文件共享的访问。在配置 NFS 接口之前,请在 Snow Family 设备上设置虚拟网络接口 (VNI)。有关更多信息,请参阅计算实例的网络配置

为 NFS 接口配置 Snow 系列设备

  • 使用describe-service命令确定 NFS 接口是否处于活动状态。

    snowballEdge describe-service --service-id nfs

    该命令将返回 NFS 服务的状态,ACTIVEINACTIVE

    { "ServiceId" : "nfs", "Status" : { "State" : "ACTIVE" } }

    如果State名称的值为ACTIVE,则表示 NFS 接口服务处于活动状态,您可以装载 Snow Family 设备 NFS 卷。有关更多信息,请参阅。如果值为INACTIVE,则必须启动服务。

在 Snow Family 设备上启动 NFS 服务

如有必要,启动虚拟网络接口 (VNI),然后在 Snow Family 设备上启动 NFS 服务。如有必要,在启动 NFS 服务时,请提供允许的网络地址块。如果您不提供任何地址,则对 NFS 端点的访问将不受限制。

  1. 使用describe-virtual-network-interface命令查看 Snow Family 设备上可用的 VNI。

    snowballEdge describe-virtual-network-interfaces

    如果 Snow Family 设备上有一个或多个 VNI 处于活动状态,则该命令将返回以下内容。

    snowballEdge describe-virtual-network-interfaces [ { "VirtualNetworkInterfaceArn" : "arn:aws:snowball-device:::interface/s.ni-8EXAMPLE8EXAMPLE8", "PhysicalNetworkInterfaceId" : "s.ni-8EXAMPLEaEXAMPLEd", "IpAddressAssignment" : "DHCP", "IpAddress" : "192.0.2.0", "Netmask" : "255.255.255.0", "DefaultGateway" : "192.0.2.1", "MacAddress" : "EX:AM:PL:E1:23:45" },{ "VirtualNetworkInterfaceArn" : "arn:aws:snowball-device:::interface/s.ni-1EXAMPLE1EXAMPLE1", "PhysicalNetworkInterfaceId" : "s.ni-8EXAMPLEaEXAMPLEd", "IpAddressAssignment" : "DHCP", "IpAddress" : "192.0.2.2", "Netmask" : "255.255.255.0", "DefaultGateway" : "192.0.2.1", "MacAddress" : "12:34:5E:XA:MP:LE" } ]

    记下要用于 NFS 接口的 VNI VirtualNetworkInterfaceArn 名称的值。

  2. 如果没有 VNI 可用,请使用create-virtual-network-interface命令为 NFS 接口创建 VNI。有关更多信息,请参阅设置虚拟网络接口 (VNI)

  3. 使用start-service命令启动 NFS 服务并将其与 VNI 关联。要限制对 NFS 接口的访问,请在命令中包含service-configurationAllowedHosts参数。

    snowballEdge start-service --virtual-network-interface-arns arn-of-vni --service-id nfs --service-configuration AllowedHosts=CIDR-address-range
  4. 使用describe-service命令检查服务状态。当State名称的值为时,它正在运行ACTIVE

    snowballEdge describe-service --service-id nfs

    该命令返回服务状态、NFS 端点的 IP 地址和端口号以及允许访问该端点的 CIDR 范围。

    { "ServiceId" : "nfs", "Status" : { "State" : "ACTIVE" }, "Endpoints" : [ { "Protocol" : "nfs", "Port" : 2049, "Host" : "192.0.2.0" } ], "ServiceConfiguration" : { "AllowedHosts" : [ "10.24.34.0/23", "198.51.100.0/24" ] } }

在客户端计算机上安装 NFS 端点

启动 NFS 接口后,将终端作为本地存储挂载到客户端计算机上。

以下是 Windows、Linux 和 macOS 操作系统的默认挂载命令。

  • Windows:

    mount -o nolock rsize=128 wsize=128 mtype=hard nfs-interface-ip-address:/buckets/BucketName *
  • Linux:

    mount -t nfs nfs-interface-ip-address:/buckets/BucketName mount_point
  • macOS:

    mount -t nfs -o vers=3,rsize=131072,wsize=131072,nolocks,hard,retrans=2 nfs-interface-ip-address:/buckets/$bucketname mount_point

停止 NFS 接口

通过 NFS 接口完成文件传输后,在关闭 Snow Family 设备之前,请使用stop-service命令停止 NFS 服务。

snowballEdge stop-service --service-id nfs