Linux中的Lvm逻辑卷管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中的Lvm逻辑卷管理相关的知识,希望对你有一定的参考价值。
linux用户安装linux操作系统时遇到一个常见的难以解决的问题就是如何正确的评估各分区大小,以分配合适的磁盘空间,普通的磁盘分区方式在逻辑分区划分好之后就无法改变其大小,分区内存不能满足需要的解决方法。
逻辑卷管理Logical Volume Manager
它是linux环境下对磁盘分区进行管理的一种机制。linux用户安装linux操作系统时遇到一个常见的难以解决的问题就是如何正确的评估各分区大小,以分配合适的磁盘空间,普通的磁盘分区方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上,出现某个分区空间将耗尽的问题时,linux逻辑卷管理功能的出现,用户在无需停机的情况下可以方便的调整各分区的大小
#1.pv##物理卷,指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备,是lvm的基本存储逻辑块
vg ##卷组,由一个或多个物理卷组成
lv ##逻辑卷,建立在卷组vg上,在逻辑卷lv之上可以建立文件系统
pe ##每一个物理卷被划分的基本单元
#2.建立lvm
* 创建分区:使用分区工具,fdisk /dev/vdb ,方式和创建其他分区的方式一样,区别是lvm 的分区类型为8e
监控命令
同步硬盘信息,添加两个分区vdb1,vdb2
创建物理卷
将/vdb1分区创建为物理卷
[[email protected] ~]# pvcreate /dev/vdb1 ##创建物理卷
为pvcreate建立的物理卷创建一个卷组
第一个参数是指定该逻辑卷组的逻辑名,后面的参数是指定希望添加到该逻辑卷组的所有分区和磁盘。
[[email protected] ~]# vgcreate vg0 /dev/vdb1 把/dev/vdb1加到/vg0这个逻辑圈组 ##创建物理卷组
创建逻辑卷
[[email protected] ~]# lvcreate -L 100M -n lv0 vg0 ##在vg0上创建名字为lv0,大小为100m的逻辑卷,并且设备入口为/dev/vg0/lv0
-L ##指定设备大小 -n ##名字 ##创建逻辑卷组
监控显示物理卷,物理卷组已创建
对于xfs文件系统
[[email protected] ~]# mkfs.xfs /dev/vg0/lv0 ##格式化文件系统
[[email protected] ~]# mount /dev/vg0/lv0 /qq ##挂载,让设备可用,设备挂载体投入使用
[[email protected] ~]# xfs_growfs /dev/vg0/lv0 ##同步文件系统
监控文件系统更新
3.lvm的拉伸
当vg中剩余容量充足的时候
lvextend -L 400M /dev/vg0/lv0 ##-L指定设备大小
xfs_growfs /dev/vg0/lv0 ##同步文件系统
监控,逻辑卷大小400M,文件系统更新
当vg中剩余容量不足时
新建分区
pvcreate /dev/vdb2 ##创建物理卷
vgextend vg0 /dev/vdb2 ##创建物理卷组,把/dev/vdb2加到vg0这个逻辑卷组,实现扩容
lvextend -L 400M /dev/vg0/lv0 ##拉伸逻辑卷为700M
xfs_growfs /dev/vg0/lv0 ##同步文件系统
监控,逻辑卷lv0的大小拉伸为700M
由于xfs文件系统只能拉伸文件系统,不能缩小,故采用ext4文件系统格式,既能拉伸也能缩减
###要把他改为ext4这个文件系统,要先卸载###
[[email protected] ~]# umount /qq/卸载
[[email protected] ~]# mkfs.ext4 /dev/vg0/lv0 格式化为ext4文件系统
[[email protected] ~]# mount /dev/vg0/lv0 /qq挂载
[[email protected] ~]# lvextend -L 800M /dev/vg0/lv0 ##将逻辑卷lv0拉伸为800M
resize2fs /dev/vg0/lv0 ##同步文件系统
监控看出,lv0扩容为800M
缩减
对设备
[[email protected] ~]# umount /qq/ ##先卸载
[[email protected] ~]# e2fsck -f /dev/vg0/lv0 ##扫描文件系统大小
[[email protected] ~]# resize2fs /dev/vg0/lv0 200M ##文件系统缩减为200M
缩减时,先扫描文件系统,在缩减设备
[[email protected] ~]# mount /dev/vg0/lv0 /qq/ ##缩减完成再重新挂载
[[email protected] ~]# lvreduce -L 200M /dev/vg0/lv0 ##缩减设备
监控可看出逻辑卷和文件系统都缩减为200M
###对圈组###
##从卷组中删除一个物理卷##
要从一个卷组中删除一个物理卷,首先要确认被删除的物理卷没有被任何逻辑卷正在使用,
需要使用pvdisplay查看逻辑卷信息,如果某个物理卷正在被逻辑卷使用,就需要将该物理卷的数据备份到其他地方在删除。
[[email protected] ~]# pvmove /dev/vdb1 /dev/vdb2 ##当/dev/vdb2闲置,将存在数据的/dev/vdb1迁移到/dev/vdb2,再删除/dev/vdb1
[[email protected] ~]# vgreduce vg0 /dev/vdb1 ##将/dev/vdb1从vg0圈组中移出
[[email protected] ~]# pvremove /dev/vdb1 ##将/dev/vdb1从pv中删除
监控可看出,删除了/dev/vdb1
###lvm的快照###
cd /qq/
touch file{1..10}
cd
lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0
更改的是快照内容,访问的是原文件,L,指定快照大小,n指定快照的名字,s指定创建快照的设备
cd /qq
ls
不小心删除 rm -fr /qq/* 将快照删除,只是修改的快照内容,不改变原文件
umount /qq/
删除快照
lvremove /dev/vg0/lv0backup
原来的内容未改变
###删除pv,vg,lv###
[[email protected] ~]# umount /qq ##卸载
[[email protected] ~]# lvremove /dev/vg0/lv0 ##删除文件系统
[[email protected] ~]# vgremove vg0 ##移除逻辑卷组
[[email protected] ~]# pvremove /dev/vdb2 ##移除物理卷
监控看出移除成功
[[email protected] ~]# fdisk /dev/vdb ##删除分区
查看分区信息 cat /proc/partitions
以上是关于Linux中的Lvm逻辑卷管理的主要内容,如果未能解决你的问题,请参考以下文章