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

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

Questo articolo si applica a Questo articolo non si applica a Questo articolo non è legato a un prodotto specifico. Non tutte le versioni del prodotto sono identificate in questo articolo.

Sintomi

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

Causa

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

Risoluzione

工程部门正在研究永久修复,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"

Prodotti interessati

Isilon, PowerScale
Proprietà dell'articolo
Numero articolo: 000223936
Tipo di articolo: Solution
Ultima modifica: 11 giu 2024
Versione:  3
Trova risposta alle tue domande dagli altri utenti Dell
Support Services
Verifica che il dispositivo sia coperto dai Servizi di supporto.