Linux系统中的lvm逻辑卷管理

1.概念介绍

背景:Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
LVM:使多个不相干的设备变成一个,以供使用;在原始数据不变的情况下,是设备变大

物理卷(pv):可以是实际物理硬盘的分区,也可以是整个物理硬盘
卷组(vg):建立在物理卷之上,一个卷组至少包含一个物理卷,在卷组建立后可以动态添加物理卷
逻辑卷(lvm):建立在卷组之上,建立后可以动态扩展和缩小空间,系统中多个逻辑卷可以属于同一个卷组,也可属于不同的多个卷组
物理扩展(pe):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe的大小)
表示方式:
/dev/卷组/逻辑卷
/dev/mapper/卷组-逻辑卷

2.创建lvm逻辑卷

1.新建一个目录

mkdir /lvmdata

在这里插入图片描述
2.划分物理分区,并修改分区标签为lvm

fdisk /dev/vdb

在这里插入图片描述
在这里插入图片描述
3.重新开启一个新的shell,使用如下监控命令,便于观察

watch -n 1 "pvs;echo ===;vgs;echo ===;lvs;echo ===;df -H /lvmdata"

在这里插入图片描述
在这里插入图片描述
4.创建物理卷

pvcreate /dev/vdb1                ##创建物理分区(将橙子榨成汁)

在这里插入图片描述

vgcreate -s 16M vg0 /dev/vdb1        ##(将橙子榨成汁倒入一个容器,单位是16M)

在这里插入图片描述

lvcreate -L 200M -n lv0 vg0 ##可以查看lvm卷的大小

在这里插入图片描述

lvcreate-L 20M-n lv0 vg0          ##将大容器的橙汁倒出到小杯子,想倒出20M,但由于最小单位为16M,所以会给出32M

在这里插入图片描述

mkfs.xfs /dev/vg0/lv0   ##将分出的lvm逻辑卷格式化才能挂载

在这里插入图片描述

mount/dev/vg0/lv0/lvmdata                         ##挂载/lvmdata下面用户才可使用

在这里插入图片描述

df 查看是否已经挂载
在这里插入图片描述

3.lvm扩容

1.xfs格式的拉伸

注意:文件系统是否能拉伸缩减是由文件系统本身决定的,xfs不能缩减(设备拉神后文件系统大小不变,因为格式化设备时,只格式化了固定大小)

第一种情况:当划分出来的主分区/dev/vdb1够用时,直接进行拉伸(一个橙子够喝的时候)

lvextend -L 100M /dev/vg0/lv0      ##将设备大小拉伸到100M

在这里插入图片描述

xfs_growfs /dev/vg0/lv0                 ##将文件系统也拉伸

在这里插入图片描述

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

fdisk /dev/vdb
n->p->2->Enter->+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/lv0  ##拉伸文件系统(否则拉神的文件不能用)

在这里插入图片描述

LOOK!!xfs文件系统不能进行缩减,ext4文件系统支持缩减,他的拉伸方式与xfs也不太一样

2.ext4格式的拉伸

umount /lvmdata                      ##卸载

在这里插入图片描述

mkfs.ext4 /dev/vg0/lv0   ##将文设备格式化为ext4文件系统

在这里插入图片描述

mount /dev/vg0/lv0 /lvmdata ##挂载

在这里插入图片描述

blkid  ##查看

在这里插入图片描述

lvexend -L 550M /dev/vg0/lv0  ##扩展lvm设备

在这里插入图片描述

resize2fs /dev/vg0/lv0  ##将文件系统也拉伸

在这里插入图片描述

4.怎样将ext4文件系统的设备进行缩减?

umount /lvmdata  ##卸载

在这里插入图片描述

e2fsck-f/dev/vg0/lv0     ##扫描设备中的东西,否则直接衰减会造成损坏

在这里插入图片描述

resize2fs /dev/vg0/lv0 100M            ##缩减文件系统

在这里插入图片描述

mount/dev/vg0/lv0 lvmdata     ##把vdb6从物理卷中拿出

在这里插入图片描述

df -H /lvmdata  ##查看大小

在这里插入图片描述

lvreduce -L 100M /dev/vg0/lv0  ##缩减lvm设备

在这里插入图片描述

5.如何将/dev/vdb2的东西移动到/dev/vdb1,空出/dev/vdb2

pvmove /dev/vdb2 /dev/vdb1  ##完全移过去再操作,否则损坏文件

在这里插入图片描述

vgreduce vg0 /dev/vdb2      ##把这个橙子移走

在这里插入图片描述

pvremove /dev/vdb2 

在这里插入图片描述

6.如何建立lvm的快照

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

umount /lvmdata  ##先卸载再进行快照

在这里插入图片描述

lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0  ##作快照

在这里插入图片描述

lvs  ##查看

在这里插入图片描述

mount /dev/vg0/lv0-backup /lvmdata  ##挂载快照

在这里插入图片描述

df -H

在这里插入图片描述

cd /lvmdata

在这里插入图片描述

7.怎么删除一个lvm设备?

umount /lvmdata

在这里插入图片描述

lvremove /dev/vg0/lv0-backup

在这里插入图片描述

lvremove /dev/vg0/lv0

在这里插入图片描述

vgremove vg0

在这里插入图片描述

premove /dev/vdb2

在这里插入图片描述

fdisk /dev/vdb  ##删除建立的所有主分区

在这里插入图片描述

发布了15 篇原创文章 · 获赞 4 · 访问量 393

猜你喜欢

转载自blog.csdn.net/weixin_43519951/article/details/103019970