1、LVM存在的意义
相信不少Linux的用户都曾遇见这样一个问题:在为系统建立分区时,因为对各个硬盘分区的容量的评估和分配不精确,可能致使某个分区不够用的现象。一般状况下大多数系统管理员可能会选择备份整个系统、清除硬盘、从新对硬盘分区,而后恢复数据到新分区。固然也有人使用动态调整磁盘的工具,可是这需要从新引导系统才能实现,对于不少关键的服务器,停机是不可接受的,并且对于添加新硬盘,但愿一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解决问题。
所以完美的解决方法应该是在零停机前提下能够自如对文件系统的大小进行调整,能够方便实现文件系统跨越不一样磁盘和分区。当Linux提供的LVM逻辑盘卷管理机制的出现,当即就完美的解决许多用户的烦恼。
2、什么是LVM
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是创建在硬盘和分区之上的一个逻辑层,来提升磁盘分区管理的灵活性。spa
LVM能够整合多个物理分区在一块儿,让这些分区看起来像是一个磁盘同样,并且还能够添加或删除新的物理分区,这样一来就使得整个磁盘空间的使用具备至关好的弹性。3d
3、LVM中的基本术语
1.物理卷(Physical Volume,PV)
A、物理卷在LVM系统中处于最底层。
B、物理卷能够是整个硬盘、硬盘上的分区或从逻辑上与磁盘分区具备一样功能的设备(如:RAID)。
C、物理卷是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
2.卷组(Volume Group, VG)
A、 卷组创建在物理卷之上,它由一个或多个物理卷组成。
B、 卷组建立以后,能够动态地添加物理卷到卷组中,在卷组上能够建立一个或多个“LVM分区”(逻辑卷)。
C、 一个LVM系统中能够只有一个卷组,也能够包含多个卷组。
D、LVM的卷组相似于非LVM系统中的物理硬盘。
3.逻辑卷(Logical Volume, LV)
A、 逻辑卷创建在卷组之上,它是从卷组中“切出”的一块空间。
B、逻辑卷建立以后,其大小能够伸缩。
C、LVM的逻辑卷相似于非LVM系统中的硬盘分区,在逻辑卷之上能够创建文件系统(好比,/home或者/usr等)。
4.物理区域(Physical Extent, PE)
A、每个物理卷被划分为基本单元(称为PE),具备惟一编号的PE是能够被LVM寻址的最小存储单元。
B、 PE的大小可根据实际状况在建立物理卷时指定,默认为4 MB。
C、 PE的大小一旦肯定将不能改变,同一个卷组中的全部物理卷的PE的大小须要一致。
4、LVM的建立
LVM各阶段的实现流程图
1、分割分区:
# fdisk /dev/sdb # fdisk -l /dev/sdb
2、PV阶段:
pvcreate /dev/sda将分区转成pv
pvscan查看pv被vg使用状况
pvdisplay PE是在创建 VG 时才给予的参数,此时pv内无任何pe
# pvcreate /dev/sdb1 /dev/sdb2 # pvscan # pvdisplay
3、VG阶段:vg当作一个硬盘
vgcreate -s N[M|G|T] VG名称 pv名称 利用pv创建vg,并指定PE大小
vgscan 查看是否有vg
pvscan查看pv被vg使用状况
vgdisplay查看vg总量和pe数状况
# vgcreat -s 16M myvg /dev/sdb1 /dev/sdb2 # vgscan # pvscan # vgdisplay
4、LV阶段:
lvcreate [-l N] [-n LV名称] vg都分配给lv,创建lv分割
lvdisplay 查看lv分割区详细属
# lvcreate -l SIZE -n lv1 myvg # ll dev/myvg/lv1 # lvdisplay
5、文件系统阶段:格式化lv分区并挂载使用
mkfs -t ext3 /dev/myvg/lv1 格式化
mkdir /mnt/lvm
mount /dev/myvg/lv1 /mnt/lvm创建一个目录挂载lv分区,就能够用了。
# mkfs -t ext3 /dev/myvg/lv1 # mkdir /mnt/lvm # mount /dev/myvg/lv1 /mnt/lvm # df
5、扩展LVM的容量
1、用 fdisk建具备8e system ID 的partition
二、用 pvcreate 建PV
三、用 vgextend 将 PV 加入vg
四、用lvextend命令对物理边界进行扩展
五、用resize2fs命令对逻辑边界进行扩展
# lvextend -L SISE /path/to/lv # resize2fs /path/to/device
6、缩减LVM的容量
一、查看当前LVM信息并肯定缩减后的逻辑卷至少能容纳原有的全部数据;
2、卸载并强行检测文件系统;
3、用lvreduce命令在物理上缩减逻辑卷的边界
四、用resize2fs命令在逻辑上对逻辑卷的空间大小进行缩减
# e2fsck [-t fs_type] [-f] [-p] /path/to/device # lvreduce -L [-]SIZE /path/to/lv # resize2fs /path/to/device SIZE
7、LVM的系统快照
快照区与被快照的 LV 必需要在同一个VG上头。因此要VG有多余的容量来做为快照区。
要复原的数据量不可以高于快照区所能负载的实际容量。
1、创建:
将快照分区加入vg,
利用# lvcreate -l 60 -s -n mylv /dev/myvg/lv1 就能够了,挂载来看,与lvm分区如出一辙
二、还原:不是直接格式化lv再将快照区复制给lv。而是把快照区打包备份出来,移除快照区,格式化lv,利用打包的备份还原。
三、用于测试环境:卸载原分区,给快照分区做为测试环境。卸载移除快照分区,从新创建快照分区,又复原了。
8、移除LVM
若是你尚未将 LVM 关闭就直接将那些 partition 删除或转为其它用途的话,系统是会发生很大的问题的!
先卸载系统上面的 LVM 档案系统 (包括快照与全部 LV);
使用 lvremove 移除 LV ;
使用 vgchange -a n VGname 让 VGname 这个 VG 不具备 Active 的标志;
使用 vgremove 移除 VG:
使用 pvremove 移除 PV;