【Linux系统的磁盘管理-LVM实战讲解】
创始人
2025-05-28 06:23:37

Linux系统的磁盘管理-LVM实战讲解

文章目录

  • Linux系统的磁盘管理-LVM实战讲解
    • 1.LVM简介
    • 2.LVM的原理
    • 3.LVM的基本组成
      • 3.1物理卷(PV,Physical Volume)
      • 3.2卷组 (VG,Volume Group)
      • 3.3逻辑卷 (LV,Logical Volume)
      • 3.4物理块 (PE,Physical Extends)
    • 4.LVM的组成关系
    • 5.LVM的优缺点
      • 5.1优点
      • 5.2缺点
    • 6.常用操作命令介绍
      • 6.1指定磁盘块PE大小
      • 6.2扩容文件系统
      • 6.3LVM的删除
    • 7.LVM扩容实战
      • 7.1实验思路
      • 7.2实战演示

1.LVM简介

LVM主要用于解决 服务器磁盘存储数据、分区磁盘空间不足时实现磁盘动态扩容。

2.LVM的原理

磁盘和文件系统之间增加一个逻辑层,来动态的调整文件系统的大小,从而实现对磁盘的管理

3.LVM的基本组成

3.1物理卷(PV,Physical Volume)

  1. 逻辑上的一个 物理卷 ,不能存储文件,基础逻辑存储块

3.2卷组 (VG,Volume Group)

  1. 逻辑上的一个 卷组,不能存储文件,由多个PV组成

3.3逻辑卷 (LV,Logical Volume)

  1. 最终的 逻辑卷,可以存储文件

3.4物理块 (PE,Physical Extends)

  1. 物理拓展,LVM的最小单元,一般默认4M,是4M的倍数 ,(类似于硬盘的一个扇区:一般默认512字节 )

4.LVM的组成关系

组成关系:
多个磁盘/分区/raid–>多个物理卷PV–>合成卷组VG–>从VG划出逻辑卷LV–>格式化LV挂载使用
在这里插入图片描述

5.LVM的优缺点

5.1优点

  1. 使用卷组: 使用多个硬盘空间,看起来像一块大的硬盘
  2. 使用逻辑卷,可以跨多个硬盘空间的分区 sdb1 sdb2 sdc1 sdd2 sdf
  3. 在使用逻辑卷时,它可以在空间不足时动态调整它的大小
  4. 可以在线对LV,VG 进行创建,删除,调整大小等操作。LVM上的文件系统也需要重新调整大小。

5.2缺点

  1. 系统设置时步骤较为复杂
  2. 无法在Windows系统上进行访问,因为LVM不支持Windows。

6.常用操作命令介绍

常用命令:
在这里插入图片描述

6.1指定磁盘块PE大小

-s 存储文件比较大文件, PE 调大一下,读取快

[root@localhost lv01]# vgcreate -s 16M vg03 /dev/sdb4Volume group "vg03" successfully created
[root@localhost lv01]# vgsVG               #PV #LV #SN Attr   VSize   VFreecentos_anonymous   1   2   0 wz--n- <19.00g    0 vg01               1   2   0 wz--n-  <4.00g 3.96gvg02               2   0   0 wz--n-   7.99g 7.99gvg03               1   0   0 wz--n-   3.98g 3.98g
[root@localhost lv01]# vgdisplay vg03--- Volume group ---VG Name               vg03System ID             Format                lvm2Metadata Areas        1Metadata Sequence No  1VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                0Open LV               0Max PV                0Cur PV                1Act PV                1VG Size               3.98 GiBPE Size               16.00 MiBTotal PE              255Alloc PE / Size       0 / 0   Free  PE / Size       255 / 3.98 GiBVG UUID               MU9NLn-IIJG-Immq-h2DK-s1B9-BESR-OAA40w

6.2扩容文件系统

常用参数:

-L +30M 20M --50M            
-L 30M 30M

实操:

  • 方法一
    ext4 resize2fs
    XFS xfs_growfs
