lvm 逻辑卷管理

文章目录

  • 一、lvm 逻辑卷管理
      • 1、什么是lvm及用途、
      • 2、lvm的基本概念
      • 3、解决存储容量的问题:
      • 4、图解lvm如何解决存储容量的问题
  • 二、lvm的建立
  • 三、lvm拉伸
        • 3. 1 xfs格式的拉伸:(只能拉伸不能缩减)
            • 1、 当vg中剩余容量足够时
          • 2、 vg中剩余容量不足时
          • 3.2 ext文件系统的拉伸
  • 四.lvm设备的缩减
  • 五、lvm的快照
        • 5.1 建立快照
  • 六、lvm的删除
  • 七.lvm丢失设备的删除

一、lvm 逻辑卷管理

1、什么是lvm及用途、

  • LVM是 Logical Volume Manager(逻辑卷管理)的简写, 是Linux环境下对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性
  • 用途:普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,但lvm逻辑卷管理可以 使用户在不停机的情况下可以方便地调整各个分区大小。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的 文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。

2、lvm的基本概念

  • 物理存储介质(Physical Storage Media): 指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元
  • 物理卷(Physical Volume,PV)指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数
  • 卷组(Volume Group,VG),类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成,可以在卷组上创建一个或多个LV(逻辑卷)
  • 逻辑卷(Logical Volume,LV)类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上,在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)
  • 物理块(Physical Extent,PE),每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元,PE的大小是可配置的,默认为4MB,所以物理卷(PV)由大小等同的基本单元PE组成
  • 逻辑块(Logical Extent,LE)逻辑卷LV也被划分为可被寻址的基本单位,称为LE,在同一个卷组中,LE的大小和PE是相同的,并且一一对应
名称 名称
pv 物理卷,被lv命令处理过的物理分区
vg 物理卷组,被组装到一起的物理卷
pe 物理块,lvm设备的最小存储单元是pe的整数倍
lv 逻辑卷,直接使用的设备,可以增大缩减并保持原有数据不变
  • lvm存在意义:

3、解决存储容量的问题:

lvm 逻辑卷管理_第1张图片

4、图解lvm如何解决存储容量的问题

lvm 逻辑卷管理_第2张图片

二、lvm的建立

条件:一个建立好的未被格式化的物理分区

pvcreate---->vgcreate---->lvceate
在创建过程中我们可以用以下命令监控,可以更好的看到创建效果:

 1|watch -n 1 "pvs;echo ======;vgs;echo ======;lvs;echo ======;df -h /weixindata"
  • step1
    划分lvm所用到的设备(划分物理分区),这些设备的功能id必须是linux LVM
 2|fdisk /dev/vdb

lvm 逻辑卷管理_第3张图片
(1)定分区标签为8e,更改 /dev/vdb1的系统为Linux LVM
lvm 逻辑卷管理_第4张图片

  • step2
    建立pv(相当于把橘子榨汁的过程)
  1 | pvcreate /dev/vdb1							##把物理分区做成物理卷
  2 | pvs|pvdisplay								##查看物理卷

lvm 逻辑卷管理_第5张图片

  • step3
    建立vg(相当于把果汁倒进大容器的过程)
  1 | vgcreate vg0 /dev/vdb1		##用制作好的/dev/vdb1这个物理卷制作一个物理卷组vg0
  2 | vgs|vgdisplay				##查看物理卷组

lvm 逻辑卷管理_第6张图片

  • step4
    建立lvm
  1 | lvcreate -L 100M -n lv0 vg0			##在vg0这个组中建立出lv0设备 -L 指定设备大小 -n 指定设备名字
  2 | lvs|lvdisplay						##对逻辑卷设备进行查看

lvm 逻辑卷管理_第7张图片

  • step5
    lvm建立成功之后要进行以下两步:
  1 | mkfs.xfs /dev/vg0/lv0					##格式化
  2 | mkdir /date                             ##建立挂载点 /weixindata
  3 | mount /dev/vg0/lv0 /weixindata			##挂载到/weixindata

lvm 逻辑卷管理_第8张图片

三、lvm拉伸

  • 针对xfs文件系统

3. 1 xfs格式的拉伸:(只能拉伸不能缩减)

1、 当vg中剩余容量足够时

lvm扩大:

  1 | lvextend -L 100M /dev/vg0/lv0			    ##扩大lvm设备到500M
  2 | xfs_growfs /dev/vg0/lv0					##扩大xfs文件系统到设备大小

lvm 逻辑卷管理_第9张图片
lvm 逻辑卷管理_第10张图片

2、 vg中剩余容量不足时
   1 | fdisk /dev/vdb 新建一块分区设备 ,partprobe 更新分区列表

