增加EC2实例上的/ tmp的大小

我正在EC2 ebs上运行Ubuntu服务器,而我的应用程序需要大量的临时磁盘空间,分配在/ tmp中。 但是,在ec2上,根驱动器也包含/ tmp,相当小,大约10GB。 所有剩余的磁盘空间都安装在/ mnt下。 因此,我的应用程序返回“磁盘空间不足”错误,因为/ tmp似乎已满。

解决这个问题的最好方法是什么? 我可以想到的一件事是创build/ mnt / tmp并创build一个符号链接

/tmp --> /mnt/tmp

不过,我有点不情愿乱用这么多Linux程序和工具所使用的东西。 我不确定每个程序是否能够正确解决这个符号链接,并且不知道它会如何performance。

使用EBS支持的映像,临时存储仍然可用,默认情况下它不会被映射为块设备(因为它在实例存储映像上)

亚马逊文件在这里 , 这里有一个有用的博客文章

总结:在启动映像时,可以在命令行上指定此映射,然后将其作为普通卷安装在/dev/sd[x] 。 或者,如果您推出了自己的AMI,那么您可以将映射映射到AMI中,以便从其中启动的所有映像从一开始就可以访问。

Symlinking /tmp可以工作,但在这种情况下,我不会推荐它,在这种情况下,您有大量的临时存储正在使用。 一旦设备映射可用,您可以将设备挂载为/etc/fstab /tmp

一个小实例,你应该有150GB的实例商店免费提供。 不用说这个存储在实例重新启动的时候死掉了。 如果您的使用不是那么临时,那么您需要创build自己的新EBS卷并以此方式安装。

您可以将/ tmp挂载点绑定到/ mnt / tmp:

sudo mount -B / tmp / mnt / tmp

问题中提出的符号链接并不是一个很好的解决scheme。 但在这样做的时候还要多加小心。 只是为了巩固安装卷的精确步骤是:

1)在AWS控制台中创build新卷。 附加到实例。

2)格式化并安装在say /mnt/vol1

3)尽可能清理/tmp

4) mkdir /mnt/vol1/tmp && mv /tmp/* /mnt/ && rmdir /tmp && ln -s /mnt/vol1/tmp /tmp