|
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文件以外的任何文件。
|
|
|