[root@localhost lv01]# lvsLV   VG               Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertroot centos_anonymous -wi-ao---- <17.00g                                                    swap centos_anonymous -wi-ao----   2.00g                                                    lv01 vg01             -wi-ao----  16.00m                                                    lv02 vg01             -wi-a-----  16.00m                                                        
[root@localhost lv01]# lvextend -L +30M /dev/vg01/lv01Rounding size to boundary between physical extents: 32.00 MiB.					##PE必须是4M的倍数Size of logical volume vg01/lv01 changed from 16.00 MiB (4 extents) to 48.00 MiB (12 extents).Logical volume vg01/lv01 successfully resized.
[root@localhost lv01]# lvsLV   VG               Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertroot centos_anonymous -wi-ao---- <17.00g                                                    swap centos_anonymous -wi-ao----   2.00g                                                    lv01 vg01             -wi-ao----  48.00m                                                    lv02 vg01             -wi-a-----  16.00m  
[root@localhost lv01]# df -Th /lv01/
文件系统              类型  容量  已用  可用 已用% 挂载点
/dev/mapper/vg01-lv01 xfs    13M  896K   12M    7% /lv01
[root@localhost lv01]# xfs_
xfs_admin      xfs_db         xfs_fsr        xfs_io         xfs_metadump   xfs_quota      
xfs_bmap       xfs_estimate   xfs_growfs     xfs_logprint   xfs_mkfile     xfs_repair     
xfs_copy       xfs_freeze     xfs_info       xfs_mdrestore  xfs_ncheck     xfs_rtcp       
[root@localhost lv01]# xfs_growfs /dev/vg01/lv01
meta-data=/dev/mapper/vg01-lv01  isize=512    agcount=1, agsize=4096 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4096, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=855, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4096 to 12288
[root@localhost lv01]# df -Th /lv01/
文件系统              类型  容量  已用  可用 已用% 挂载点
/dev/mapper/vg01-lv01 xfs    45M  960K   44M    3% /lv01
[root@localhost lv01]# 
  • 方法二
[root@localhost lv01]# df -Th /lv01/
文件系统              类型  容量  已用  可用 已用% 挂载点
/dev/mapper/vg01-lv01 xfs    45M  960K   44M    3% /lv01
[root@localhost lv01]# df -Th /lv01/
文件系统              类型  容量  已用  可用 已用% 挂载点
/dev/mapper/vg01-lv01 xfs    45M  960K   44M    3% /lv01
[root@localhost lv01]# lvextend -L 80M -r /dev/vg01/lv01Size of logical volume vg01/lv01 changed from 48.00 MiB (12 extents) to 80.00 MiB (20 extents).Logical volume vg01/lv01 successfully resized.
meta-data=/dev/mapper/vg01-lv01  isize=512    agcount=3, agsize=4096 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=12288, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=855, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 12288 to 20480
[root@localhost lv01]# df -Th /lv01/
文件系统              类型  容量  已用  可用 已用% 挂载点
/dev/mapper/vg01-lv01 xfs    77M  1.0M   76M    2% /lv01

6.3LVM的删除

