Bootstrap

云计算&虚拟化-kvm-无损扩容磁盘&分区

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

虚拟化,简单来说就是把一台服务器/PC电脑,虚拟成多台独立的虚拟机,每台虚拟机之间相互隔离,每个虚拟机都有自己独立的操作系统,磁盘,网络资源。虚拟化是一个很庞大的系统,我的介绍主要是帮助你入门,让你了解基本技术原理,具备搭建操作虚拟化的能力。由于涉及到内容较多,这里的目录就只是以简单分类介绍和说明,不再针对单个小节进行目录列出,主要涉及的分类包括以下几个方面:

1.虚拟化介绍

2.kvm基本使用

3.kvm进阶使用(本章节属于)

4.kvm技术原理

5.vmware介绍&使用

6.小结

虽然我们上一小节已经实现了在标准分区扩容文件系统的功能,但是使用fdisk操作有几个问题:只能支持mbr分区,涉及到删除操作风险太大。所以本章节以风险更小的parted方式来扩容磁盘。

并且上一小节只考虑了标准分区,未考虑lvm的情况,所以本小节将基于标准分区和lvm分区分别演示扩容磁盘。

标准分区

网上大部分的攻略,都是直接使用parted命令扩容,只会告警,但是并不影响扩容。在centos7的系统里面测试均无法直接使用,而是会直接提示磁盘正在被使用,如果非系统分区,则可以umount以后再操作;但是如果是根分区则无法卸载。

对比了rocky9.4系统和centos7.9,rocky9.4 可以直接操作,不需要进入救援模式操作。parted软件版本均是3.5;但是他们内核版本不一样,看起来是新的内核对这个功能支持得更友好。

图片

尝试使用使用非光盘启动的救援模式,提示是没有parted命令,所以下面的操作是基于光盘启动的救援模式来实现的。

配置过程可参考:Linux系统-救援模式

这里和救援模式配置略有不一样,选择3则不会自动挂载磁盘,如果选择1则会自动挂载磁盘也会出现上面一样的问题。

图片

图片

#使用parted进入磁盘分区界面
parted

#执行print 打印分区情况
print

#选择分区2执行扩容操作,具体以现场为准
resizepart 2 

#根据磁盘大小选择
#也可以使用100%选择剩余全部空间
100% 
#退出
quit

#重启系统
reboot

图片

重启以后进入系统

图片

#xfs文件系统扩容
xfs_growfs /dev/sda2

#ext4文件系统扩容
resize2fs /dev/sda2


lvm

先回顾下lvm的概念

pv:就是原始分区或磁盘。

vg:就是原始分区或磁盘组成的联合体。

lv: 就是vg划分出来的逻辑磁盘。

当前磁盘的情况是sda盘,20g,sda1是boot分区,这里忽略。

sda2就是pv,组成了一个叫centos的vg

[root@localhost ~]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <19.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              4863
  Free PE               0
  Allocated PE          4863
  PV UUID               ZEkacQ-pQO3-G2e5-dJdG-Ps1H-hPPk-EeD7ar

这个vg划分出来2个lv,一个是作为根分区,一个作为swap,我们的目标就是扩容root这个lv。

[root@localhost ~]# lvdisplay  |grep name -i
LV Name                swap
VG Name                centos
LV Name                root
VG Name                centos

1.创建新分区

过程略,可参考

Linux磁盘-MBR&GPT或者Liux磁盘-创建分区

# 出现这个提示则需要重启系统才能识别到新的分区
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)

2. 创建pv​​​​​​​

[root@localhost ~]# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

3.加入vg

[root@localhost ~]# vgextend centos /dev/sda3
  Volume group "centos" successfully extended

4.扩容lv​​​​​​​

#扩容全部剩余空间
[root@localhost ~]# lvextend -l +100%FREE /dev/centos/root 
  Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to 26.99 GiB (6910 extents).
  Logical volume centos/root successfully resized.
  
  
#扩展指定大小,需要小于等于剩余vg空间。
lvextend -L +2G /dev/centos/root

5.扩容文件系统

xfs_growfs /dev/mapper/centos-root

图片

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

;