Linux学习笔记—lvm管理

28 篇文章 1 订阅
16 篇文章 0 订阅

一、LVM简介

LVM(Logical Volume Manager,逻辑卷管理器) 是Linux下对磁盘分区进行管理的一种机制。LVM是建立在磁盘分区和文件系统之间的一个逻辑层,利用LVM可以在磁盘不用重新分区的情况下动态调整分区的大小。
LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volume group),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“DBdata”和“DBSoft”,而不是使用物理磁盘名“sda”和“sdb”或”hda”和”hdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可,架构可以参考如下图:
在这里插入图片描述

为什么使用逻辑卷?

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

  • PV(Physical Volume,物理卷):硬盘分区或从逻辑上看和硬盘分区类似的设备。
  • VG(Volume Group,卷组):一个LVM卷组由一个或多个物理卷(PV)组成。
  • LV(Logical Volume,逻辑卷):逻辑卷建立在卷组上,可以在LV上创建文件系统。
  • PE(Physical Extent,物理扩展):PV中可以分配的最小存储单元,默认为4MB。
  • LE(Logical Extent,逻辑扩展):LV中可以分配的最小存储单元,同一卷组中,LE的大小和PE是一样的,且一一对应。

二、LVM的制作

1、划分lvm所用到的设备(功能id必须是linux LVM)
步骤如下:
<1>fdisk /dev/vdb ##新建分区,分区功能id是linux LVM

GPT分区Linux LVM功能id为15
DOS分区Linux LVM功能id为8e
这里写图片描述
这里写图片描述
这里写图片描述

<2>partprobe ##更新分区表
<3>cat /proc/partitions ##查看分区信息

这里写图片描述

2、lvm建立
pvcreate /dev/vdb1		    ##把物理分区做成物理卷
pvs|pvdisplay			    ##查看物理卷
vgcreate vg0 /dev/vdb1		##用制作好的/dev/vdb1这个物理卷制作一个物理卷组vg0
vgs|vgdisplay			    ##查看物理卷组
lvcreate -L 200M -n lv0 vg0	##在vg0这个组中建立出lv0设备 -L 指定设备大小 -n 指定设备名字
lvs|lvdisplay			    ##对逻辑卷设备进行查看
mkfs.xfs /dev/vg0/lv0       ##格式化
mount /dev/vg0/lv0 /mnt     ##挂载
实例:
watch -n 1 'pvs;vgs;lvs;df -h /mnt'
<1>物理分区做成物理卷

这里写图片描述
这里写图片描述

<2>用制作好的/dev/vdb1这个物理卷制作一个物理卷组vg0

这里写图片描述

<3>在vg0这个组中建立出lv0设备

这里写图片描述

<4>格式化、挂载
[root@localhost ~]# mkfs.xfs /dev/vg0/lv0           ##格式化成/mnt文件
[root@localhost ~]# mount /dev/vg0/lv0 /mnt/         ##挂载
[root@localhost ~]# df
Filesystem          1K-blocks    Used Available Use% Mounted on
/dev/vda1            10473900 7061164   3412736  68% /
devtmpfs               469344       0    469344   0% /dev
tmpfs                  484932     140    484792   1% /dev/shm
tmpfs                  484932   12808    472124   3% /run
tmpfs                  484932       0    484932   0% /sys/fs/cgroup
/dev/sr0              3704296 3704296         0 100% /run/media/root/RHEL-7.3 Server.x86_64
/dev/mapper/vg0-lv0     98988    5280     93708   6% /mnt

这里写图片描述

三、lvm设备的扩大

mount                 ##查看当前文件系统
针对xfs文件系统
xfs文件系统只能扩大不能缩减。
1、lvm扩大(当vg中的容量够用时)
lvextend —L 500M /dev/vg0/lv0		##扩大lvm设备到500M
xfs_growfs	/dev/vg0/lv0		    ##扩大xfs文件系统到设备大小
2、vg扩大(当vg中的容量不够用时)
pvcreate /dev/vdb2			        ##在pv中增加一块设备/dev/vdb2
vgextend vg0 /dev/vdb2			    ##把新建立的/dev/vdb2添加到vg0中	
lvextend -L 2000M /dev/vg0/lv0      ##扩大lvm设备到500M
xfs_growfs /dev/vg0/lv0             ##扩大xfs文件系统到设备大小 
实例:
<1>lvm扩大
[root@localhost ~]# lvextend -L 500M /dev/vg0/lv0     ##lv0扩展到500M

