华为云磁盘扩容

3minute - manually

华为云帮助文档

https://support.huaweicloud.com/usermanual-evs/evs_01_0109.html#evs_01_0109__section13346184710300

查看分区表类型

1
parted -l

回显有可能是

Partition Table: msdos
Partition Table: gpt
Partition Table: loop

msdos 对应华为云帮助中的MBR.
gpt 对应华为云帮助中的 GPT.
如果显示 Partition Table: loop, 是因为格式化时没指定分区id, 格式化了整个磁盘.

查看磁盘的分区信息。

1
2
3
4
5
lsblk

# 回显
# vdb挂载到了 /foo
vdb    253:16   0  200G  0 disk /foo

停掉写磁盘的服务

1
systemctl stop service0

卸载磁盘分区

1
umount /dev/vdb1

如果提示: umount: /foo: target is busy, 考虑强制卸载,参照后面的###强制卸载

强制卸载

用fuser 查看使用/data目录的进程。

1
2
3
4
5
fuser -m /foo

# 杀掉进程,或强制卸载
kill -9 xxxx
umount -l /foo

确认磁盘分区的卸载结果。

1
2
3
4
5
lsblk

# 回显
# vdb没有挂载
vdb    253:16   0  200G  0 disk

如果第1步查到的分区表类型是gpt,执行No.7,如果分区表类型是loop可以跳到 No.8

进入parted分区工具。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
parted /dev/vdb
# 输入"unit s",按"Enter",设置磁盘的计量单位为磁柱。
(parted) unit s

# 输入"p",按"Enter",查看当前磁盘分区情况。
(parted) p

# 如果提示需要修复,执行Fix
Fix
# 记录待扩大分区"/dev/vdb2"的初始磁柱值(start)和截止磁柱值(End)
Number  Start  End         Size        File system  Flags
 1      0s     419430399s  419430400s  ext4

# 输入"rm"和分区编号,此处以"1"为例,按"Enter"。
(parted)  rm 1

# 重新划分分区,执行以下命令,按"Enter", xxxs 为上一步记录的初始磁柱值。
(parted)  mkpart ext4 xxxs 100%

# 查看分区
(parted)  p

# 退出parted
(parted)  q

退出parted后用lsblk再次检查挂载状态

lsblk

退出parted后分区有可能被自动挂载,再umount一次。

umount /dev/vdb1

检查磁盘分区文件系统的正确性, 磁盘扩容。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 执行以下命令,检查磁盘分区文件系统的正确性,
e2fsck -f /dev/vdb1

#  如果回显 /dev/vdb is in use , vim /etc/fstab, 注释掉/data 的挂载, 重启

# 执行以下命令,扩展磁盘分区文件系统的大小。
resize2fs /dev/vdb1

# 挂载磁盘到目录 
mount /dev/vdb1 /data

# 查看分区容量
df -TH

启动写磁盘的服务

1
2
3
systemctl start service0
# 检查服务状态
systemctl status service0

系统盘扩容

growpart /dev/vda 1;resize2fs /dev/vda1