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

1 分钟阅读
0

我在 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. 选择 Actions(操作),然后选择 Edit File Share Settings(编辑文件共享设置)。
  5. 针对 Automated cache refresh from S3 after(从 S3 之后自动刷新缓存),选择 Set refresh interval(设置刷新间隔)。
  6. 以天、小时和分钟为单位设置时间,以便使用 TTL 刷新文件共享的缓存。
  7. 选择 Save(保存)。

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

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

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

  • 完成刷新过程的时间取决于以下因素:
    • 网关上缓存的对象数量。
    • 自从上次刷新以后添加到或从存储桶移除的对象数量。
  • 刷新缓存会启动刷新操作。但文件刷新是独立的流程。您可以设置刷新缓存通知,以获取有关文件刷新过程的更新。刷新完成通知表示文件刷新过程已完成。

AWS 官方
AWS 官方已更新 2 年前