类似的问题有已经在 ServerFault 上被询问过但我有一个轻微的差异,如果我遵循已经回答的问题的解决方案,可能会产生问题,因此我必须确保。
这个想法是让/var/www/html/
目录显示 中存在的文件/mnt/a/www/html/
以及当前驻留在 中的文件/var/www/html/
。
我有一个 4TB HDD 安装为/var
.该硬盘上的空间快用完了,这就是为什么我添加了另一个尚未安装的 4TB 硬盘。/mnt/a/
例如,我计划做的是为这个新硬盘创建一个安装点,然后使用mhddfs
实用程序将其合并/var
到/mnt/a
单个安装点中,/var
可能使用以下命令:
mhddfs /var/,/mnt/a/ /var/
这样两个硬盘就有一个安装点,/var
并且不需要重新启动服务器。mhddfs
当生成的安装点与其中之一相同时,是否支持执行此类命令待合并挂载点?或者有更好的方法吗?
答案1
正如评论中提到的,mhddfs
在关键生产系统上使用似乎是一个坏主意。
解决您的问题的好方法是使用 LVM2。以下是步骤:
vgcreate
创建一个使用新硬盘的新 LVM 卷组 ( )。lvcreate
从先前创建的卷组创建新的 LVM 逻辑卷 ( )。- 使用支持调整大小的文件系统格式化逻辑卷。
此时,您已经拥有一个干净的 4TiB 文件系统。然后,我会:
- 将新文件系统安装到临时位置(假设
/var-tmp
)。 rsync /var /var-tmp
。
此时,您已经拥有了旧版的/var
副本/var-tmp
。然后:
- 停止所有依赖的服务
/var
。 umount /var
。- 相反,将基于 LVM 的新 FS 挂载到 /var 上。
- 重新启动服务。
在此步骤中,您已/var
迁移到新硬盘。然后:
- 用于
pvcreate
准备旧 HDD 以用于 LVM2 卷组。 - 用于
vgextend
将其添加到您的卷组中。 - 调整 FS 的大小。
现在你有一个 8TiB /var
。
笔记: umount /var 可能有点复杂,因为几个系统守护程序依赖于它。如果您的系统拒绝这样做,您可能必须将其脱机几分钟,但如果准备充分,系统的不可用时间可能会很短。