首页 > 系统相关 >[RHEL7基础篇-14] Linux中的LVM管理

[RHEL7基础篇-14] Linux中的LVM管理

时间:2024-07-27 17:24:49浏览次数:19  
标签:RHEL7 逻辑 快照 14 文件系统 dev Linux data0 exam

简介

LVM(逻辑卷管理)是一种在Linux 系统上使用的逻辑卷管理工具。它允许用户管理磁盘分区和分卷,以便更有效地使用存储空间。LVM 是一种强大的存储管理工具,使用户能够更有效地管理磁盘空间,并提供高级功能来保护数据和增强系统的可用性。下面我们将使用RHEL7来学习LVM的使用。

LVM的概念

1、与物理磁盘分区相比,逻辑卷管理为管理磁盘空间提供了更灵活的方式。

2、物理磁盘分区中的原始磁盘空间能够合并在一起或者分为若干个名为“逻辑卷”的虚拟分区。

3、可以实现很多强大的功能,例如创建大于任何一个磁盘的文件系统,将一个磁盘分为14个以上的文件系统,以及轻松扩展现有文件系统使其具有更大空间而无需对其重新格式化。

名称概念
物理区域(Physical Extent)每一个物理卷被划分为大小相等的可用于分配的最小存储单元。卷组,逻辑卷是由一个或多个物理卷的物理区域的集合。
物理卷(Physical Volume)标记为LVM的可用空间的分区。在MBR磁盘上,用分区类型0x8e 标记。
卷组(Volume Group)一个或多个物理卷的集合。可以将其想象成一个虚拟磁盘驱动器。
逻辑卷(Logical Volume)可以将其想象成卷组的虚拟分区。使用文件系统对其格式化,用法如同分区一样。

LVM的创建

LVM的创建方式有两种,一种是命令行的方式进行创建,另一种是像Windows一样使用图形化管理工具创建,这里主要讲述命令行创建的方式。

一、命令行方式

1、创建新物理分区(主分区)并编辑新分区将其类型更改为linux lvm(0x8e)

注:在创建逻辑分区前需要先创建物理分区(和Windows类似),详细解析可以查看[RHEL7基础篇-5] 文件系统和磁盘管理 文件系统第5点,文中涉及到的sdb、sdc都是新加的卷,需要另外加入硬盘。

 

使用上图同样的方法创建sdb的物理分区

2、将新物理分区初始化为LVM物理卷

建立物理卷sdb1和sdc1
> pvcreate /dev/sdb1
> pvcreate /dev/sdc1

成功创建如下图

 

 关于物理卷的一些其他命令

扫描有哪些物理卷
> pvscan

查看物理卷的详细信息
> pvdisplay

删除物理卷
> pvremove

效果如图所示 

 

3、 使用新物理卷创建卷组

标准命令
> vgcreate [-option] vgname pv  # -s 设置PE大小,默认为4M

/dev/sdb1和/dev/sdc1把创建名为exam的卷组,使用默认的PE设置
> vgcreate exam /dev/sdb1 /dev/sdc1

成功创建如下图 

 

 关于卷组的一些其他命令

扫描有哪些卷组
> vgscan

查看卷组的详细信息
> vgdisplay

将/dev/test1从vg0卷组里剔除
> vgreduce vg0 /dev/test1

 效果如图所示 

 

4、 在新卷组内创建逻辑卷

从VG:exam里建立名称为data0,容量为800M的逻辑卷
> lvcreate -L 800M -n data0 exam

200个PE,容量为200*4M
> lvcreate -l 200 -n data0 exam

 

 关于逻辑卷的一些其他命令

扫描有哪些卷组
> lvscan

查看卷组的详细信息
> lvdisplay

 效果如图所示  

 

5、格式化逻辑卷文件系统

> mkfs.ext4 /dev/exam/data0

 成功创建如下图

6、进行文件系统挂载

创建目录/data0
> mkdir /data0
挂载/dev/exam/data0到/data0
> mount /dev/exam/data0 /data0
查看目前挂载情况
> df -h

 成功如下图所示

注:到这里只是进行了一次性的挂载,重启后将需要重新挂载,若想永久挂载可以查看[RHEL7基础篇-5] 文件系统和磁盘管理 中的磁盘管理。

