LVM逻辑卷管理

什么是LVM

LVM(Logical Volume Manager)逻辑卷管理,是Linux环境下对磁盘分区管理的一种机制。是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现一种磁盘空间的动态管理。对于其他的的UNIX(AIX/HP/SUM)操作系统,以及Windows系统也有类似的磁盘管理软件。LVM管理的方式非常简单,就是通过将底层的物料磁盘抽象并封装起来,然后以逻辑的方式呈现给上层应用

为什么使用LVM

逻辑卷和逻辑卷管理有助于更加轻松地管理磁盘空间。如果文件系统需要更多的空间 , 可以将其卷组的可用空间分配给逻辑卷 ,
并且可以调整文件系统的大小。如果磁盘开始出现错误 , 可以通过卷组将替换磁盘注册为物理卷 , 并且逻辑卷的范围可迁移到新磁盘

名词解释

PV(Physical Volume):物理卷,处于LVM最底层,可以是物理硬盘或者分区
PP(Physical Extend):物理区域,PV中可以用于分配的最小存储单元,可以在创建PV的时候制定,组成同一VG中所有PV的PE大小应该相同
VG(Volume Group):卷组,建立在PV之上,可以含有一个到多个PV
LV(Logical Volume):逻辑卷,建立在VG之上,相当于原来分区的概念。不过大小可以动态改变

命令快览          

任务PV阶段VG阶段LV阶段文件系统
查找pvscan  vgscanlvscanlsblk、blkid
建立pvcreatevgcreatelvcreatemkfs.xfsmkfs.ext4
列出pvdisplayvgdisplaylvdisplaydf、mount
增加

 

vgextendlvextendxfs_growfsresize2fs
减少 vgreducelvreduce不支持resize2fs
删除pvremovevgremovelvremoveumount、重新格式化
修改容量  lvresizexfs_growfsresize2fs
修改属性pvchangevgchangelvchange/etc/fstab、remount

LVM创建

1.创建LVM分区类型:方法和创建其他一般分区的方式是一样的,区别仅仅是LVM的分区类型为8e

2.创建一个逻辑卷:创建物理卷(PV)-->创建卷组(VG)-->创建逻辑卷组(LV)

watch -n 1 'pvs;echo ...;vgs;echo ...;lvs;echo...;df -h /test'   ##另开一shell建立监控命令

mkdir /test
fdisk /dev/vdb       ##创建分区
t-->8e-->wq          ##改为lvm
mount /dev/vdb2 /test
pvcreate /dev/vdb2              ##创建物理卷pv
vgcreate testgroup /dev/vdb2    ##建物理卷组VG,组名任意
lvcreate -L 50M -n test testgroup  ##建立逻辑卷lv取容量
mkfs.xfs  /dev/testgroup/test      ##格式化逻辑卷
mount /dev/testgroup/test  /test/  ##挂载逻辑卷

lvm逻辑卷扩容

lvextend -L 80M /dev/testgroup/test  拉伸,但是文件系统大小不变
xfs_growfs  /dev/testgroup/test      拉伸文件系统

fdisk /dev/vdb      ##加分区
partprobe           ##同步分区表
cat /proc/partitions
pvcreate /dev/vdb3  ##新添vdb3做成物理卷
vgextend testgroup /dev/vdb3  ##扩容,将vdb3加入物理卷组
lvextend -L 150M /dev/testgroup/test ##拉伸
xfs_growfs /dev/testgroup/test   ##拉伸文件系统

lvm的检测

pvs           ##检测pv的建立
vgs           ##检测vg的建立
lvs           ##检测lv的建立

针对ext文件系统的设备的拉伸和缩减

xsf文件不可缩减,所以要将其换成ext4文件,ext4文件可扩展可缩减

umount /test/     ##先解除挂载
mkfs.ext4 /dev/testgroup/test   ##格式化改格式为ext4,支持文件系统缩容
mount /dev/testgroup/test /test/
lvextend -L 160M /dev/testgroup/test ##扩展逻辑卷
resize2fs /dev/testgroup/test        ##刷新

格式化为ext4格式,blkid查看

将逻辑卷和文件系统扩容

查看效果

LVM缩容操作(先缩软件再缩设备)

umount /test/
e2fsck -f /dev/testgroup/test      ##扫描
resize2fs  /dev/testgroup/test 50M ##缩文件系统
mount /dev/testgroup/test /test/   ##挂载
lvreduce -L 50M /dev/testgroup/test  ##缩逻辑卷

先解除挂载,扫描文件系统(通常在挂载的文件系统上运行e2fsck是不安全的)

缩容再次挂载(先缩文件系统再缩逻辑卷)

查看结果

移除操作

1)在物理卷没有数据时,可以直接移除

vgreduce testgroup  /dev/vdb1

2)当物理卷有数据时要移除物理卷前,需将其中的数据移动到其他的pv中

pvmove  /dev/vdb2 /dev/vdb1    ##迁移(尽量移到一个,闲置)
vgreduce testgroup  /dev/vdb2  ##缩物理卷,将物理卷从卷组除去    
pvremove  /dev/vdb2            ##移除设备

将vdb2数据移到vdb1中,监控可看到vdb1和vbd2的剩余空间大小变了

缩物理卷,移除设备vdb2

查看效果

lvm的快照(可以完成数据恢复)

touch /test/file{1..3}    ##先在/test建立一些文件
umount /test/             ##解除挂载
lvcreate  -L 10M -n test_backup -s /dev/testgroup/test ##建立快照 
-L大小:预计改的容量    -n名字     -s代表拍照到指定路径,照的卷组   
mount /dev/testgroup/test_backup /test/ ##挂载快照
rm -rf /test/*  ##删/test中的文件
lvremove /dev/testgroup/test_backup ##删快照     
ls /test/
查看文件还在证明只是删了快照本身文件不受影响

注意:先解除挂载再删除快照!

再次建立新快照,挂载查看内容,原文件内容还在,实现了文件系统的备份

彻底删除LVM,还原原来的分区:(和建立步骤刚好相反)

umount /test/     ##卸载
lvremove /dev/testgroup/test_backup ##删除快照
lvremove /dev/testgroup/test ##删除逻辑卷组
vgremove testgroup           ##删除物理卷组
pvremove  /dev/vdb{2..3}     ##删除物理卷
fdisk /dev/vdb 
删设备d-->2-->wq              ##删设备
partprobe                    ##还原环境

删设备,同步分区表

排错

(1)pvs报错   原因:把正用的vdb*删了
执行命令:vgreduce --removemissing testgroup
(2)vim /etc/fstab 编辑有误,系统起不来
进入登陆选择界面,按上下键停止选择进系统,选择要进的系统按e编辑--> ctrrl+x-->chroot /sysroot/  ##切换到真实系统环境-->vim /etc/fstab ##重新修改-->两次exit退出
因而每当编辑完配置文件,直接执行mount -a 查错!避免麻烦   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值