文章目录
LVM逻辑卷管理
众所周知,用户在使用互联网公司提供的服务时,都会产生其数据。而这些数据会被写入互联网公司的服务器里的硬盘里。但随着用户的增长以及写入数据的增多,硬盘总会有被写满的时候。在那个时候,我们应该怎么做,才能继续保证用户继续写入数据呢?
如果使用一块新的硬盘肯定不行,那样旧有的数据就无法被读取了。那如果在设计时就使用一块足够大的硬盘,足够写入用户数据呢?那样也不现实,工业生产工艺和成本都不允许这样的想法。幸运的是,我们可以使用lvm来扩展硬盘。
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。利用lvm,用户在无需停机的情况下可以方便地调整各个分区大小。
逻辑卷管理器本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,如图所 示。它可以将几块磁盘组合起来形成一个存储池或者卷组。LVM可以每次从卷组中划分出不同大小的逻辑卷创建新的逻辑设备。LVM逻辑设备不受物理约束的限制,逻辑卷不必是连续的空间,它可以跨越许多物理卷,并且可以在任何时候 任意的调整大小。相比物理磁盘来说,更易于磁盘空间的管理。
各项概念:
1.物理存储介质:指系统的物理存储设备——磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元。
2.物理卷(Physical Volume,PV):指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
3.卷组(Volume Group,VG):类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
4.逻辑卷(Logical Volume,LV):类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。
5…物理块(Physical Extent,PE):每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。
利用lvm,可以将一块新的磁盘化为逻辑卷,拉伸原有的逻辑卷,以此解决存储用户数据时,原有磁盘空间不够的问题。
一.LVM逻辑卷的建立
1.创建目录,模拟企业存放数据的目录。
创建磁盘分区,将其类型修改为lvm。
1. mkdir /weixindata ####创建目录
2. fdisk /dev/vdb #####创建磁盘分区,将其类型修改为lvm(lvm分区的编号为8e)。
2.为了便于观察,利用监视,观察pv,vg,lv以及挂载的情况。
watch -n 1 ‘pvs;echo ==== ;vgs;echo ====;lvs;echo ====;df -h /weixindata’ ##监控命令,方便观察
3.创建pv
pvcreate /dev/vdb1 ##将物理分区转换物理卷
4.创建vg
vgcreate vg0 /dev/vdb1 ##创建卷组并将物理卷加入到卷组当中,vg0为卷组名称,随意起
5.创建逻辑卷lv
lvcreate -L 200M -n lv0 vg0 ##设置逻辑卷的大小,从卷组中取出200M以分配给lv0这个逻辑卷。
6.格式化逻辑卷并挂载。
1. mkfs.xfs /dev/vg0/lv0 ##格式化逻辑卷
2. mount /dev//vg0/lv0 /weixindata ##挂载到新建目录上
二.逻辑卷的拉伸
当我们目录被写满时,我们可以拉伸逻辑卷,使之空间增大。写入更多数据。
1.xfs类型文件系统的拉伸
当卷组有剩余空间时,可以直接拉伸。
(1),拉伸逻辑卷
lvextend -L 250M /dev/vg0/lv0 ##拉伸逻辑卷到250M
(2).拉伸文件系统
xfs_growfs /dev/vg0/lv0 ##拉伸文件系统
当卷组没有空间了,卷组需要添加新的硬盘,再进行拉伸
(1).创建新的磁盘分区,并将其修改为lvm类型。
(2).新磁盘创建物理卷PV
pvcreate /dev/vdb2 ##将分区转换物理卷
(3).添加物理卷到卷组
vgextend vg0 /dev/vdb2 ##将物理圈添加到卷组vg0中
(4).拉伸逻辑卷LV和文件系统
lvextend -L 600M /dev/vg0/lv0 ###拉伸逻辑卷大小为600M
xfs_growfs /dev/vg0/lv0 ###拉伸文件系统
以上是xfs的文件系统的拉伸。但此文件系统并不支持缩减。只有ext类型的文件系统支持缩减。我们来实验一下ext文件系统的拉伸与缩减
2.ext类型文件系统的拉伸
1.将xfs类型文件系统的设备格式化成ext4类型
1. umount /weixindata/ ###卸载
2. mkfs.ext4 /dev/vg0/lv0 ###格式化设备的文件系统类型为ext4类型
2.挂载并拉伸逻辑卷
1. mount /dev/vg0/lv0 /weixindata/ ##挂载
2. lvextend -L 700M /dev/vg0/lv0 ##拉伸逻辑卷到700M
3.拉伸文件系统
不同类型的文件系统拉伸的命令都不一样。
resize2fs /dev/vg0/lv0 ##拉伸文件系统
3.ext4类型文件系统的缩减
1.不支持在线缩减。需卸载后缩减。
1. umount /weixindatadata/ ##卸载
2. e2fsck -f /dev/vg0/lv0 ##缩减前需要对设备进行扫描,直接缩减会损害设备,无法挂载。
2.缩减文件系统
1. resize2fs /dev/vg0/lv0 100M ##缩减文件系统到100M
2. mount /dev/vg0/lv0 /weixindata/ ##挂载
3.缩减逻辑卷
lvreduce -L 100M /dev/vg0/lv0 ##缩减逻辑卷到100M
三.取出设备
若想取出设备,需要先清理设备空间,使得设备空间再取出。
1.空闲设备的取出
1.取出物理卷并变为物理区
1.vgreduce vg0 /dev/vdb2 ###取出物理卷
2.pvremove /dev/vdb2 ###物理卷重新变为物理区
2.正在使用的设备取出
1.转移文件到另一个设备
pvmove /dev/vdb1 /dev/vdb2 ##将vdb1中数据转移到vdb2中,使其空闲
2.取出物理卷并变为物理区
1.vgreduce vg0 /dev/vdb1 ###取出物理卷
2.pvremove /dev/vdb1 ###物理卷重新变为物理区
四.lvm快照
快照就是当创建快照卷时,仅拷贝原卷里数据的元数据,作为访问原文件的通道。创建的时候,并不会进行数据的物理拷贝,当原卷有写操作执行时,快照跟踪原卷的改变,把改变之前的数据拷贝到快照卷中,是实时的。
注意:
1、生命周期是整个数据时长:在这个时长内,数据的增长量不能超出快照卷大小
2、快照卷应该是只读的
3、跟原卷在同一卷组内
1.创建快照
1. umount /weixindata ###卸载
2. lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0指定快照lv0backup的最大空间为20M
3. mount /dev/vg0/lv0-backup /weixindata
2.写入文件大过快照空间,快照会爆
dd if=/dev/zero of=/weixindate/file bs=1M count=50 ##50M空间
此时查看快照,会发现它已经爆了。生命周期到了。
此时我们可以建立新的快照。
1. lvremove /dev/vg0/lv0backup ##移除快照
2. lvcreate -L 20M -n lv0backup -s /dev/vg0/lv0 ###建立快照
快照可以防止文件的丢失,通过新的快照,恢复原来的文件。
五.lvm的删除
1.正常删除lvm
1. umount /weixindata ###卸载
2. lvremove /dev/vg0/* ###移初逻辑卷及快照
4. vgremove vg0 ###移除卷组
5. pvremove /dev/vdb2 ###变为物理区
2.误擅设备怎么删除lvm
设备被误删后,可以看到监视界面显示设备无法被识别。
按以下步骤:
vgreduce --removemissing vg0 ###从卷组移除不知名的物理卷
vgremove vg0 ###移除卷组
pvremove /dev/vdb2 ###变为物理区
六.指定PE大小
PE大小范围8KB-16G。
vgcreate -s 2M vg0 /dev/vdb1 ##修改pe大小