【Linux】LVM管理

深度链接 / 2023-12-06 21:47:55 / 446

什么是LVM?如何对LVM进行管理?

1、什么是LVM?

LVM是Logical Volume Manager(逻辑卷管理)的简称,是磁盘分区管理的一种机制,可以有效提高磁盘管理的灵活性。它是存在于磁盘分区上,文件系统下的逻辑层。把磁盘分区做成一个逻辑卷,并把逻辑卷作为一个整体来管理,可以比较灵活实现分区扩容和缩减操作。


2、几个名词

物理扩展(Physical Extend)PE
物理卷(Physical Volume) PV
卷组(Volume Group) VG
逻辑卷(Logical Volume) LV

3、查看命令

查看磁盘:fdisk -l
查看物理卷:pvs|pvdispaly
查看卷组:vgs|vgdispaly
查看逻辑卷:lvs|lvdispaly

4、逻辑卷管理操作

4.1、逻辑卷创建

#创建物理卷
#pvcreate 设备名称
[root@wrx ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created
#查看物理卷
[root@wrx ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sdb        lvm2 a--  20.00g 20.00g
#创建卷组
#vgcreate vg名 物理卷路径
[root@wrx ~]# vgcreate vol_group_1 /dev/sdb
  Volume group "vol_group_1" successfully created
#查看卷组
[root@wrx ~]# vgs
  VG          #PV #LV #SN Attr   VSize  VFree 
  vol_group_1   1   0   0 wz--n- 20.00g 20.00g
#创建逻辑卷
#lvcreate -L 大小 -n lv名 vg名
[root@wrx ~]# lvcreate -L 6G -n vg_wrx_lv_root vol_group_1
  Logical volume "vg_wrx_lv_root" created
#查看逻辑卷
[root@wrx ~]# lvs
  LV             VG          Attr       LSize Pool Origin Data%  Move Log Cpy%Sync Convert
  vg_wrx_lv_root vol_group_1 -wi-a----- 6.00g     
#格式化逻辑卷                                        
[root@wrx ~]# mkfs.ext4 /dev/vol_group_1/vg_wrx_lv_root
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
393216 inodes, 1572864 blocks
78643 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1610612736
48 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
#挂载
[root@wrx ~]# mount /dev/vol_group_1/vg_wrx_lv_root /data
[root@wrx ~]#

4.2、逻辑卷扩展

[root@wrx ~]# df -h
Filesystem                              Size  Used Avail Use% Mounted on
/dev/sda2                                18G  5.5G   12G  33% /
tmpfs                                   495M   72K  495M   1% /dev/shm
/dev/sda1                               291M   34M  242M  13% /boot
/dev/mapper/vol_group_1-vg_wrx_lv_root  6.0G  140M  5.5G   3% /data
#物理卷扩展与物理卷创建相同
[root@wrx ~]# pvcreate /dev/sdc
  Physical volume "/dev/sdc" successfully created
[root@wrx ~]# pvs
  PV         VG          Fmt  Attr PSize  PFree 
  /dev/sdb   vol_group_1 lvm2 a--  20.00g 14.00g
  /dev/sdc               lvm2 a--   5.00g  5.00g
[root@wrx ~]# vgs
  VG          #PV #LV #SN Attr   VSize  VFree 
  vol_group_1   1   1   0 wz--n- 20.00g 14.00g
#卷组扩展
#vgextend vg名 pv名(新增的物理卷)
[root@wrx ~]# vgextend vol_group_1 /dev/sdc
  Volume group "vol_group_1" successfully extended
[root@wrx ~]# vgs
  VG          #PV #LV #SN Attr   VSize  VFree 
  vol_group_1   2   1   0 wz--n- 24.99g 18.99g
#扩展前的逻辑卷vg_wrx_lv_root为6G
[root@wrx ~]# lvs
  LV             VG          Attr       LSize Pool Origin Data%  Move Log Cpy%Sync Convert
  vg_wrx_lv_root vol_group_1 -wi-ao---- 6.00g   
#将逻辑卷vg_wrx_lv_root扩展到9G
#lvextend -L 大小 lv完整路径                                          
[root@wrx ~]# lvextend -L 9G /dev/vol_group_1/vg_wrx_lv_root
  Extending logical volume vg_wrx_lv_root to 9.00 GiB
  Logical volume vg_wrx_lv_root successfully resized
[root@wrx ~]# lvs
  LV             VG          Attr       LSize Pool Origin Data%  Move Log Cpy%Sync Convert
  vg_wrx_lv_root vol_group_1 -wi-ao---- 9.00g     
#将逻辑卷vg_wrx_lv_root增加1G                                        
[root@wrx ~]# lvextend -L +1G /dev/vol_group_1/vg_wrx_lv_root
  Extending logical volume vg_wrx_lv_root to 10.00 GiB
  Logical volume vg_wrx_lv_root successfully resized
[root@wrx ~]# lvs
  LV             VG          Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
  vg_wrx_lv_root vol_group_1 -wi-ao---- 10.00g     
#刷新文件系统 
#resize2fs lv完整路径                                        
[root@wrx ~]# resize2fs /dev/vol_group_1/vg_wrx_lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vol_group_1/vg_wrx_lv_root is mounted on /data; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/vol_group_1/vg_wrx_lv_root to 2621440 (4k) blocks.
The filesystem on /dev/vol_group_1/vg_wrx_lv_root is now 2621440 blocks long.
[root@wrx ~]# df -h
Filesystem                              Size  Used Avail Use% Mounted on
/dev/sda2                                18G  5.5G   12G  33% /
tmpfs                                   495M   72K  495M   1% /dev/shm
/dev/sda1                               291M   34M  242M  13% /boot
/dev/mapper/vol_group_1-vg_wrx_lv_root  9.9G  142M  9.3G   2% /data
[root@wrx ~]#

逻辑扩展注意灵活使用,以及命令使用顺序

4.3、逻辑卷缩小

[root@wrx ~]# df -h
Filesystem                              Size  Used Avail Use% Mounted on
/dev/sda2                                18G  5.5G   12G  33% /
tmpfs                                   495M   72K  495M   1% /dev/shm
/dev/sda1                               291M   34M  242M  13% /boot
/dev/mapper/vol_group_1-vg_wrx_lv_root  9.9G  142M  9.3G   2% /data
#卸载,如果无法卸载,使用fuser命令
[root@wrx ~]# umount /dev/vol_group_1/vg_wrx_lv_root
umount: /data: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
[root@wrx ~]# fuser -m /data -k
/data:                2341c
[root@wrx ~]# umount /dev/vol_group_1/vg_wrx_lv_root
#文件系统检查
[root@wrx ~]# e2fsck -f /dev/vol_group_1/vg_wrx_lv_root
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vol_group_1/vg_wrx_lv_root: 12/655360 files (0.0% non-contiguous), 77359/2621440 blocks
#减少文件系统,将减少到8G
#resize2fs lv完整路径 减小后的大小
[root@wrx ~]# resize2fs /dev/vol_group_1/vg_wrx_lv_root 8G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vol_group_1/vg_wrx_lv_root to 2097152 (4k) blocks.
The filesystem on /dev/vol_group_1/vg_wrx_lv_root is now 2097152 blocks long.
[root@wrx ~]# lvs
  LV             VG          Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
  vg_wrx_lv_root vol_group_1 -wi-a----- 10.00g     
#逻辑卷减小,减小2G
#***逻辑卷减小后的大小要和减小后的文件系统大小相等
#lvreduce -L 减小大小 lv完整路径                                          
[root@wrx ~]# lvreduce -L -2G /dev/vol_group_1/vg_wrx_lv_root
  WARNING: Reducing active logical volume to 8.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg_wrx_lv_root? [y/n]: y
  Reducing logical volume vg_wrx_lv_root to 8.00 GiB
  Logical volume vg_wrx_lv_root successfully resized
[root@wrx ~]# lvs
  LV             VG          Attr       LSize Pool Origin Data%  Move Log Cpy%Sync Convert
  vg_wrx_lv_root vol_group_1 -wi-a----- 8.00g  
#挂载                                           
[root@wrx ~]# mount /dev/vol_group_1/vg_wrx_lv_root /data
#/dev/mapper/vol_group_1-vg_wrx_lv_root减小后的大小为8G
[root@wrx ~]# df -h
Filesystem                              Size  Used Avail Use% Mounted on
/dev/sda2                                18G  5.5G   12G  33% /
tmpfs                                   495M   72K  495M   1% /dev/shm
/dev/sda1                               291M   34M  242M  13% /boot
/dev/mapper/vol_group_1-vg_wrx_lv_root  7.9G  142M  7.4G   2% /data
[root@wrx ~]#

4.4、逻辑卷删除

#卸载
#umount 文件系统名称
[root@wrx ~]# umount /dev/vol_group_1/vg_wrx_lv_root
[root@wrx ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        18G  5.5G   12G  33% /
tmpfs           495M   72K  495M   1% /dev/shm
/dev/sda1       291M   34M  242M  13% /boot
#删除逻辑卷
#lvremove lv完整路径
[root@wrx ~]# lvremove /dev/vol_group_1/vg_wrx_lv_root
Do you really want to remove active logical volume vg_wrx_lv_root? [y/n]: y
  Logical volume "vg_wrx_lv_root" successfully removed
#删除卷组
#vgremove 卷组名称  
[root@wrx ~]# vgremove vol_group_1
  Volume group "vol_group_1" successfully removed
#删除物理卷
#pvremove 设备完整路径  
[root@wrx ~]# pvremove /dev/sdb1
  Labels on physical volume "/dev/sdb1" successfully wiped
[root@wrx ~]#