[root@localhost ~]# 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_anonymous-root 253:0    0   17G  0 lvm  /└─centos_anonymous-swap 253:1    0    2G  0 lvm  [SWAP]
sdb                         8:16   0   20G  0 disk 
├─sdb1                      8:17   0    4G  0 part 
│ ├─vg01-lv01             253:2    0   80M  0 lvm  /lv01
│ └─vg01-lv02             253:3    0   16M  0 lvm  
├─sdb2                      8:18   0    4G  0 part 
│ └─vg02-lv03             253:4    0  100M  0 lvm  /lv03
├─sdb3                      8:19   0    4G  0 part 
└─sdb4                      8:20   0    4G  0 part 
sr0                        11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64
[root@localhost ~]# umount /dev/vg01/lv01
[root@localhost ~]# df -h !$
df -h /dev/vg01/lv01
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        1.9G     0  1.9G    0% /dev
[root@localhost ~]# lvremove /dev/vg01/lv01
Do you really want to remove active logical volume vg01/lv01? [y/n]: yLogical volume "lv01" successfully removed
[root@localhost ~]# lvremove /dev/vg01/lv02
Do you really want to remove active logical volume vg01/lv02? [y/n]: yLogical volume "lv02" successfully removed
[root@localhost ~]# vgremove vg01Volume group "vg01" successfully removed
[root@localhost ~]# pvremove /dev/sdb1Labels on physical volume "/dev/sdb1" successfully wiped.
[root@localhost ~]# 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_anonymous-root 253:0    0   17G  0 lvm  /└─centos_anonymous-swap 253:1    0    2G  0 lvm  [SWAP]
sdb                         8:16   0   20G  0 disk 
├─sdb1                      8:17   0    4G  0 part 
├─sdb2                      8:18   0    4G  0 part 
│ └─vg02-lv03             253:4    0  100M  0 lvm  /lv03
├─sdb3                      8:19   0    4G  0 part 
└─sdb4                      8:20   0    4G  0 part 
sr0                        11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64
[root@localhost ~]# 

7.LVM扩容实战

7.1实验思路

  1. 创建磁盘、分区
  2. 创建PV
  3. 创建VG
  4. 创建LV
  5. 格式化挂载LV

7.2实战演示

  1. 创建磁盘,分区
[root@localhost ~]# 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_anonymous-root 253:0    0   17G  0 lvm  /└─centos_anonymous-swap 253:1    0    2G  0 lvm  [SWAP]
sdb                         8:16   0   20G  0 disk 
sr0                        11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0x1287997e 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+4G
分区 1 已设置为 Linux 类型,大小设为 4 GiB命令(输入 m 获取帮助):n
Partition type:p   primary (1 primary, 0 extended, 3 free)e   extended
Select (default p): 
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (8390656-41943039,默认为 8390656):
将使用默认值 8390656
Last 扇区, +扇区 or +size{K,M,G} (8390656-41943039,默认为 41943039):+4G
分区 2 已设置为 Linux 类型,大小设为 4 GiB命令(输入 m 获取帮助):n
Partition type:p   primary (2 primary, 0 extended, 2 free)e   extended
Select (default p): 
Using default response p
分区号 (3,4,默认 3):
起始 扇区 (16779264-41943039,默认为 16779264):
将使用默认值 16779264
Last 扇区, +扇区 or +size{K,M,G} (16779264-41943039,默认为 41943039):+4G
分区 3 已设置为 Linux 类型,大小设为 4 GiB命令(输入 m 获取帮助):n
Partition type:p   primary (3 primary, 0 extended, 1 free)e   extended
Select (default e): p
已选择分区 4
起始 扇区 (25167872-41943039,默认为 25167872):
将使用默认值 25167872
Last 扇区, +扇区 or +size{K,M,G} (25167872-41943039,默认为 41943039):+4G
分区 4 已设置为 Linux 类型,大小设为 4 GiB命令(输入 m 获取帮助):p磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x1287997e设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     8390655     4194304   83  Linux
/dev/sdb2         8390656    16779263     4194304   83  Linux
/dev/sdb3        16779264    25167871     4194304   83  Linux
/dev/sdb4        25167872    33556479     4194304   83  Linux命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# ll /dev/sdb*
brw-rw----. 1 root disk 8, 16 11月 14 14:08 /dev/sdb
brw-rw----. 1 root disk 8, 17 11月 14 14:08 /dev/sdb1
brw-rw----. 1 root disk 8, 18 11月 14 14:08 /dev/sdb2
brw-rw----. 1 root disk 8, 19 11月 14 14:08 /dev/sdb3
brw-rw----. 1 root disk 8, 20 11月 14 14:08 /dev/sdb4

2.创建PV

