Linux 逻辑卷LVM管理命令
LVM逻辑卷管理是Linux对磁盘分区进行管理的一种机制,普通磁盘无法实现动态扩展,而LVM就是将物理磁盘融合成一个巨大的存储池,用户可以按需求动态的调整磁盘的容量,使磁盘容量更好的被利用。
- LVM的组成部分:
- 物理卷(PV): 由磁盘或分区转化而成的物理分区.
- 卷组(VG): 将多个物理卷组合在一起组成了卷组,组成同一个卷组的可以是同一个硬盘的不同分区,也可以是不同硬盘上的不同分区,我们通常把卷组理解为一块硬盘.
- 逻辑卷(LV): 把卷组理解为硬盘的话,那么我们的逻辑卷则是硬盘上的分区,逻辑卷可以进行格式化,存储数据.
- 物理扩展(PE): PE卷组的最小存储单元,PE所在的位置是VG卷组,即硬盘上,那么我们可以把PE理解为硬盘上的扇区,默认是4MB,可自由配置.
创建/移除物理卷(PV): 使用系统中存在的/dev/sdb /dev/sdc磁盘,并将两个磁盘加入到PV物理卷组中.
[root@localhost ~]# ll /dev/sd[b-z]
brw-rw---- 1 root disk 8, 16 Sep 21 22:04 /dev/sdb
brw-rw---- 1 root disk 8, 32 Sep 21 22:04 /dev/sdc
[root@localhost ~]# pvcreate /dev/sdb /dev/sdc           # 此处拿2块硬盘创建
[root@localhost ~]# pvremove /dev/sdc                    # 移除/dev/sdd磁盘
[root@localhost ~]# pvs                                  #查询创建好的硬盘
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sda2  centos lvm2 a--  <9.00g     0
  /dev/sdb          lvm2 ---  10.00g 10.00g
创建VG卷组: 创建VG卷组,VG卷组要在PV物理卷中选择,创建命令如下.
vgcreate -s [指定PE大小] [VG卷组名] [分区路径] [分区路径][.....]
[root@localhost ~]# pvs
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sda2  centos lvm2 a--  <9.00g     0
  /dev/sdb          lvm2 ---  10.00g 10.00g
  /dev/sdc          lvm2 ---  10.00g 10.00g
