逻辑卷管理器:PV、PE、VG、LV

news2024/11/25 5:24:46

LVM:Logical Volume Manager,逻辑卷管理器。
重点:可以弹性的调整文件系统的容量,而不在于性能和数据安全上面,因此如果强调性能和备份,那么直接使用raid即可,不需要用到LVM。

LVM可以整合多个物理分区,让这些分区看起来就像是一个磁盘一样;而且,未来还可以在这个LVM管理的磁盘当中新增或者删除其他的物理分区。因此它的重点在于“可以弹性地调整文件系统的容量

LVM各组件

LVM各组件的实现流程如上图,详细的组件介绍如下。

 物理卷(physical volume,PV,最底层的物理卷)

实际的分区需要调整系分区类型为8e00(使用gdisk分区工具,其实分区类型不设置成8e也没关系,不过某些LVM的检测命令可能会检测不到该分区),然后再经过pvcreate命令将它转化成LVM最底层的物理卷,之后才能使用这些pv。

卷组(volume group,VG)

LVM大磁盘就是将许多PV整合成VG,所以VG就是LVM组合起来的大磁盘。

物理扩展快(physical extent,PE)

PE是整个LVM最小的存储数据单位,即文件数据都是借由写入PE来完成的。简单的来说,这个PE有点像文件系统的block大小。因此调整PE会影响到LVM的最大容量。如果是32位的linux系统,LVM的逻辑卷LV最多65534个PE(lvm1的格式),因此默认的LVM,即使用4MB的PE数据块,最大的LV会有4MB*65534/(1024M/G)=256GB;但是在Centos 6.X之后,由于linux系统转为64位,并且PE使用了lvm2的各项格式功能,LV几乎没有啥容量限制了。

逻辑卷(logical volume,LV )

最终的卷组VG还会被切成逻辑卷LV,LV就是最后可以被格式化使用的东西了(类似分区)。逻辑卷LV的大小与LV内的物理扩展快PE数量有关,逻辑卷LV的设备文件名格式通常为【/dev/vgname/lvname】


如上图,VG内的PE会分给虚线部分的LV,如果未来这个卷组VG要扩充,加上其他的物理卷PV即可;如果逻辑卷LV要扩充的,加上卷组VG内没有使用的PE来扩充。在LV中,不再称为PE而是称为LE;PE是物理存储单元,LV是逻辑存储单元,即LV中的存储单元LE和PE的大小是一样的。

LVM可以弹性的调整文件系统的容量的实质:通过【交换PE】来进行数据转换,将原本LV内的PE转移到其他设备中来降低LV容量,或将其他设备的PE加入到此LV中以加大容量。

实践流程

 根据上图流程爱进行实验如下

物理parition阶段

根据磁盘分区表类型使用gdisk/fdisk工具,对磁盘分区并且类型设置为【8e00】,
磁盘状态如下:
sdb为1G的磁盘,划分了sdb1-3分区,1-2分区是用到的分区,3先保留下来不使用;sdc为2G的磁盘,全部划分为分区sdc1,并且使用;sdd为3G的磁盘,暂不进行分区使用。


PV阶段

物理卷PV有关的命令
pvcreate:将物理分区建立成为PV
pvscan:查找目前系统里面任何具有PV的磁盘
pvdisplay:显示出目前系统上面的PV状态
pvremove:将PV属性删除,让该分区不具有PV属性


因为分区sdb1的大小为1MB,然而系统默认的PV最小值为2MB,因此不能创建,可以修改默认值(建议不修改)。目前从上面来看,我们已经创建了2个物理卷PV。

pvdisplay可以列出系统里面的所有PV磁盘,也可以pvdisplay /dev/sdb2只列出单个PV的详细信息。由于PE是在建立卷组VG时才设置的参数,因此看到新的PV详细信息里面的PE都会是0,且没有多余的PE可供分配。

 VG阶段

