AWS Storage Gateway
User Guide (API Version 2013-06-30)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

管理文件网关

随后,您可以找到有关如何管理文件网关资源的信息。

添加文档共享

在激活和运行文件网关后,您可以添加额外的文件共享。有关如何添加文件共享的信息,请参阅创建文件共享

授予对 Amazon S3 存储桶的访问权限

在创建文件共享时,文件网关需要访问权限才能将文件上传到 Amazon S3 存储桶中。为了授予此访问权限,文件网关将代入与授予此访问权限的 IAM 策略关联的 IAM 角色。该角色需要此 IAM 策略以及与之有关的安全令牌服务 (STS) 信任关系。此策略确定了该角色可以执行的操作。此外,您的 S3 存储桶还必须具有允许 IAM 角色访问 S3 存储桶的访问策略。您可以自行创建该角色和访问策略,也可以让文件网关为您创建。如果文件网关为您创建了该策略,该策略将包含 S3 操作的列表。有关角色和权限的信息,请参阅 IAM 用户指南 中的创建向 AWS 服务委派权限的角色

以下示例信任策略允许文件网关代入此角色。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "storagegateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

如果您不希望文件网关代表您创建策略,您可以创建自己的策略并将它附加到文件共享。有关更多信息,请参阅 创建文件共享

以下示例策略允许文件网关执行策略中列出的所有 Amazon S3 操作。语句的第一个部分允许在名为 TestBucket 的 S3 存储桶上执行列出的所有操作。第二个部分允许在 TestBucket 中的所有对象上执行列出的操作。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetAccelerateConfiguration", "s3:GetBucketLocation", "s3:GetBucketVersioning", "s3:ListBucket", "s3:ListBucketVersions", "s3:ListBucketMultipartUploads" ], "Resource": "arn:aws:s3:::TestBucket", "Effect": "Allow" }, { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObject", "s3:GetObjectVersion", "s3:ListMultipartUploadParts", "s3:PutObject" ], "Resource": "arn:aws:s3:::TestBucket/*", "Effect": "Allow" } ] }

删除文件共享

如果您不再需要某个文件共享,可以从 AWS Storage Gateway 管理控制台将其删除。删除文件共享时,网关会从文件共享映射到的 Amazon S3 存储桶分离。但是,S3 存储桶及其内容不会被删除。

在删除文件共享时,如果网关正在向 S3 存储桶上传数据,则删除过程需要等到所有数据上传完之后才会完成。在数据完全上传之前,文件共享将具有 DELETING 状态。

如果您希望将数据完全上传,请执行紧跟着的“删除文件共享”步骤。如果您不想等待数据完全上传,请参阅本主题稍后的“强制删除文件共享”步骤。

删除文件共享

  1. 通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

  2. 选择 File shares,然后选择要删除的文件共享。

  3. 对于 Actions,选择 Delete file share。将出现以下确认对话框。

  4. 在确认对话框中,选中要删除的文件共享对应的复选框,然后选择 Delete

在某些情况下,您可能不希望等到上传完写入到 NFS 文件共享上的文件的所有数据才能删除文件共享。例如,您可能想要有意放弃已写入但尚未上传的数据。在另一个示例中,支持文件共享的 Amazon S3 存储桶或对象可能已被删除,这意味着无法再上传指定的数据。

在这些情况下,您可以通过使用 AWS 管理控制台或 DeleteFileShare API 操作强制删除文件共享。此操作会中止数据上传过程。执行此操作后,文件共享将进入 FORCE_DELETING 状态。要强制从控制台删除文件共享,请参阅以下过程。

强制删除文件共享

  1. 通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

  2. 选择 File shares,然后选择您要强制删除的文件共享并等待几秒钟。删除消息会显示在 Details 选项卡中。

    注意

    您无法撤消强制删除操作。

  3. Details 选项卡上显示的消息中,验证您要强制删除的文件共享的 ID,选中确认框,然后选择 Force delete now

您也可以使用 DeleteFileShare API 操作强制删除文件共享。

更新文件共享

您可以更新默认文件共享设置,可连接到文件共享的客户端以及文件共享的元数据默认值。

编辑文件共享设置

您可以编辑 Amazon S3 存储桶的默认存储类以及文件共享的“Squash level”设置和 Export as 选项。例如,Export as 选项可能包括 Read-write

编辑文件共享设置

  1. 通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

  2. 选择 File shares,然后选择要更新的文件共享。

  3. 对于 Actions,选择 Edit file share settings

  4. 执行以下一个或多个操作:

    • 对于 Storage class for new objects,选择 S3 存储桶的默认存储类,然后选择 Save

      新对象的存储类的可能值包括 S3 StandardS3 Standard-Infrequent Access。默认值为 S3 Standard

    • 选择 Guess MIME type,根据文件扩展名猜测已上传对象的 MIME 类型。

    • 对于 Squash level,选择文件共享所需的压缩级别设置,然后选择 Save。可能的值包括:

      • Root squash (default) – 远程超级用户 (root 用户) 的访问权限将映射到指定的 UID 和 GID。

      • No root squash – 远程超级用户 (root 用户) 以根用户身份接收访问权限。

      • All squash – 所有用户访问权限均将映射到指定的 UID 和 GID。

      “Squash level”的默认值为 Root squash

    • 对于 Export as,为文件共享选择一个选项,然后选择 Save。默认值为 Read-write

      注意

      对于在 Windows 客户端上装载的文件共享,如果您为 Export as 选择 Read-only,则可能会看到有关某个错误阻止您创建文件夹的错误消息。此错误消息是 NFS 版本 3 的已知问题。您可以忽略此消息。

编辑元数据默认值

