使用 API ListObjects 或 ListObjectsV2 列出 S3 存储区对象无限循环

Sammanfattning: S3 应用程序或 s3cmd 使用 S3 API listobject 或 listobjectv2 从 s3 存储区查询对象,在某些极端情况下,如果 dirCache 存在但未满足请求,则 Powerscale OneFS s3 将返回错误结果,S3 应用程序会因列表对象命中无限循环而挂起。

Den här artikeln gäller för Den här artikeln gäller inte för Den här artikeln är inte kopplad till någon specifik produkt. Alla produktversioner identifieras inte i den här artikeln.

Symptom

S3 应用程序只是由于列出存储桶而挂起,无法完成。
S3cmd ls 存储桶重复获取分页列表中返回的相同对象。

Orsak

这可能会遇到 s3 缓存错误# PSCALE-217613。 
 
如果客户端请求最大条目 = 1000 的 ListObjects,则在内部我们获得 10,000 个条目(如果目录非常宽),并将其中的 1000 个返回给客户端,然后重复使用剩余的 9000 个用于将来的请求。在下一个请求中,如果存在缓存,并且目录下仍有尚未返回到客户端的文件,并且当前缓存没有足够的条目来满足请求,我们将遇到错误并返回错误的结果。

Upplösning

工程部门正在研究永久修复,RUP 修补程序将在准备就绪后发布。
当前的解决方法是暂时将 s3 ls DIR_CACHE_TTL 配置为 0: 
# isi_for_array -X  "/usr/likewise/bin/lwsm inject s3 s3_ls_set_dir_cache_ttl on 0"

如果 s3 进程重新启动或节点重新启动,请在节点上再次应用解决方法,因为当 s3 重新启动时,它已恢复为默认值 1 小时。 
要关闭手动 DIR_CACHE_TTL: 
#isi_for_array -X  "/usr/likewise/bin/lwsm inject s3 s3_ls_set_dir_cache_ttl off"

Berörda produkter

Isilon, PowerScale
Artikelegenskaper
Artikelnummer: 000223936
Artikeltyp: Solution
Senast ändrad: 11 juni 2024
Version:  3
Få svar på dina frågor från andra Dell-användare
Supporttjänster
Kontrollera om din enhet omfattas av supporttjänster.