

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Snowball Edge 上管理 NFS 介面
<a name="shared-using-nfs"></a>

使用網路檔案系統 (NFS) 界面將檔案上傳至 Snowball Edge，就像裝置是作業系統的本機儲存一樣。這可讓您更易於使用的方式傳輸資料，因為您可以使用作業系統的功能，例如複製檔案、拖放檔案，或其他圖形化使用者介面功能。裝置上的每個 S3 儲存貯體都可以做為 NFS 介面端點使用，並可掛載以複製資料。NFS 界面可用於匯入任務。

如果 Snowball Edge 裝置設定為在建立訂購裝置的任務時包含它，您可以使用 NFS 介面。如果裝置未設定為包含 NFS 界面，請使用 S3 轉接器或 Snowball Edge 上的 Amazon S3 相容儲存體來傳輸資料。如需 S3 轉接器的詳細資訊，請參閱 [使用 管理 Amazon S3 轉接器儲存 AWS OpsHub](manage-s3.md)。如需 Snowball Edge 上 Amazon S3 相容儲存體的詳細資訊，請參閱 [使用 在 Snowball Edge 上設定 Amazon S3 相容儲存 AWS OpsHub](s3-edge-snow-opshub.md)。

啟動時，NFS 界面會使用 1 GB 記憶體和 1 個 CPU。這可能會限制在 Snowball Edge 上執行的其他服務數量，或可以執行的 EC2-compatible執行個體數量。

透過 NFS 界面傳輸的資料不會在傳輸中加密。設定 NFS 界面時，您可以提供 CIDR 區塊，Snowball Edge 會限制從用戶端電腦存取 NFS 界面，並包含這些區塊中的地址。

裝置上的檔案會在傳回至 時傳輸到 Amazon S3 AWS。如需詳細資訊，請參閱[將任務匯入 Amazon S3](https://docs.aws.amazon.com/snowball/latest/developer-guide/importtype.html)方式。

如需搭配電腦作業系統使用 NFS 的詳細資訊，請參閱作業系統的文件。

使用 NFS 界面時，請記住下列詳細資訊。
+ NFS 界面提供本機儲存貯體，用於裝置上的資料儲存。對於匯入任務，不會將本機儲存貯體中的資料匯入 Amazon S3。
+ 檔案名稱是 Snowball Edge 上本機 S3 儲存貯體中的物件金鑰。金鑰名稱是一系列的 Unicode 字元，其 UTF-8 編碼長度最多為 1，024 個位元組。我們建議您盡可能使用 NFSv4.1，並使用 Unicode UTF-8 編碼檔案名稱，以確保成功匯入資料。未以 UTF-8 編碼的檔案名稱可能不會上傳到 S3，或者可能會上傳到 S3 並具有不同的檔案名稱，具體取決於您使用的 NFS 編碼。
+ 請確定檔案路徑的長度上限小於 1024 個字元。Snowball Edge 不支援大於 1024 個字元的檔案路徑。超過此檔案路徑長度會導致檔案匯入錯誤。
+ 如需詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》中的[物件金鑰](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html)。
+ 對於 NFS 型傳輸，標準 POSIX 樣式中繼資料會在從 Snowball Edge 匯入 Amazon S3 時新增至物件。此外，您會看到中繼資料 "x-amz-meta-user-agent aws-datasync"，因為我們目前使用 AWS DataSync 作為內部匯入機制的一部分，以 NFS 匯入 Amazon S3 for Snowball Edge。
+ 您可以使用單一 Snowball Edge 裝置傳輸最多 40M個檔案。如果您需要在單一任務中傳輸超過 40M個檔案，請批次處理檔案，以減少每次傳輸的檔案編號。對於具有增強型 NFS 界面或 S3 界面的 Snowball Edge 裝置，個別檔案的大小上限為 5 TB。

您也可以使用 GUI 工具 AWS OpsHub來設定和管理 NFS 界面。如需詳細資訊，請參閱[管理 NFS 界面](https://docs.aws.amazon.com/snowball/latest/developer-guide/manage-nfs.html)。

## Snowball Edge 的 NFS 組態
<a name="NFS-interface-configuration"></a>

NFS 界面預設不會在 Snowball Edge 裝置上執行，因此您需要啟動它才能將資料傳輸至裝置。您可以透過提供在 Snowball Edge 上執行的虛擬網路介面 (VNI) IP 地址，並視需要限制檔案共享的存取，來設定 NFS 介面。在設定 NFS 界面之前，請在 Snowball Edge 上設定虛擬網路界面 (VNI)。如需詳細資訊，請參閱[運算執行個體的網路組態](https://docs.aws.amazon.com/snowball/latest/developer-guide/network-config-ec2.html)。

### 設定 NFS 界面的 Snowball Edge
<a name="configure-snow-nfs"></a>
+ 使用 `describe-service`命令來判斷 NFS 界面是否處於作用中狀態。

  ```
  snowballEdge describe-service --service-id nfs
  ```

  命令將傳回 NFS 服務的狀態，`ACTIVE`或 `INACTIVE`。

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

  如果`State`名稱的值為 `ACTIVE`，則 NFS 介面服務為作用中，您可以掛載 Snowball Edge NFS 磁碟區。如需詳細資訊，請參閱[ 在用戶端電腦上掛載 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
  ```   ](#mount-snow-nfs-volume.title)。如果值為 `INACTIVE`，您必須啟動服務。

### 在 Snowball Edge 上啟動 NFS 服務
<a name="start-snow-nfs-service"></a>

啟動虛擬網路界面 (VNI)，如有必要，請在 Snowball Edge 上啟動 NFS 服務。如有必要，啟動 NFS 服務時，請提供允許的網路地址區塊。如果您未提供任何地址，則對 NFS 端點的存取將不受限制。

1. 使用 `describe-virtual-network-interface`命令查看 Snowball Edge 上可用的 VNIs。

   ```
   snowballEdge describe-virtual-network-interfaces
   ```

   如果一或多個 VNIs Snowball Edge 上處於作用中狀態，則命令會傳回下列項目。

   ```
   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`名稱值。

1. 如果沒有可用的 VNIs，請使用 `create-virtual-network-interface`命令為 NFS 界面建立 VNI。如需詳細資訊，請參閱[設定虛擬網路界面 (VNI)](https://docs.aws.amazon.com/snowball/latest/developer-guide/network-config-ec2.html#snowcone-setup-vni)。

1. 使用 `start-service`命令啟動 NFS 服務，並將其與 VNI 建立關聯。若要限制對 NFS 界面的存取，請在 命令中包含 `service-configuration`和 `AllowedHosts` 參數。

   ```
   snowballEdge start-service --virtual-network-interface-arns arn-of-vni --service-id nfs --service-configuration AllowedHosts=CIDR-address-range
   ```

1. 使用 `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 端點
<a name="mount-snow-nfs-volume"></a>

啟動 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
  ```

### 在 Snowball Edge 上停止 NFS 界面
<a name="stop-nfs-interface"></a>

當您完成透過 NFS 界面傳輸檔案，並在關閉 Snowball Edge 之前，使用 `stop-service`命令來停止 NFS 服務。

```
snowballEdge stop-service --service-id nfs
```