我正在使用 S3FS 在亚马逊 EC2 实例上安装 S3 存储桶。18 个月以来,一切都很好。
今天我尝试使用 wget 直接在 S3 存储桶上下载一个 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 的文件,设备上没有剩余空间,因为:
- 现在已修复
- 我已经能够下载大于 5GB 的文件
根据这篇如何将文件从远程服务器直接上传到 Amazon S3,您必须先将文件下载到本地服务器,然后再将其上传到 S3 存储桶。
由于您尚未定义保存路径,恐怕您将大文件本地存储在 /tmp 文件夹中,您没有足够的空间来存储 5 GB 文件。
您可以进一步参考:如何在不创建临时本地文件的情况下将文件上传到 S3以查看是否可以摆脱创建的临时文件或扩展您的 EBS 卷以保存大文件,然后再上传到 S3 存储桶。不想写上传程序。
正如西蒙在他的回答中提到的那样,该文件首先在
/tmp
文件夹中本地下载。由于我的系统盘只有 1.1GB 可用空间,不足以处理文件。为了解决我的问题,我扩展了 ESB 存储以获取更大的
/tmp
文件夹。