因为最初磁盘规划没想好,导致磁盘给的太小,很快磁盘被用满了,所以需要把该磁盘扩容。
我们这里尝试将/home分区由原来的45GB增加50GB,所以首先我们需要将整个虚拟机扩容50GB,然后再把这50GB全部分给/home分区,这样我们的/home分区就将增加到95GB。
- [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 ~]#
-
- 需要先关掉虚拟机电源;
- 不能有快照,否则会导致无法修改磁盘大小;
- [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 ~]#
-
- [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
所有操作完成了,我们来检验一下我们的成果。
- [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 ~]#
-
- [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 ~]#
-