扩容 Linux 云服务器文件系统(GPT 分区表)

Note

  1. 面向云服务器的云硬盘,扩容后需要扩容文件系统,以便云服务器可以使用扩容的空间;
    2. 面向有状态负载的云硬盘,扩容后将自动生效,无需手动扩容文件系统;
    3. 操作前请确保已经扩容了云硬盘,详见 扩容云硬盘
    4. 适用于所有网易云官方 Linux 镜像(CentOS/Ubuntu/Debian)创建的云服务器。

Attention

在扩容前,建议做好数据备份(如创建快照等)

确认分区形式

Attention

不同的分区表操作不同,请 确认分区表 后,再选择对应指引进行后续操作:
Linux 云服务器 GPT 分区操作指引
Linux 云服务器 MBR 分区操作指引

GPT 分区操作指引

按需选择扩容原分区或新建分区。

Attention

对于未分区、直接格式化后就挂载的磁盘,可直接调整文件系统大小:

resize2fs -f -F /dev/vdc

1. 扩容原分区

1.1. 连接云服务器

使用 SSH 或 VNC 方式登录云服务器,详请参见:如何登录 Linux 云服务器

1.2. 查看数据盘信息

使用如下命令查看已挂载的数据盘信息:

fdisk -l
df -h

下方示例中可以看到挂载数据盘 /dev/vdc 的信息:

  • 容量:160 GB(扩容前 100 GB)
  • 分区:/dev/vdc1(100 GB)
  • 挂载点:/data1
  • 分区表:GPT

以下内容都将以该数据盘 /dev/vdc 作为示例。

image title

1.3. 使用growpart工具对分区进行热扩容

使用如下命令扩容分区:

growpart /dev/vdc 1  # 示例中为“1”表示的是/dev/vdc的第一块分区

Attention

如果扩容分区失败,报错如下,说明系统未安装gdisk工具,需要安装 image title 参考如下命令安装gdisk:

yum install -y gdisk 或 apt install -y gdisk

执行结果如下表示执行成功: image title

1.4. 扩容文件系统

使用如下命令扩容文件系统:

resize2fs -f -F /dev/vdc1

1.5. 扩容后检查

使用如下命令检查扩容后分区的文件系统:

df -h
fdisk -l /dev/vdc 

image title

2. 新建分区

2.1. 连接云服务器

使用 SSH 或 VNC 方式登录云服务器,详请参见:如何登录 Linux 云服务器

2.2. 查看数据盘信息

使用如下命令查看已挂载的数据盘信息:

df -h
parted {disk} #示例中为  parted /dev/vdc
p

下方示例中可以看到挂载数据盘 /dev/vdc 的信息:

  • 容量:172 GB(扩容前 107 GB)
  • 分区:/dev/vdc1(107 GB)
  • 挂载点:/data1
  • 分区表:GPT

以下内容都将以该数据盘 /dev/vdc 作为示例。

Note

记录 End 值用于作为新建分区的 Start 值。

2.3. 卸载目标分区

使用如下命令卸载已挂载的目标分区:

umount {dir} #示例中为 umount /data1

2.4. 数据盘分区

在 parted 下使用如下命令新建分区:

mkpart {part-type} {start} {end} 
#本示例中为 mkpart primary 107GB 100%
#start 值为 /dev/vdc1 分区的 End 值
#更多用法详见 man parted

2.5. 格式化并创建文件系统

使用如下命令对新分区格式化并创建文件系统:

mkfs.{fstype} {device} #本示例中为 mkfs.ext4 /dev/vdc2

格式化时间取决于数据盘大小,也可以按需选择其他如 ext3 等文件格式(如何查看分区的文件系统 )。

2.6. 挂载新分区

Note

手动挂载数据盘的云服务器重启后,挂载将失效;若需开机自动 mount 数据盘,则必须将分区信息写入 /etc/fastab 中,详见 如何自动挂载数据盘

使用如下命令将所有分区挂载至云服务器文件夹:

mount {device} {dir} #本示例中为 mount /dev/vdc1 /data1 和 mount /dev/vdc2 /data2

使用 df -h 命令确认挂载成功: