CH-J Server Manager通过 SSH 管理服务器
菜单
全部指南与文章 →

如何在不丢失数据的情况下扩容 Linux 服务器磁盘

扩大虚拟磁盘后,按正确顺序扩展分区、LVM 以及 ext4 或 XFS 文件系统。

更改前的准备

首先创建并测试备份或虚拟机快照。扩容是常规操作,但设备名称写错可能损坏数据,而且分区表备份并不等于数据备份。然后在虚拟机管理程序中或通过托管服务商扩大磁盘,因为系统只能使用磁盘已经具备的空间。

了解磁盘布局

必须从底层向上逐层扩展:磁盘、分区、LVM(如果使用),最后是文件系统。这些命令会显示各层结构、文件系统类型以及各存储空间的挂载位置。以下示例中的设备名称仅供说明;请使用自己服务器上的设备名称。

lsblk -f
df -hT
sudo pvs; sudo vgs; sudo lvs

分区与 ext4 或 XFS

Ubuntu 和 Debian 的 cloud-guest-utils 软件包提供 growpart,可将分区扩展到其后方的空闲空间。注意,磁盘和分区编号是两个独立的参数。然后扩展文件系统:用于 ext4 的 resize2fs 接受设备作为参数,xfs_growfs 则接受挂载点。两者都能在文件系统已挂载时运行。

sudo growpart /dev/sda 2

# ext4
sudo resize2fs /dev/sda2

# XFS
sudo xfs_growfs /

使用 LVM 时

如果分区中包含 LVM 物理卷,请让 LVM 识别新的大小,再扩展逻辑卷。-r 选项还会扩展其上的文件系统,因此无需单独运行调整大小的命令。

sudo growpart /dev/sda 3
sudo pvresize /dev/sda3
sudo lvextend -r -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

检查结果并了解限制

再次运行 df -hT,确认新的大小。growpart 只能使用紧邻分区后方的空闲空间,因此如果中间隔着交换分区或其他分区,必须先处理。XFS 完全不支持缩小,而缩小其他文件系统的风险也远高于扩容,因此请谨慎确定扩容幅度。

CH-J Server Manager 中的 Disk Manager

面向 Linux 服务器的 Disk Manager 会显示包含分区、文件系统以及 LVM 和 LUKS 层的磁盘布局图,并可在磁盘扩大后提出自动扩容方案。更改在队列中等待,供您以计划形式审查;执行前,应用程序会重新读取服务器状态,若状态不再匹配就会停止。更改前会保存分区表元数据,但这不能替代数据备份。Windows 服务器会被识别并因不受支持而被拒绝。

详细文档

man: resize2fs →

man: xfs_growfs →

man: lvextend →

生物识别解锁与安全 →