如何在 Storage Gateway 上自动执行 RefreshCache 操作?

上次更新时间:2020 年 9 月 25 日

我在 AWS Storage Gateway 文件网关上进行了网络文件系统 (NFS) 或服务器消息块 (SMB) 文件共享。文件网关与 Amazon Simple Storage Service (Amazon S3) 存储桶相关联。但是,当我直接将文件上传到存储桶时,我无法在文件共享中看到文件。如何自动执行我的文件共享刷新?

解决方法

当您在本地使用文件共享将文件写入缓存时,Storage Gateway 会自动更新文件共享缓存。不过,如果直接上传文件至 Amazon S3,Storage Gateway 不会自动对缓存进行更新。所以在这么做时,您必须执行 RefreshCache 操作,以查看文件共享上的更改。

使用 Storage Gateway,您可以基于生存时间 (TTL) 值自动执行 RefreshCache 操作。TTL 指的是上次刷新以来的时间。当用户在 TTL 值后访问文件目录时,文件网关会从 S3 存储桶中刷新目录内容。自动执行 RefreshCache 操作的有效 TTL 值范围从 300 秒到 2592000 秒(5 分钟到 30 天)。

注意:在您指定的 TTL 值过期后,文件网关将在文件夹级别进行 ListObjects Amazon S3 API 调用。如果您将 TTL 设置为较低值,则可能会导致更多的 Amazon S3 API 请求。

若要使用 Storage Gateway 控制台自动执行 RefreshCache 操作,请遵照以下步骤:

  1. 打开 Storage Gateway 控制台
  2. 选择 File shares(文件共享)。
  3. 选择您要为其自动执行 RefreshCache 操作的文件共享。
  4. 选择 Automated cache refresh from S3 after(然后从 S3 自动执行缓存刷新),然后为您的使用案例输入 TTL 值。
  5. 选择 Save(保存)。

要使用 Storage Gateway API 自动执行 RefreshCache 操作,您可以使用 UpdateNFSFileShare API 调用或 UpdateSMBFileShare API 调用。对于这两个 API 调用,您都需要更新 CacheAttributes 参数以自动执行 RefreshCache 操作。

要在一个时间点运行 RefreshCache 而不是自动执行操作,请参阅为什么我的 Amazon S3 存储桶的更改不会在 Storage Gateway 文件共享上显示?

请注意有关 RefreshCache 操作的以下注意事项:

  • 刷新过程完成所需的时间取决于网关上缓存的对象数量,以及自上次刷新以来添加到存储桶或从存储桶中删除的对象数量。
  • 刷新缓存会启动刷新操作,但文件刷新是一个单独的过程。您可以设置刷新缓存通知,以获取有关文件刷新过程的更新。刷新完成通知表示文件刷新过程已完成。 

这篇文章对您有帮助吗?


您是否需要账单或技术支持?