二、图形化管理工具: Logical Volume Management(system-config-lvm)

        和Windows较为类似,但是需要注意的是,安装时请不要选择最小安装,需要选择Server GUI,具体请查看[RHEL7基础篇-1] 简介及安装

扩展LVM

        需要扩展LVM需要先了解物理分区、物理卷、卷组和逻辑卷的关系,而他们的关系是嵌套式的,就是物理分区包含着物理卷,物理卷包含着卷组,卷组包含着逻辑卷。最终效果为逻辑卷,动态调整其容量大小并且可以在不停机的情况下增加其大小。而卷组中的可用物理范围可以添加到逻辑卷中,以扩展其容量,然后可用于扩展其包含的文件系统,即先扩展逻辑卷大小,再扩展文件系统大小。若所有空间都已经进行分配了则需要从外道内的形式进行扩容。

扩展逻辑卷基本步骤:

1、验证卷组中的可用空间(若不足则需要扩展物理卷)

验证已挂载文件系统/data0 的当前大小
> df -h /data0

验证“可用物理区块”是否够用
> vgdisplay exam

如果不够用,应先增加pv,然后再扩大vg,例如:
> pvcreate /dev/sdc1
> vgextend exam /dev/sdc1

 

2、扩展逻辑卷

逻辑卷增加20个PE,1个PE为4M即80M
> lvextend -l +20 /dev/exam/data0 # 无+号意味着增加到20,+表示增加了20

3、扩展文件系统

扩展在/data0上挂载的文件系统
> resize2fs -p /dev/exam/data0 # 需要选择对应的文件系统扩展命令,该命令为ext4文件系统

 

4、验证

验证已挂载文件系统/data0 的新的大小
> df -h /data0

 

缩小LVM

        减少文件系统和逻辑卷,过程类似于扩展,但顺序相反。先减少文件系统大小,再减少逻辑卷。在减少逻辑卷大小之前,务必保留备份,因为命令行中的错误会导致数据丢失。

1、在脱机下进行减少ext4 文件系统。

解除挂载要减少的文件系统
> umount /data0

 

2、在进行大小调整之前验证所有文件系统数据结构是否都已得到清理

> e2fsck -f /dev/exam/data0


3、将文件系统大小调整为512MB,假设逻辑卷大于512MB。

> resize2fs -p /dev/mapper/exam-data0 512M


4、将逻辑卷减少到512MB。

> lvreduce -L 512M /dev/mapper/exam-data0


5、重新挂载/etc/fstab中列出的所有文件系统,或者使用mount挂载

把/dev/exam/data0挂载到/data0
> mount /dev/exam/data0 /data0

 

LVM快照

        创建快照以便于数据备份,快照逻辑卷是LVM存储的另一项工作,LVM快照是临时保留所更改的逻辑卷的原始数据的逻辑卷。快照提供原始卷的静态视图,从而能够以一致状态备份其数据。在进行快照创建前需要做一些准备工作,确定快照大小的预期变化率和所需快照时间。

注:快照卷大小只需足以存储在它存在期间更改的数据即可。如果数据更改量大于快照存储容量,则快照将自动变为不可用。(原始卷原封不动,仍然需要从卷组中手动解除挂载和删除不可用的快照。)

1、创建 /dev/exam/data0 的名为 snaplvname ,大小为20MB的新快照卷

> lvcreate -s -n snaplvname -L 20M /dev/exam/data0


2、如果备份软件要求,请挂载该快照

> mkdir /snapmount
> mount -o ro /dev/exam/snaplvname /snapmount


3、验证快照逻辑卷的状态

> lvs /dev/exam/snaplvname


4、不再使用快照时,请解除挂载并删除它:

> umount /snapmount
> lvremove /dev/exam/snaplvname

注意点

1、扩容lvm,在进行resize2fs 之前,由于处于挂载状态,最好不要fsck缩小lvm,请先umount,然后再做fsck   -f   /dev/vg1/lv1。(热扩容,冷缩小)

2、在一个vg上可以创建多个lvm,而一个lvm只能在一个vg上

 3、pv可以基于分区,也可以基于硬盘,在创建分区时,记得在 t 时,选为8e

 4、一个vg里最多允许2的32次方个PE存在(也就是65534个),如果以4M为默认的PE大小的话,单个逻辑卷最大容量256G。PE的大小范围从8KB到16GB,并且必须总是2的倍数

 6、快照lvm和对应的原始数据lvm必须在同一个卷组内,才可以建立成功

