我在 EC2 ebs 上运行 Ubuntu 服务器,我的应用程序需要大量临时磁盘空间,在 /tmp 中分配。但是,在 ec2 上,包含 /tmp 的根驱动器非常小,大约 10GB。所有剩余的磁盘空间都安装在 /mnt 下。结果,我的应用程序返回“磁盘空间不足”错误,因为 /tmp 似乎已满。
解决这个问题的最佳方法是什么?我能想到的一件事是创建 /mnt/tmp 并建立一个符号链接
/tmp --> /mnt/tmp
然而,我有点不愿意弄乱这么多 linux 程序和工具使用的东西。我不确定是否每个程序都会正确解析符号链接,也不确定它会对性能产生什么影响。
使用 EBS 支持的映像,临时存储仍然可用,只是默认情况下不映射为块设备(就像在实例存储映像上一样)
总之:您可以在启动映像时在命令行上指定此映射,然后将其作为普通卷挂载到/dev/sd[x]
. 或者,如果您推出自己的 AMI,那么您可以将映射烘焙到该 AMI 中,以便从它启动的所有图像从一开始就可以访问它。
符号链接/tmp
会起作用,但在这种情况下我不推荐它,因为您有大量的临时存储正在使用中。一旦你有可用的设备映射,可以让设备安装为/tmp
在/etc/fstab
。
对于小型实例,您应该有 150GB 的免费实例存储可用。不言而喻,当实例重新启动时,这个存储就会消失。如果您的使用不是临时的,那么您需要创建自己的新 EBS 卷并以这种方式安装它。