Linux_LVM管理

一、Ivm的应用场景及其弊端

1、应用场景:

  • 随着公司的发展,数据增长较快,最初规划的磁盘容量不够用了

2、弊端:

  • 数据不是直接存放在硬盘上,而是在硬盘的.上面又虚拟出来--层逻辑卷存放数据,故而增加了磁盘数据恢复的难度

二、物理卷、卷组、逻辑卷

逻辑卷(LV)、卷组(VG)、物理卷(PV)、基本单元(PE)、逻辑:logic 、卷:volume 、物理:physical  

 1、物理卷(PV):

  • 物理卷(PV):把常规的块设备(硬盘, 分区等可以读写数据的设备)通过pvcreate命 令对其进行初始化,就成了物理卷

2、卷组(VG):

  • 把多个物理卷的容量组成一个逻辑整体,可以从里面灵活分配容量

3、逻辑卷(LV):

  • 从卷组中划分部分空间成为一个可以读写数据的逻辑单元。需要对其格式化然后挂载使用

三、部署LVM

1、创建LVM步骤:

  • 1、创建卷组,将物理卷加入卷组
  • 2、创建卷组,将物理卷加入卷组
  • 3、在卷组中划分逻辑卷
  • 4、格式化逻辑卷
  • 5、挂载使用

2、与PV、VG、LV有关的命令

  • 与物理卷(PV)有关的命令:
pvcreate            //初始化(创建)物理卷(PV)
pvs                 //查看物理卷(PV)信息
pvdisplay           //查看物理卷的详细信息
pvremove            //删除物理卷
pvmove              //迁移物理卷数据(随机迁移到其他的磁盘)
pvresize            //改变物理卷的大小
pvscan //查看活跃的物理卷
  • 与卷组(VG)有关命令:
vgcreate            //创建卷组(VG)
vgs                 //查看卷组(VG)信息
vgdisplay           //查看卷组的详细信息
vgextend            //扩增卷组的容量
vgreduce            //缩减卷组的容量 
vgremove            //删除卷组
vgrename            //重命名卷组
vgscan //查看活跃的卷组
  • 与逻辑卷(LV)有关的命令:
lvcreate            //创建逻辑卷(LV)
lvs                 //查看逻辑卷(LV)信息
lvdisplay           //查看逻辑卷的详细信息   
lvextend            //扩增逻辑卷的容量
lvreduce            //缩减逻辑卷的容量
lvremove            //删除逻辑卷
lvrename            //重命名逻辑卷
lvsan //查看活跃的逻辑卷

3、实例:创建一个逻辑分区 —— lv1

  • 查看已经创建的主分区
[root@localhost ~]# lsblk 
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0            11:0    1  7.3G  0 rom  /mnt
nvme0n1       259:0    0  120G  0 disk 
├─nvme0n1p1   259:1    0    1G  0 part /boot
└─nvme0n1p2   259:2    0  119G  0 part 
  ├─rhel-root 253:0    0   50G  0 lvm  /
  ├─rhel-swap 253:1    0    2G  0 lvm  [SWAP]
  └─rhel-home 253:2    0   67G  0 lvm  /home
nvme0n2       259:3    0   50G  0 disk 
└─nvme0n2p1   259:4    0   20G  0 part          //这是创建的主分区
  •  初始化物理卷
 //初始化物理卷
[root@localhost ~]# pvcreate /dev/nvme0n2p1 
  Physical volume "/dev/nvme0n2p1" successfully created.

 //查看物理卷(也可以指定物理卷)
[root@localhost ~]# pvs
  PV             VG   Fmt  Attr PSize    PFree 
  /dev/nvme0n1p2 rhel lvm2 a--  <119.00g     0 
  /dev/nvme0n2p1      lvm2 ---    20.00g 20.00g
或:
[root@localhost ~]# pvs /dev/nvme0n2p1 
  PV             VG Fmt  Attr PSize  PFree 
  /dev/nvme0n2p1    lvm2 ---  20.00g 20.00g

 //查看物理卷的详细信息
[root@localhost ~]# pvdisplay /dev/nvme0n2p1 
  "/dev/nvme0n2p1" is a new physical volume of "20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/nvme0n2p1
  VG Name               
  PV Size               20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               UVboOM-yr9q-cT7s-Cf7q-D52d-tZC8-Yw8eHr
  • 创建卷组vg1,将刚刚创建的物理卷加入到卷组vg1中
 //创建卷组vg1
