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文件以外的任何文件。
  
  详细解决方案
                centos7—LVM逻辑卷
热度:34   发布时间:2023-10-18 12:49:09.0
                    相关解决方案
                
                - CentOS7 最小安装命令详解
 - 黑猴子的家:Centos7 修改网卡名称
 - centos7—日志文件
 - centos7—计划任务(at、cron)
 - centos7—LVM逻辑卷
 - centos7—交换分区
 - centos7—关于软链接和硬链接
 - centos7.3关于进程
 - centos7.3虚拟机挂载光盘以及配置yum源
 - centos7:mysql数据库(基本SQL语句---记录操作)
 - centos7:mysql数据库(基本SQL语句---库操作)
 - centos7:mysql数据库(基本SQL语句---字段操作)
 - centos7:mysql数据库(基本SQL语句---函数)
 - centos7:mysql数据库(基本SQL语句---表操作)
 - centos7:mysql数据库(关于修改密码)
 - centos7:mysql数据库(关于登录)
 - centos7:mysql数据库(基本目录结构)
 - 笔记:Centos7 文件操作相关指令
 - 笔记:Centos7 开机、启动相关的指令
 - 笔记:Centos7.4网络相关配置
 - 笔记:Centos7.4 安装 配置更仔细
 - 笔记一 Centos7 安装详细说明
 - Centos7 增加swap分区
 - centos7 linux系统如何安装zip/unzip
 - Centos7 yum 出现could not retrieve mirrorlist 最终解决方案
 - centos7 批量杀死进程
 - centos7 使用YUM安装MARIADB
 - centos7 常用服务操作命令
 - ubuntu/centos7.5安装python3.6
 - linux centos7 卸载mysql 脚本卸载