Linux之LVM模式下LV和VG扩容

news2025/1/13 7:31:53

一、LVM简介

  LVM (Logical Volume Manager) 是一个逻辑卷管理器,它允许用户将多个硬盘分区或者整个硬盘组成一个或多个逻辑卷。LVM 可以在运行时动态地改变逻辑卷的大小,而不需要关机或重新启动系统。它也可以将多个硬盘的存储空间组合在一起,形成一个大容量的存储池,使得数据的管理更加灵活和方便。LVM 已经成为了许多 Linux 发行版的标准功能之一,广泛应用于数据中心、服务器、虚拟化环境等场景中。如下图所示,简单来说LVM就是将分区或者磁盘逻辑转化为PV(Physical Volume),将PV加入到VG(Volume Group)中,再根据需求将VG中的存储空间分配到LV(Logical Volume)中。博文将以扩容/home分区磁盘空间为例介绍EXT4文件系统格式下LVM是如何进行磁盘扩容的。实际上LVM是支持动态调整的,包括扩容和减小,但实际操作中跟文件系统格式也有关系,ext4格式既可以扩容也可以减小(回收未使用的空间),xfs文件系统格式则只支持扩容。
在这里插入图片描述
  实验环境说明:

  • 操作系统:centos7.9
  • 文件系统格式:ext4

二、LV扩容

  LVM磁盘扩容时,我们先检查VG是否还有剩余空间,如果有我们从VG中分配所需磁盘空间给指定的LV即可。实验环境下/home分区大小为20G,使用的是LVM逻辑卷,假设我们需要调整/home分区大小为30G。
在这里插入图片描述

1、检查vg剩余空间

  使用vgdisplay命令我们可以看到vg名为centos_s178,已经分配的空间为42GB,剩余的空间为16.99GB。

[root@s178 ~]# vgdisplay
— Volume group —
VG Name centos_s178

Alloc PE / Size 10752 / 42.00 GiB
Free PE / Size 4350 / 16.99 GiB

在这里插入图片描述

2、查看LV逻辑卷名称和路径

  使用lvdisplay命令查看逻辑卷的情况,可以看到有多个逻辑卷,可以看到逻辑卷路径,逻辑卷名、所属VG、存储空间大小等。

[root@s178 ~]# lvdisplay
— Logical volume —
LV Path /dev/centos_s178/home
LV Name home
VG Name centos_s178

LV Size 20.00 GiB

— Logical volume —
LV Path /dev/centos_s178/root
LV Name root
VG Name centos_s178

3、扩容指定大小的存储空间到LV

  使用lvextend命令扩容逻辑卷大小,-L参数扩容指定大小。

[root@s178 ~]# lvextend -L +10G /dev/centos_s178/home
Size of logical volume centos_s178/home changed from 20.00 GiB (5120 extents) to 30.00 GiB (7680 extents).
Logical volume centos_s178/home successfully resized.

3、查看磁盘大小

在这里插入图片描述

4、扩容空间写入文件系统

  resize2fs 命令将扩容空间写入文件系统,如果是xfs格式则可以使用命令xfs_growfs代替。

[root@s178 ~]# resize2fs /dev/centos_s178/home
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/centos_s178/home is mounted on /home; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 4
The filesystem on /dev/centos_s178/home is now 7864320 blocks long.

5、再次验证

  使用df命令再次查看磁盘大小验证,发现/home分区已经调整为了30G大小。
在这里插入图片描述

三、PV扩容

  假设我们需要将/home分区扩容为40G,因为VG剩余空间只有16.99G,所以磁盘空间不足,需要先添加磁盘,将磁盘添加到VG中,再将指定空间分配到LV。

1、查看磁盘

  新添加或者插入一块磁盘/dev/sdb,使用fdisk命令可以看到。

[root@s178 ~]# fdisk -l
Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 sectors

Disk /dev/sdb: 42.9 GB, 42949672960 bytes, 83886080 sectors

2、磁盘分区