如果您未设置存储桶中文件或目录的元数据值,文件网关将设置元数据默认值。这些值包括文件和文件夹的 Unix 权限。您可以在 AWS Storage Gateway 管理控制台中编辑元数据默认值。当文件网关在 Amazon S3 中存储文件和文件夹时,Unix 文件权限将存储在对象元数据中。当文件网关发现文件网关未存储的对象时,系统会为这些对象分配默认 Unix 文件权限。下表描述了默认 Unix 权限。

元数据 描述
目录权限

“nnnn”形式的 Unix 目录模式。例如,“0666”表示文件共享中所有目录的访问模式。默认值为 0777。

文件权限

Unix 文件模式采用“nnnn”形式。例如,“0666”表示文件共享中的文件模式。默认值为 0666。

用户 ID

文件共享中文件的默认所有者 ID。默认值为 65534。

组 ID 文件共享的默认组 ID。默认值为 65534。

编辑元数据默认值

  1. 通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

  2. 选择 File shares,然后选择要更新的文件共享。

  3. 对于 Action,选择 Edit file metadata defaults

  4. Edit file metadata defaults 对话框中,提供元数据信息并选择 Save

编辑允许的 NFS 客户端

我们建议您更改文件共享的允许的 NFS 客户端设置。如果您未这样做,则您网络上的任何客户端均可装载到您的文件共享。

编辑允许的 NFS 客户端

  1. 通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

  2. 选择 File shares,然后选择要更新的文件共享。

  3. 对于 Actions,选择 Edit allowed clients

  4. Edit allowed clients 对话框中,选择 Add entry,为客户端提供 IP 地址或 CIDR,然后选择 Save

刷新 Amazon S3 存储桶中的对象

在 NFS 客户端执行文件系统操作时,您的网关会在与文件共享关联的 Amazon S3 存储桶中维护一个对象清单。您的网关使用此缓存清单来减小 S3 请求的延迟和频率。

要刷新用于文件共享的 S3 存储桶,您可以使用 AWS Storage Gateway 控制台或 AWS Storage Gateway API 中的 RefreshCache 操作。

从控制台刷新 S3 存储桶中的对象

  1. 通过以下网址打开 AWS Storage Gateway 控制台:https://console.amazonaws.cn/storagegateway/home

  2. 选择 File shares,然后选择与要刷新的 S3 存储桶关联的文件共享。

  3. 对于 Actions,选择 Refresh cache。完成刷新所需的时间取决于 S3 存储桶中包含的对象数。

了解文件共享状态

每个文件共享均有关联的状态,让您一目了然地了解文件共享的运行状态。状态大多数时候会显示文件共享运行正常,无需您采取任何行动。在某些情况下,状态指示有问题,可能需要您执行相关操作,也可能不需要。

可以在 AWS Storage Gateway 控制台上查看文件共享状态。对于网关中的每个文件共享,文件共享状态显示在 Status 列中。正常工作的文件共享的状态显示为 AVAILABLE。

下表描述了各个文件共享的状态,以及您是否需要以及应在何时根据每种状态采取行动。文件共享在使用中应始终具有或在大部分时间内具有 AVAILABLE 状态。

状态 含义
AVAILABLE

文件共享已正确配置且可供使用。AVAILABLE 状态是文件共享的正常运行状态。

CREATING

该文件共享正在创建并且尚未可供使用。CREATING (正在创建) 状态是过渡型状态。无需采取行动。如果文件共享停滞在此状态,这可能是因为网关 VM 丢失了与 AWS 的连接。

UPDATING

文件共享配置正在更新。如果文件共享停滞在此状态,这可能是因为网关 VM 丢失了与 AWS 的连接。

DELETING

正在删除文件共享。将不删除文件共享,直到所有数据上传到 AWS。DELETING 状态是过渡型状态,无需执行任何操作。

FORCE_DELETING

正在强制删除文件共享。文件共享将被立即删除,并且中止上传到 AWS。FORCE_DELETING 状态是过渡性质的,无需执行任何操作。

UNAVAILABLE

文件共享处于不佳状态。某些问题会导致文件共享进入不佳状态,例如,角色策略错误或文件共享映射到的 Amazon S3 存储桶不存在。在解决导致状态不佳的问题后,文件将返回 AVAILABLE 状态。

文件共享最佳实践

在此部分中,您可以找到有关创建文件共享的最佳实践的信息。

防止多个文件共享写入到 Amazon S3 存储桶

在创建文件共享时,我们建议您配置您的 Amazon S3 存储桶,以便只有一个文件共享可以向其中写入内容。如果您将 S3 存储桶配置为由多个文件共享写入,可能出现不可预测的结果。为了防止这种情况,您可以创建一个 S3 存储桶策略,拒绝除用于文件共享的角色以外的所有角色在存储桶中放置或删除对象,然后将该策略附加到 S3 存储桶。

以下示例策略拒绝除创建存储桶的角色以外的所有角色写入到 S3 存储桶。将拒绝除 "TestUser" 以外的所有角色的 s3:DeleteObjects3:PutObject 操作。该策略适用于 "arn:aws:s3:::test-bucket/*" 存储桶中的所有对象。

Copy
{ "Version":"2012-10-17", "Statement":[ { "Sid":"DenyMultiWrite", "Effect":"Deny", "Principal":"*", "Action":[ "s3:DeleteObject", "s3:PutObject" ], "Resource":"arn:aws:s3:::TestBucket/*", "Condition":{ "StringNotLike":{ "aws:userid":"TestUser:*" } } } ] }

允许特定 NFS 客户端装载您的文件共享

我们建议您更改文件共享允许的 NFS 客户端设置。如果您未这样做,则您网络上的任何客户端均可装载您的文件共享。有关如何编辑 NFS 客户端设置的信息,请参阅 编辑允许的 NFS 客户端