Linux磁盘管理之LVM

本文架构

在这里插入图片描述

LVM基本介绍

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制 它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版

Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小

当一个逻辑分区存放不下某个文件时,这个文件受上层文件系统的限制,不能跨越多个分区来存放,所以也不能同时放到别的磁盘上

而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接 或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题

随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小

为什么要使用LVM?

在日常工作或者学习中,随着电脑的不断被使用,我们的磁盘空间可能会越来越小,这时候,我们不能直接更换大硬盘,因为硬盘有价,数据无价,这时候我们就可以使用LVM,LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小,另外,和硬件相关的存储设置被其隐藏,你能不用停止应用或卸载文件系统来调整卷大小或数据迁移.这样能减少操作成本,LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

LVM工作机制

LVM就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。

在这里插入图片描述

LVM的基本结构

物理存储介质(Physical Storage Media)指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元
物理卷(Physical Volume,PV)指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数
卷组(Volume Group,VG)类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成,可以在卷组上创建一个或多个LV(逻辑卷
逻辑卷(Logical Volume,LV)类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上,在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等
物理块(Physical Extent,PE)每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元PE的大小是可配置的,默认为4MB,所以物理卷(PV)由大小等同的基本单元PE组成
逻辑块(Logical Extent,LE)逻辑卷LV也被划分为可被寻址的基本单位,称为LE,在同一个卷组中,LE的大小和PE是相同的,并且一一对应

在这里插入图片描述

在这里插入图片描述

图中顶部,首先是实际的物理磁盘及其划分的分区和其上的物理卷(PV)。一个或多个物理卷可以创建创建卷组(VG)。然后基于卷组可以创建逻辑卷(LV)。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统挂载和访问。

在这里插入图片描述

LVM常用命令

PV 阶段
pvcreate将实体 partition 创建成为 PV ;
pvscan/pvs搜寻目前系统里面任何具有 PV 的磁盘;
pvdisplay显示出目前系统上面的 PV 状态;
pvremove将 PV 属性移除,让该 partition 不具有 PV 属性。
VG阶段
vgcreate就是主要创建 VG 的指令啦!他的参数比较多,等一下介绍。
vgscan/vgs搜寻系统上面是否有 VG 存在?
vgdisplay显示目前系统上面的 VG 状态;
vgextend在 VG 内增加额外的 PV ;
vgreduce在 VG 内移除 PV;
vgchange设置 VG 是否启动 (active);
vgremove删除一个 VG 啊!
LV阶段
lvcreate创建 LV 啦!
lvscan /lvs查询系统上面的 LV ;
lvdisplay显示系统上面的 LV 状态啊!
lvextend在 LV 里面增加容量
lvreduce在 LV 里面减少容量;
lvremove删除一个 LV !
lvresize对 LV 进行容量大小的调整!

在这里插入图片描述

LVM卷的建立和删除

在这里插入图片描述

LVM设备的建立

步骤一:使用监控命令:watch -n 1 'pvs;echo======;vgs;echo ========;lvs;echo ======;df -h /data’进行监控
步骤二:mkdir /data 新建一个用户使用存储空间的挂载目录
步骤三:fdisk -l 查看一个未分区的设备
步骤四:fdisk /dev/vdb 划分一个主分区/dev/vdb1 ; wq退出保存(500M)
步骤五:fdisk /dev/vdb 按t,将标签写为8e(贴lvm标签)wq退出保存
步骤六:pvcreate /dev/vdb1 创建物理分区(将橙子榨成汁)
步骤七:vgcreate -s 16M vg0 /dev/vdb1 (将橙子汁倒进一个大容器,单位是16M)
步骤八:vgdisplay 可以查看lvm卷的大小
步骤九:lvcreate -L 20M -n lv0 vg0(将大容器的橙子汁倒出来小杯子喝,想倒20M,但是最小单位是16M,所以会给我32M)
步骤十:mkfs.xfs /dev/vg0/lv0(将分出来的lvm逻辑卷格式化才能挂载)
步骤十一:mount /dev/vg0/lv0 /data/(挂载在/data下面客户才能用)
步骤十二:df查看是否挂载

在这里插入图片描述
新建一个分区

在这里插入图片描述
在这里插入图片描述

建立pv

在这里插入图片描述

导入vg0

在这里插入图片描述

建立lv0

在这里插入图片描述

挂载到/data目录上

在这里插入图片描述

在这里插入图片描述

LVM设备的删除

步骤一:umount /data
步骤二:lvremove /dev/vg0/lv0-backup
步骤三:lvremove /dev/vg0/lv0
步骤四:vgremove vg0
步骤五:pvremove /dev/vdb2
步骤六:fdisk /dev/vdb 删除建立的所有主分区即可

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

LVM卷的伸缩

xfs文件系统

在这里插入图片描述

分区足够
步骤一:输入监控命令:watch -n 1 ‘pvs;echo======;vgs;echo ========;lvs;echo ======;df -h /data’
步骤二:分情况处理
第一种情况:当划分出来的主分区/dev/vdb1够用时,直接进行拉伸(一个橙子够喝的时候)

lvextend -L 100M /dev/vg0/lv0 拉伸lvm的大小

xfs_growfs /dev/vg0/lv0 同步文件系统的大小

在这里插入图片描述
在这里插入图片描述

分区不够
第二种情况:当划分出来的主分区/dev/vdb1不够用时(我想将lvm拉伸为600M),先划分一个主分区出来/dev/vdb2,再拉伸

fdisk /dev/vdb
n->p->2->回车->+100M->p查看/dev/vdb2->t->2->8e->p查看->wq保存

partprobe 同步分区表

pvcreate /dev/vdb2 榨橙汁

vgextend vg0 /dev/vdb2将橙汁倒进去大杯子

lvextend -L 600M /dev/vg0/lv0 拉伸lvm

xfs_growfs /dev/vg0/lvo 拉伸文件系统(否则拉伸的文件不能用)
说明:xfs文件系统不能进行缩减,ext4文件系统支持缩减,它的拉伸方式与xfs也不太一样

在这里插入图片描述
在这里插入图片描述

#

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

ext4文件系统

在这里插入图片描述

拉伸ext4文件系统
步骤一:umount /data
步骤二:mkfs.ext4 /dev/vg0/lv0将设备格式化为ext4文件系统
步骤三:mount /dev/vg0/lv0 /data挂载
步骤四:blkid查看
步骤五:lvextend -L 550M /dev/vg0/lv0 扩展lvm设备
步骤六:resize2fs /dev/vg0/lv0 将文件系统也拉伸

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

缩减ext4文件系统
步骤一:umount /data
步骤二:e2fsck -f /dev/vg0/lv0扫描这个设备里面的东西,否则直接缩减会造成损坏
步骤三:resize2fs /dev/vg0/lv0 100M 缩减文件系统 
步骤四:mount /dev/vg0/lv0 /data
步骤五:df -H /data 查看大小
步骤六:lvreduce -L 100M /dev/vg0/lv0 缩减lvm设备

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

LVM中内容的移动

步骤一:pvmove /dev/vbd2 /dev/vdb1完全移过去再操作,否则会损坏文件
步骤二:vgreduce vg0 /dev/vdb2 将这个橙汁移走
步骤三:pvremove /dev/vdb2

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

建立lvm的快照

当真实的设备文件挂载在/data下面比较危险,损坏就不能恢复。因此给真实设备照一个快照,挂载在/data下面再进行一系列的操作。如果误删除什么东西,直接删除快照即可

步骤一:umount /data 先卸载再进行快照
步骤二:lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0 做快照
步骤三:lvs 查看
步骤四:mount /dev/vg0/lv0-backup /data 挂载快照
步骤五:df -H
步骤六:cd /data 
ls就可以进行修改了
rm -rf *
如果错误操作直接卸载
umount /data
lvremove /dev/vg0/lv0-backup
然后重新照,重新挂载

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值