我有一台 2TB(Raid,2x2TB)的服务器,并且有以下分区架构
/ => /dev/md2 - 20GB
/home => /dev/md3 - 1.8TB
这是一个 ISPConfig 服务器,所以我们需要 /var 中的大量空间,而 /home 中几乎没有空间,所以我认为最好的方法是将 /home 放入 /dev/md2,将 /var 放入 /dev/md3
我的 fstab 是这样的:
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/md2 / ext4 errors=remount-ro 0 1
/dev/md3 /home ext4 defaults 1 2
/dev/sda4 swap swap defaults 0 0
/dev/sdb4 swap swap defaults 0 0
哪种方法最好?我认为将 /home 内容移动到 /homeold,从 fstab 中删除,卸载并从 /homeold 复制到 /home,然后更改 /var 名称(我没有足够的空间进行复制),挂载新的 /var 并移动内容,这样对吗?
另外,我需要停止所有服务器服务以避免错误(mysql、apache、mongodb、named 等),有什么快速的方法可以做到这一点?或者我应该在救援模式下重新启动来执行此操作?
也许另一种方法是在 / 和 /home 之间进行完全更改,我的意思是将 / 放在 /md3 中,将 /home 放在 md2 中,这只能通过编辑 fstab 并重新启动才能实现吗?
非常感谢,
答案1
我认为在这种情况下你最好的朋友会rsync
。创建目录
/home/var
。将其与现有/var
目录同步。
rsync -avh /var/ /home/var/ --delete
rsync 命令
初始同步完成后,对/home
分区执行相同操作。
此后,停机时间非常短。停止所有服务,再次运行 rsync。检查 var 和 home 中是否没有开始使用文件。lsof | grep '/var'
对于 也一样/home
。这里有可能使用了一些来自 的库
/var/lib
。但可以忽略。现在您有 2 个选择。
选项 1. 挂载/dev/md3
到 /media/ 然后符号链接/media/var
到/var
选项 2. 将/home
内容移动到/home_new
(/home/var 除外)。然后将所有内容从 移动/home/var
到 /home/,然后重新挂载/dev/md3
到/var
,重命名
/home_new
为/home
。在 中进行更改fstab
。重启服务器看看一切是否正常。
我更喜欢选项 2。我还建议您添加逻辑卷管理器至/dev/md3
。希望您能有所启发。
类似问题: