阿里云(CentOS)磁盘扩容方法

本页仅对阿里云ECS数据盘扩容涉及的linux操作命令记录,更详细的操作过程请点击这里

注意:与磁盘相关的操作失误可能会引起数据遗失,没有linux基础谨慎操作,本站不为数据损失负责

在阿里云账号后台完成数据盘扩容操作支付完成后你需要做以下操作:

1.卸载主分区

df -h命令查看磁盘情况

[root@********** ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        20G  2.4G   17G  13% /
devtmpfs        487M     0  487M   0% /dev
tmpfs           497M     0  497M   0% /dev/shm
tmpfs           497M  6.6M  490M   2% /run
tmpfs           497M     0  497M   0% /sys/fs/cgroup
/dev/vdb1       9.8G  9.0G  225M  98% /mnt
tmpfs           100M     0  100M   0% /run/user/0

可以看到我的数据盘/dev/vdb1挂在位置在/mnt,磁盘快要满了,首先卸载数据盘分区

umount /dev/vdb1

如果出现这样的错误:

[root@********* ~]# umount /dev/vdb1
umount: /mnt: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))这时候

这时候我们需要用到命令

lsof | grep mnt

查看mnt目录有哪些进程在占用,需要停止服务的停止(我这里停止了httpdmariadb的服务,记得后续完成数据扩容挂载后需要再次启动),无法停止的可以使用kill命令结束进程。

在卸载成功后使用df -h命令得到的信息应该是这样的:

[root@********** ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        20G  2.4G   17G  13% /
devtmpfs        487M     0  487M   0% /dev
tmpfs           497M     0  497M   0% /dev/shm
tmpfs           497M  6.6M  490M   2% /run
tmpfs           497M     0  497M   0% /sys/fs/cgroup
/dev/vdb1       9.8G  9.0G  225M  98% /mnt
tmpfs           100M     0  100M   0% /run/user/0

2.使用fdisk命令删除原来的分区并创建新分区:

运行命令 fdisk -l命令可罗列分区信息并记录扩容前数据盘的最终容量、起始扇区(First sector)位置。

[root@********** ~]# fdisk /dev/vdb    #运行命令 fdisk [数据盘设备名] 进入 fdisk 界面
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): d    #删除原来的分区,删除分区不会造成数据盘内数据的丢失。
Selected partition 1
Partition 1 is deleted

Command (m for help): n    #开始创建新的分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p    #选择创建主分区。因为创建的是一个单分区数据盘,所以只需要创建主分区;如果要创建 4 个以上的分区,您应该创建至少一个扩展分区,即选择 e
Partition number (1-4, default 1): 1    #输入分区编号并按回车键。因为这里仅创建一个分区,所以输入 1。
First sector (2048-44040191, default 2048):     #输入第一个可用的扇区编号:为了保证数据的一致性,First sector 需要与原来的分区保持一致。在本示例中,按回车键采用默认值。
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-44040191, default 44040191):     #输入最后一个扇区编号:因为这里仅创建一个分区,所以按回车键采用默认值。
Using default value 44040191
Partition 1 of type Linux and of size 21 GiB is set

Command (m for help): wq    #开始分区
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

3.(可选)部分操作系统里,修改分区后可能会重新自动挂载文件系统。建议先执行 df -h 重新查看磁盘空间和使用情况。如果文件系统重新被挂载,执行 umount [文件系统名称] 再次卸载文件系统。

umount /dev/vdb1

4.检查文件系统,并变更文件系统大小。

e2fsck -f /dev/vdb1 # 检查文件系统
resize2fs /dev/vdb1 # 变更文件系统大小

注意:

  • 使用 e2fsck 时,由于系统需要检查并订正文件系统元数据,所以速度较慢、耗时较长,请耐心等待。
  • 正确使用 e2fsckresize2fs 指令,不会造成原有数据丢失。

5.将扩容完成的文件系统挂载到原来的挂载点(如本示例中的 /mnt)。

mount /dev/vdb1 /mnt

6.查看磁盘空间和使用情况:运行命令 df -h。如果出现扩容后的文件系统信息,说明挂载成功,可以使用扩容后的文件系统了。

[root@********** ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        20G  2.4G   17G  13% /
devtmpfs        487M     0  487M   0% /dev
tmpfs           497M     0  497M   0% /dev/shm
tmpfs           497M  6.6M  490M   2% /run
tmpfs           497M     0  497M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/0
/dev/vdb1        21G  9.0G   11G  47% /mnt

7.恢复相关应用服务

别忘了在卸载分区时被我们停止的服务:

systemctl start httpd
systemctl start mariadb

Post Comment