逻辑卷管理器LVM

1、逻辑卷管理器LVM

  允许对卷进行方便操作的抽象层,包括重新设定文件系统大小。

  允许在多个物理设备间重新组织文件系统。

    • 将设备指定为物理卷
    • 用一个或多个物理卷来创建一个卷组
    • 物理卷是用固定大小的物理区域(PE) 来定义的,
    • 在物理卷上创建逻辑卷是由物理区域(PE)组成
    • 可以在逻辑卷上创建文件系统。

            

2、LVM介绍

  LVM:logical volume manager , version:2

  dm:device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块。

  设备名: /dev/dm-# (这才是真正的设备名,下面软连接是为了方式使用)

  软连接:

    /dev/mapper/VG_NAME-LV_NAME

       /dev/mapper/vol0-root

    /dev/VG_NAME/LV_NAME

      /dev/vol0/root

3、LVM更改文件系统的容量

  LVM可以弹性的更改LVM 的容量

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

  lv 是由多个pe组成!!!

      

 

4、pv管理工具:

  显示pv信息:

    pvs, pvdisplay

  创建pv

    pvcreate  /dev/DEVICE

5、vg 管理工具

  显示卷组

    vgs, vgdisplay

  创建卷组:
    vgcreate -s # (PE大小)  VG_NAME    /dev/{ DEVICE1, DEVICE2..}

  管理卷组:

    vgextend VG-NAME    /dev/{ device1, device2,..}   :扩展卷组

    vgreduce VG_NAME   /dev/{device1, device2,....} :缩减卷组

  删除卷组:

    先做pvmove,再做vgmove

6、lv管理工具:

  显示逻辑卷

    lvs, lvdisplay

  创建逻辑卷:

    lvcreate -L # (指定多大) -n   LV-NAME   VG-NAME   如果是小l  指的是PE个数

    lvcreate  -l 60%VG -n  LV-NAME  VG-NAME

    lvcreate -l 100%FREE -n LV-NAME VG-NAME (剩余的vg都创建为lv)

  删除逻辑卷:

    lvremove /dev/VG-NAME/LV-NAME

  重设文件系统大小:

    resize2fs     -f   device    【new-size】

5、扩展和缩减逻辑卷:

  扩展逻辑卷:

    lvextend -L [+] #   /dev/VG-NAME/LV-NAME

    resize2fs  /dev/VG-NAME/LV-NAME

    lvresize -r -l +100FREE /dev/VG-NAME/LV-NAME

  缩减逻辑卷:xfs不支持缩减

    umount /dev/VG-NAME/LV-NAME

    fsck -f  /dev/VG-NAME/LV-NAME

    resize2fs  /dev/VG-NAME/LV-NAME    #  :缩减多大

    lvreduce -L [-]#    /dev/VG-NAME/LV-NAME

    mount  

    lsblk:可以知道逻辑卷来自那块磁盘 

实验:扩展逻辑卷

1 查看VG空间
vgdisplay 

2 lvextend -l +100%FREE /dev/vg0/lv0
 resize2fs /dev/vg0/lv0 ext文件系统,扩展之后,df查看是没有识别到内存中,所以需要命令来识别
 xfs_grow  /mnt/lv0    xfs文件系统
或者合并一条命令
lvextend -r -l +100%FREE /dev/vg0/lv0

3 df -h 查看


实验:缩减逻辑卷(只支持ext)

1 umount /mnt/lv0

2 fsck -f /dev/vg0/lv0

3 resize2fs /dev/vg0/lv0 1G

4 lvreduce -L 1G /dev/vg0/lv0

5 mount 

 

 

6、跨主机迁移卷组:centos7  xfs, 兼容ext,centos6 只支持ext

  源计算机上:

    1. 在旧系统中,umount 所有卷组上的逻辑卷
    2. vgchange -an vg0    ,变为 非活动状态     lvdisplay ----有status:NOT available
    3. vgexport vg0     导出,   pvscan,扫描   vgdisplay
    4. 拆下就磁盘        

  在目标计算机上:

      5、在新系统中安装旧磁盘,并vgimport vg0,导入 vg

      6、vgchange -ay vg0

      7、mount 所有卷组上的逻辑卷

 

如果目标机器上,有同样的vg-name,需要先改名字,vgrename  old-name   new-name

插上新的磁盘:

  scandisk

  echo '- - -' > /sys/class/scsi_host/host0/scan

 

7、逻辑卷快照管理

  快照:如果磁盘损坏了,也是不能恢复的。

  快照工作原理:

      开辟一个新的空间,修改文件的时候,把旧推送到新的空间,修改后的新版本,还在原来的空间

      会降低IO性能。

      新空间的大小   小于等于 原空间大小,只放被修改数据的旧数据。

 

  使用lvm 快照

    • 为现有逻辑卷创建快照
      • lvcreate -L1G -s(表示快照的逻辑卷)  -n  lv0-snapshot   -p r(读权限) /dev/vg0/lv0 
    • 挂载快照
      • mkdir -p /mnt/snap
      • mount -o ro /dev/vg0/lv0-snapshot  /mnt/snap
    • 恢复快照
      • umount /dev/vg0/lv0-snapshot
      • umount /dev/vg0/lv0
      • lvconvert -merge /dev/vg0/lv0-snapshot 
      • centos6 恢复之后,快照就没了     
    • 删除快照
      • umount /mnt/databackup
      • lvremove /dev/vg0/databackup      

 

    centos7 上,挂载快照 要 加  -o nouuid  因为快照卷和源卷 uuid一样 是挂不上去的

 

实验:移除PV对应的磁盘
确保同一个卷组中,还有足够的可用空间
pvmove /dev/vg0/lv0 
vgreduce vg0 /dev/vg0/lv0
pvremove /dev/vg0/lv0

实验:删除所有PV,VG,LV

umount 
lvremove 
vgremove 
pvrmove 

 

posted @ 2019-03-28 13:29  JerryZao  阅读(519)  评论(0编辑  收藏  举报