openEuler虚拟机扩容磁盘的方法

需求场景

我们在使用虚拟机时,可能会出现磁盘空间不够用的情况。

首先,我们要扩展虚拟机的可用磁盘空间。如图所示,当前容量已经占用43.3GB,我们扩展到256GB

在这里插入图片描述

打开虚拟机发现,也无法直接使虚拟机磁盘空间相应的增加(sda仍然为64G,没有完全使用到我们分配的256G),还需要执行分区指令并且重启机器。

[root@localhost ~]# lsblk  
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS  
sda 8:0 0 256G 0 disk  
├─sda1 8:1 0 1G 0 part /boot  
└─sda2 8:2 0 63G 0 part  
├─openeuler-root 253:0 0 39.7G 0 lvm /  
├─openeuler-swap 253:1 0 3.9G 0 lvm [SWAP]  
└─openeuler-home 253:2 0 19.4G 0 lvm /home  
sr0 11:0 1 3.5G 0 rom

不关机扩容的方法,将在下面演示。

扩容流程

扩展分区

分区操作操作不当有可能导致数据丢失,建议操作前保存快照。

对/dev/sda进行分区,执行

fdisk /dev/sda

输入p,打印当前分区表

Command (m for help): p  
  
Disk /dev/sda: 256 GiB, 274877906944 bytes, 536870912 sectors  
Disk model: VMware Virtual S  
Units: sectors of 1 * 512 = 512 bytes  
Sector size (logical/physical): 512 bytes / 512 bytes  
I/O size (minimum/optimal): 512 bytes / 512 bytes  
Disklabel type: dos  
Disk identifier: 0xa4b00bb9  
  
Device Boot Start End Sectors Size Id Type  
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux  
/dev/sda2 2099200 134217727 132118528 63G 8e Linux LVM

删除/dev/sda2分区,输入d,然后输入2

Command (m for help): d  
Partition number (1,2, default 2): 2  
  
Partition 2 has been deleted.

删除分区后,重新创建新分区,输入n,然后一路敲回车,询问是否删除签名,选择否

Command (m for help): n  
Partition type  
p primary (1 primary, 0 extended, 3 free)  
e extended (container for logical partitions)  
Select (default p):  
  
Using default response p.  
Partition number (2-4, default 2):  
First sector (2099200-536870911, default 2099200):  
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2099200-536870911, default 536870911):  
  
Created a new partition 2 of type 'Linux' and of size 255 GiB.  
Partition #2 contains a LVM2_member signature.  
  
Do you want to remove the signature? [Y]es/[N]o: n  
  
The signature will be removed by a write command.

再次输入p,发现已经完成分区,且扩容到了256G

Command (m for help): p  
Disk /dev/sda: 256 GiB, 274877906944 bytes, 536870912 sectors  
Disk model: VMware Virtual S  
Units: sectors of 1 * 512 = 512 bytes  
Sector size (logical/physical): 512 bytes / 512 bytes  
I/O size (minimum/optimal): 512 bytes / 512 bytes  
Disklabel type: dos  
Disk identifier: 0xa4b00bb9  
  
Device Boot Start End Sectors Size Id Type  
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux  
/dev/sda2 2099200 536870911 534771712 255G 83 Linux  
  
Filesystem/RAID signature on partition 2 will be wiped.

最后输入w,完成写入

Command (m for help): w  
The partition table has been altered.  
Syncing disks.

此时,输入lsblk,发现sda2大小更新了,但是其挂载的目录大小仍然没有更新

[root@localhost ~]# lsblk  
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS  
sda 8:0 0 256G 0 disk  
├─sda1 8:1 0 1G 0 part /boot  
└─sda2 8:2 0 255G 0 part  
├─openeuler-root 253:0 0 39.7G 0 lvm /  
├─openeuler-swap 253:1 0 3.9G 0 lvm [SWAP]  
└─openeuler-home 253:2 0 19.4G 0 lvm /home  
sr0 11:0 1 3.5G 0 rom

更新物理卷分区

执行命令pvresize /dev/sda2

[root@localhost ~]# pvresize /dev/sda2  
Physical volume "/dev/sda2" changed  
1 physical volume(s) resized or updated / 0 physical volume(s) not resized

随后执行pvdisplay查看pv(物理卷),已经正常扩容

[root@localhost ~]# pvdisplay  
--- Physical volume ---  
PV Name /dev/sda2  
VG Name openeuler  
PV Size <255.00 GiB / not usable 2.00 MiB  
Allocatable yes  
PE Size 4.00 MiB  
Total PE 65279  
Free PE 49152  
Allocated PE 16127  
PV UUID KtV3ym-hIBa-0FK4-zc00-rJyU-EdZP-ekjIJl

随后执行vgdisplay查看vg(逻辑卷组),已经正常扩容

[root@localhost ~]# vgdisplay  
--- Volume group ---  
VG Name openeuler  
System ID  
Format lvm2  
Metadata Areas 1  
Metadata Sequence No 5  
VG Access read/write  
VG Status resizable  
MAX LV 0  
Cur LV 3  
Open LV 3  
Max PV 0  
Cur PV 1  
Act PV 1  
VG Size <255.00 GiB  
PE Size 4.00 MiB  
Total PE 65279  
Alloc PE / Size 16127 / <63.00 GiB  
Free PE / Size 49152 / 192.00 GiB  
VG UUID x9qfXc-DeIs-RPGa-qnv6-zn2Z-Gn88-xgkrbo

随后执行lvdisplay查看lv(逻辑卷),还没有扩容

[root@localhost ~]# lvdisplay  
--- Logical volume ---  
LV Path /dev/openeuler/swap  
LV Name swap  
VG Name openeuler  
LV UUID WP4Zwq-S24S-nkdQ-r4D1-8bd6-vCk1-njx21g  
LV Write Access read/write  
LV Creation host, time localhost, 2023-11-23 05:57:24 +0800  
LV Status available  
# open 2  
LV Size <3.93 GiB  
Current LE 1005  
Segments 1  
Allocation inherit  
Read ahead sectors auto  
- currently set to 8192  
Block device 253:1  
  
--- Logical volume ---  
LV Path /dev/openeuler/home  
LV Name home  
VG Name openeuler  
LV UUID dC5j80-nMm0-fkbI-n9oV-mNOe-Fvja-Sj5Mf3  
LV Write Access read/write  
LV Creation host, time localhost, 2023-11-23 05:57:24 +0800  
LV Status available  
# open 1  
LV Size <19.38 GiB  
Current LE 4961  
Segments 1  
Allocation inherit  
Read ahead sectors auto  
- currently set to 8192  
Block device 253:2  
  
--- Logical volume ---  
LV Path /dev/openeuler/root  
LV Name root  
VG Name openeuler  
LV UUID XcZDI5-1X7Y-hDX4-C0dT-zN6w-rUMV-ujqYhi  
LV Write Access read/write  
LV Creation host, time localhost, 2023-11-23 05:57:25 +0800  
LV Status available  
# open 1  
LV Size 39.69 GiB  
Current LE 10161  
Segments 1  
Allocation inherit  
Read ahead sectors auto  
- currently set to 8192  
Block device 253:0

更新lv分区

为/增加空闲的70%的空间

lvextend -l +70%FREE /dev/mapper/openeuler-root
[root@localhost ~]# lvextend -l +70%FREE /dev/mapper/openeuler-root  
Size of logical volume openeuler/root changed from 39.69 GiB (10161 extents) to 174.09 GiB (44568 extents).  
Logical volume openeuler/root successfully resized.

为/home增加剩余的空间

lvextend -l +100%FREE /dev/mapper/openeuler-home

再次查看lv大小,已经完全分配好

[root@localhost ~]# lvdisplay  
--- Logical volume ---  
LV Path /dev/openeuler/swap  
LV Name swap  
VG Name openeuler  
LV UUID WP4Zwq-S24S-nkdQ-r4D1-8bd6-vCk1-njx21g  
LV Write Access read/write  
LV Creation host, time localhost, 2023-11-23 05:57:24 +0800  
LV Status available  
# open 2  
LV Size <3.93 GiB  
Current LE 1005  
Segments 1  
Allocation inherit  
Read ahead sectors auto  
- currently set to 8192  
Block device 253:1  
  
