**逻辑卷管理器(LVM) **


 逻辑卷管理器:	 
    允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
    允许在多个物理设备间重新组织文件系统
    将设备指定为物理卷
    用一个或多个物理卷来创建一个卷组
    物理卷是用固定大小的物理区域来定义的
    在物理卷上创建的逻辑卷是有物理区域组成
    可以在逻辑卷上创建文件系统

LVM更改文件系统的容量高


LVM可以弹性的更改LVM的容量
通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加到容量 

PV管理工具


显示PV信息
PVS :简要PV信息显示
psdisplay
创建pv
pvcreate /dev/sdb  

vg管理工具


显示卷组 
vgs
vgdisplay
创建卷组
vgcreate [-s #[kKmMgGtTpPeE]pe大小指定-s] VolumeGroupName【卷组名字】
PhysicalDevicePath[PhysicalDevicePath...] 【卷组加入一个一个加上】
管理卷组
vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...] 【扩展】
vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...] 【缩减】
删除卷组
先做pvmove  ,在做vgremove 

lv管理工具


显示逻辑卷
lvs
lvdisplay
创建逻辑卷
lvcreate -L #[mMgGtT] -n NAME VolumeGroup
lvcreate -l 60%VG -n mylv testvg
lvcreate -l 100%FREE -n yourlv testvg
删除逻辑卷 lvremove /dev/VG_NAME/LV_NAME
重设文件系统大小
    fsadm [options] resize device [new_size[BKMGTEP]]
     resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]

扩展和缩减逻辑卷


扩展逻辑卷:
lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
resize2fs /dev/VG_NAME/LV_NAME
lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME 

缩减逻辑卷:
umount /dev/VG_NAME/LV_NAME
e2fsck -f /dev/VG_NAME/LV_NAME
resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT] 
lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME mount

创建物理卷


第一步:创建pv:   pvcreate  /dev/sd{d1,e}  【注意分区要改ID,硬盘不需要改 】
第二步:创建vg:  vgcreate  vg0 -s  16M  /dev/sd{d1,e}【-s 16M  自己指定的】
第三步:创建LV:lvcreate -n lv0  -L 2G  vg0  【-n是指定名字  -L是指定大小  后面是从哪个vg里面取】 
第四步:创建文件系统mkfs.ext4/dev/vg0/lv0 
然后创建文件夹挂载 :写入/etc文件
第五步:如果没有空间了 就pvcreate  /dev/sdc,然后vgextend   vg0 /dev/sdc 【把/dev/sdc加入到vg0这个卷组】
然后就可以扩展逻辑卷lv  
然后:lvextend  -L +500M  /dev/vgo/lv0【-L+500M 是在原基础上加500M  /dec/vg0/lv0  加到这个逻辑卷中】 
第六步:同步文件系统【看看是ext还是xfs【resize2fs  /dev/vgo/lv0[跟设备],或xfs_growfs   /mnt/lv0[跟挂载点]】


缩减:xfs系列不支持,ext系列支持
首先要取消挂载:umount /mnt/lv0
第二步:查看系统完整性: fsck  -f  /dev/vg0/lv0 
第三步:先缩减文件系统  resize2fs   /dev/vg0/lv0  2G 【缩减到2G】
第四步:缩减逻辑卷  LVreduce  -L  2G /dev/vg0/lv0 【缩减到2G】
第五步:挂载上查看一下 

跨主机迁移卷组


源计算机上 
1 在旧系统中,umount所有卷组上的逻辑卷 
2 vgchange –a n vg0 lvdisplay 
3 vgexport vg0
pvscan 
vgdisplay 
拆下旧硬盘 
在目标计算机上 
4 在新系统中安装旧硬盘,并vgimport vg0. 
5 vgchange –ay vg0 
6 mount所有卷组上的逻辑卷

步骤:

第一步:考虑到迁移过去可能名字会相同,为了避免这个文件首先进行改名
vgrename   vg0  xinvg0  【改名】 lvrename   /dev/xinvg0/lv0  xinlv0  【改名要加路经】
第二步:先取消挂载 umount  /mnt/lv0【可能会有几个...拆下旧硬盘】
第三步:设置为非活动状态vgchange  -an xinvg0
第四步:设置卷组为导出状态vgexport xinvgo
第五步:在另一个机器上添加这个硬盘 然后识别一下  echo '- - -'>/sys/class/scsi_host/host0/scan
第六步:导入:vgimprot xinvg0   【lvdisplay 查看 】
第七步:激活:vgchange  -ay  xinvg0
第八步:创建挂载点:mkdir /mnt/xinlv0   挂载:mount /dev/xinvg0/xinlv0  /mnt/xinlv0

逻辑卷管理器快照


快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝
对于需要备份或者复制的现有数据临时拷贝以及其它操作来说,快照是最合适 的选择
快照只有在它们和原来的逻辑卷不同时才会消耗空间
在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所 改变才会使用这些空间
当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中。 
快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的 数据
建立快照的卷大小只需要原始逻辑卷的15%~20%就够了,也可以使用
lvextend放大快照  

使用LVM快照


 为现有逻辑卷创建快照
 lvcreate -l 64 -s -n data-snapshot -p r /dev/vg0/data 
 挂载快照
 mkdir -p 
 /mnt/snap mount -o ro /dev/vg0/data-snapshot   /mnt/snap 
 恢复快照
 umount /dev/vg0/data-snapshot
 umount /dev/vg0/data
 lvconvert --merge /dev/vg0/data-snapshot
 删除快照 
 umount /mnt/databackup
 lvremove /dev/vg0/databackup

创建逻辑卷快照


ext系列
首先改名:lvrename /dev/xinvg0/xinlv0 lv0
第二步:lvcreate -n lv0-kuaizhao  -s -L 1G /dev/xinvg0/lvo 【-n 是名字  -s 代表快照  -L 是指定多大】
第三步: 创建一个挂载点 /mnt/lv0-kuaizhao  挂载:mount  /dev/xinvg0/lv0  /mnt/lv0-kuaizhao 
第四步:还原逻辑卷 ,先取消挂载 umount /mnt/lv0  umount /mnt/lv0-kuaizhao 
第五步:恢复:lvconvert  --merge  /dev/xinvg0/lv0-kuaizhao【--merge 合并的意思】
第六步:挂载 mount /dev/xinvg0/lv0 /mnt/lv0【还原】

xfs系列
第一步:lvcreate -n lv1-kuaizhao  -s -L 1G /dev/xinvg0/lv1 【-n 是名字  -s 代表快照  -L 是指定多大 /dev/xinvg0/lv1  代表谁的快照 】
第二步:mkdir /mnt/lv1-kuaizhao 挂载 mount  -o nouuid /dev/xinvg0/lv1-kuaizhao  /mnt/lv1-kuaizhao  【-o nouuid 是xfs系列加 】
第三步:先取消挂载 umount /mnt/lv1  umount /mnt/Lv1-kuaizhao
第四步::恢复:lvconvert  --merge  /dev/xinvg0/lv1-kuaizhao【--merge 合并的意思】



删除快照:
取消挂载  umount /mnt/lv0-kuaizhao
然后:lvremove /dev/xinvg0/lv0-kuaizhao

例:物理卷,卷组,逻辑卷全都不要:


先取消挂载:umount /mnt/lv1,mount /mnt/lv0
然后:删除逻辑卷:lvremove /dev/xinvg0/lv{1,0}
然后删除卷组vg :vgremove xinvg0
然后删除pv :pvremove /dev/sdc  /dev/sdb