这里写图片描述

[root@localhost ~]# xfs_growfs /dev/vg0/lv0            ##文件系统扩展

这里写图片描述

<2>vg扩大

若使lvm扩大到2G,现有的vg0已不足以lvm扩大,此时需在pv中增加一块设备/dev/vdb2

[root@localhost ~]# pvcreate /dev/vdb2         ##创建pv
  Physical volume "/dev/vdb2" successfully created
[root@localhost ~]# vgextend vg0 /dev/vdb2     ##创建vg

这里写图片描述

[root@localhost ~]# lvextend -L 2000M /dev/vg0/lv0     ##lv0扩展到2G

这里写图片描述

[root@localhost ~]# xfs_growfs /dev/vg0/lv0            ##文件系统扩展

这里写图片描述

针对ext文件系统
ext文件系统可以扩大也可以缩减
将文件系统由xfs转换为ext
umount /mnt/                        ##卸载
mkfs.ext4 /dev/vg0/lv0              ##直接格式化为ext4文件系统
1、lvm扩大
lvextend —L 2G /dev/vg0/lv0			##扩大lvm设备到2G
umount /dev/vg0/lv0				    ##卸载设备,因为文件系统缩减不支持在线操作
resize2fs /dev/vg0/lv0				##设定文件系统大小和设备同步
2、vg扩大
 pvcreate /dev/vdb3                 ##在pv中增加一块设备/dev/vdb3
 vgextend vg0 /dev/vdb3             ##把新建立的/dev/vdb2添加到vg0中		
3、lvm缩减
umount /dev/vg0/lv0				    ##卸载设备,因为文件系统缩减不支持在线操作
e2fsck -f /dev/vg0/lv0				##检测文件系统,确定文件系统中已有数据大小防止过度缩减
resize2fs  /dev/vg0/lv0  1G			##把文件系统缩减到1G
lvreduce  -L 1G /dev/vg0/lv0 	    ##设备缩减到1G
实例:
<1>文件系统缩减到500M

这里写图片描述

<2>设备缩减到500M

这里写图片描述

四、vg缩减

在vg缩减时只能缩减没有被占用的设备

pvmove	设备1 设备2				     ##把设备1上的所有数据移动到设备2上
	vgreduce	vg0	/dev/vdb1		##把vg0中的/dev/vdb1删除
	pvremove	/dev/vdb1			##把/dev/vdb1上的lvm管理信息删除
实例:

这里写图片描述

<1>把设备2上的所有数据移动到设备1上

这里写图片描述

<2>把vg0中的/dev/vdb2删除

这里写图片描述

<3>把/dev/vdb2上的lvm管理信息删除

这里写图片描述

五、 lvm丢失设备的删除

[root@westos ~]# vgreduce --removemissing vg0			##删除vg0中丢失的设备
1、设备丢失

这里写图片描述

2、删除丢失的设备

这里写图片描述

六、 lvm快照##

当快照设备里的数据被更改,如果想还原,删除快照设备,在重新建立快照即可

lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0		##给/dev/vg0/lv0建立快照,-L 指定快照大小,-n指定快照名字 -s指定快照模板设备
mount /dev/vg0/lv0-backup	/userdate
实例:
lvm快照
[root@localhost ~]# lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0 ##创建快照lv0backup
  Logical volume "lv0backup" created
[root@localhost ~]# mount /dev/vg0/lv0backup  /mnt                ##快照挂载到/mnt
[root@localhost ~]# rm -fr /mnt/*                                 ##将/mnt下所有文件删除
[root@localhost ~]# umount /mnt                                   ##卸载
[root@localhost ~]# lvremove /dev/vg0/lv0backup                   ##删除快照(坏快照)
Do you really want to remove active logical volume lv0backup? [y/n]: y
  Logical volume "lv0backup" successfully removed
[root@localhost ~]# lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0 ##重新快照
  Logical volume "lv0backup" created
[root@localhost ~]# mount /dev/vg0/lv0backup  /mnt                ##重新挂载新快照
[root@localhost ~]# ls /mnt                                       ##/mnt下数据依旧存在

六、lvm删除

删除顺序:

lvremove---->vgremove----->pvremove

实例:

这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值