Blog17@linux关于lvm

本节主要介绍关于lvm的建立、拉伸、缩小、删除、即快照的建立还有一些基本问题的解决方法


LVM


1.关于lvm的基本了解

  Blog17@linux关于lvm_第1张图片

PV(physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区。
VG(volume group):卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。
LV(logical volume):逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可以动态扩展和缩小空间。
PE(physical extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。
LE(logical extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
卷组描述区域:卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中逻辑卷、逻辑卷中物理区域的分配等所有信息,它是在使用pvcreate建立物理卷时建立的。


2. lvm建立


>>划分物理分区,并修改分区标签为1vm
    8e
>>pvcreate /dev/vdb1        ##创建物理卷
>>vgcreate vg0 /dev/vdb1    ##创建物理卷组
>>lvcreate -L 100M -n lv0 vg0    ##创建逻辑卷
>>mkfs.xfs /dev/vg0/lv0        ##格式化设备
>>mount /dev/vg0/lv0 /westos    ##设备挂载投入使用

#监控命令#

watch -n 1 ‘pvs;echo =======;vgs;echo========;lvs;echo========;df -h /westos'

3. lvm拉伸


##在xfs文件系统下##

1)当vg中剩余容量充足时,

>>lvextend -L 400M /dev/vg0/lv0    ##拉伸逻辑卷容量
>>xfs_growfs /dev/vg0/lv0    

2)当vg中的容量不足时

如下情况:
[root@localhost westos]# lvextend -L 700 /dev/vg0/lv0
  Extending logical volume lv0 to 700.00 MiB
  Insufficient free space: 51 extents needed, but only 0 available

>>pvcreate /dev/vdb2        ##创建新的物理卷
>>vgextend vg0 /dev/vdb2    ##扩大物理卷组
>>lvextend -L 700M /dev/vg0/lv0    ##扩大逻辑卷容量
>>xfs_growfs /dev/vg0/lv0     ##拉伸设备文件容量

4. lvm缩减


##在ext文件系统下##

*更换文件系统为ext4

>>umount /westos
>>mkfs.ext4 /dev/vg0/lv0

*拉伸

>>lvextend -L 800M /dev/vg0/lv0
>>mount /westos
>>resize2fs /dev/vg0/lv0    ##更改文件设备容量(支持挂载同时热更改)

*缩减

1)对设备
>>umount /westos
>>e2fsck -f /dev/vg0/lv0 #确定已有设备文件的大小
>>resize2fs /dev/vg0/lv0 200M
>>mount /dev/vg0/lv0 /westos
>>lvreduce -L 200 /dev/vg0/lv0

不支持在线操作,必须先取消挂载

2)对卷组
>>pvmove /dev/vdb1 /dev/vdb2  #当我要移除的分区存在数据,那么需要把数据迁移到其他pv中
>>vgreduce vg0 /dev/vdb1
>>pvremove /dev/vdb1

5.lvm的快照


快照作用:保护原始数据不被破坏
>>lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0
实操:

1)在/westos下建立文件

注:此时/westos下挂载的是设备/dev/vg0/lv0
touch /westos/file{1..4}
ls /westos

2)取消/westos挂载

umount /westos

3)新建快照设备删除/westos下文件

lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0##同时亦快照了文件系统,故不用对快照的逻辑卷格式化就可以进行挂载
mount /dev/vg0/lv0backup /westos
ls /westos
rm -rf file*

4)取消快照设备挂载

umount /westos

5)移除快照设备

lvremove /dev/vg0/lv0backup

6)新建快照设备lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0

mount /dev/vg0/lv0backup /westos

7)查看/westos下文件

ls /westos

6. lvm的删除

lvremove /dev/vg0/lv0
vgremove vg0
pvremove /dev/vdb2
fdisk /dev/vdb


#当lvm的分区被误删除时#

当出现以下错误时:

1)

删除分区 /dev/vdb1 后,同步结果如下:
[root@server ~]# partprobe
Error: Partition(s) 1 on /dev/vdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a result, the old partition(s) will remain in use.  You should reboot now before making further changes.
[root@server ~]# fdisk -l
   Device Boot      Start         End      Blocks   Id  System
/dev/vdb2         1026048     2050047      512000   8e  Linux LVM
[root@server ~]# blkid
/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs" 
/dev/vdb1: UUID="1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH" TYPE="LVM2_member" 
/dev/vdb2: UUID="8XOl5c-DuVJ-SCzS-NSND-Zf6h-Op0V-CIKcB7" TYPE="LVM2_member" 
[root@server ~]# pvremove /dev/vdb1
  PV /dev/vdb1 belongs to Volume Group vg0 so please use vgreduce first.
  (If you are certain you need pvremove, then confirm by using --force twice.)

说明分区 /dev/vdb1 正在被使用时,被删除了。

解决办法:

[root@server ~]# pvmove /dev/vdb1 /dev/vdb2
  /dev/vdb1: Moved: 6.0%
  /dev/vdb1: Moved: 100.0%

2)

[root@server ~]# pvs
  PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?
  PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?
  PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?
  PV             VG   Fmt  Attr PSize   PFree  
  /dev/vdb2      vg0  lvm2 a--  496.00m 296.00m
  unknown device vg0  lvm2 a-m  496.00m 496.00m
[root@server ~]# vgs
  PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?
  PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?
  VG   #PV #LV #SN Attr   VSize   VFree  
  vg0    2   1   0 wz-pn- 992.00m 792.00m
[root@server ~]# partprobe

解决办法:

[root@server ~]# vgreduce vg0 --removemissing



你可能感兴趣的:(linux)