1、什么是LVMide
不论是使用传统的MBR分区方式或者是GPT的分区方式,在最后数据量逐渐变大的过程当中都会出现空间不足的状况,可是如果使用将此分区的数据所有迁移至一个更大空间的磁盘上的迁移时间也是不可想象的,为了解决这个问题,LVM就诞生了。
LVM(Logical volume Manager)是逻辑卷管理的简称。
LVM的工做原理其实很简单,它就是经过将底层的物理硬盘抽象的封装起来,而后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,咱们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其经过对底层的硬盘进行封装,当咱们对底层的物理硬盘进行操做时,其再也不是针对于分区进行操做,而是经过一个叫作逻辑卷的东西来对其进行底层的磁盘管理操做。好比说我增长一个物理硬盘,这个时候上层的服务是感受不到的,由于呈现给上次服务的是以逻辑卷的方式。
LVM最大的特色就是能够对磁盘进行动态管理。由于逻辑卷的大小是能够动态调整的。3d
2、LVM原理blog
PV(physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区。
VG(volume group):卷组创建在物理卷上,一卷组中至少要包括一物理卷,卷组创建后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。
LV(logical volume):逻辑卷创建在卷组基础上,卷组中未分配空间可用于创建新的逻辑卷,逻辑卷创建后能够动态扩展和缩小空间。
PE(physical extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在创建卷组时指定,一旦肯定不能更改,同一卷组全部物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改成vg中定义的pe大小。
LE(logical extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。rem
3、LVM实现过程get
一、建立PV(即从一块硬盘中建立分区,或者直接将此硬盘做为一个PV)
须要将此分区的标志该为lvm格式
pvcreate /dev/vdb1
pvcreate /dev/vdb2
二、建立VG
vgcreate vg0 /dev/vdb1 vg0任意,表示将/dev/vdb1加入到vg0这个物理卷组中
三、建立LV
lvcreate -L 50M -n lv0 vg0
-L 表示大小,该lv0的物理卷大小设置为50M
-n 表示逻辑卷的名字,可任意
四、格式化此逻辑卷
如果xfs文件系统,仅能够进行拉申,不能够进行缩减
如果ext4文件系统,能够进行拉申,也能够进行缩减
此时呈现给上层服务是逻辑卷的状态,可是上层服务是没有感知的,能够将逻辑卷与真实的硬盘分区同样的进行使用。it
4、xfs文件系统class
当物理卷组中的空间足够使用时,直接对逻辑卷进行拉申便可
lvextend -L 500M /dev/vg0/lv0 对设备进行拉申
xfs_growfs /dev/vg0/lv0 为热拉申,即在设备/dev/vg0/lv0正在使用的状况下进行拉申操做
设备与文件系统均被扩展至500M
当物理卷组中的空间不够使用时,若物理卷空间足够,之间将物理卷中没有加入物理圈足中的分区直接加入到物理圈足中,若是物理卷不够时,在硬盘中在进行分区,或者在加入新的硬盘。
/dev/vdb4是扩展分区
pvcreate /dev/vdb5
vgextend vg0 /dev/vdb5
lvextend -L 1G /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0基础
5、ext4文件系统原理
(1)拉申操做
lvextend -L 500M /dev/vg0/lv0 拉申设备
resize2fs /dev/vg0/lv0 拉申文件系统
(2)缩减操做
umount /mnt/
e2fsck -f /dev/vg0/lv0 对逻辑卷中的文件进行扫描,以肯定须要缩减多少空间,以避免出现丢失文件的状况
resize2fs /dev/vg0/lv0 100M 缩减文件系统到100M
lvreduce -L 100M /dev/vg0/lv0 缩减设备至100M
(3)迁移操做
若须要将/dev/vdb1物理卷上的文件所有迁移至/dev/vdb2物理卷上,而后将/dev/vdb1从物理卷中取出
pvmove /dev/vdb1 /dev/vdb2
迁移成功
vgreduce vg0 /dev/vdb1
pvremove /dev/vdb1
(4)快照
经过使用lvm的快照咱们能够轻松的备份数据,因为snapshot和源lvm的关系,snapshot只可以临时使用,不能脱离源lvm而存在.
snapshotCOW(COPY-ON-WRITE)简单原理:
当一个snapshot建立的时候,仅拷贝原始卷里的数据,这部是物理上的数据拷贝,所以snapshot建立的特别块,当原始卷里的数据由写入时,备份卷开始记录原始卷哪些数据发生了变化,而后在原始卷新书局覆盖旧数据时,将旧数据拷贝到snapshot的预留空间中,起到备份数据的做用,就保证了全部数据和建立备份卷以前的数据一致性。
snapshot的特色:
采用COW实现方式时,snapshot的大小并不须要和原始卷同样大
一、根据原始卷数据的改变大小范围来设置
二、根据原始卷数据的更新频率来定,一旦snapshot的空间记录满了原始卷块变换的信息,那么这个snapshot就不能使用了
lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
建立一个50M 名字为lv0backup源设备为/dev/vg0/lv0的快照
此快照不须要格式化,直接进行挂载使用就行扩展