将 /var 移至新的磁盘组

将 /var 移至新的磁盘组

我目前只能远程访问这个 CentOS 盒子,我需要将 /var 从主 RAID 移动到安装了更多空间的新磁盘组,我目前关于如何实现这一点的想法是将新的 RAID 临时安装到 /tmp/var。将所有内容从 /var rsync 到 /temp/var,然后修改 fstab 以将 /var 指向新磁盘。

这是我的问题。将新磁盘安装到该位置后,如何删除主磁盘上现有的 /var(假设这甚至可以远程实现)?

答案1

在运行的系统上,这是一项不简单的任务。/var树中有许多打开的文件,这些文件通过打开的 fd 不断被写入。这些文件将在原始设备上保持打开状态,直到您告诉守护进程关闭并重新打开其日志文件。如果您正在使用 mysql 并使用其默认数据目录,那么您也需要为此做出特殊安排。

lsof | grep /var 

可以让您大致了解任务的规模。每个文件都需要您执行一些操作才能移动到新设备。一些(大多数?)守护进程只需要一个kill -HUP或一个service servicename restart即可关闭并重新打开文件,其他守护进程则需要更多努力,例如默认配置中的 mysql。

您可能最终必须等到重新启动系统才能/var完全恢复旧系统。

答案2

这在实时系统上可能会有点棘手,我会采取一种转换方法:

mv /var /var0
mkdir /var
mount --bind /path/to/raid/var /var

当然,您需要确保您的 fstab 已更新,以便其在启动时继续存在。

相关内容