--- Logical volume ---  
LV Path /dev/openeuler/home  
LV Name home  
VG Name openeuler  
LV UUID dC5j80-nMm0-fkbI-n9oV-mNOe-Fvja-Sj5Mf3  
LV Write Access read/write  
LV Creation host, time localhost, 2023-11-23 05:57:24 +0800  
LV Status available  
# open 1  
LV Size <76.98 GiB  
Current LE 19706  
Segments 2  
Allocation inherit  
Read ahead sectors auto  
- currently set to 8192  
Block device 253:2  
  
--- Logical volume ---  
LV Path /dev/openeuler/root  
LV Name root  
VG Name openeuler  
LV UUID XcZDI5-1X7Y-hDX4-C0dT-zN6w-rUMV-ujqYhi  
LV Write Access read/write  
LV Creation host, time localhost, 2023-11-23 05:57:25 +0800  
LV Status available  
# open 1  
LV Size 174.09 GiB  
Current LE 44568  
Segments 1  
Allocation inherit  
Read ahead sectors auto  
- currently set to 8192  
Block device 253:0

刷新文件系统

最后需要刷新文件系统,执行以下命令

resize2fs /dev/mapper/openeuler-home
resize2fs /dev/mapper/openeuler-root

执行df -h,发现文件系统已更新

[root@localhost tmp]# df -h  
Filesystem Size Used Avail Use% Mounted on  
devtmpfs 4.0M 0 4.0M 0% /dev  
tmpfs 7.6G 24K 7.6G 1% /dev/shm  
tmpfs 3.1G 9.3M 3.1G 1% /run  
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup  
/dev/mapper/openeuler-root 172G 35G 130G 21% /  
tmpfs 7.6G 8.0K 7.6G 1% /tmp  
/dev/sda1 974M 151M 757M 17% /boot  
/dev/mapper/openeuler-home 76G 60K 73G 1% /home  
overlay 172G 35G 130G 21% /var/lib/docker/overlay2/77aabcbcf9e30d4b352586890e8ac4b060b046e48c620  
0c5e34022581e5f7a4f/merged  
shm 64M 0 64M 0% /var/lib/docker/containers/26a433dd93a4a4a83e71a10e0111221ba84dc6edae3  
d03e13559cb778be33369/mounts/shm
### 对OpenEuler Linux虚拟机进行磁盘扩容 对于运行OpenEuler系统的Linux虚拟机,在完成初始的磁盘空间扩展之后,仍需通过一系列命令来确保操作系统能够识别并利用新增加的空间。具体过程如下: #### 扩展物理卷 当确认已成功向虚拟机添加额外存储资源后,如果新分配的空间未被自动识别,则可能需要手动创建新的分区或调整现有分区大小。假设当前根文件系统位于逻辑卷管理(LVM)结构下,并且已经有一个名为`/dev/sda4`的新未分配分区存在。 为了将这部分空间加入到现有的逻辑卷中,可以使用`pvcreate`命令初始化该分区作为物理卷,接着用`vgextend`将其添加至对应的卷组内[^3]。 ```bash # 初始化新分区为物理卷 pvcreate /dev/sda4 # 将新物理卷添加到卷组openeuler中 vgextend openeuler /dev/sda4 ``` #### 扩大逻辑卷容量 接下来,针对目标逻辑卷(这里是`/dev/openeuler/root`),应用`lvextend`工具指定要增长的具体数值以及源设备路径来进行在线扩展操作。这里选择增加28.5GB以接近最终期望达到的整体尺寸30GB。 ```bash lvextend -L+28.5G /dev/openeuler/root /dev/sda4 ``` #### 调整文件系统大小 最后一步也是至关重要的一步就是更新实际使用的文件系统大小使之匹配最新的逻辑卷配置。由于OpenEuler默认采用ext4文件系统而非XFS,因此应当调用`resize2fs`而不是`xfs_growfs`来完成这项工作[^2]. ```bash resize2fs /dev/openeuler/root ``` 以上步骤完成后,再次查看磁盘情况(`lsblk`)应该可以看到根目录下的可用空间已经被正确设置成了预期值即大约30GB左右[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值