You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCS对象迁移至Coldline存储类时报No space left on device错误如何解决

GCS存储桶迁移及存储类修改解决方案

1. 「No space left on device」报错修复

该报错核心是gsutil默认的跟踪文件存储目录(通常为系统临时目录/tmp)空间不足或无写入权限,按以下步骤处理:

  • 先在本地创建一个剩余空间充足、当前用户有读写权限的目录,例如mkdir -p ~/gsutil_tracker
  • 执行操作时通过参数临时指定跟踪目录即可,示例:
    gsutil -o "GSUtil:state_dir=/home/你的用户名/gsutil_tracker" [其他操作参数]
    
  • 如需永久生效,可找到gsutil的.boto配置文件(执行gsutil version -l可查看配置文件路径),修改state_dir配置项值为上述新建的目录路径。

2. 现有对象批量转换为Coldline存储类

已迁移到新桶的对象无需重新上传,可通过GCS内部rewrite操作直接修改存储类,命令如下:

gsutil -o "GSUtil:state_dir=/home/你的用户名/gsutil_tracker" -m rewrite -s coldline gs://目标桶名/**
  • 其中-m为开启并行处理,大幅提升大批量对象的处理速度
  • -s coldline指定目标存储类为Coldline
  • **通配符匹配桶内所有层级的对象和子目录

执行完成后可通过gsutil ls -l gs://目标桶名/任意对象路径验证存储类是否修改成功。

3. 未迁移数据的最优迁移方案

剩余未迁移的数据无需使用GUI工具中转,可直接通过gsutil rsync一步完成迁移+存储类设置,无需二次修改:

本地文件夹迁移到GCS新桶

gsutil -o "GSUtil:state_dir=/home/你的用户名/gsutil_tracker" -m rsync -r -s coldline /本地待迁移大文件夹路径 gs://目标桶名/

旧GCS桶迁移到新GCS桶

gsutil -o "GSUtil:state_dir=/home/你的用户名/gsutil_tracker" -m rsync -r -s coldline gs://旧桶名/ gs://目标桶名/

该方式走GCS内部链路,不占用本地上行带宽,迁移速度远高于GUI工具。

4. 注意事项

  • 操作前确认账号对目标桶拥有storage.objects.setStorageClass、storage.objects.create、storage.objects.list权限,无权限可联系桶管理员开通
  • Coldline存储类有90天的最小存储时长要求,如数据可能在90天内删除或修改,会产生额外的提前删除费用,提前确认符合业务使用场景
  • 迁移完成后可执行gsutil du -s gs://目标桶名/对比源数据容量,确认所有对象迁移完整

内容的提问来源于stack exchange,提问作者Christian Simpson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 12:39:03