LVM 逻辑卷学习
一个执着于技术的公众号
前言
每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到 当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬 盘、重新对硬盘分区,然后恢复数据到新分区。
虽然现在有很多动态调整磁盘的工具可以使用,例如PartationMagic等等,但是它并不能完全解决问题,因为某个分区可能会再次被耗尽;另外一个方面这需要重新引导系统才能实现,对于很多关键的服务器,停机是不可接受的。而且对于添加新硬盘,希望一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解决问题。
因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。幸运的是Linux提供的逻辑盘卷管理(LVM,LogicalVolumeManager)机制就是一个完美的解决方案。
什么是LVM?
❝
LVM(Logical Volume Manager)逻辑卷管理,是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的 分区加入其中,这样可以实现一种磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性,使用普通的磁盘分区,当一个磁盘的分区空间不够使用的时候,可能就会带来很大的麻烦。使用LVM在一定程度上就可以解决普通磁盘分区带来的问题。
❞
LVM基本术语
❝
前面谈到,LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。首先我们讨论以下几个LVM术语:
❞
「物理卷--PV(Physical Volume)」
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。
「卷组--VG(Volumne Group)」
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
「逻辑卷--LV(Logical Volume)」
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。
「物理区域--PE(Physical Extent)」
物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。
「逻辑区域--LE(Logical Extent)」
逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
「卷组描述区域--VGDA(Volume Group Descriptor Area)」
卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。
下图是磁盘分区、卷组、逻辑卷和文件系统之间的逻辑关系的示意图:
系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置。
安装LVM
首先确定系统中是否安装了lvm工具:
如果命令结果输出rpm版本,那么说明系统已经安装了LVM管理工具;如果命令没有输出则说明没有安装LVM管理工具,则需要从网络或者光盘中安装LVM rpm工具。
「注意」安装了LVM的RPM软件包以后,要使用LVM还需要配置内核支持LVM。RedHat默认内核是支持LVM的,如果需要重新编译内核,则需要在配置内核时,进入Multi-device Support (RAID and LVM)子菜单,选中以下两个选项:
Multiple devices driver support (RAID and LVM)
<*> Logical volume manager (LVM) Support
然后重新编译内核,即可将LVM添加到新内核中。
为了使用LVM,要确保在系统启动时激活LVM,幸运的是在RedHat7.0以后的版本,系统启动脚本已经具有对激活LVM的支持,在/etc/rc.d/rc.sysinit中有以下内容:
# LVM initialization
if [ -e /proc/lvm -a -x /sbin/vgchange -a -f /etc/lvmtab ]; then
$"Setting up Logical Volume Management:" action /sbin/vgscan && /sbin/vgchange -a y
fi
其中关键是两个命令,vgscan命令实现扫描所有磁盘得到卷组信息,并创建文件卷组数据文件;/etc/lvmtab和/etc/lvmtab.d/*;vgchange -a y命令激活系统所有卷组。
操作流程
❝
创建PV-->创建卷组-->创建逻辑卷-->格式化-->挂载
❞
1、磁盘分区
注:创建分区时需要更改其文件类型为lvm(代码8e)
注:一般情况在创建完分区后系统会自动生成相应的分区文件“/dev/sdbn”,但是当系统未自动生成时无法完成物理卷创建任务,需要执行命令 “「partprobe」” 生成相应文件再执行pvcreate命令。
2、创建物理卷
「pvdisplay命令&pvs命令」
物理卷创建完成后可以使用命令pvdisplay或pvs进行查看:(在此只展示一个物理卷)
3、创建卷组
创建完成后同样可以使用vgdisplay命令和vgs命令进行查看:
4、创建逻辑卷
语法:lvcreate [选项] [物理卷组]
选项:
-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节
-n:指定逻辑卷的名称
创建完成后同样可以使用「lvdisplay」命令和「lvs」命令进行查看:
5、格式化&挂载
将我们刚刚创建的逻辑卷「lv1」格式化成ext4文件系统
「lv1逻辑卷」格式化完成后挂载至 「/mnt」 下:
写入/etc/fstab文件中
扩容
流程:
更改逻辑卷信息(lvresize)-->检测磁盘错误(e2fsck -f)-->更新逻辑卷信息(resize2fs)
先在/mnt/目录下写入一些东西,备用:
开始扩容:
「lvresize命令」
lvresize命令(=logical volume resize)用于调整LVM逻辑卷的空间大小,可以增大空间和缩小空间。使用lvresize命令调整逻辑卷空间大小和缩小空间时需要谨慎,因为它有可能导致数据丢失。
注:正常情况下该命令应该在卸载后再执行。
语法:lvresize [选项] [逻辑卷]
选项:-L:指定大小
「e2fsck命令」
检测磁盘错误(ext4执行)
「resize2fs命令」
更新逻辑卷信息(ext4执行)
更新逻辑卷信息后新分区在挂载的时候才能被识别新的大小。
「挂载」
验证:系统扩容不会使文件丢失:
缩容(xfs格式不支持)
「流程」
卸载(umount)-->检测(e2fsck -f)-->更新逻辑卷信息(大小)(resize2fs)-->重置逻辑卷大小(lvresize)
❝最后我们再看下「xfs」文件系统类型的扩容方法
❞
首先将「逻辑卷lv1」格式化成「xfs」格式:
进行扩容
流程:
更改逻辑卷信息(lvresize)-->更新逻辑卷信息(xfs_growfs)
1、更改逻辑卷信息(lvresize)
2、xfs_growfs命令(该命令必须在挂载状态执行)
扩容卷组
eg:将/dev/sdb3增加到vg1
语法:vgextend [卷组名] [物理卷]
往期精彩
如有收获,点个在看,诚挚感谢
LVM 逻辑卷学习的更多相关文章
- Linux学习之CentOS(二十六)--Linux磁盘管理:LVM逻辑卷的创建及使用
在上一篇随笔里面 Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理,详细的讲解了Linux的动态磁盘管理LVM逻辑卷的基本概念以及LVM的工作原理, ...
- 1.4 Linux下对lvm逻辑卷分区大小的调整(针对xfs和ext4不同文件系统)
当我们在安装系统的时候,由于没有合理分配分区空间,在后续维护过程中,发现有些分区空间不够使用,而有的分区空间却有很多剩余空间.如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑卷 ...
- 【转载】Linux磁盘管理:LVM逻辑卷管理
Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理 这篇随笔将详细讲解Linux磁盘管理机制中的LVM逻辑卷的基本概念以及LVM的工作原理!!! 一. ...
- Linux LVM逻辑卷配置过程详解
许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据,甚至被迫重新规划分区并重装操作系统,以 ...
- LVM逻辑卷的创建及使用
在上一篇随笔里面 LVM逻辑卷基本概念及LVM的工作原理,详细的讲解了Linux的动态磁盘管理LVM逻辑卷的基本概念以及LVM的工作原理,包括LVM中最重要的四个基本点(PE.PV.VG以及LV),这 ...
- LVM逻辑卷基本概念及LVM的工作原理
这篇随笔将详细讲解Linux磁盘管理机制中的LVM逻辑卷的基本概念以及LVM的工作原理!!! 一.传统的磁盘管理 其实在Linux操作系统中,我们的磁盘管理机制和windows上的差不多,绝大多数都是 ...
- Linux磁盘管理:LVM逻辑卷的创建及使用
一.创建LVM逻辑卷 事先添加了三块虚拟物理磁盘/dev/sdb 1G, /dev/sdc 2G, /dev/sdd 3G 使用fdisk –l命令查看: [root@localhost ~]# fd ...
- LVM备份(2)-创建LVM逻辑卷
懵逼了几天,对LVM快照备份总算有了个比较清晰的认识 总的来说,就是这样: 1.普通分区备份比较困难,需要转化成LVM逻辑卷进行管理 2.在新创建的LVM逻辑卷上进行业务操作,比如建数据库 3.某个时 ...
- LVM备份(1)-创建LVM逻辑卷
LV(Logical Volume) - 逻辑卷 VG(Volume Group) - 卷组 PV(Physical Volume) - 物理卷 1.查看分区信息:fdisk -l 可看到磁盘大小为1 ...
随机推荐
- 什么是Spring的MVC框架?
Spring 配备构建Web 应用的全功能MVC框架.Spring可以很便捷地和其他MVC框架集成,如Struts,Spring 的MVC框架用控制反转把业务对象和控制逻辑清晰地隔离.它也允许以声明的 ...
- Eureka和Zookeeper区别?
(1)Eureka取CAP的AP,注重可用性,Zookeeper取CAP的CP注重一致性. (2)Zookeeper在选举期间注册服务瘫痪,虽然服务最终会恢复,但选举期间不可用. (3)eureka的 ...
- 学习docker(三)
一.Docker介绍 1.docker容器 docker是宿主机的一个进程,通过namespace实现了资源隔离,通过cgroup实现了资源限制, 通过写时复制技术(copy-on-write)实现了 ...
- spring boot 自动装配的原理
参考: https://blog.csdn.net/Dongguabai/article/details/80865599.如有侵权,请联系本人删除! 入口: import org.springfra ...
- 调用高德地图web api 规划路线
实现地图输出,出发地与目的地路线,效果如下 具体代码如下 <!doctype html> <html> <head> <meta charset=" ...
- 1、Jetson Nano 远程桌面XP问题
jeston nano上网 方法3(最简单的方法) 最简单的方法真的特简单,用USB数据线连接主板的USB接口以及手机,打开手机的USB共享即可,若要使用静态IP,可在主板上修改配置文件,接口一般为u ...
- C 语言中 static 的作用
在 C 语言中,static 的字面意思很容易把我们导入歧途,其实它的作用有三条. (1)先来介绍它的第一条也是最重要的一条:隐藏 当我们同时编译多个文件时,所有未加 static 前缀的全局变量和函 ...
- PCB设计常见规则及基本原则
一.PCB基础知识 1.全称:印制电路板或者印制线路板 2.分类 材质分类:硬板(Rigid PCB).软板FPC(Flexible PCB).软硬结合板(Rigid-Flex PCB).HDI板(含 ...
- javascript 判断变量是否是数组(Array)
过完春节又有好多人寻找新的机会,旁边的人面试完就会分享一些问题,明明会的但是面试的时候,想不全,面试官不满意...这个懊恼的行为,今天的文章跟大家分享下:javascript如何判断便是是数组. 1. ...
- ES6-11学习笔记--const
新声明方式:const 1.不属于顶层对象 window 2.不允许重复声明 3.不存在变量提升 4.暂时性死区 5.块级作用域 以上特性跟let声明一样,特性可看 let 的学习笔记:链接跳转 ...