服务器的磁盘(或 RAID 1 中的 2 个磁盘)已满(96%)。我想添加一个新的 SSD(不属于 RAID)。
我不明白的是如何或在哪里安装它,以便我可以在现有结构内无缝地使用它。
如何在 Linux 中将子目录挂载到硬盘?并不能让我变得更聪明,即使这可能正是我想要的。
我有类似的东西/var/www/vhosts/example.com/httpdocs/images/dirA
。由于 Web 服务器(Apache 和 nginx)能够立即访问新磁盘上的文件对我来说很重要,所以我认为我必须将其安装在内部的某个地方,/var/www/vhosts/example.com/httpdocs/
这样它才不会以访问受限告终。
那么我可以/var/www/vhosts/example.com/httpdocs/images/dirB
在那里创建并安装新磁盘吗?这会对 RAID 产生任何影响吗?
或者也许更可取的做法是将其安装在“外部”,/newDiskX
然后符号链接/newDiskX
到/var/www/vhosts/example.com/httpdocs/images/dirB
?
我从中了解到https://unix.stackexchange.com/questions/198542/what-happens-when-you-mount-over-an-existing-folder-with-contents是我无法直接将其安装到/var/www/vhosts/example.com/httpdocs/images/dirA
没有复杂情况或实际上总体上获得更多空间。
我的问题是,我只有“一次机会”,我自己做不到;我必须告诉我的主机提供商安装新磁盘以及在哪里挂载/绑定/链接它。
编辑:
为了形象化,这里是当前/计划的结构:
/
├── A/ (existing on old disk)
| ├── B/ (existing on old disk, access point for Apache etc.)
| | ├── C/ (existing on old disk)
| | | └── file.tmp (existing on old disk)
| | ├── D/ (existing on old disk)
| | ├── file.tmp (existing on old disk)
| | └── E/ (existing on old disk)
| | └── X/ (new to be on new disk)
| └── other stuff
答案1
换句话说,您有一些目录结构,如 /a/b/c/d/e,并且您想将新磁盘安装到 /a/b/c/。如果您只是将其安装在那里,您将无法访问 /a/b/c/d/ 目录内容!
因此,首先您必须备份 /a/b/c/* 子树的内容。如果它是静态的,您甚至可以在运行应用程序(我猜是 httpd/nginx)的情况下执行此操作。如果它是动态的,您必须禁用该应用程序或将其切换到 RO 模式。
现在,当您将内容放在其他地方时,请停止应用程序以确保没有任何内容可以访问它。删除 /a/b/c/* 以便在分区中获得可用空间。
/a/b/c 现在是空目录,可以用作挂载点。让您的提供商将新设备挂载到 /a/b/c 挂载点,并从之前的备份中恢复数据,这样您就可以恢复 /a/b/c/d 子树。启动您的应用程序。
现在您应该可以在 /a/b/c/ 中使用新设备的所有空间。
最好你自己尝试一下,例如使用闪存盘或 SD 卡,这样你就知道会发生什么。