我在 centos 服务器上安装了一个新卷/dev/sdb
。我想向根文件系统添加空间/dev/vda1
。
[user@prod current]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 30G 11G 18G 37% /
devtmpfs 488M 0 488M 0% /dev
tmpfs 497M 0 497M 0% /dev/shm
tmpfs 497M 50M 447M 11% /run
tmpfs 497M 0 497M 0% /sys/fs/cgroup
tmpfs 100M 0 100M 0% /run/user/1000
/dev/sdb 50G 53M 47G 1% /mnt/volume_nyc3_01
有什么方法可以减少/dev/sdb
和增加/dev/vda1
?如果可能的话,不会丢失数据/dev/vda1
。
答案1
我非常怀疑这是否真的可行。但你可以将文件或文件夹从 /dev/vda1 移动到 /dev/sdb,然后让它们出现在 /dev/vda1 上的同一位置。这将增加 /dev/vda1 上的可用空间。
例如,一个简单的解决方案是将 /var、/home、/opt 或 /usr 的内容移动到 /dev/sdb,然后将 /dev/sdb 挂载为您移动的文件夹。这是一种非常常见的处理方法。请小心使用 /sbin 和 /root,因为它们可能需要在您的设置中挂载 /dev/sdb 之前存在。您可以通过更改 fstab 来执行此操作(这可以通过您设置中的工具完成)。
您还可以对 /dev/sdb 进行分区(我猜)。然后您可以将其挂载为多个目录。这将涉及向 fstab 添加条目。
第三个选项是将文件从 /dev/vda1 移动到 /dev/sdb,然后对它们进行符号链接,使它们出现在文件结构中的同一位置。您通常会将这些符号链接放在文件夹级别。例如
ln -s /mnt/volume_nyc3_01/usr /usr
您将以 root 身份执行此操作(可能使用sudo
)。这样您就可以将任意文件夹或文件放在 /dev/sdb 上,同时仍在文件系统中的同一位置访问它们。我假设您已经知道如何使用 来du
查找占用最多空间的文件和文件夹。
答案2
如果我们将/dev/vda
和/dev/sdb
视为不同的(物理)磁盘,这并不容易实现,因为从头开始重新安装服务器并/
从一开始就放入 LVM 卷会容易得多。
如果绝对必要,可以经过长时间的停机和大量了解需要做什么才能完成此操作。不过这很容易出错,我建议不要尝试。
/dev/vda
表明这是某种虚拟系统。根据底层系统允许的内容,可能可以通过 调整磁盘映像的大小/dev/vda
(如有必要,可以通过 删除/缩小映像/dev/sdb
)。请咨询您的管理员/提供商。在这种情况下,在系统选择较大的 大小后/dev/vda
,您可以扩展/dev/vda1
然后扩大/
文件系统。
答案3
请记住,您可以在树上的任何位置安装卷。无需修改 / 处的根文件系统。
创建 LVM 卷组,然后从 /dev/sdb 创建逻辑卷,在其上创建文件系统,并将其挂载到需要空间的位置。例如,这可以用于数据库,将其挂载到 /var/lib/pgsql。(您的应用程序将有所不同。)
此类特定挂载点可将应用程序数据与操作系统隔离。这样可使备份或容量规划更加容易。但代价是必须管理多个文件系统。