更改前的准备
首先创建并测试备份或虚拟机快照。扩容是常规操作,但设备名称写错可能损坏数据,而且分区表备份并不等于数据备份。然后在虚拟机管理程序中或通过托管服务商扩大磁盘,因为系统只能使用磁盘已经具备的空间。
了解磁盘布局
必须从底层向上逐层扩展:磁盘、分区、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 服务器会被识别并因不受支持而被拒绝。