[root@localhost ~]# pvcreate /dev/sdb{1..4}Device /dev/sdb4 not found (or ignored by filtering).Physical volume "/dev/sdb1" successfully created.Physical volume "/dev/sdb2" successfully created.Physical volume "/dev/sdb3" successfully created.Physical volume "/dev/sdb4" successfully created.
[root@localhost ~]# pvsPV         VG               Fmt  Attr PSize   PFree/dev/sda2  centos_anonymous lvm2 a--  <19.00g    0 /dev/sdb1                   lvm2 ---    4.00g 4.00g/dev/sdb2                   lvm2 ---    4.00g 4.00g/dev/sdb3                   lvm2 ---    4.00g 4.00g/dev/sdb4                   lvm2 ---    4.00g 4.00g
[root@localhost ~]# 

3.创建VG

[root@localhost ~]# vgcreate vg01 /dev/sdb1Volume group "vg01" successfully created
[root@localhost ~]# vgdisplay vg01 --- Volume group ---VG Name               vg01System ID             Format                lvm2Metadata Areas        1Metadata Sequence No  1VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                0Open LV               0Max PV                0Cur PV                1Act PV                1VG Size               <4.00 GiBPE Size               4.00 MiBTotal PE              1023Alloc PE / Size       0 / 0   Free  PE / Size       1023 / <4.00 GiBVG UUID               lb05QT-DCip-Lcbx-sahb-dKA1-KAnc-nHXnYD[root@localhost ~]# 

4.创建LV

[root@localhost ~]# lvcreate -n lv01 -L 16M vg01 Logical volume "lv01" created.
[root@localhost ~]# lvcreate -n lv02 -l 4 vg01Logical volume "lv02" created.
[root@localhost ~]# lvsLV   VG               Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertroot centos_anonymous -wi-ao---- <17.00g                                                    swap centos_anonymous -wi-ao----   2.00g                                                    lv01 vg01             -wi-a-----  16.00m                                                    lv02 vg01             -wi-a-----  16.00m           
[root@localhost ~]# lvdisplay /dev/vg01/lv01--- Logical volume ---LV Path                /dev/vg01/lv01LV Name                lv01VG Name                vg01LV UUID                DjHCEk-m7Ng-oCE2-sQjH-UoiK-fDif-KIRtMMLV Write Access        read/writeLV Creation host, time localhost.localdomain, 2022-11-14 14:40:38 +0800LV Status              available# open                 0LV Size                16.00 MiBCurrent LE             4Segments               1Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           253:2

5.格式化挂载LV

[root@localhost ~]# mkdir /lv01
[root@localhost ~]# mkfs.xfs /dev/vg01/lv01
meta-data=/dev/vg01/lv01         isize=512    agcount=1, agsize=4096 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=4096, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=855, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mount !$ /lv01/
mount /dev/vg01/lv01 /lv01/
[root@localhost ~]# df -Th /lv01/
文件系统              类型  容量  已用  可用 已用% 挂载点
/dev/mapper/vg01-lv01 xfs    13M  896K   12M    7% /lv01
[root@localhost ~]# 

相关内容

热门资讯

高德发布山东TOP100餐厅!... 😋🥢 提起日照美食,你最先想到的是什么? 蒸汽海鲜锅里翻滚的鲜甜,海沙子面汤头那一抹金黄,全羊汤蒸腾...
咖啡与非遗书写文旅新章——肯悦... 光影交织下的咖啡香,手指舞动间的非遗美。咖啡经济日渐火爆的当下,12月21日,肯悦咖啡首家唐山非遗文...
仁怀的四个“在酒”,是产区经济... 四个“在酒”所擘画的,是一条立足根本、直面问题、聚焦行动、指向长远的科学发展路径。 它展现的是一种...
警惕美食故事陷阱:别让虚假宣传... 讲起美食故事,好多人会马上想到温馨往昔或动人情愫。可是,于当下信息繁杂的情形中,“美食故事”这一概念...
蛋糕裱花烘焙培训学校推荐,长春... 在烘焙行业蓬勃发展的当下,对于想要学习蛋糕裱花等烘焙技艺的人来说,选择一家靠谱的烘焙培训学校至关重要...