[root@localhost ~]# vgcreate vg1 /dev/nvme0n2p1 
  Volume group "vg1" successfully created

 //查看卷组
[root@localhost ~]# vgs   (也可以是指定卷组)
  VG   #PV #LV #SN Attr   VSize    VFree  
  rhel   1   3   0 wz--n- <119.00g      0 
  vg1    1   0   0 wz--n-  <20.00g <20.00g
或:
[root@localhost ~]# vgs vg1
  VG  #PV #LV #SN Attr   VSize   VFree  
  vg1   1   0   0 wz--n- <20.00g <20.00g

 //查看卷组的详细信息
[root@localhost ~]# vgdisplay vg1
  --- Volume group ---
  VG Name               vg1
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <20.00 GiB
  PE Size               4.00 MiB
  Total PE              5119
  Alloc PE / Size       0 / 0   
  Free  PE / Size       5119 / <20.00 GiB
  VG UUID               nvvGgQ-zumO-zF40-fCAz-w12t-rnq1-QqZya7
  • 创建逻辑卷lv1
语法:
    lvcreate -n 逻辑卷名 -L 逻辑卷大小(+10G)卷组名

 //创建逻辑卷
[root@localhost ~]# lvcreate -n lv1 -L +10G vg1 
  Logical volume "lv1" created.

 //查看逻辑卷
[root@localhost ~]# lvs        (也可以指定逻辑卷)
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home rhel -wi-ao---- <66.95g                                                    
  root rhel -wi-ao----  50.00g                                                    
  swap rhel -wi-ao----  <2.05g                                                    
  lv1  vg1  -wi-a-----  10.00g

[root@localhost ~]# lvs /dev/vg1/lv1 
  LV   VG  Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  vg1 -wi-a----- 10.00g

 //查看逻辑卷的详细信息
[root@localhost ~]# lvdisplay /dev/vg1/lv1 
  --- Logical volume ---
  LV Path                /dev/vg1/lv1
  LV Name                lv1
  VG Name                vg1
  LV UUID                14Ja5a-j9bK-IxYQ-QENl-GbE2-2IzO-bCUzkm
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2020-08-20 19:32:17 +0800
  LV Status              available
  # open                 0
  LV Size                10.00 GiB
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3
  • 格式化逻辑卷lv1
 //查看已经创建好的逻辑卷lv1
[root@localhost ~]# lsblk 
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0            11:0    1  7.3G  0 rom  /mnt
nvme0n1       259:0    0  120G  0 disk 
├─nvme0n1p1   259:1    0    1G  0 part /boot
└─nvme0n1p2   259:2    0  119G  0 part 
  ├─rhel-root 253:0    0   50G  0 lvm  /
  ├─rhel-swap 253:1    0    2G  0 lvm  [SWAP]
  └─rhel-home 253:2    0   67G  0 lvm  /home
nvme0n2       259:3    0   50G  0 disk 
└─nvme0n2p1   259:5    0    5G  0 part 
  └─vg1-lv1   253:3    0    2G  0 lvm  

 //格式化逻辑卷lv1
