与GCP网络连接中断时,挂载的GCS存储桶写入操作会如何处理?
GCS挂载写入网络中断相关问题解答
以下结论基于GCS官方推荐的Linux挂载工具gcsfuse,第三方挂载工具的行为可能存在差异。
默认行为
- 写入文件完成、触发关闭上传时如果出现网络中断,默认不会自动重试,文件也无法自动同步到GCS
- 写入时生成的本地临时缓存,会在上传失败后被
gcsfuse直接清理,挂载目录中不会留存该文件,相当于本次写入操作失效。
开启自动同步重试的方法
如果需要实现网络恢复后自动重试上传,可以在挂载存储桶时主动添加启动参数:
- 追加
--retry-sync参数开启同步失败重试机制,gcsfuse会按照指数退避规则自动重试上传,直到上传成功或者达到最大重试上限 - 搭配
--temp-dir=本地固定目录参数使用,将临时缓存存到持久化的本地目录,避免gcsfuse进程重启后未上传的缓存丢失,下次重新挂载时会自动尝试上传目录中未同步的缓存文件。
额外注意事项
- 重试仅在
gcsfuse进程正常运行时生效,如果进程在重试完成前被终止,未同步的内容只有在配置了持久化临时目录的情况下才能在下次挂载后继续上传 - 大文件写入建议先写入本地普通磁盘,完成后再手动转移到GCS挂载目录,或者直接使用
gsutil工具上传,减少网络波动导致的写入异常风险。
内容的提问来源于stack exchange,提问作者Kolban
相关产品推荐
相关产品推荐