lvm 逻辑卷管理_第11张图片
lvm 逻辑卷管理_第12张图片
lvm 逻辑卷管理_第13张图片
vg扩大:

  1 | pvcreate /dev/vdb2						##在pv中增加一块设备/dev/vdb2
  2 | vgextend vg0 /dev/vdb2					##把新建立的/dev/vdb2添加到vg0中	

lvm 逻辑卷管理_第14张图片
lvm 逻辑卷管理_第15张图片
lvm扩大:

  1 | lvextend -L 500M /dev/vg0/lv0			    ##扩大lvm设备到500M
  2 | xfs_growfs /dev/vg0/lv0					##扩大xfs文件系统到设备大小

lvm 逻辑卷管理_第16张图片
lvm 逻辑卷管理_第17张图片
- 针对ext文件系统

3.2 ext文件系统的拉伸
  • 由于我们系统中目前的文件系统是xfs系统,我们先通过以下方法把它转化成ext系统
  1 | umount /weixindata						##卸载(进行文件系统转换时要先卸载)
  2 | mkfs.ext4 /dev/vg0/lv0					##格式化成ext文件系统
  3 | mount /dev/vg0/lv0 /weixindata

lvm 逻辑卷管理_第18张图片
lvm 逻辑卷管理_第19张图片
vg扩大:(和xfs系统相同)

  1 | pvcreate /dev/vdb3          		        ##在pv中增加一块设备/dev/vdb3
  2 | vgextend vg0 /dev/vdb3					##把新建立的/dev/vdb3添加到vg0中

lvm扩大:

  1 | lvextend -L 900M /dev/vg0/lv0				##扩大lvm设备到900M
  2 | resize2fs /dev/vg0/lv0					##设定文件系统大小和设备同步

lvm 逻辑卷管理_第20张图片

四.lvm设备的缩减

  • 注意:xfs文件系统不能缩减,只有ext文件系统可以缩减

1.lvm缩减:

  1 | umount /dev/vg0/lv0					##卸载设备,因为文件系统缩减不支持在线操作
  2 | e2fsck -f /dev/vg0/lv0				##检测文件系统,确定文件系统中已有数据大小防止过度缩减
  3 | resize2fs  /dev/vg0/lv0  300M		    ##把文件系统缩减到300M
  4 | lvreduce  -L 300M /dev/vg0/lv0 		##设备缩减到300M

2.vg缩减:

  • 注意:在vg缩减时只能缩减没有被占用的设备
  1 | pvmove  /dev/vdb2  /dev/vdb1			##把设备2上的所有数据移动到设备1上,完全移过去再操作,否则会损坏文件
  2 | vgreduce  vg0  /dev/vdb2				##把vg0中的/dev/vdb2删除
  3 | pvremove /dev/vdb2					##/dev/vdb2上的lvm管理信息删除
  • 如何移除含有数据的设备:pvmove /dev/vdb1 /dev/vdb2 将1的数据移动到2上,完全移过去再操作,否则会损坏文件

lvm 逻辑卷管理_第21张图片

五、lvm的快照

5.1 建立快照

(1)我们 在/weixindate中建立touch file{1…10}
(2)umount /weixindate/ 先解挂磁盘才可以照快照

  1 | lvcreate -L 20M -n lv0backup -s /dev/vg0/lv0		##/dev/vg0/lv0建立快照,-L指定快照大小,
                                                                    -n指定快照名字,-s指定快照模板设备
  2 | mount /dev/vg0/lv0backup /weixindata 				##挂载
  • 注意:
    1.当快照设备里的数据被更改,如果想还原,删除快照设备,再重新建立快照即可
    2.创建快照时要预估好快照大小,如果在使用时截取一个比快照大的文件,快照会被撑坏

lvm 逻辑卷管理_第22张图片

六、lvm的删除

lvremove---->vgremove----->pvremove
step1 卸载设备

  1 | umount /dev/vg0/lv0							##卸载
  2 | df											##查看设备挂载情况

step2 lvremove

  1 | lvremove /dev/vg0/lv0backup		 		 ##删除快照
  2 | lvremove /dev/vg0/lv0				 		 ##删除lv0

step3 vgremove

  1 | vgremove vg0								##删除vg

step4 pvremove

  1 | pvremove /dev/vdb1							##删除物理卷

lvm 逻辑卷管理_第23张图片

七.lvm丢失设备的删除

  • 模拟设备丢失情况:

step1 首先建立好lvm,挂载好,并且用命令监控实时情况

  1 | watch -n 1 "pvs;echo ======;vgs;echo ======;lvs;echo ======;df -h /weixindata"		##监控命令

step2 用fisk /dev/vdb 命令手动删除设备/dev/vdb1
lvm 逻辑卷管理_第24张图片
删除后在监控界面会出现报错:PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?

  • 删除丢失的设备
  1 | vgreduce --removemissing vg0					##删除vg0中丢失的设备

你可能感兴趣的:(Linux基础)