Skip to content

服务器磁盘扩容

云服务器磁盘满了如何解决

当云服务器磁盘空间满时,可以通过以下两种方式解决:

  • 创建并挂载新硬盘
  • 对系统盘进行扩容

解决方案一:创建并挂载新硬盘

1. 创建并挂载新硬盘

在阿里云控制台创建块存储设备,然后在服务器端验证是否创建成功: 阿里云阿里云

bash
fdisk -l | grep '/dev/vd'

成功输出示例:

plain
Disk /dev/vda: 40 GiB, 42949672960 bytes, 83886080 sectors
/dev/vda1    2048     4095     2048    1M BIOS boot
/dev/vda2    4096   413695   409600  200M EFI System
/dev/vda3  413696 83886046 83472351 39.8G Linux filesystem
Disk /dev/vdb: 40 GiB, 42949672960 bytes, 83886080 sectors

2. 分区新硬盘

plain
fdisk /dev/vdb

操作步骤:

  • 输入 n 创建新分区
  • 选择分区类型(主分区或扩展分区)
  • 设置分区大小
  • 输入 w 保存并退出

3. 格式化分区

plain
mkfs.ext4 /dev/vdb1

4. 备份原数据

plain
mv /app/blog/uploads/ /app/blog/uploads-bak/

5. 挂载新分区

plain
mount /dev/vdb1 /app/blog/uploads

6. 恢复数据

plain
mv /app/blog/uploads-bak/* /app/blog/uploads/

7. 验证挂载

plain
df -hT | grep vdb1

成功输出示例:

plain
/dev/vdb1      ext4    40G   24K   38G   1% /app/blog/uploads

解决方案二:系统盘扩容

1. 安装必要工具

plain
type growpart || apt-get install -y cloud-guest-utils
type sgdisk || apt-get install -y gdisk

2. 扩容分区

plain
LC_ALL=en_US.UTF-8 growpart /dev/vda 3

3. 扩容文件系统

plain
resize2fs /dev/vda3

4. 验证扩容结果

plain
df -hT

成功输出示例:

plain
Filesystem     Type   Size  Used Avail Use% Mounted on
tmpfs          tmpfs  168M  1.1M  167M   1% /run
/dev/vda3      ext4    99G  3.2G   91G   4% /

注意事项

  • 操作前务必备份重要数据。
  • 扩容系统盘时,确保分区类型与工具匹配(如GPT分区需要gdisk工具)。
  • 扩容操作可能需要重启服务器才能生效。
  • 对于生产环境,建议在维护窗口期进行操作。

完整自动化脚本示例

plain
#!/bin/bash
set -eu

# 检查并安装必要工具
type growpart || apt-get install -y cloud-guest-utils
type sgdisk || apt-get install -y gdisk

# 扩容分区
LC_ALL=en_US.UTF-8 growpart /dev/vda 3

# 扩容文件系统
resize2fs /dev/vda3

# 验证结果
echo "扩容完成,当前磁盘使用情况:"
df -hT

通过以上两种方法,可以有效解决云服务器磁盘空间不足的问题。根据实际需求选择合适的方式:需要更大空间且可以停机时选择系统盘扩容,需要保持原有系统盘不变时选择挂载新硬盘。

云系统盘拓容

阿里云操作界面查看是否成功创建块存储: 阿里云 进入服务器查看创建是否成功:

plain
fdisk -l | grep '/dev/vd'

成功输出示例:

plain
Disk /dev/vda: 40 GiB, 42949672960 bytes, 83886080 sectors
/dev/vda1    2048     4095     2048    1M BIOS boot
/dev/vda2    4096   413695   409600  200M EFI System
/dev/vda3  413696 83886046 83472351 39.8G Linux filesystem
Disk /dev/vdb: 40 GiB, 42949672960 bytes, 83886080 sectors

扩容分区

  1. 安装 growpart 工具:
plain
apt-get install -y cloud-guest-utils
apt-get install -y gdisk
  1. 执行扩容命令:
plain
LC_ALL=en_US.UTF-8 growpart /dev/vda 3
  1. 执行文件系统扩容:
plain
resize2fs /dev/vda3

最终效果查看:

plain
df -hT

输出示例:

plain
Filesystem     Type   Size  Used Avail Use% Mounted on
tmpfs          tmpfs  168M  1.1M  167M   1% /run
/dev/vda3      ext4    99G  3.2G   91G   4% /

感谢阅读,欢迎交流!