[root@s178 ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type ‘help’ to view a list of commands.
(parted) mklabel gpt
(parted) mkpart
Partition name? []? disk2
File system type? [ext2]? ext4
Start? 1
End? -1
(parted)

3、创建PV

[root@s178 ~]# pvcreate /dev/sdb1
Physical volume “/dev/sdb1” successfully created.

4、查看PV信息

[root@s178 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos_s178 lvm2 a-- 42.00g 0
/dev/sda3 centos_s178 lvm2 a-- 16.99g 6.99g
/dev/sdb1 lvm2 — <40.00g <40.00g
[root@s178 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos_s178 2 3 0 wz–n- 58.99g 6.99g
[root@s178 ~]# vgscan
Reading volume groups from cache.
Found volume group “centos_s178” using metadata type lvm2

5、扩容VG

[root@s178 ~]# vgextend centos_s178 /dev/sdb1
Volume group “centos_s178” successfully extended

6、查看VG信息

[root@s178 ~]# vgdisplay
— Volume group —
VG Name centos_s178
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 3
Act PV 3
VG Size <98.99 GiB
PE Size 4.00 MiB
Total PE 25341
Alloc PE / Size 13312 / 52.00 GiB
Free PE / Size 12029 / <46.99 GiB
VG UUID tTBWJ4-BFKA-tP95-kRNh-kZ0G-nf51-d3XSUt

7、扩容LV

  使用命令lvextend LV PV可以将某PV全部分配给指定的LV。使用lvextend命令扩容逻辑卷大小,记得使用-L参数时不带+是将磁盘扩展到指定大小,带+号则是扩容指定大小的空间。lvreduce命令可以减小逻辑卷大小。
在这里插入图片描述

[root@s178 ~]# lvextend -L 40G /dev/centos_s178/home
Size of logical volume centos_s178/home changed from 36.99 GiB (9470 extents) to 40.00 GiB (10240 extents).
Logical volume centos_s178/home successfully resized.

8、扩容空间写入文件系统

[root@s178 ~]# resize2fs /dev/centos_s178/home
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/centos_s178/home is mounted on /home; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 5
The filesystem on /dev/centos_s178/home is now 10485760 blocks long.

9、验证扩容结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/665365.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenGL视口学习

VC6新建一个openGL类型项目&#xff1b; 出现一些选项&#xff0c;默认后生成一个项目&#xff1b; VC6自带GL支持&#xff1b; 需要添加附加包含路径&#xff1b; 而后构建工程&#xff1b;运行如下&#xff1b; 是一个旋转的立方体&#xff1b; 生成的代码不是MFC的&#xff…

Python入门教程+项目实战-13.4节-程序实战-二分查找算法

目录 13.4.1 何为二分查找&#xff1f; 13.4.2 算法实现 13.4.3 系统学习python 13.4.1 何为二分查找&#xff1f; 我们已经学完了Python中的字典和集合&#xff0c;利用字典和集合就可以实现快速查找&#xff0c;非常方便。字典与集合使用了哈希表的索引结构来加快查找&am…

C++ 设计模式----“对象创建“模式

“对象创建”模式  通过“对象创建” 模式绕开new&#xff0c;来避免对象创建&#xff08;new&#xff09;过程中所导致的紧耦合&#xff08;依赖具体类&#xff09;&#xff0c;从而支持对象创建的稳定。它是接口抽象之后的第一步工作。  典型模式 • Factory Method •…

【Java】Java核心要点总结 68

文章目录 1. 为什么重写 equals() 时候必须重写 hashCode()2. 字符串常量池3. 字符串中的 intern() 方法4. try-catch-finally5. finally 中的代码不一定会执行 1. 为什么重写 equals() 时候必须重写 hashCode() 因为两个相等的对象的 hashCode 值必须是相等。也就是说如果 equ…

三、动画 -变形transform

目录&#xff1a; 1.变形transform定义 2.具体描述 3.用途 4.练习 一、变形transform定义 变形就是指通过CSS来改变元素的形状或位置 变形不会影响到页面的布局transform 用来设置元素的变形效果设置具体的值用translate()函数 二、具体描述 - 平移&#xff1a;translateX() 沿…

2023 3de实时仿真环境下资源不可见或没有了(只有floor)

F3退出实时仿真环境&#xff0c;双击结构树父节点 之后再进入实时仿真&#xff0c;3d仿真&#xff0c;再打开资源就可以看到了。

【雕爷学编程】Arduino动手做(117)---P10V706LED屏模组

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

【Atlas 200DK A2体验】Atlas 200DK A2初体验记录

开箱照 烧录镜像 Windows版制卡工具下载地址&#xff1a; https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Atlas%20200I%20DK%20A2/DevKit/tools/latest/Ascend-devkit-imager_latest_win-x86_64.exe 准备一张MicroSD卡&#xff0c;个人建议容量至少在64GB以上 一键制…

6 月份有哪些 GitHub 项目火了?

本期推荐开源项目目录&#xff1a; 1. 谁在招人&#xff1f; 2. ChatGPT-Midjourney 3. 让 AI 给你写代码 4. 免费的 OpenAI GPT-4 的 API 5. 金融领域的大模型 6. 文本生成音乐模型 01 谁在招人&#xff1f; 阮一峰在 GitHub 上维护了一个《科技爱好者周刊》&#xff0c;每周五…

开源的可视化爬虫易采集EasySpider:如何无代码可视化的爬取需要登录才能爬的网站

一个可视化爬虫软件&#xff0c;可以使用图形化界面&#xff0c;无代码可视化的设计和执行爬虫任务。只需要在网页上选择自己想要爬的内容并根据提示框操作即可完成爬虫设计和执行。同时软件还可以单独以命令行的方式进行执行&#xff0c;从而可以很方便的嵌入到其他系统中。 …

AI导师、AI提示工程师 # Earth实现任意角色设定

‍‍ 如何通过学习优秀的开源项目&#xff0c; 设定一个任意角色 opus 嗨&#xff0c;Shadow&#xff0c;我想学习如何给ChatGPT设定一个角色&#xff0c;可以教我吗&#xff1f; 当然可以&#xff0c;我们可以通过学习优秀的开源项目来了解实现细节。 shadow 其中&#xff0c;…

SQLmap使用教程图文教程(超详细)

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 SQLmap 一、目标1、指定url2、指定文件&#xff08…

ICLR Oral总分世界第五(10,8,8):可学习的行为控制,超越DeepMind和OpenAI突破Atari人类世界纪录...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 作者介绍 范嘉骏 清华大学计算机技术专业二年级研究生&#xff0c;主要研究深度强化学习 报告题目 可学习的行为控制&#xff0c;超越DeepMind和OpenAI突破Atari人类世界纪录 内容简介 探索问题一直是深度强化学…

【kafka】kafka基础架构

文章目录 1、kafka简介2、kafka的特性3、kafka的应用场景4、kafka架构&#xff08;重点&#xff09;4.1、broker4.2、topic4.3、partition4.4、offset4.5、producer4.6、consumer4.7、consumer group4.8、leader4.9、follower4.10、rebalance 5、对kafka架构的几点解释6、几种M…

突破软件测试的瓶颈

软件测试两三年&#xff0c;编程能力半生不熟&#xff0c;三流学校出身&#xff0c;E很差&#xff0c;工作主要还是写各种测试文档和手工测试&#xff1b;相信不少测试人员都和这情况相似&#xff1b;下面就这几个方面谈一下自己的看法。 关于编程的能力 之前有同学问我测试要学…

青翼自研-模块化互联产品 • 模拟采集FMC子卡产品资料

FMC123是一款基于FMC标准规范&#xff0c;实现2路14-bit、3GSPS ADC采集功能、2路16-bit 12.6GSPS回放子卡模块。该模块遵循VITA57.1标准&#xff0c;可直接与FPGA载卡配合使用&#xff0c;板卡ADC器件采用ADI公司的AD9208芯片&#xff0c;&#xff0c;与ADI公司的AD9689可以实…

C国演义 [第五章]

第五章 子集题目理解步骤树形结构递归函数递归结束的条件单层逻辑 代码 子集II题目理解步骤树形结构递归函数递归结束的条件单层逻辑 代码 子集 力扣链接 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。…

MySQL索引、事务、与存储引擎

MySQL索引、事务、与存储引擎 一、索引 1.概念 索引是一个排序的列表&#xff0c;包含索引字段的值和其相对应的行数据所在的物理地址2.作用 优点 加快表的查询速度 可以对字段排序缺点 额外占用磁盘空间 更新包含索引的表效率会更慢3.索引工作模式 没有索引的情况下&am…

利用C语言创建图书管理系统

不仅仅是图书信息管理系统 基于双链表&#xff0c;采用面向对象编程方法制作的图书管理系统 ❞ 效果演示 root用户&#xff1a;账号&#xff1a;0&#xff0c;密码&#xff1a;0 普通用户&#xff1a;账号&#xff1a;1001&#xff0c;密码&#xff1a;666666 图书信息 没有完全…

Spring MVC各种参数进行封装

目录 一、简单数据类型 1.1 控制器方法 1.2 测试结果 二、对象类型 2.1 单个对象 2.1.1 控制器方法 2.1.2 测试结果 2.2 关联对象 2.2.1 控制器方法 2.2.2 测试结果 三、集合类型 3.1 简单数据类型集合 3.1.1 控制方法 3.1.2 测试结果 3.2 对象数据类型集合 3.…