逻辑卷管理LVM

1,063 阅读5分钟

1. 逻辑卷LVM

LVM(Logical Volume Manager)逻辑卷管理,是一种将一个或多个硬盘的分区在逻辑上集合, 相当于一块大硬盘使用,空间不足可以继续将新硬盘或其他硬盘的分区加入其中,可以实现硬盘空间的动态管理,相比于磁盘分区,可以实现更好更方便的管理。

2. PV、VG、LV

PV (Physical Volume)

物理卷,处于LVM的最底层,可以是整块物理磁盘,也可以是磁盘分区。

VG( Volume Group )

建立在PV之上,可以是一个或多个PV。

PE (Physical Extend)

实体延伸区块,LVM默认使用4MB的PE区块,调整PE会影响到VG的最大容量。

LV (Logical Volume)

逻辑卷,建立在VG之上,相当于原来分区的概念。不过大小可以动态改变。

3. 添加逻辑卷

3.1. 创建物理卷

  • 查看当前存在的物理卷pv
#1 查看当前物理设备
[root@db4 ~]# fdisk -l
## 通常最后一块磁盘就是最近挂载的。

#2 创建物理卷
[root@db4 ~]# pvcreate /dev/sdb

3.2. 创建卷组

#使用/dev/sdb创建vg_01卷组
[root@db4 ~]# vgcreate vg_01 /dev/sdb

####
对卷组进行缩容的操作
vgreduce vg_1 /dev/sdb
####

3.3. 创建逻辑卷

#1 查看lvcreate命令帮助
[root@db4 ~]# lvcreate --help
{-l|--extents LogicalExtentsNumber[%{VG|PVS|FREE}] |(逻辑扩展数)
-L|--size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}(逻辑卷大小)
 [-n|--name LogicalVolumeName](逻辑卷名字)
...
## 这几个参数比较常用。

#2 多种创建LV的方法
#@2.1  创建一个2G大小的lv,指定名称lv_01
[root@db4 ~]# lvcreate -L 2G -n lv_01 vg_01

##2.2 创建一个占全部vg_02大小的lv_02
[root@db4 ~]# lvcreate  -l 100%VG -n lv_02 vg_02

##2.3 创建一个空闲空间80%大小的lv,并指定名字为lv_03
[root@db4 ~]# lvcreate -l 80%Free -n lv_03 vg_01

3.4. 格式化文件系统

#1 格式化文件系统,ext4格式
[root@db4 ~]# mkfs.ext4 /dev/mapper/vg_01-lv_01

#2 格式化文件系统,xfs
[root@db4 ~]# mkfs.xfs /dev/mapper/vg_01-lv_02

3.5. 挂载目录

#1 ext4文件系统挂载
[root@db4 ~]#  mount /dev/mapper/vg_01-lv_01 /data
[root@db4 ~]#  vim /etc/fstab
/dev/mapper/vg_01-lv_01  /data_backup  ext4 defaults   0  0

#2 xfs文件系统挂载
[root@db4 ~]#  mount /dev/mapper/vg_01-lv_01 /datadir
[root@db4 ~]#  vim /etc/fstab
/dev/mapper/vg_01-lv_01  /data_backup  xfs  defaults   0  0

4. 扩容逻辑卷

3.1. 创建物理卷

#1 查看挂载的磁盘名称
[root@db4 ~]# fdisk -l

#2 创建物理卷
[root@db4 ~]# pvcreate /dev/vdc

4.2. 卷组扩容

#1 查看当前卷组
[root@db4 ~]# vgs

#2 使用/dev/vdc给卷组vg_01扩容
[root@db4 ~]# vgextend vg_01 /dev/vdc

4.3. 逻辑卷扩容

[root@db4 ~]# lvextend -l 100%VG /dev/vg_01/lv_01 /dev/vdc 

4.4. 同步文件系统

#1 ext4格式
[root@db4 ~]# resize2fs /dev/mapper/vg_01-lv_01

#2 xfs格式
[root@db4 ~]# xfs_growfs /dev/mapper/vg_01-lv_01 

因为是逻辑卷扩容,之前的逻辑卷已经挂载好了,这里不许额外挂载操作。

5. 删除逻辑卷

通常有些时候,使用了lvm的磁盘,在不用之后需要删除lvm,再卸载。不然在云控制台卸载之后再挂载到别的服务器上会有如下报错和问题。

root@Test:~# pvs
  WARNING: Device for PV dVJb21-xPmP-1x9u-HIdC-aW4y-JZut-dwDI67 not found or rejected by a filter.
  PV             VG    Fmt  Attr PSize    PFree  
  /dev/vdk       vg_01 lvm2 a--     4.00t      0 
  unknown device vg_01 lvm2 a-m  1024.00g      0 
  ...
