文件网关的最佳实践 - AWS Storage Gatewa

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

文件网关的最佳实践

本节包含以下主题,这些主题提供了有关使用网关、文件共享、存储桶和数据的最佳实践的信息。我们建议您自行熟悉本节中概述的信息,并尝试遵循这些指南,以避免 AWS Storage Gateway出现问题。有关诊断和解决您在部署中可能遇到的常见问题的更多指导,请参阅对 Storage Gateway 部署问题进行故障排除

最佳实践:恢复数据

虽然很少发生,但您的网关仍可能会遇到不可恢复的故障。这种故障可能在您的虚拟机 (VM)、网关本身、本地存储或其他位置发生。如果出现故障,我们建议您按照以下相应部分中的说明恢复您的数据。

重要

Storage Gateway 不支持从您的虚拟机管理程序创建的快照或 EC2 亚马逊系统映像 (AMI) 中恢复网关虚拟机。如果您的网关 VM 出现故障,则激活新网关,然后根据以下说明将您的数据恢复到该网关。

从虚拟机意外关闭中恢复

如果您的 VM 意外关闭,例如在停电期间,您的网关会变得不可访问。当电力和网络连接恢复后,您的网关会变得能够访问并开始正常运行。下面是此时您能够采取的有助于恢复数据的一些步骤:

  • 如果断电导致网络连接问题,您可以进行对此问题进行排查。有关如何测试网络连接的信息,请参阅测试网关的网络连接

从出现故障的缓存磁盘恢复您的数据

如果缓存磁盘出现故障,我们建议您根据具体情况采用以下步骤恢复数据:

  • 如果故障是因将缓存磁盘从您的主机中移除导致的,则关闭网关,重新添加该磁盘,然后重新启动网关。

从不可访问的数据中心恢复您的数据

如果您的网关或数据中心由于某种原因无法访问,您可以将数据恢复到其他数据中心的另一个网关,或者恢复到托管在 Amazon EC2 实例上的网关。如果您无法访问其他数据中心,我们建议您在 Amazon EC2 实例上创建网关。您要执行的步骤取决于您要从中恢复数据的网关类型。

从无法访问的数据中心中的文件网关恢复数据

对于 File Gateway,您可以将新的映射到包含要恢复的数据的 的 Amazon S3 存储桶FSx 。

  1. 在 Amazon EC2 主机上创建并激活新的文件网关。有关更多信息,请参阅 为 S3 文件网关部署默认 Amazon EC2 主机

  2. 在您创建的 EC2 网关上创建新的。有关更多信息,请参阅创建文件共享

  3. 在客户端上安装您的文件共享,并将其映射到包含要恢复的数据的 的 S3 存储桶FSx 。有关更多信息,请参阅装载并使用您的文件共享

最佳实践:管理分段上传

传输大型文件时,S3 文件网关利用 Amazon S3 分段上传功能将文件拆分为较小的部分并行传输以提高效率。有关分段上传的更多信息,请参阅《亚马逊简单存储服务用户指南》中的使用分段上传和复制对象

如果由于任何原因未能成功完成分段上传,网关通常会停止传输,从 Amazon S3 中删除部分传输的所有文件片段,然后再次尝试传输。在极少数情况下,例如硬件或网络故障导致网关无法在分段上传失败后进行清理,部分传输的文件可能会保留在 Amazon S3 上,从而产生存储费用。

作为最大限度地降低因未完成的分段上传而产生的 Amazon S3 存储成本的最佳实践,我们建议您配置 Amazon S3 存储桶生命周期规则,该规则使用 AbortIncompleteMultipartUpload API 操作自动停止不成功的传输,并在指定的天数后删除相关的文件部分。有关说明,请参阅《A mazon 简单存储服务用户指南》中的配置存储桶生命周期配置以删除未完成的分段上传

最佳实践:在将压缩文件复制到网关之前,先在本地解压压缩文件

如果您尝试解压缩存储在网关上的包含数千个文件的压缩档案,则可能会遇到与性能相关的严重延迟。解压缩任何类型的网络文件共享上包含大量文件的存档的过程必然涉及大量 input/output 操作、元数据缓存操作、网络开销和延迟。此外,Storage Gateway 无法确定存档中的每个文件何时完成解压缩,并且可以在该过程完成之前开始上传文件,这会进一步影响性能。当存档中的文件很多,但大小很小时,这些问题就会变得更加复杂。

作为最佳实践,我们建议先将压缩的档案从网关传输到本地计算机,然后再解压缩。然后,如有必要,您可以使用诸如 robocopyrsync 之类的工具将解压缩的文件传输回网关。

从 Windows 服务器复制数据时保留文件属性

在 Microsoft Windows 上使用基本copy命令可以将文件复制到文件网关,但是默认情况下,此命令仅复制文件数据,省略了某些文件属性,例如安全描述符。如果在没有相应的安全限制和自由访问控制列表 (DACL) 信息的情况下将文件复制到网关,则未经授权的用户可能会访问这些文件。

作为在将文件复制到 Microsoft Windows Server 上的网关时保留所有文件属性和安全信息的最佳实践,我们建议分别使用带/copy:DS/o标志的或xcopy命令。robocopy有关更多信息,请参阅微软 Windows Server 命令参考文档中的 ro bocopy 和 x copy。

最佳实践:正确调整缓存磁盘的大小

为了获得最佳性能,磁盘缓存的总大小必须足够大,足以覆盖活动工作集的大小。对于读取密集型 read/write 工作负载和混合型工作负载,这可以确保读取时实现较高的缓存命中率,这是理想的。您可以通过 S3 文件网关的CacheHitPercent指标对此进行监控。

对于写入密集型工作负载(例如备份和存档),S3 文件网关会先缓冲磁盘缓存中的传入写入,然后再将这些数据异步复制到 Amazon S3。您应确保有足够的缓存容量来缓冲写入的数据。该CachePercentDirty指标显示了尚未持久化的磁盘缓存的百分比。 AWS

最好CachePercentDirty使用较低的值。始终接近 100% 的值表示 S3 文件网关无法跟上传入写入流量的速度。您可以通过增加预配置的磁盘缓存容量或增加从 S3 文件网关到 Amazon S3 的可用专用网络带宽来避免这种情况,或者两者兼而有之。

有关缓存磁盘大小的更多信息,请参阅 Amazon Web Services 官方 YouTube 频道上的 Amazon S3 文件网关缓存大小调整最佳实践

使用多个文件共享和 Amazon S3 存储桶

当您将单个 Amazon S3 存储桶配置为允许多个网关或文件共享写入该存储桶时,结果可能无法预测。您可以通过以下两种方式之一配置存储桶,以避免出现不可预测的结果。从以下选项中选择最适合您的用例的配置方法:

  • 配置您的 S3 存储桶,以便只有一个文件共享可以写入每个存储桶。使用不同的文件共享写入每个存储桶。

    为此,请创建一个 S3 存储桶策略,该策略拒绝除用于特定文件共享的角色之外的所有角色在存储桶中放置或删除对象。为每个存储桶附加类似的策略,指定要写入每个存储桶的不同文件共享。

    以下示例策略拒绝向除创建存储桶的角色之外的所有角色授予 S3 存储桶写入权限。将拒绝除 s3:DeleteObject 以外的所有角色的 s3:PutObject"TestUser" 操作。该策略适用于 "arn:aws:s3:::amzn-s3-demo-bucket/*" 存储桶中的所有对象。

    JSON
    { "Version":"2012-10-17", "Statement":[ { "Sid":"DenyMultiWrite", "Effect":"Deny", "Principal":"*", "Action":[ "s3:DeleteObject", "s3:PutObject" ], "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition":{ "StringNotLike":{ "aws:userid":"TestUser:*" } } } ] }
  • 如果您确实希望多个文件共享写入同一 Amazon S3 存储桶,则必须防止文件共享尝试同时写入相同的对象。

    为此,请为每个文件共享配置一个单独的、唯一的对象前缀。这意味着每个文件共享仅写入带有相应前缀的对象,而不会写入与部署中其他文件共享关联的对象。创建新的文件共享时,您可以在 S3 前缀名称字段中配置对象前缀。

清理不必要的资源

作为最佳实践,我们建议清理 Storage Gateway 资源,以避免意外或不必要的费用。例如,如果您创建网关是为了演示练习或测试,请考虑将其及其虚拟设备从部署中删除。使用以下步骤清理资源。

清除不需要的资源
  1. 如果您不再打算继续使用网关,请将其删除。有关更多信息,请参阅 删除网关和移除关联的资源

  2. 从本地主机中删除 Storage Gateway VM。如果您在 Amazon EC2 实例上创建了网关,请终止该实例。