Linux 之 逻辑卷管理(lvm)

         LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的存储卷,在存储卷上建立文件系统。

          通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系统。

以下介绍几个与LVM相关的术语

物理卷(Physical Volume,PV):是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设备的最小存储单元,lvm是pe的整数倍。

lvm的创建

实验环境设置:

1)fdisk -l   ###/查看是vdb中是否存在之前的分区情况,如果有,fdisk /dev/vdb,删除所有的分区

2)umount  /mnt      ###解除之前的挂载

3)vim  /etc/fstab      ###删除之前在文件中的操作

1.  watch -n 1 'pvs;echo====;vgs;echo====;lvs;df -h /mnt'

监控结果如下:

2.建立分区并改变分区 id 为8e

3.命令创建逻辑卷

pvcreate  /dev/vdb1               ##物理分区处理,初始化物理卷pv

vgcreate  vg0  /dev/vdb1        ##创建物理卷组vg0

lvcreate     -L   20M  -n    lv0  vg0          ##创建逻辑卷lv0,大小为20M

mkfs.xfs  /dev/vg0/lv0             ##格式化逻辑卷lv0,使改逻辑卷可以使用

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

df -h /mnt            ##显示挂载点为/mnt的挂载信息

可以看出逻辑卷lv0成功挂载了

监控结果:

lvm的拉伸

lvm支持热拉伸

针对xfs文件系统的拉伸

1.当vg中的剩余容量足够时

lvextend  -L  400M  /dev/vg0/lv0                ###将设备拉伸至400M

xfs_growfs  /dev/vg0/lv0                            ###l拉伸文件系统,不用指定拉伸的大小,系统自动补

2.当vg中的剩余容量不足时,再次建立分区并修改标签为8e

fdisk   /dev/vdb           ###再次建立分区vdb2并修改标签为8e

pvcreate  /dev/vdb2       ###创建物理卷

vgextend  vg0  /dev/vdb2     ###将物理卷vdb2放在物理卷组vg0里

lvextend  -L 500M  /dev/vg0/lv0        ###扩容逻辑卷lv0到500M,但是拉大的一部分没有被格式化

xfs_growfs   /dev/vg0/lv0            ###直接拉伸扩容部分的逻辑卷,mkfs.xfs /dev/vg0/lv0是将整个逻辑卷进行拉伸

监控结果:

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

umount /mnt                      ##因为之前做xfs实验,所以先解挂

mkfs.ext4 /dev/vg0/lv0     ##改变格式为ext4 

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

mount              ##查看当前挂载情况,检查是不是成功修改为ext4格式

拉伸

lvextend  -L  550M  /dev/vg0/lv0            ##扩容逻辑卷lv0到550M

resize2fs  /dev/vg0/lv0          ## 类似于xfs格式的xfs_growfs命令,修改文件系统的大小

缩减

 

umount  /dev/vg0/lv0                         ###不支持热缩减,需要先解挂

e2fsck  -f  /dev/vg0/lv0                     ###扫描

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

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

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

vg的缩减

vgreduce vg0  /dev/vdb2

监控结果:

vg的扩展

vgextend vg0 /dev/vdb2

监控结果:

数据的迁移(移除含有数据的设备)

直接将物理卷/dev/vdb1移出卷组vg0会报如下错误:

当两个设备都被占用时,需先将一个设备中的文件移动到另一个文件

然后将物理卷/dev/vdb1移出卷组vg0

最后移除物理卷。

lvm快照

快照的作用主要用于数据备份与恢复,快照的损坏不影响其他设备的正常工作。

lvcreate  -L  10M  -n  lv0-backup  -s  /dev/vg0/lv0      ###创建名为lv0-backup的快照

mount  /dev/vg0/lv0-backup  /mnt                              ###挂载

dd  if=/dev/zero  of=/mnt/file  bs=1M  count=50       ###截取的数据大于10M,会损坏设备

设备自动解除挂载

再次挂载会报错

重新生成

lvremove    /dev/vg0/lv0-backup

llvcreate  -L  10M  -n  lv0-backup  -s  /dev/vg0/lv0 

还原:

umount     /dev/vg0/lv0-backup            ##快照解挂

lvremove    /dev/vg0/lv0-backup           ##移除快照

umount   /mnt                                 ### lv0解挂

lvremove    /dev/vg0/lv0               ##移除lv0

vgremove   vg0                           ##移除vg0

pvremove  /dev/vdb1                   ##移除设备

监控结果:

猜你喜欢

转载自blog.csdn.net/weixin_40172997/article/details/83926394