linux操作系统lvm逻辑卷的创建、扩容和缩容

目录

一、什么是LVM?

二、LVM下的基础术语

2.1 PV(物理卷 Physical Volume)

2.2 VG(卷组 Volume Group)

2.3 LV(逻辑卷 Logical Volume)

2.4 PV、VG、LV三者之间的关系

三、LVM创建

3.1 准备一块新磁盘

3.2 初始化为物理卷并查看

3.3 创建卷组data并查看

3.4 创建逻辑卷data01、data02

3.5 格式化文件系统

3.6 挂载逻辑卷并配置开机自动挂载

四、LVM扩容

补充:如何查看逻辑卷的文件系统类型

4.1 xfs文件系统逻辑卷扩展

4.2 ext4文件系统逻辑卷扩展

五、LVM缩容

5.1 xfs文件系统逻辑卷缩容

5.2 ext4文件系统逻辑卷缩容


一、什么是LVM?

        LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。逻辑卷管理通过将底层物理硬盘抽象封装起来,以逻辑卷的形式表现给上层系统,逻辑卷的大小可以动态调整,而且不会丢失现有数据。新加入的硬盘也不会改变现有上层的逻辑卷。逻辑卷管理机制在不用关闭系统的前提下,可以对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。

二、LVM下的基础术语

2.1 PV(物理卷 Physical Volume)

        指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。将一块硬盘/分区初始化为物理卷就是将它划分为若干个PE,PE的大小是可配置的,默认为4MB。

2.2 VG(卷组 Volume Group)

        类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成,可以在卷组上创建一个或多个LV(逻辑卷)。

2.3 LV(逻辑卷 Logical Volume)

        LVM的逻辑卷类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。

2.4 PV、VG、LV三者之间的关系

        我们可以将物理卷想象成构造房子的砖瓦(当然假设房子完全仅有砖瓦构建),将卷组理解为砖瓦(物理卷)建构而成的房子,最后我们将房子分为客厅、厨房、卧室等(逻辑卷),而不用在意砖瓦(物理卷)是怎么排列的,图示如下:

三、LVM创建

演示目的:使用新磁盘/dev/sdb,先创建物理卷,然后使用物理卷创建卷组data,再在卷组data上创建一个大小为5G、文件系统类型为xfs的逻辑卷/dev/data/data01和一个大小为5G、文件系统类型为ext4的逻辑卷/dev/data/data02,最后将/dev/data/data01挂载到/data01,将/dev/data/data02挂载到/data02。

3.1 准备一块新磁盘

说明:此处磁盘为/dev/sdb,如下:

[root@node1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0    3G  0 lvm  /
  └─centos-swap 253:1    0   16G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
[root@node1 ~]#

3.2 初始化为物理卷并查看

说明:可以先将磁盘分区再将分区初始化为物理卷,也可以直接将磁盘初始化为物理卷,此处选择直接将磁盘/dev/sdb初始出为物理卷。

[root@node1 ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.
[root@node1 ~]#
[root@node1 ~]# pvscan
  PV /dev/sdb    VG data            lvm2 [<20.00 GiB / <20.00 GiB free]
  PV /dev/sda2   VG centos          lvm2 [<19.00 GiB / 0    free]
  Total: 2 [38.99 GiB] / in use: 2 [38.99 GiB] / in no VG: 0 [0   ]
[root@node1 ~]#

由上可知,创建物理卷/dev/sdb成功,此时系统中有两个物理卷,分别为刚创建的/dev/sdb和安装系统时创建的/dev/sda2。

3.3 创建卷组data并查看

[root@node1 ~]# vgcreate data /dev/sdb
  Volume group "data" successfully created
[root@node1 ~]# 
[root@node1 ~]# 
[root@node1 ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree  
  centos   1   2   0 wz--n- <19.00g      0 
  data     1   0   0 wz--n- <20.00g <20.00g
[root@node1 ~]# 

由上可知,创建卷组data成功,此时系统中有两个卷组,一个是刚创建的卷组data,一个是安装系统时创建的卷组centos。

3.4 创建逻辑卷data01、data02

[root@node1 ~]# lvcreate -L 5G -n data01 data
  Logical volume "data01" created.
[root@node1 ~]# 
[root@node1 ~]# lvcreate -L 5G -n data02 data
  Logical volume "data02" created.
[root@node1 ~]# 
[root@node1 ~]# lvscan
  ACTIVE            '/dev/data/data01' [5.00 GiB] inherit
  ACTIVE            '/dev/data/data02' [5.00 GiB] inherit
  ACTIVE            '/dev/centos/swap' [16.00 GiB] inherit
  ACTIVE            '/dev/centos/root' [<3.00 GiB] inherit
[root@node1 ~]#

由上可知,创建大小为5G的逻辑卷data01和data02成功。

3.5 格式化文件系统

说明:将逻辑卷/dev/data/data01格式化为xfs,将逻辑卷/dev/data/data02格式化为ext4

[root@node1 ~]# mkfs -t xfs /dev/data/data01 
meta-data=/dev/data/data01       isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1310720, 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
[root@node1 ~]# 
[root@node1 ~]# mkfs -t ext4 /dev/data/data02
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 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

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

[root@node1 ~]#

3.6 挂载逻辑卷并配置开机自动挂载

说明:挂载前要先创建挂载点/data01和/data02

[root@node1 ~]# mkdir /data01 /data02
[root@node1 ~]# 
[root@node1 ~]# mount /dev/data/data01 /data01
[root@node1 ~]# 
[root@node1 ~]# mount /dev/data/data02 /data02
[root@node1 ~]#
[root@node1 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  979M     0  979M    0% /dev
tmpfs                   tmpfs     991M     0  991M    0% /dev/shm
tmpfs                   tmpfs     991M  9.5M  981M    1% /run
tmpfs                   tmpfs     991M     0  991M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs       3.0G  2.0G  1.1G   66% /
/dev/sda1               xfs      1014M  138M  877M   14% /boot
tmpfs                   tmpfs     199M     0  199M    0% /run/user/0
/dev/mapper/data-data01 xfs       5.0G   33M  5.0G    1% /data01
/dev/mapper/data-data02 ext4      4.8G   20M  4.6G    1% /data02
[root@node1 ~]#

由上可知,逻辑卷/dev/data/data01已经挂载到了/data01,逻辑卷/dev/data/data02已经挂载到了/data02,此时还需要配置卷的开机自动挂载,否则重启操作系统后卷将不会挂载。

1. 查看逻辑卷/dev/data/data01和/dev/data/data02的UUID

[root@node1 ~]# blkid /dev/data/data01
/dev/data/data01: UUID="fd92aaac-5d15-4c34-bd7b-60036e64b076" TYPE="xfs" 
[root@node1 ~]# 
[root@node1 ~]# blkid /dev/data/data02
/dev/data/data02: UUID="6b13ca2e-4de0-49dd-9232-d699493b4002" TYPE="ext4" 
[root@node1 ~]#

2. 编辑/etc/fstab文件,添加逻辑卷/dev/data/data01和/dev/data/data02的挂载信息,如下:

[root@node1 ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Thu Oct 19 09:33:22 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=b6f5558c-23c3-49b3-9532-04fc5cb3e193 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
UUID=fd92aaac-5d15-4c34-bd7b-60036e64b076 /data01 xfs   defaults        0 0
UUID=6b13ca2e-4de0-49dd-9232-d699493b4002 /data02 ext4  defaults        0 0  
[root@node1 ~]#

3. 保存退出后执行mount -a命令,若无返回信息则表示添加的信息无误。

[root@node1 ~]# mount -a
[root@node1 ~]#

至此,大小为5G的逻辑卷/dev/data/data01已创建并挂载完成。

四、LVM扩容

演示目的:将上述创建的逻辑卷/dev/data/data01和/dev/data/data02从5G扩展到8G

补充:如何查看逻辑卷的文件系统类型

使用 df -Th命令可以查看设备的文件系统类型,如下所示:

4.1 xfs文件系统逻辑卷扩展

1. 扩展逻辑卷

[root@node1 ~]# lvresize -L 8G /dev/data/data01 
  Size of logical volume data/data01 changed from 5.00 GiB (1280 extents) to 8.00 GiB (2048 extents).
  Logical volume data/data01 successfully resized.
[root@node1 ~]# 

说明:

lvresize -L 8G  /dev/data/data01   表示将逻辑卷扩展到8G

lvresize -L +8G /dev/data/data01 表示将逻辑卷在原大小的基础上增加8G

2. 扩展文件系统

[root@node1 ~]# xfs_growfs /dev/data/data01
meta-data=/dev/mapper/data-data01 isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               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 1310720 to 2097152
[root@node1 ~]#

补充:Anolis的操作系统此处使用 xfs_growfs / 来扩展文件系统。

3.查看当前逻辑卷的大小

[root@node1 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  979M     0  979M    0% /dev
tmpfs                   tmpfs     991M     0  991M    0% /dev/shm
tmpfs                   tmpfs     991M  9.5M  981M    1% /run
tmpfs                   tmpfs     991M     0  991M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs       3.0G  2.0G  1.1G   66% /
/dev/sda1               xfs      1014M  138M  877M   14% /boot
tmpfs                   tmpfs     199M     0  199M    0% /run/user/0
/dev/mapper/data-data01 xfs       8.0G   33M  8.0G    1% /data01
/dev/mapper/data-data02 ext4      4.8G   20M  4.6G    1% /data02
[root@node1 ~]#

由上可知,逻辑卷/dev/data/data01已经从5G扩展到了8G

4.2 ext4文件系统逻辑卷扩展

1. 扩展逻辑卷

[root@node1 ~]# lvresize -L 8G /dev/data/data02
  Size of logical volume data/data02 changed from 5.00 GiB (1280 extents) to 8.00 GiB (2048 extents).
  Logical volume data/data02 successfully resized.
[root@node1 ~]#

2. 扩展文件系统

[root@node1 ~]# resize2fs /dev/data/data02
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/data/data02 is mounted on /data02; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/data/data02 is now 2097152 blocks long.

[root@node1 ~]#

3.查看当前逻辑卷的大小

[root@node1 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  979M     0  979M    0% /dev
tmpfs                   tmpfs     991M     0  991M    0% /dev/shm
tmpfs                   tmpfs     991M  9.5M  981M    1% /run
tmpfs                   tmpfs     991M     0  991M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs       3.0G  2.0G  1.1G   66% /
/dev/sda1               xfs      1014M  138M  877M   14% /boot
tmpfs                   tmpfs     199M     0  199M    0% /run/user/0
/dev/mapper/data-data01 xfs       8.0G   33M  8.0G    1% /data01
/dev/mapper/data-data02 ext4      7.8G   23M  7.4G    1% /data02
[root@node1 ~]#

由上可知,逻辑卷/dev/data/data02已经从5G扩展到了8G

五、LVM缩容

5.1 xfs文件系统逻辑卷缩容

xfs文件系统逻辑卷不支持缩容,仅支持扩容。

5.2 ext4文件系统逻辑卷缩容

演示目前:将逻辑卷/dev/data/data02从8G缩容至3G

提示:生产环境慎用缩容操作!

1. 卸载dev/data/data02

[root@node1 ~]# umount /dev/data/data02
[root@node1 ~]#

2. 检查逻辑卷

[root@node1 ~]# e2fsck -f /dev/data/data02
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/data/data02: 11/524288 files (0.0% non-contiguous), 71439/2097152 blocks
[root@node1 ~]#

3. 缩小逻辑卷

[root@node1 ~]# resize2fs /dev/data/data02 3G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/data/data02 to 786432 (4k) blocks.
The filesystem on /dev/data/data02 is now 786432 blocks long.

[root@node1 ~]#

4. 缩小逻辑卷

[root@node1 ~]# resize2fs /dev/data/data02 3G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/data/data02 to 786432 (4k) blocks.
The filesystem on /dev/data/data02 is now 786432 blocks long.

[root@node1 ~]# lvresize -L 3G /dev/data/data02
  WARNING: Reducing active logical volume to 3.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce data/data02? [y/n]: y
  Size of logical volume data/data02 changed from 8.00 GiB (2048 extents) to 3.00 GiB (768 extents).
  Logical volume data/data02 successfully resized.
[root@node1 ~]#

5. 执行挂载,并查看逻辑卷的大小

[root@node1 ~]# mount -a
[root@node1 ~]# 
[root@node1 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  979M     0  979M    0% /dev
tmpfs                   tmpfs     991M     0  991M    0% /dev/shm
tmpfs                   tmpfs     991M  9.5M  981M    1% /run
tmpfs                   tmpfs     991M     0  991M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs       3.0G  2.0G  1.1G   66% /
/dev/sda1               xfs      1014M  138M  877M   14% /boot
tmpfs                   tmpfs     199M     0  199M    0% /run/user/0
/dev/mapper/data-data01 xfs       8.0G   33M  8.0G    1% /data01
/dev/mapper/data-data02 ext4      2.9G   15M  2.7G    1% /data02
[root@node1 ~]#

由上可知,逻辑卷/dev/data/data02已经从8G缩小至3G

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值