云计算&虚拟化-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则会自动挂载磁盘也会出现上面一样的问题。

bash 复制代码
#使用parted进入磁盘分区界面
parted

#执行print 打印分区情况
print

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

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

#重启系统
reboot

重启以后进入系统

bash 复制代码
#xfs文件系统扩容
xfs_growfs /dev/sda2

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

lvm

先回顾下lvm的概念

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

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

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

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

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

bash 复制代码
[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。

cpp 复制代码
[root@localhost ~]# lvdisplay  |grep name -i
LV Name                swap
VG Name                centos
LV Name                root
VG Name                centos

1.创建新分区

过程略,可参考

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

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

bash 复制代码
[root@localhost ~]# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

3.加入vg

bash 复制代码
[root@localhost ~]# vgextend centos /dev/sda3
  Volume group "centos" successfully extended

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

bash 复制代码
#扩容全部剩余空间
[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.扩容文件系统

bash 复制代码
xfs_growfs /dev/mapper/centos-root

运维小路

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

相关推荐
chlk1231 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑1 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件1 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒1 天前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行3 天前
Linux和window共享文件夹
linux
木心月转码ing3 天前
WSL+Cpp开发环境配置
linux
蝎子莱莱爱打怪4 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes