AWS S3 设备上没有剩余空间

AWS S3 设备上没有剩余空间

我正在使用 S3FS 在 Amazon EC2 实例上安装 S3 存储桶。18 个月以来,一切运行良好。

今天,我尝试在 S3 存储桶上直接使用 wget 下载一个 5GB 的文件(我之前已经做过这件事,没有任何问题),但出现了错误No space left on device

user@ec2-instance:$ /home/workspaces/$ wget http://example.org/file.xml.gz 
Cannot write to ‘files.xml.gz’ (No space left on device).

user@ec2-instance:$ df
Filesystem        1K-blocks    Used    Available Use% Mounted on
/dev/xvda1          8125880 6576804      1113264  86% /
none                      4       0            4   0% /sys/fs/cgroup
udev               15400288      12     15400276   1% /dev
tmpfs               3082424     216      3082208   1% /run
none                   5120       0         5120   0% /run/lock
none               15412116       0     15412116   0% /run/shm
none                 102400       0       102400   0% /run/user
s3fs           274877906944       0 274877906944   0% /home/workspaces

user@ec2-instance:$ df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/xvda1      524288 119569  404719   23% /
none           3853029      2 3853027    1% /sys/fs/cgroup
udev           3850072    380 3849692    1% /dev
tmpfs          3853029    262 3852767    1% /run
none           3853029      5 3853024    1% /run/lock
none           3853029      1 3853028    1% /run/shm
none           3853029      3 3853026    1% /run/user
s3fs                 0      0       0     - /home/workspaces

我不明白df -i返回的是什么。我怀疑 s3fs 显示 0 个 inode 是一个问题,但我不知道下一步该怎么做。

这与s3fs 中的问题 288:设备上没有剩余空间来存储大于 5GB 的文件自从:

  1. 现已修复
  2. 我已经能够下载大于 5GB 的文件

答案1

根据这个如何从远程服务器直接上传文件到 Amazon S3,您必须先将文件下载到本地服务器,然后再将其上传到 S3 存储桶。

由于您没有定义保存路径,恐怕您会将大文件本地存储在 /tmp 文件夹中,而该文件夹中没有足够的空间来存储 5 GB 的文件。

您可以进一步参考这个:如何在不创建临时本地文件的情况下将文件上传到 S3如果您不想编写上传程序,请查看是否可以摆脱创建的临时文件,或者在将大文件上传到 S3 存储桶之前扩展 EBS 卷以容纳大文件。

答案2

正如 Simon 在他的回答中提到的,文件首先下载到本地/tmp文件夹。由于我的系统磁盘只有 1.1GB 可用空间,因此不足以处理该文件。

为了解决我的问题,我扩展了我的 ESB 存储以获得更大的/tmp文件夹。

相关内容