云计算&虚拟化-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

运维小路

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

相关推荐
SkyWalking中文站1 小时前
SkyWalking 11 与 BanyanDB 0.11:在存储引擎内部实现 Trace 尾部采样
运维·监控·自动化运维
姚不倒2 小时前
etcd 学习系列(二):集群架构 —— 3 节点是如何工作的
运维·架构·etcd
论文复现现场2 小时前
ComfyUI部署MiniMax H3:8G本地卡、RTX 4090和RTX 5090怎么选?
人工智能·云计算·音视频·gpu算力
pt10432 小时前
网络自动化Python课程:Cisco PyATS网络自动化测试框架
运维·自动化
Johny_Zhao3 小时前
网络安全等级保护测评实施方案
linux·网络·人工智能·网络安全·信息安全·云计算·等保测评·系统运维·itsm
小袁拒绝摆烂4 小时前
Jenkins部署经验
运维·jenkins
落羽的落羽4 小时前
【AI】快速理解AI应用的相关名词概念
linux·c++·人工智能·python·计算机网络·算法
刚入门的大一新生4 小时前
Linux-进程控制
linux·运维·服务器·c++
上火的金鱼妹4 小时前
K8S基础组件作用和关系整理
linux·运维·服务器·kubernetes
Vcaker4 小时前
Linux学习25-harbor私有仓库部署
linux·运维·学习