> lvcreate -s -L 30M -n backup_vg1_lv1 /dev/vg1/lv1 # 创建快照
> lvcreate -s -L 30M -p r -n back_vg1_lv1 /dev/vg1/lv1 # 创建只读快照
> mount -o ro /dev/vg1/backup_vg1_lv1 /mnt2 # 载只读快照,lvs可看使用情况

        数据的快照技术可以应用于数据的备份上!数据库的数据备份就是一个很典型的例子。

标签:RHEL7,逻辑,快照,14,文件系统,dev,Linux,data0,exam
From: https://blog.csdn.net/zjw529507929/article/details/140630286

相关文章

  • Linux磁盘管理
    Linux磁盘管理Linux在使用过程中产生的数据量不断增大,逐渐导致初始配置的磁盘空间不足,这时候就需要进行扩容,以满足业务需求。一般情况下会选择新添加磁盘,本文介绍了如何将新磁盘分区、格式化、挂载或制作LVM逻辑卷,进行磁盘空间扩容。1.基本分区磁盘的分区格式一共有两种:一......
  • Linux应用层开发(6):SPI通信
            本章通过讲解在应用层中使用SPI总线与外部设备的通讯,讲解Linux系统总线类型设备驱动架构的应用,它与上一章的I2C总线操作方法非常相似,可以对比学习。在Linux内核文档的Documentation/SPI目录下有关于SPI驱动非常详细的说明。1. SPI通讯协议简介     ......
  • Linux应用层开发(5):I2C通讯
    1.I2C通讯协议简介 I2C通讯协议(Inter-IntegratedCircuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外部收发设备,被广泛地使用在多个集成电路(IC)间的通讯。 1.1. I2C物理层I2C通讯设备之间的常用连接方式如下图。......
  • 如何在Linux上的python中以后台模式打开程序?
    我需要在Linux上以后台模式使用python打开另一个程序。我尝试过subprocess.call("yourcommand")但它不是后台模式。并且os.startfile("file")在Linux上不起作用。请帮助我。可以使用Python的subprocess模块在Linux上以后台模......
  • ctfshow-web入门-php特性(web142-web146)
    目录1、web1422、web1433、web1444、web1455、web1461、web142要求 v1是数字,之后将v1乘以0x36d(即16进制的869)五次,然后将结果转换为整数并赋值给变量$d,使用sleep函数使程序休眠$d秒,最后读取flag.php文件的内容并输出到浏览器。那直接传0呗,不然乘出来都太......
  • Linux工作原理10网络应用程序和服务
    10网络应用程序和服务本章探讨基本的网络应用--在用户空间运行的客户端和服务器,它们位于应用层。由于这一层位于堆栈的顶层,离最终用户很近,因此你可能会发现这部分内容比第9章的内容更容易理解。事实上,你每天都在与网络浏览器等网络客户端应用程序交互。为了完成工作,网络客户......
  • Linux捣鼓记录:debian配置语言环境
    1.安装区域设置sudoaptupdatesudoaptinstalllocales2.配置语言环境sudodpkg-reconfigurelocales按空格多选,选中en_US.UTF-8和zh_CN.UTF-8这里多选择了英文,可以避免有些软件比如steamcmd报警告:WARNING:setlocale('en_US.UTF-8')failed,usinglocale:'C'.......
  • 无法连接到127.0.0.1:53233的chrome,此版本的ChromeDriver仅支持Chrome版本114。当前浏
    drivercode:fromselenium.webdriver.common.byimportByfromselenium.webdriver.chrome.serviceimportServicefromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasecimportundetected_chrom......
  • 14、flask-模型-models-表的操作-增删改查
    1.单表操作1.修改表结构接着上一步的数据迁移后、生成了表,接下来就要对表的操作这里稍微对表结构改了一下models.pyfrom.extsimportdb#导入db对象classUser(db.Model):#表名__tablename__='user'#字段id=db.Column(db.Integer,primar......
  • Ubuntu14.04QT程序开机自启动(转)
     按语:    linux应用程序设为开机自启动,可修改/etc/rc.local中添加启动代码,但QT应用程序无法自动启动,后参考此文,添加应用(原来做好的desktop文件),成功。1.运行已经编辑好的QT程序,run、debug,生成类似于build-qtplot-Desktop-Debug的文件,当然程序在编译时会显示该debu......