root@Test:~# vgs
  WARNING: Device for PV dVJb21-xPmP-1x9u-HIdC-aW4y-JZut-dwDI67 not found or rejected by a filter.
  VG    #PV #LV #SN Attr   VSize  VFree  
  vg_01   7   1   0 wz-pn- 16.01t 110.12g
root@Test:~# lvs
  WARNING: Device for PV dVJb21-xPmP-1x9u-HIdC-aW4y-JZut-dwDI67 not found or rejected by a filter.
  LV    VG    Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_01 vg_01 -wi-----p- 15.90t                                        

那么怎么做呢?怎么恢复这块磁盘呢?

5.1. 删除lv

root@Test:~# lvremove lv_01
  Volume group "lv_01" not found
  Cannot process volume group lv_01

好像lv已经不存在了。那么接着删除vg。

5.2. 删除vg

#1 删除vg
root@Test:~# vgremove vg_01               
  WARNING: Device for PV dVJb21-xPmP-1x9u-HIdC-aW4y-JZut-dwDI67 not found or rejected by a filter.
  WARNING: Device for PV UKGrzr-XH3g-nZDM-RomC-dcPZ-3FQe-JQjUfV not found or rejected by a filter.
  WARNING: Device for PV OCv94q-PJUa-tMsY-Hdq3-ehRf-vb5o-heqJKy not found or rejected by a filter.
  WARNING: Device for PV wc6gmx-kj2A-IfSY-4Jgo-2C8L-VpjR-Rkh7oq not found or rejected by a filter.
  WARNING: Device for PV xdXj9K-O5Cj-EqyC-dS2W-DGfx-b5sr-71H9yb not found or rejected by a filter.
  WARNING: Device for PV rYZfHs-ctch-1Y5a-1XWo-TzL9-vcpd-U03uRD not found or rejected by a filter.
  WARNING: 6 physical volumes are currently missing from the system.
Do you really want to remove volume group "vg_01" containing 1 logical volumes? [y/n]: y
Do you really want to remove and DISCARD logical volume lv_01? [y/n]: y
  Logical volume "lv_01" successfully removed
  Volume group "vg_01" not found, is inconsistent or has PVs missing.
  Consider vgreduce --removemissing if metadata is inconsistent.

#2 通过提示截止执行vgreduce --removemissing 
root@Test:~# vgreduce --removemissing vg_01         
  WARNING: Device for PV dVJb21-xPmP-1x9u-HIdC-aW4y-JZut-dwDI67 not found or rejected by a filter.
  WARNING: Device for PV UKGrzr-XH3g-nZDM-RomC-dcPZ-3FQe-JQjUfV not found or rejected by a filter.
  WARNING: Device for PV OCv94q-PJUa-tMsY-Hdq3-ehRf-vb5o-heqJKy not found or rejected by a filter.
  WARNING: Device for PV wc6gmx-kj2A-IfSY-4Jgo-2C8L-VpjR-Rkh7oq not found or rejected by a filter.
  WARNING: Device for PV xdXj9K-O5Cj-EqyC-dS2W-DGfx-b5sr-71H9yb not found or rejected by a filter.
  WARNING: Device for PV rYZfHs-ctch-1Y5a-1XWo-TzL9-vcpd-U03uRD not found or rejected by a filter.
  WARNING: Device for PV dVJb21-xPmP-1x9u-HIdC-aW4y-JZut-dwDI67 not found or rejected by a filter.
  WARNING: Device for PV UKGrzr-XH3g-nZDM-RomC-dcPZ-3FQe-JQjUfV not found or rejected by a filter.
  WARNING: Device for PV OCv94q-PJUa-tMsY-Hdq3-ehRf-vb5o-heqJKy not found or rejected by a filter.
  WARNING: Device for PV wc6gmx-kj2A-IfSY-4Jgo-2C8L-VpjR-Rkh7oq not found or rejected by a filter.
  WARNING: Device for PV xdXj9K-O5Cj-EqyC-dS2W-DGfx-b5sr-71H9yb not found or rejected by a filter.
  WARNING: Device for PV rYZfHs-ctch-1Y5a-1XWo-TzL9-vcpd-U03uRD not found or rejected by a filter.
  Wrote out consistent volume group vg_01

#3 验证
root@Test:~# lvs
root@Test:~# vgs

5.3. 删除pv

#1 查看pv
root@Test:~# pvs                   
  PV         VG    Fmt  Attr PSize PFree
  /dev/vdk   vg_01 lvm2 a--  4.00t 4.00t

#2 删除pv
root@Test:~# pvremove /dev/vdk
  Labels on physical volume "/dev/vdk" successfully wiped

OK,那么lvm就已经彻底删除了,该块磁盘可以挂在别得服务器了。

参考网址:www.zj1120.com/?p=376