[root@localhost ~]# vgcreate -s 4M my_vg /dev/sdb /dev/sdc        #此处就是创建一个VG卷组
[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   1   2   0 wz--n- <9.00g     0
  my_vg    2   0   0 wz--n- 19.99g 19.99g                         #这就是VG卷组,名字是my_vg
添加新的PV到VG卷组: 给当前my_vg卷组添加新的PV,也就是扩展卷组
vgextend [卷组名] [物理卷分区]
[root@localhost ~]# vgextend my_vg /dev/sdd                 #添加一个PV到指定卷组
[root@localhost ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  centos lvm2 a--   <9.00g      0
  /dev/sdb   my_vg  lvm2 a--  <10.00g <10.00g
  /dev/sdc   my_vg  lvm2 a--  <10.00g <10.00g
  /dev/sdd   my_vg  lvm2 a--  <10.00g <10.00g               #已被划分到my_vg卷组
移除单个PV: 在VG卷组里移除一个PV,将/dev/sdd从my_vg卷组里移除
vgreduce [卷组名] [物理卷分区]
[root@localhost ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  centos lvm2 a--   <9.00g      0
  /dev/sdb   my_vg  lvm2 a--  <10.00g <10.00g
  /dev/sdc   my_vg  lvm2 a--  <10.00g <10.00g
  /dev/sdd   my_vg  lvm2 a--  <10.00g <10.00g
[root@localhost ~]# vgreduce my_vg /dev/sdd                #将/dev/sdd从my_vg卷组里移除
[root@localhost ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  centos lvm2 a--   <9.00g      0
  /dev/sdb   my_vg  lvm2 a--  <10.00g <10.00g
  /dev/sdc   my_vg  lvm2 a--  <10.00g <10.00g
  /dev/sdd          lvm2 ---   10.00g  10.00g
移除整个VG卷组: 将创建的my_vg彻底移除,移除整个卷组
[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   1   2   0 wz--n- <9.00g     0
  my_vg    2   0   0 wz--n- 19.99g 19.99g
[root@localhost ~]# vgremove my_vg                    #移除整个卷组
  Volume group "my_vg" successfully removed
[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   1   2   0 wz--n- <9.00g    0
移除空闲VG卷组: 将卷组中空闲的VG从PV中移除,也就是如果该卷组空间为空,则移除掉.
vgreduce -a [卷组名]
[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n-  <9.00g      0
  my_vg    3   0   0 wz--n- <29.99g <29.99g
[root@localhost ~]# vgreduce -a my_vg                 #只移除空卷组
[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n-  <9.00g      0
  my_vg    1   0   0 wz--n- <10.00g <10.00g
创建LVM逻辑卷: 创建一个LVM逻辑卷名字是my_lv并从my_vg中划分空间,划分10G空间
lvcreate -L [指定大小] -n [LV名字] [VG卷组:从哪个卷组里划分]
[root@localhost ~]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <8.00g
  swap centos -wi-ao----  1.00g
[root@localhost ~]# lvcreate -L 10G -n my_lv my_vg            #创建LVM逻辑卷
[root@localhost ~]# lvs
  LV    VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root  centos -wi-ao---- <8.00g
  swap  centos -wi-ao----  1.00g
  my_lv my_vg  -wi-a----- 10.00g
格式化并挂载LVM: 测试LVM是否正常工作,在创建好LVM以后需要手动格式化
[root@localhost ~]# mkdir /LVM                            #首先创建一个挂载点
[root@localhost ~]# mkfs.ext4 /dev/my_vg/my_lv            #格式化LVM分区
[root@localhost ~]# mount /dev/my_vg/my_lv /LVM/          #挂载LVM
LV容量增加(扩容): 将LV的容量增加5G的空间,需要注意扩展要先扩展LVM,然后再扩展文件系统
[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  8.0G  1.2G  6.9G  15% /
/dev/sda1               1014M  130M  885M  13% /boot
/dev/mapper/my_vg-my_lv  9.8G   37M  9.2G   1% /LVM                  ←此处是10G
[root@localhost ~]# lvextend -L +5G /dev/my_vg/my_lv                 #执行增加命令,从VG卷组划分5G
[root@localhost ~]# resize2fs -f /dev/my_vg/my_lv                    #扩展文件系统
[root@localhost ~]# df -h                                            #验证扩展结果
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  8.0G  1.2G  6.9G  15% /
/dev/sda1               1014M  130M  885M  13% /boot
/dev/mapper/my_vg-my_lv   15G   41M   14G   1% /LVM                  ←此处已经从10G 增加到15G
LV容量缩小(收缩): 将LV的容量缩小5G的空间,缩小要先卸载分区并检查分区,然后缩小文件系统,最后再缩小LVM
[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  8.0G  1.2G  6.9G  15% /
/dev/sda1               1014M  130M  885M  13% /boot
/dev/mapper/my_vg-my_lv   15G   41M   14G   1% /LVM                 ←此处显示15G空间
[root@localhost ~]# umount /dev/my_vg/my_lv                         #卸载LVM卷组
[root@localhost ~]# e2fsck -f /dev/my_vg/my_lv                      #检查文件系统
[root@localhost ~]# resize2fs -f /dev/my_vg/my_lv 10G(减小后的大小)   #缩小文件系统
[root@localhost ~]# lvreduce -L 10G /dev/my_vg/my_lv                 #缩小LVM
Do you really want to reduce my_vg/my_lv? [y/n]: y                   #输入y
[root@localhost ~]# mount /dev/my_vg/my_lv /LVM/                    #挂载
[root@localhost ~]# df -h                                           #再次查看分区变化
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  8.0G  1.2G  6.9G  15% /
/dev/sda1               1014M  130M  885M  13% /boot
/dev/mapper/my_vg-my_lv  9.8G   37M  9.2G   1% /LVM                 ←此处已经从15G变成10G
对LVM拍摄快照: LVM支持快照的拍摄与恢复,快照拍摄可以使用lvcreate命令.
lvcreate [-s 快照] -n [快照名] -L [快照大小] [指定分区] 
[root@localhost LVM]# lvcreate -s -n mylv_back -L 200M /dev/my_vg/my_lv            #给/LVM目录拍摄快照
[root@localhost LVM]# lvs                                                          #查看快照
  LV        VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root      centos -wi-ao----  <8.00g
  swap      centos -wi-ao----   1.00g
  my_lv     my_vg  owi-aos---  10.00g
  mylv_back my_vg  swi-a-s--- 200.00m      my_lv  0.01                             ←此处就是快照
对LVM恢复快照: 回复LVM快照时,第一步需要创建一个挂载点,然后将mylv_back挂载到挂载点上,从中拷贝出来即可.
[root@localhost LVM]# rm -fr *                                #模拟被删除
[root@localhost LVM]# mkdir /back                             #创建挂载点
[root@localhost LVM]# mount /dev/my_vg/mylv_back /back/       #挂载备份文件
[root@localhost LVM]# cp -a /back/* ./                        #复制备份文件
[root@localhost LVM]# ls
    文章出处:https://www.cnblogs.com/LyShark/p/10167313.html
本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号