[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1 
mke2fs 1.44.6 (5-Mar-2019)
Creating filesystem with 524288 4k blocks and 131072 inodes
Filesystem UUID: 54afac9f-0363-4fb7-9f8f-d9576c4960b9
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 

 //查看格式化后逻辑卷的属性
[root@localhost ~]# blkid /dev/vg1/lv1
/dev/vg1/lv1: UUID="54afac9f-0363-4fb7-9f8f-d9576c4960b9" TYPE="ext4"
  • 设置永久挂载逻辑卷lv1
 //创建挂载目录
[root@localhost ~]# mkdir /dir

 //在/etc/fstab文件写入永久挂载信息
[root@localhost ~]# vim /etc/fstab 
...........
UUID="54afac9f-0363-4fb7-9f8f-d9576c4960b9"     /dir    ext4    defaults 0 0

 //查看是否挂载成功
[root@localhost ~]# mount -a
[root@localhost ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               887M     0  887M   0% /dev
tmpfs                  904M     0  904M   0% /dev/shm
tmpfs                  904M  8.7M  895M   1% /run
tmpfs                  904M     0  904M   0% /sys/fs/cgroup
/dev/mapper/rhel-root   50G  1.8G   49G   4% /
/dev/sr0               7.4G  7.4G     0 100% /mnt
/dev/nvme0n1p1        1014M  173M  842M  17% /boot
/dev/mapper/rhel-home   67G  511M   67G   1% /home
tmpfs                  181M     0  181M   0% /run/user/0
/dev/mapper/vg1-lv1    2.0G  6.0M  1.8G   1% /dir

四、卷组管理

1、扩展卷组,将新磁盘加入卷组

  • 查看已经拥有的卷组
[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize    VFree 
  rhel   1   3   0 wz--n- <119.00g     0 
  vg1    1   1   0 wz--n-   <5.00g <3.00g         //假设空间不够用
  • 初始化一块20G大小的物理卷
 //查看已经分出来的20G的分区
[root@localhost ~]# lsblk 
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0            11:0    1  7.3G  0 rom  
nvme0n1       259:0    0  120G  0 disk 
├─nvme0n1p1   259:1    0    1G  0 part 
└─nvme0n1p2   259:2    0  119G  0 part 
  ├─rhel-root 253:0    0   50G  0 lvm  /
  ├─rhel-swap 253:1    0    2G  0 lvm  [SWAP]
  └─rhel-home 253:2    0   67G  0 lvm  
nvme0n2       259:3    0   50G  0 disk 
├─nvme0n2p1   259:5    0    5G  0 part 
│ └─vg1-lv1   253:3    0    2G  0 lvm  
└─nvme0n2p2   259:6    0   20G  0 part 
nvme0n3       259:4    0   60G  0 disk 

 //初始化物理卷
[root@localhost ~]# pvcreate /dev/nvme0n2p2
  Physical volume "/dev/nvme0n2p2" successfully created.

 //查看物理卷
[root@localhost ~]# pvs
  PV             VG   Fmt  Attr PSize    PFree 
  /dev/nvme0n1p2 rhel lvm2 a--  <119.00g     0 
  /dev/nvme0n2p1 vg1  lvm2 a--    <5.00g <3.00g
  /dev/nvme0n2p2      lvm2 ---    20.00g 20.00g     //这是刚刚初始化的物理卷
  • 将物理卷加入到卷组vg1
 //查看卷组
[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize    VFree 
  rhel   1   3   0 wz--n- <119.00g     0 
  vg1    1   1   0 wz--n-   <5.00g <3.00g     //这是需要加入的卷组

 //将物理卷加入卷组vg1
[root@localhost ~]# vgextend vg1 /dev/nvme0n2p2
  Volume group "vg1" successfully extended

 //查看物理机是否加入到卷组vg1
[root@localhost ~]# pvs
  PV             VG   Fmt  Attr PSize    PFree  
  /dev/nvme0n1p2 rhel lvm2 a--  <119.00g      0 
  /dev/nvme0n2p1 vg1  lvm2 a--    <5.00g  <3.00g
  /dev/nvme0n2p2 vg1  lvm2 a--   <20.00g <20.00g

 //查看卷组vg1容量是否扩增
[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize    VFree 
  rhel   1   3   0 wz--n- <119.00g     0 
  vg1    2   1   0 wz--n-   24.99g 22.99g     //比原来扩大20G容量

2、缩减卷组,将加入的物理卷从指定的卷组移除

  • 查看卷组vg1的容量
[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize    VFree 
  rhel   1   3   0 wz--n- <119.00g     0 
  vg1    2   1   0 wz--n-   24.99g 12.99g
  • 查看卷组vg1有哪些物理卷
[root@localhost ~]# pvs
  PV             VG   Fmt  Attr PSize    PFree 
  /dev/nvme0n1p2 rhel lvm2 a--  <119.00g     0 
  /dev/nvme0n2p1 vg1  lvm2 a--    <5.00g     0 
  /dev/nvme0n2p2 vg1  lvm2 a--   <20.00g 12.99g
  • 将/dev/nvme0n2p2移除卷组vg1
[root@localhost ~]# vgreduce vg1 /dev/nvme0n2p2
  Removed "/dev/nvme0n2p2" from volume group "vg1"
  • 查看卷组容量大小
[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize    VFree 
  rhel   1   3   0 wz--n- <119.00g     0 
  vg1    1   0   0 wz--n-   <5.00g <5.00g      //卷组容量减少10G

五、逻辑卷管理

1、扩展逻辑卷(逻辑卷扩展,逻辑卷的扩展取决于卷组中的容量,逻辑卷扩展的容量不能超过卷组的容量)

  • 查看已经创建的逻辑卷

[root@localhost ~]# lvs
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home rhel -wi-a----- <66.95g                                                    
  root rhel -wi-ao----  50.00g                                                    
  swap rhel -wi-ao----  <2.05g                                                    
  lv1  vg1  -wi-a-----   2.00g        //这是已经创建的逻辑卷,假设空间不够
  • 扩展逻辑卷,扩大10G
[root@localhost ~]# lvextend -L +10G /dev/vg1/lv1 
  Size of logical volume vg1/lv1 changed from 2.00 GiB (512 extents) to 12.00 GiB (3072 extents).
  Logical volume vg1/lv1 successfully resized.
  • 查看逻辑卷容量是否扩大10G 
[root@localhost ~]# lvs
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home rhel -wi-a----- <66.95g                                                    
  root rhel -wi-ao----  50.00g                                                    
  swap rhel -wi-ao----  <2.05g                                                    
  lv1  vg1  -wi-a-----  12.00g         /比原来扩大10G  
  • 使用df -T查看已经挂载的逻辑卷容量是否也扩大10G
[root@localhost ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               887M     0  887M   0% /dev
tmpfs                  904M  8.7M  895M   1% /run
tmpfs                  904M     0  904M   0% /sys/fs/cgroup
/dev/mapper/rhel-root   50G  1.8G   49G   4% /
tmpfs                  181M     0  181M   0% /run/user/0
/dev/mapper/vg1-lv1    2.0G  6.0M  1.8G   1% /dir          //可以看到逻辑卷的容量任然是2G,刚刚扩增的10暂时还不能用,所以需要我们手动去扩充逻辑卷容量
  • 使用resize2fs命令在线扩增ext类型的逻辑卷(ext类型的文件系统可以增加容量,也可以减少容量大小)
 //查看逻辑卷的文件系统类型
[root@localhost ~]# df -T
Filesystem            Type     1K-blocks    Used Available Use% Mounted on
devtmpfs              devtmpfs    907316       0    907316   0% /dev
tmpfs                 tmpfs       924764    8816    915948   1% /run
tmpfs                 tmpfs       924764       0    924764   0% /sys/fs/cgroup
/dev/mapper/rhel-root xfs       52403200 1799684  50603516   4% /
tmpfs                 tmpfs       184952       0    184952   0% /run/user/0
/dev/mapper/vg1-lv1   ext4       1998672    6144   1871288   1% /dir       //文件系统类型是ext4

 //使用resize2fs命令手动扩充逻辑卷容量
[root@localhost ~]# resize2fs -f /dev/vg1/lv1          // -f:指定文件系统名
resize2fs 1.44.6 (5-Mar-2019)
Filesystem at /dev/vg1/lv1 is mounted on /dir; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/vg1/lv1 is now 3145728 (4k) blocks long.
  • 再次查看已经挂载的逻辑卷大小
[root@localhost ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               887M     0  887M   0% /dev
tmpfs                  904M  8.7M  895M   1% /run
tmpfs                  904M     0  904M   0% /sys/fs/cgroup
/dev/mapper/rhel-root   50G  1.8G   49G   4% /
tmpfs                  181M     0  181M   0% /run/user/0
/dev/mapper/vg1-lv1     12G   10M   12G   1% /dir        //这次才是扩增后逻辑卷容量 

2、假设我的逻辑卷的文件系统类型是xfs类型(xfs文件系统类型只能增容量,不能减容量)

  • 查看逻辑卷文件系统类型
[root@localhost ~]# df -T
Filesystem            Type     1K-blocks    Used Available Use% Mounted on
devtmpfs              devtmpfs    907316       0    907316   0% /dev
tmpfs                 tmpfs       924764    8816    915948   1% /run
tmpfs                 tmpfs       924764       0    924764   0% /sys/fs/cgroup
/dev/mapper/rhel-root xfs       52403200 1799724  50603476   4% /
tmpfs                 tmpfs       184952       0    184952   0% /run/user/0
/dev/mapper/vg1-vg1   xfs        2086912   47680   2039232   3% /dir       //逻辑卷文件系统类型是xfs类型
  • 查看逻辑卷初始容量
[root@localhost ~]# lvs
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home rhel -wi-a----- <66.95g                                                    
  root rhel -wi-ao----  50.00g                                                    
  swap rhel -wi-ao----  <2.05g                                                    
  vg1  vg1  -wi-ao----   2.00g         //初始容量大小是2G
  • 扩增逻辑卷容量大小(+10G)
[root@localhost ~]# lvextend -L +10G /dev/vg1/vg1 
  Size of logical volume vg1/vg1 changed from 2.00 GiB (512 extents) to 12.00 GiB (3072 extents).
  Logical volume vg1/vg1 successfully resized.
  • 查看逻辑卷容量大小
[root@localhost ~]# lvs
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home rhel -wi-a----- <66.95g                                                    
  root rhel -wi-ao----  50.00g                                                    
  swap rhel -wi-ao----  <2.05g                                                    
  vg1  vg1  -wi-ao----  12.00g                      //逻辑卷容量已经括大10G
  • 查看已经挂载逻辑卷,查看逻辑卷容量是否也改变
[root@localhost ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               887M     0  887M   0% /dev
tmpfs                  904M  8.7M  895M   1% /run
tmpfs                  904M     0  904M   0% /sys/fs/cgroup
/dev/mapper/rhel-root   50G  1.8G   49G   4% /
tmpfs                  181M     0  181M   0% /run/user/0
/dev/mapper/vg1-vg1    2.0G   47M  2.0G   3% /dir        //逻辑卷大小任然没有发生变化,还是初始的2G
  • 使用xfs_growfs命令手动在线扩增逻辑卷容量
 //首先尝试在线扩增(使用逻辑卷名)
[root@localhost ~]# xfs_growfs /dev/vg1/lv1 
xfs_growfs: /dev/vg1/lv1 is not a mounted XFS filesystem
 //发现会报错

 //我们需要更改扩增的对象为挂载点
[root@localhost ~]# xfs_growfs /dir/
meta-data=/dev/mapper/vg1-lv1    isize=512    agcount=4, agsize=131072 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=524288, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 524288 to 3145728
  • 查看在线扩增后逻辑卷容量是否扩增
[root@localhost ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               887M     0  887M   0% /dev
tmpfs                  904M  8.7M  895M   1% /run
tmpfs                  904M     0  904M   0% /sys/fs/cgroup
/dev/mapper/rhel-root   50G  1.8G   49G   4% /
tmpfs                  181M     0  181M   0% /run/user/0
/dev/mapper/vg1-lv1     12G  120M   12G   1% /dir
xfs_admin: 调整 xfs 文件系统的各种参数  
xfs_copy   : 拷贝 xfs 文件系统的内容到一个或多个目标系统(并行方式)  
xfs_db: 调试或检测 xfs 文件系统(查看文件系统碎片等)  
xfs_check: 检测 xfs 文件系统的完整性  
xfs_bmap: 查看一个文件的块映射  
xfs_repair: 尝试修复受损的 xfs 文件系统  
xfs_fsr: 碎片整理  
xfs_quota: 管理 xfs 文件系统的磁盘配额  
xfs_metadump: 将 xfs 文件系统的元数据 (metadata) 拷贝到一个文件中  
xfs_mdrestore: 从一个文件中将元数据 (metadata) 恢复到 xfs 文件系统  
xfs_growfs: 调整一个 xfs 文件系统大小(只能扩展)  
xfs_freeze    暂停(-f)和恢复(-u)xfs 文件系统
xfs_logprint: 打印xfs文件系统的日志  
xfs_mkfile: 创建xfs文件系统  
xfs_info: 查询文件系统详细信息  
xfs_ncheck: generate pathnames from i-numbers for XFS  
xfs_rtcp: XFS实时拷贝命令   
xfs_io: 调试xfs I/O路径
xfs相关常用命令

3、数据迁移卷组,同一卷组的物理卷磁盘才可以进行在线迁移(卷组内部迁移)

  • 查看已经初始化的物理卷
[root@localhost ~]# pvs
  PV             VG   Fmt  Attr PSize    PFree 
  /dev/nvme0n1p2 rhel lvm2 a--  <119.00g     0 
  /dev/nvme0n2p1 vg1  lvm2 a--    <5.00g     0 
  /dev/nvme0n2p2 vg1  lvm2 a--   <20.00g 12.99g
  • 在线迁移/dev/nvme0n2p1数据带其他的物理卷(迁移数据是随机的)
[root@localhost ~]# pvmove /dev/nvme0n2p1
  /dev/nvme0n2p1: Moved: 1.72%
  /dev/nvme0n2p1: Moved: 100.00%
  • 查看物理卷容量改变
[root@localhost ~]# pvs
  PV             VG   Fmt  Attr PSize    PFree 
  /dev/nvme0n1p2 rhel lvm2 a--  <119.00g     0 
  /dev/nvme0n2p1 vg1  lvm2 a--    <5.00g <5.00g
  /dev/nvme0n2p2 vg1  lvm2 a--   <20.00g <8.00g

4、对ext4文件系统的逻辑卷裁剪容量(ext类型的文件系统可以缩减磁盘容量大小;xfs类型的文件系统类型只能扩增次磁盘容量大小)

  •  如果挂载了ext4文件系统,必须先卸载
[root@localhost ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               887M     0  887M   0% /dev
tmpfs                  904M  8.7M  895M   1% /run
tmpfs                  904M     0  904M   0% /sys/fs/cgroup
/dev/mapper/rhel-root   50G  1.8G   49G   4% /
tmpfs                  181M     0  181M   0% /run/user/0
/dev/mapper/vg1-lv1     12G  120M   12G   1% /dir

[root@localhost ~]# umount /dir
[root@localhost ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               887M     0  887M   0% /dev
tmpfs                  904M  8.7M  895M   1% /run
tmpfs                  904M     0  904M   0% /sys/fs/cgroup
/dev/mapper/rhel-root   50G  1.8G   49G   4% /
tmpfs                  181M     0  181M   0% /run/user/0
  • 剪裁容量前,必须检测文件系统类型
[root@localhost ~]# e2fsck -f /dev/vg1/vg1 
e2fsck 1.44.6 (5-Mar-2019)
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/vg1/vg1: 11/655360 files (0.0% non-contiguous), 66753/2621440 blocks
  • 对裁剪的预判大小
[root@localhost ~]# resize2fs /dev/vg1/lv1 10M
resize2fs 1.44.6 (5-Mar-2019)
resize2fs: New size smaller than minimum (17177)
 //预判缩减成10M,提示新缩减的大小小于最小值(实际就是缩小后的大小不能存放原来逻辑卷文件,所以只能缩减到能存放原来文件大小)

[root@localhost ~]# resize2fs /dev/vg1/vg1 1G
resize2fs 1.44.6 (5-Mar-2019)
Resizing the filesystem on /dev/vg1/vg1 to 262144 (4k) blocks.
The filesystem on /dev/vg1/vg1 is now 262144 (4k) blocks long.
 //上面说明缩减至1G是可以的
  • 调整完毕后采取裁剪逻辑卷容量
 //查看起始逻辑卷大小
[root@localhost ~]# lvs
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home rhel -wi-a----- <66.95g                                                    
  root rhel -wi-ao----  50.00g                                                    
  swap rhel -wi-ao----  <2.05g                                                    
  lv1  vg1  -wi-a-----  12.00g                  

 //裁剪大小到1G
[root@localhost ~]# lvreduce -L 1G /dev/vg1/lv1 
  WARNING: Reducing active logical volume to 1.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg1/lv1? [y/n]: y        //按 y 同意
  Size of logical volume vg1/lv1 changed from 12.00 GiB (3072 extents) to 1.00 GiB (1280 extents).
  Logical volume vg1/lv1 successfully resized.
  • 查看裁剪后的逻辑卷容量大小
[root@localhost ~]# lvs
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home rhel -wi-a----- <66.95g                                                    
  root rhel -wi-ao----  50.00g                                                    
  swap rhel -wi-ao----  <2.05g                                                    
  lv1  vg1  -wi-a-----   1.00g             //已经缩减了到1G
  • 再次检测文件系统
[root@localhost ~]# e2fsck -f /dev/vg1/vg1 
e2fsck 1.44.6 (5-Mar-2019)
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/vg1/vg1: 11/65536 files (0.0% non-contiguous), 25632/262144 blocks
  • 最后尝试是否可以挂载
[root@localhost ~]# mount /dev/vg1/vg1 /dir
[root@localhost ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               887M     0  887M   0% /dev
tmpfs                  904M  8.7M  895M   1% /run
tmpfs                  904M     0  904M   0% /sys/fs/cgroup
/dev/mapper/rhel-root   50G  1.8G   49G   4% /
tmpfs                  181M     0  181M   0% /run/user/0
/dev/mapper/vg1-vg1    944M   21M  857M   3% /dir
原文地址:https://www.cnblogs.com/itwangqiang/p/13531948.html