建立卷组VG和VG相关的命令也不少,如下
vgcreate:主要建立VG的命令,VG名称自定义
"""
格式:vgcreate [-s N[UNIT]] VG名称 PV名称  其中-s选项后面接PE的大小N,单位UNIT可以为b|B是字节,s|S是512字节的扇区,k|K是KiB,m|M是MiB,g|G是GiB,t|T是TiB,P|p是PiB,e|E是EiB,默认设置的大小和系统的VG中PE大小一致,例如我的本机是4MB。
"""
vgscan:查找系统上面所有的VG
vgdisplay:显示系统上所有的VG详细状态
vgextend:在VG内增加额外的PV
vgreduce:在VG内删除PV
vgchange:设置VG是否启动(active)
vgremove:删除一个VG

建立时与物理卷PV不同的是,卷组VG的名称是自定义的。PV的名称就是分区设备的文件名,但是VG名称可以随便自己取。

 LV阶段

创造出卷组VG大磁盘之后,就需要建立分区逻辑卷LV,LV相关的命令如下:
lvcreate:建立LV
"""
格式:
lvcreate [-L N[UNIT]] [-n LV名称] VG名称
lvcreate [-l N] [-n LV名称] VG名称
-L选项后接容量,单位是UNIT(同pvcreate中的UNIT),但是要注意的是最小的单位为PE,因此这个数量必须是PE的倍数,若不相符,系统会自动计算最相近的容量
-l(小写)选项后面接的是PE的【个数】
-n 后面接的就是LV的名称,默认名称以本人的为例lvol[0-128],建议自己取名字
"""
lvscan:查询系统上所有的LV
lvdisplay:显示系统上所有的LV详细信息,或者显示某一LV(全名)的详细信息
lvextend:在LV里面增加容量,即将所在VG的空闲PE加进去
lvreduce:在LV里面减少容量,即将LV空闲的PE放回VG中去
lvremove:删除一个LV
lvresize:对LV进行容量大小的调整,是lvextend和lvreduce的综合命令
lvrename:重命名LV
"""
格式:
lvresize [-L  [+|-]Size[UNIT]]  LV的全名
lvresize [-l  [+|-]Number[PERCENT]]  LV的全名
-L后面接增减符号和容量,单位是UNIT,例如k,m,g,t,p等和pvcreate里的单位一样
-l后面接增减符号和数字百分比,单位是%

 LV的名字需要使用全名,但是PV的名字不要求使用全名也有效。

 文件系统阶段

该部分可参考之前的文章linux文件系统

1.格式化分区mkfs命令或者mke2fs命令
mkfs.xfs /dev/jupyvg/jupylv  # 注意是逻辑卷LV的全名
2.挂载,如果需要开机挂在之类的请参考上面提到的文章
mkdir /srv/jupy # 建立挂载点
mount /dev/jupyvg/jupylv /srv/jupy

放大文件系统容量的实践

如果要放大文件系统的容量,大致需要以下三步骤。

1.VG阶段需要有剩余的容量
因为要放大文件系统,所以需要放大LV,但是若没有多的VG容量,那么更上层的LV与文件系统就无法放大。一般来说,如果VG容量不满足,最简单的方法就是再加硬盘,然后pvcreate、vgextend来增大VG的容量。

2.LV阶段产生更多的可用容量
如果VG的剩余容量足够,就可以利用lvresize命令来将剩余容量加入到所需要的LV设备内。

3.文件系统阶段的放大
linux实际使用的其实不是LV,而是LV格式化后挂载的文件系统,即最终的一切要以文件系统为依存。目前在Linux系统下可以放大的文件系统有xfs和ext系列,但是缩小仅有ext系列xfs文件系统放大通过xfs_growfs命令。

ext4文件系统扩容

1.如果需要更改文件系统为ext4格式,需要先卸载挂载点,然后更改,再挂载回去

2.如果VG阶段的剩余容量即Free的PE数量够
例如,我们需要扩容1GB,vgdisplay查看所在的卷组VG的剩余容量为1.42GB左右,那么我们直接扩容LV(使用lvextend或者lvresize都可以),扩容之后


 


 

收缩文件系统容量的实践

如果要缩小文件系统容量,步骤如下。

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

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

相关文章

利用VNC远程连接Ubuntu server(图形界面)

有时会需要远程连上ubuntu server图形界面控制调试,这时VNC就是一个挺好的工具, windows 上安装 vnc viewer , ubuntu server 上安装vnc server 进行连接即可 一、ubuntu 安装vnc server 1.sudo apt-get install vnc4server 2.修改vnc pwd …

Django-ORM框架操作数据库不生效问题的定位示例

本文详细描述使用Django 的ORM框架操作PostgreSQL数据库删除不生效问题的定位过程及解决方案,并总结使用ORM框架操作数据库不生效的问题的通用定位方法 问题描述 最近使用Django 的ORM框架操作PostgreSQL数据库总是出现删除不生效(尤其是在并发的时候&…

C#/.Net开发chatGPT、openAI

C#/.Net开发chatGPT、openAI 最近ChatGPT火爆了,自己使用了一下,确实厉害。但是使用官方网站不支持国内访问,好在国内可以使用API调用,所以自己折腾一番,使用C#来调用API。 获取Token 注册账号获取api-keys等操作可…

HR软件如何人性化管理提高留存率

一直以来,我们都在强调“人是企业最大的资产”,这应该是新时代下,企业对于人才管理的共识。在这样的环境中,人力资源部门承担着重要的责任,HR需要迎合当前的人才需求和管理趋势,在“技术运用”和“人性管理…

激活函数、Sigmoid激活函数、tanh激活函数、ReLU激活函数、Leaky ReLU激活函数、Parametric ReLU激活函数详细介绍及其原理详解

相关文章 梯度下降算法、随机梯度下降算法、动量随机梯度下降算法、AdaGrad算法、RMSProp算法、Adam算法详细介绍及其原理详解反向传播算法和计算图详细介绍及其原理详解激活函数、Sigmoid激活函数、tanh激活函数、ReLU激活函数、Leaky ReLU激活函数、Parametric ReLU激活函数…

从技术、产品、运营3个维度详尽阐述从0到1搭建用户画像系统

通过阅读以下原文获取下载链接。 ​​​​​从技术、产品、运营3个维度详尽阐述从0到1搭建用户画像系统 1 简介 本书借助数据仓库实现一套用户画像系统的方案。从实际工程案例出发,结合多业务场景,内容涵盖开发离线批处理计算的标签及流式计算标签&am…

【C语言进阶】 带你玩转指针

指针进阶一、字符指针二、指针数组三、数组指针3.1:数组指针的使用四、数组参数、指针参数4.1:一维数组传参4.2:二维数组传参4.3:一级指针传参:4.4:二级指针传参:五:函数指针一、字符…

直播 | StarRocks 联合腾讯云分享 EMR-StarRocks 的降本增效之路

极速湖仓(Lakehouse)是 StarRocks 构建极速统一新范式的核心支点。 用户无需将数据导入到 StarRocks 中,无需构建昂贵的数仓,即可实现亚秒级的查询速度,统一分析离线和实时数据,全面发挥湖仓架构的潜在优势…

让国外软件也害怕,4款国产黑科技软件,功能强大且实用

国外月亮不一定比国内圆,国外的软件也不一定比国内好,下面几款软件功能强大到离谱,甚至比国外同款软件更好用。 1、Dism 这是一款妥妥的良心电脑系统优化工具,虽然英文名字,却是由热爱软件的大学生开发,属于…

Android 使用dx/d8将jar转换为dex

前言 在 JDK1.8 之前我们可以通过 dx 工具将 jar 转为 dex。 为了能够支持 JDK1.8,目前 AGP 是通过在 D8/R8 将 class 文件编译成 dex 文件的过程中,对字节码进行转换来实现的,这个转换过程称为脱糖。 因此 JDK1.8 及以后我们需要使用 d8 工…

计算机网络笔记之物理层

文章目录比特、比特率,码元率(波特率)通信方式之单工、半双工和双工介质访问控制数据、信号、模拟信号、数字信号传输介质多模光纤和单模光纤光纤的优点无线传输卫星通信的特点参考计算机网络笔记之网络概论 物理层的主要功能是规定了接口的…

如何优化 order by 语句

order by 查询语句使用也是非常频繁,有时候数据量大了会发现排序查询很慢,本文就介绍一下 MySQL 是如何进行排序的,以及如何利用其原理来优化 order by 语句。 建立一张表: CREATE TABLE cc4 (id INT(11) NOT NULL,user_name VA…

reactHooks+TS:富文本braft-editor常见用法

react富文本braft-editor使用 阅读文档推荐:https://www.yuque.com/braft-editor/be、https://braft.margox.cn/demos/code-highlighter、 1、安装 # 使用npm安装 npm install braft-editor --save# 使用yarn安装 yarn add braft-editor2、基本使用 第一步&…

FGH60N60SMD 60A600V IGBT单管在工业逆变应用中的解决方案

场截止IGBT单管 60A600V FGH60N60SMD 采用新型场截止 IGBT 技术,为太阳能逆变器、UPS、焊接机、电信、ESS 和 PFC 等低导通和开关损耗至关重要的应用。 ONsemi安森美IGBT单管系列: FGH40N60SMD FGH60N60SMD FGH75T65SHD-F155 NGTB40N120FL2WG特性&…

基于pytorch的CREStereo立体匹配算法

文章目录前言一、CREStereo是什么?1.自适应群相关层局部特征注意力2D-1D转换局部搜索可变形的搜索窗口Group-wise相关性2.级联的网络3.叠加级联推理4.叠加级联推理损失函数二、基于pytorch的CREStereo立体匹配算法前言 CREStereo目前在middlebury上的排名第三&#…

Java高手速成 | Spring、JPA与Hibernate的整合

01、设置Spring的配置文件 在Spring的配置文件applicationContext.xml中&#xff0c;配置C3P0数据源、EntityManagerFactory和JpaTransactionManager等Bean组件。以下是applicationContext.xml文件的源程序。 /* applicationContext.xml */ <?xml version"1.0" …

【财务】FMS财务管理系统---审计流程

本文是电商系列的终结篇&#xff0c;笔者在本文介绍了审计流程及注意事项。 本篇是介绍财务审计的&#xff0c;作为电商系列的终结篇。后续计划去完成供应链后台的相关系统的梳理与学习&#xff0c;非常感谢朋友们在阅读过程中提出的问题与建议。 一、审计及流程 财务审计是每…

吴晓波年终秀原版PPT下载

省时查报告-专业、及时、全面的行研报告库省时查方案-专业、及时、全面的营销策划方案库【免费下载】2022年11月份热门报告盘点2023年&#xff0c;如何科学制定年度规划&#xff1f;罗振宇2023年跨年演讲PPT原稿《底层逻辑》高清配图清华大学256页PPT元宇宙研究报告.pdf&#x…

nginx学习笔记2(小d课堂)

nginx目录文件讲解&#xff1a; 我们这里要去了解我们画红框了的这四个目录。 我们一般只用这两个文件&#xff0c;nginx.conf.default是nginx的默认模板。 我们先来看看这个默认模板&#xff1a; 这里面会有特别多的配置&#xff0c;我们后面的课会去学到。我们可能以后改哪个…

【实战篇】37 # 如何使用 QCharts 图表库绘制常用数据图表?

说明 【跟月影学可视化】学习笔记。 QCharts 图表库 QCharts 是一个基于 spritejs 封装的图表库&#xff0c;可以让用户以组件的形式组合出各种图表&#xff1a;https://www.qcharts.cn/#/home QCharts 图表的基本用法 最简单的方式是&#xff0c;直接通过 CDN&#xff0c;…