我有一个 Amazon EC2 实例,它为我提供了一个很小的“/”分区和一个很大的“/mnt”分区。因此,我将 mysql 数据目录移到了 /mnt 分区。但是,现在我遇到了 /tmp 文件夹在执行大量连接查询时空间不足的问题,因此我也试图将 /tmp 移到 /mnt/tmp。我尝试使用符号链接执行此操作,但这导致 mysql 服务无法启动。
请指导如何将 /tmp 的存储移至 /mnt (/dev/xvdb)
答案1
您可以将/tmp
挂载点绑定到/mnt/tmp
:
sudo mount -B /tmp /mnt/tmp
答案2
移动“/tmp”分区需要一些额外的操作,这个错误答案中没有建议https://askubuntu.com/a/371628/298086。
移动数据意味着一旦克隆到目标分区,就从原始分区擦除数据,而绑定挂载绝对不会执行此操作。
建议:如果你想了解什么是绑定挂载,请阅读这篇精彩的文章https://unix.stackexchange.com/a/198591
如果你尝试一下正确的 安装选项(“移动”,不绑定):
mount -M /tmp /mnt/tmp
我确信它不会报道“tmp 是共享挂载点“(实际上意味着”如果仍有任何进程使用挂载点,则无法移动该挂载点“)
您正在寻找的“答案”可能需要在移动内容之前停止并重新启动使用/访问 /tmp 的服务。
您可以通过运行以下命令列出这些服务/进程:
lsof +D /tmp/
因此,一旦您列出了实际访问/使用的内容/tmp
,您就可以真正决定“如何行动”。
我认为最安全的方法是
- 停止所有访问 /tmp 的服务(如果可以的话)
- 将整个 /tmp 内容复制到新位置
- 编辑 /etc/fstab 并更改 /tmp 挂载点的物理位置(无论是绑定还是设备挂载)
- 重新启动系统以执行重新挂载
但是还有另一种方法,不需要重启系统,但不如前一种方法安全。描述在这里并包括/tmp
在懒惰的什么可以让你执行mount -M
这两个链接将有助于满足您的需求: