centos7—LVM逻辑卷

LVM命令:

pv(物理卷)
vg(卷组)
lv(逻辑卷)
注:输入pv/vg/lv,然后按tab两下即可查看相关命令。
PE:物理扩展
LE:逻辑扩展
注:每个PE默认大小为4M。

通过案例来理解pv、vg、lv的创建、挂载、扩容、缩容以及卸载删除等相关的操作命令。
案例1:将sdb、sdc硬盘用LVM进行管理,将它们创建成一个名称为vg0的卷组,在vg0卷组中创建一个7G且名称为lv
0的逻辑卷,然后格式化成ext4文件系统,手动挂载到/mnt/lv0目录,复制/etc/host*到/mnt/lv0目录中。

#第1步,创建pv,并查状态信息。
lsblk       #显示块设备
pvcreate    /dev/sd[bc]       #创建pv。格式说明:pvcreate   硬盘或分区设备
pvs         #显示pv状态(根据需要选择其中一条命令即可)
pvdisplay         #显示所有pv的详细信息
pvscan          #扫描已存在的pv设备
 
#第2步,创建vg卷组,并查状态信息。
pvs       #显示pv状态
vgcreate    vg0   /dev/sd[bc]         #将sdb和sdc组成vg0卷组。格式说明:vgcreate   卷组名   pv设备
vgs        #显示vg状态(根据需要选择其中一条命令即可)
vgdisplay       #显示所有vg的详细信息
vgscan         #扫描已存在的vg设备
 
#第3步,创建lv,显示状态信息。
vgs            #显示vg状态
lvcreate   -L  7G   -n  lv0  vg0          3创建lv。格式说明:lvcreate   -L  容量   -n  lv名称    卷组名称
lvs         #显示lv状态(根据需要选择其中一条命令即可)
lvdisplay           #显示所有lv的详细信息
lvscan           #扫描已存在的lv设备
 
#第4步,格式化创建文件系统,手动挂载lv。写入数据。
lvscan           #扫描已存在的lv设备
mkfs.ext4   /dev/vg0/lv0          #格式化
mkdir   -pv  /mnt/lv0            #创建目录
mount  /dev/vg0/lv0   /mnt/lv0        #手动挂载
mount           3查挂载信息
cp  -v   /etc/host*   /mnt/lv0/           #复制文件
 
案例2:将sdd和sde加入到vg0卷组中(卷组扩容),再将sde从vg0卷组中移除(卷组缩容)。
pvs
pvcreate    /dev/sd[de]
vgs
vgextend   vg0   /dev/sd[de]         #vg扩展
vgreduce   vg0   /dev/sde             #vg缩容
警告:vg缩容时,如果要移除的硬盘上有数据,必须先用pvmove将这块硬盘的数据迁移到vg卷组中其他的硬盘上。例:pvmove   /dev/sdb   /dev/sdd   
 
案例3:将lv0逻辑卷容量扩充到12G,并查看状态,再查看文件系统的空间使用状态。
思路:先扩充逻辑卷的容量,再更新文件系统的容量值。
vgs
lvextend   -L   +5G   /dev/vg0/lv0
lvs  
df  -h       #发现lv0的文件系统容量并未更新
resize2fs   -p  /dev/vg0/lv0       #更新文件系统的容量值
注:xfs文件系统更新容量值用”xfs_growfs    挂载点”
 
案例4:将lv0逻辑卷容量缩小到6G,并查看状态,再查看文件系统的空间使用状态。
思路:先卸载逻辑卷的文件系统,然后扫描逻辑卷的文件系统是否有错误,再缩小文件系统容量,最后缩小逻辑卷的容量。
umount   /dev/vg0/lv0         #卸载
e2fsck  -f   /dev/vg0/lv0       #强制扫描
resize2fs  /dev/vg0/lv0   6G         # 缩文件系统
lvs  
lvreduce   -L   6G   /dev/vg0/lv0        #缩逻辑卷
mount  /dev/vg0/lv0   /mnt/lv0          #挂载
df  -h             #发现lv0的文件系统容量并未更新
ls   /mnt/lv0          #显示lv0逻辑卷中的文件
cat   /mnt/lv0/hosts             #查看指定文件,发现内容是好的
注:xfs文件系统更新容量值用”xfs_growfs    挂载点”
 
 
关于快照卷
1.为lv0制作快照
lvcreate -s -n lv0.snap -L 1G  /dev/vg0/lv0
lvs      信息如下
  LV       VG  Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root     cl  -wi-ao---- 17.00g                                                    
  swap     cl  -wi-ao----  2.00g                                                    
  lv0      vg0 owi-aos---  6.00g                                                    
  lv0.snap vg0 swi-a-s---  1.00g      lv0    0.00 


案例1:对源逻辑卷的数据进行更改,看lvs中的data%值的变化。
df
cp  -v   /etc/*.conf    /mnt/lv0
dd  if=/dev/zero   of=/mnt/lv0/100m    bs=10M    count=10
lvs

案例2:挂载快照卷。看快照中的数据是什么。
mkdir   -pv  /mnt/lv0snap
lvscan
mount    /dev/vg0/lv0.snap   /mnt/lv0snap
ls   /mnt/lv0snap        #发现快照卷中是创建快照时刻的数据。

案例3:恢复数据
1.打包备份快照卷中的数据(选做)
tar   -cvf    /opt/lv0snap.tar     /mnt/lv0snap        #保留快照数据就做tar这一步
umount   /mnt/lv0      #卸载
umount   /mnt/lv0snap
lvremove   /dev/vg0/lv0snap        #删除快照卷

2.恢复数据会删除快照卷   恢复之前要卸载 如果没有卸载要重启才能恢复数据
注:恢复数据,源逻辑卷中更改的数据就会丢失。
lvconvert   --merge  /dev/vg0/lv0.snap        #恢复快照
lvs
mount  /dev/vg0/lv0  /mnt/lv0        #挂载
ls  /mnt/lv0             #发现是创建快照时候的数据


最后谈谈个人对于快照卷的通俗简单的理解(不足之处请谅解):
假如lv0里面存有h、a、m三个文件,此时给lv0创建一个快照lv0.snap,此时的lv0.snap里面是没有任何文件的,即lv0.snap是一个空文件。当改动lv0里面的h文件时,则原始的h文件,即改动前的h文件会备份到lv0.snap文件,而改动后h.new文件则不会保存到lv0.snap中,且无论之后何如改动h.new文件 都不会备份到lv0.snap中。即lv0.snap只会在创建快照时的原始文件h、a、m被改动时才会把原始的h、a、m文件备份到lv0.snap中。即lv0.snap不会保存除了原始h、a、m文件以外的任何文件。






 

猜你喜欢

转载自blog.csdn.net/qq_34889607/article/details/78506154
今日推荐