因为最初磁盘规划没想好,导致磁盘给的太小,很快磁盘被用满了,所以需要把该磁盘扩容。
我们这里尝试将/home分区由原来的45GB增加50GB,所以首先我们需要将整个虚拟机扩容50GB,然后再把这50GB全部分给/home分区,这样我们的/home分区就将增加到95GB。
通过df -hT查看磁盘大小(这里我们计划扩容/home
分区)
通过lsblk
命令查看当前系统的分区情况
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 150G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─euleros-root 253:0 0 50G 0 lvm /
├─euleros-swap 253:1 0 3.9G 0 lvm [SWAP]
└─euleros-home 253:2 0 45.1G 0 lvm /home # 扩容前,我们/home的大小为45GB,我们扩容后应该为95GB
sr0 11:0 1 4.6G 0 rom
[root@localhost ~]#
先在Esxi上给虚拟机扩容,扩容好后启动该虚拟机(扩容的时候需要关掉虚拟机电源)
说明:
- 需要先关掉虚拟机电源;
- 不能有快照,否则会导致无法修改磁盘大小;
登录该虚拟机,通过fdisk -l
查看我们刚才新增的磁盘容量是否已经增加
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:161.1 GB, 161061273600 字节,314572800 个扇区 # 原来这里是100GB,现在有150GB了(多余的10GB也不知道哪来的)
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000bb65d
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 209715199 103808000 8e Linux LVM # 目前看只有sda1和sda2两个分区
磁盘 /dev/mapper/euleros-root:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/euleros-swap:4160 MB, 4160749568 字节,8126464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/euleros-home:48.4 GB, 48444211200 字节,94617600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
新增分区
[root@localhost ~]# fdisk /dev/sda # 通过该命令新增分区
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n # n 新增分区
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): # 不输入直接回车代表默认p,主分区
Using default response p
分区号 (3,4,默认 3): # 直接回车默认即可
起始 扇区 (209715200-314572799,默认为 209715200): # 回车默认即可
将使用默认值 209715200
Last 扇区, +扇区 or +size{K,M,G} (209715200-314572799,默认为 314572799): # 回车默认即可
将使用默认值 314572799
分区 3 已设置为 Linux 类型,大小设为 50 GiB
命令(输入 m 获取帮助):t # 输入命令t
分区号 (1-3,默认 3): # 回车默认即可
Hex 代码(输入 L 列出所有代码):8e # 输入8e(8e代表Linux LVM分区类型)
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w # 保存以上更改信息
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@localhost ~]#
再次查看分区,发现多了/dev/sda3
这个分区
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:161.1 GB, 161061273600 字节,314572800 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000bb65d
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 209715199 103808000 8e Linux LVM
/dev/sda3 209715200 314572799 52428800 8e Linux LVM # 多了这个分区,而且类型是Linux LVM
磁盘 /dev/mapper/euleros-root:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/euleros-swap:4160 MB, 4160749568 字节,8126464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/euleros-home:48.4 GB, 48444211200 字节,94617600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@localhost ~]#
通过lsblk
查看分区情况
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 150G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 99G 0 part
│ ├─euleros-root 253:0 0 50G 0 lvm /
│ ├─euleros-swap 253:1 0 3.9G 0 lvm [SWAP]
│ └─euleros-home 253:2 0 45.1G 0 lvm /home
└─sda3 8:3 0 50G 0 part # 如果这时候还看不到sda3,那需要重启一下虚拟机
sr0 11:0 1 4.6G 0 rom
[root@localhost ~]#
说明:
如果这时候通过
lsblk
还看不到新增的分区sda3
,需要重启一下该虚拟机,否则下一步无法进行,会报错。
格式化新建的分区
[root@localhost ~]# mke2fs -t ext4 /dev/sda3
mke2fs 1.45.0 (6-Mar-2019)
创建含有 13107200 个块(每块 4k)和 3276800 个inode的文件系统
文件系统UUID:a3d078f0-6563-44da-a3a4-f5170d10fcdd
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
正在分配组表: 完成
正在写入inode表: 完成
创建日志(65536 个块)完成
写入超级块和文件系统账户统计信息: 已完成
[root@localhost ~]#
说明:
根据实际情况,如果系统类型是xfs,那么需要改成
mke2fs -t xfs /dev/sda3
合并分区
[root@localhost ~]# lvm # 进入逻辑卷操作命令行
lvm> pvcreate /dev/sda3 # 创建物理卷/dev/sda3
WARNING: ext4 signature detected on /dev/sda3 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sda3.
Physical volume "/dev/sda3" successfully created.
lvm> vgdisplay # 查看逻辑卷分组
--- Volume group ---
VG Name euleros # 这个是卷组名称,接下来的命令要用到
System ID
Format lvm2
Metadata Areas 2
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 2
Act PV 2
VG Size 148.99 GiB
PE Size 4.00 MiB
Total PE 38142
Alloc PE / Size 25342 / 98.99 GiB
Free PE / Size 12800 / 50.00 GiB
VG UUID FhkADC-CfQ8-OKwB-MK4z-V4Aw-U6xe-M4oQ8U
lvm> vgextend euleros /dev/sda3 # 将/dev/sda3这个逻辑卷加入到euleros卷组中
Volume group "euleros" successfully extended
lvm> vgdisplay -v # 查看卷组详细信息
--- Volume group ---
VG Name euleros
System ID
Format lvm2
Metadata Areas 2
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 2
Act PV 2
VG Size 148.99 GiB
PE Size 4.00 MiB
Total PE 38142
Alloc PE / Size 25342 / 98.99 GiB
Free PE / Size 12800 / 50.00 GiB
VG UUID FhkADC-CfQ8-OKwB-MK4z-V4Aw-U6xe-M4oQ8U
--- Logical volume ---
LV Path /dev/euleros/swap
LV Name swap
VG Name euleros
LV UUID LHH1Ye-9wAv-TC7p-fZPM-rEcO-sVl9-IZij2F
LV Write Access read/write
LV Creation host, time localhost, 2023-06-01 18:58:51 +0800
LV Status available
# open 2
LV Size <3.88 GiB
Current LE 992
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/euleros/home # 逻辑卷的名称,也是我们需要扩容的卷
LV Name home
VG Name euleros
LV UUID 0wYhhL-V0t7-EwvK-hJWZ-2RdL-foUz-URQnw7
LV Write Access read/write
LV Creation host, time localhost, 2023-06-01 18:58:51 +0800
LV Status available
# open 1
LV Size <45.12 GiB
Current LE 11550
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
--- Logical volume ---
LV Path /dev/euleros/root
LV Name root
VG Name euleros
LV UUID ppqcnE-qWsb-qhsX-QY2a-TvXj-ePVv-xotD3h
LV Write Access read/write
LV Creation host, time localhost, 2023-06-01 18:58:54 +0800
LV Status available
# open 1
LV Size 50.00 GiB
Current LE 12800
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Physical volumes ---
PV Name /dev/sda2
PV UUID hA5CGs-b8LD-04SG-1nAq-nIU4-kMlj-wx3z2r
PV Status allocatable
Total PE / Free PE 25343 / 1 # 这里是已经分配的,后面空闲大小为1可以看出来
PV Name /dev/sda3 # 这会我们就能看到/dev/sda3这个物理卷了
PV UUID 2U4wD1-vRFM-7Umi-v5ka-006u-9Qlh-AOxOkZ
PV Status allocatable # 说明是可以分配的
Total PE / Free PE 12799 / 12799 # 这是这个卷的总大小/空闲大小
lvm> lvextend -l+12799 /dev/mapper/euleros-home # 增加逻辑卷容量,12799为上面看到的空闲容量
Size of logical volume euleros/home changed from <45.12 GiB (11550 extents) to 95.11 GiB (24349 extents).
Logical volume euleros/home successfully resized.
lvm>
说明:
主要操作命令:
- pvcreate /dev/sda3 ## 创建物理卷/dev/sda3
- vgextend euleros /dev/sda3 ## 将/dev/sda3这个逻辑卷加入到euleros卷组中
- lvextend -l+12799 /dev/mapper/euleros-home # 增加逻辑卷容量,-l或-L后面根可扩展的磁盘大小,为12799为可分配的空闲容量大小,/dev/mapper/euleros-home 可以根据df -hT看到,也就是我们要扩容的磁盘分区
最后扩容文件系统,让系统识别
[root@localhost ~]# resize2fs /dev/mapper/euleros-home
resize2fs 1.45.0 (6-Mar-2019)
/dev/mapper/euleros-home 上的文件系统已被挂载于 /home;需要进行在线调整大小
old_desc_blocks = 6, new_desc_blocks = 12
/dev/mapper/euleros-home 上的文件系统现在为 24933376 个块(每块 4k)。
[root@localhost ~]#
说明:
如果是xfs类型的文件系统,需要用
xfs_growfs
命令,如:xfs_growfs /dev/mapper/euleros-home
所有操作完成了,我们来检验一下我们的成果。
通过df -hT
检查磁盘容量是否真的增加了
[root@localhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/euleros-root ext4 49G 1.2G 46G 3% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 8.9M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 ext4 976M 115M 795M 13% /boot
/dev/mapper/euleros-home ext4 94G 60M 90G 1% /home # 原来总容量是45GB,现在变成了94GB,说明确实如我们所想那样扩容了50GB
tmpfs tmpfs 378M 0 378M 0% /run/user/0
[root@localhost ~]#
通过lsblk
命令再次查看确认
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 150G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 99G 0 part
│ ├─euleros-root 253:0 0 50G 0 lvm /
│ ├─euleros-swap 253:1 0 3.9G 0 lvm [SWAP]
│ └─euleros-home 253:2 0 95.1G 0 lvm /home # 这里总大小也确实增涨为95GB了
└─sda3 8:3 0 50G 0 part
└─euleros-home 253:2 0 95.1G 0 lvm /home
sr0 11:0 1 4.6G 0 rom
[root@localhost ~]#