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

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

管理 NFS 接口

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

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

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

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

有关在计算机操作系统中使用 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 设备。

注意

在 NFS 服务启动之前,Snowcone 设备上的可用存储空间并不准确。

您还可以使用 GUI 工具配置和管理 NFS 接口。Amazon OpsHub有关更多信息,请参阅使用 NFS 进行离线文件传输管理 NFS

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