0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LVM逻辑卷管理器简介和参考实例

马哥Linux运维 来源:51CTO 2024-01-02 10:53 次阅读

一、LVM简介

LVM(Logical Volume Manager,逻辑卷管理器)是Linux系统用于对硬盘分区进行管理的一种机制,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。而LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整

二、实验环境

操作平台:VMware Workstation 17 Pro

虚机操作系统:RokcyLinux 8.9

三、参考实例

3.1 创建物理卷(PV)

LVM支持使用整块磁盘创建PV,或用分区创建PV

例如使用/dev/sdb磁盘创建PV

[root@localhost ~]# parted /dev/sdb print  # 查看磁盘信息
Error: /dev/sdb: unrecognised disk label
Model: VMware, VMware Virtual S (scsi)                                    
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags: 
[root@localhost ~]# pvcreate /dev/sdb  # 创建
  Physical volume "/dev/sdb" successfully created.

以下三条命令均可查看pv状态

[root@localhost ~]# pvscan 
  PV /dev/sda2   VG rl              lvm2 [<49.00 GiB / 0    free]
  PV /dev/sdb                       lvm2 [10.00 GiB]
  Total: 2 [<59.00 GiB] / in use: 1 [<49.00 GiB] / in no VG: 1 [10.00 GiB]
[root@localhost ~]# pvs
  PV         VG Fmt  Attr PSize   PFree 
  /dev/sda2  rl lvm2 a--  <49.00g     0 
  /dev/sdb      lvm2 ---   10.00g 10.00g
[root@localhost ~]# pvdisplay /dev/sdb
  "/dev/sdb" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb
  VG Name               
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               J24xM9-b5SN-NlA0-q8cv-jQw3-eBRW-aLdNKk

使用磁盘分区创建PV

[root@localhost ~]# fdisk /dev/sdc  # 首先对磁盘进行分区


Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xa6c9a99a.


Command (m for help): n  # 创建新分区
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p  # 创建主分区
Partition number (1-4, default 1):   # 分区编号,默认为第一个分区
First sector (2048-20971519, default 2048): # 分区的起始扇区,默认即可,直接回车
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): +5G  # 分区大小5G


Created a new partition 1 of type 'Linux' and of size 5 GiB.


Command (m for help): t  # 更改分区类型
Selected partition 1
Hex code (type L to list all codes): 8e  # 选择逻辑卷类型,对应编号为8e
Changed type of partition 'Linux' to 'Linux LVM'.


Command (m for help): p  # 打印分区信息
Disk /dev/sdc: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa6c9a99a


Device     Boot Start      End  Sectors Size Id Type
/dev/sdc1        2048 10487807 10485760   5G 8e Linux LVM


Command (m for help): w  # 保存分区表
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# pvcreate /dev/sdc1  # 创建
  Physical volume "/dev/sdc1" successfully created.
[root@localhost ~]# pvs
  PV         VG Fmt  Attr PSize   PFree 
  /dev/sda2  rl lvm2 a--  <49.00g     0 
  /dev/sdb      lvm2 ---   10.00g 10.00g
  /dev/sdc1     lvm2 ---    5.00g  5.00g
[root@localhost ~]# pvdisplay /dev/sdc1
  "/dev/sdc1" is a new physical volume of "5.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc1
  VG Name               
  PV Size               5.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               K3MapS-m1yx-1E5p-pSjw-OTLB-OdMI-hPNCMe

3.2 创建卷组(VG)

例如:使用物理卷“/dev/sdb”创建一个名为“vgtest”的卷组

[root@localhost ~]# vgcreate vgtest /dev/sdb
  Volume group "vgtest" successfully created

以下命令均可查看VG的状态

[root@localhost ~]# vgscan
  Found volume group "vgtest" using metadata type lvm2
  Found volume group "rl" using metadata type lvm2
[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree  
  rl       1   2   0 wz--n- <49.00g      0 
  vgtest   1   0   0 wz--n- <10.00g <10.00g
  [root@localhost ~]# vgdisplay vgtest
  --- Volume group ---
  VG Name               vgtest
  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               <10.00 GiB
  PE Size               4.00 MiB  # 默认的PE大小为4MiB
  Total PE              2559
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2559 / <10.00 GiB
  VG UUID               yb2LkE-6N02-Pv6w-6Wb6-sVII-1E1c-9VrNrj

也可以在创建卷组时指定PE的大小,使用“-s”参数指定,单位是“M”

[root@localhost ~]# vgcreate -s 2M vgtest1 /dev/sdc1
  Volume group "vgtest1" successfully created
[root@localhost ~]# pvdisplay /dev/sdc1
  --- Physical volume ---
  PV Name               /dev/sdc1
  VG Name               vgtest1
  PV Size               5.00 GiB / not usable 2.00 MiB
  Allocatable           yes 
  PE Size               2.00 MiB  # PE大小为2
  Total PE              2559
  Free PE               2559
  Allocated PE          0
  PV UUID               K3MapS-m1yx-1E5p-pSjw-OTLB-OdMI-hPNCMe

可以使用多个PV来创建卷组,这样创建出来的VG容量就是多个PV的总和

[root@localhost ~]# pvcreate /dev/sdd
  Physical volume "/dev/sdd" successfully created.
[root@localhost ~]# pvcreate /dev/sde
  Physical volume "/dev/sde" successfully created.
[root@localhost ~]# 
[root@localhost ~]# vgcreate vgtest2 /dev/sdd /dev/sde
  Volume group "vgtest2" successfully created
[root@localhost ~]# vgdisplay vgtest2
  --- Volume group ---
  VG Name               vgtest2
  System ID             
  Format                lvm2
  Metadata Areas        2
  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                2
  Act PV                2
  VG Size               19.99 GiB
  PE Size               4.00 MiB
  Total PE              5118
  Alloc PE / Size       0 / 0   
  Free  PE / Size       5118 / 19.99 GiB
  VG UUID               jI8V7c-A4Pa-W2GU-cGc4-kglH-IYii-TNfFRp

3.3 创建逻辑卷(LV)

使用卷组“vgtest”来创建逻辑卷,名为“lvtest”,将“vgtest”的所有空间分配给“lvtest”

[root@localhost ~]# lvcreate -l 100%FREE vgtest -n lvtest
  Logical volume "lvtest" created.

以下命令均可查看逻辑卷状态

[root@localhost ~]# lvscan
  ACTIVE            '/dev/vgtest/lvtest' [<10.00 GiB] inherit
  ACTIVE            '/dev/rl/swap' [3.91 GiB] inherit
  ACTIVE            '/dev/rl/root' [45.08 GiB] inherit
[root@localhost ~]# lvs
  LV     VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   rl     -wi-ao----  45.08g                                                    
  swap   rl     -wi-ao----   3.91g                                                    
  lvtest vgtest -wi-a----- <10.00g         
[root@localhost ~]# lvdisplay vgtest/lvtest
  --- Logical volume ---
  LV Path                /dev/vgtest/lvtest
  LV Name                lvtest
  VG Name                vgtest
  LV UUID                hJX97w-kJtH-izv3-5N2U-rlVf-OZfe-8OMedE
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2023-12-30 2257 +0800
  LV Status              available
  # open                 0
  LV Size                <10.00 GiB
  Current LE             2559
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

可以在创建逻辑卷时指定其容量

[root@localhost ~]# lvcreate -L 3G vgtest1 -n lvtest1  # 指定LV容量为3G
  Logical volume "lvtest1" created.
[root@localhost ~]# lvdisplay vgtest1/lvtest1
  --- Logical volume ---
  LV Path                /dev/vgtest1/lvtest1
  LV Name                lvtest1
  VG Name                vgtest1
  LV UUID                ltVLNf-oyj0-25Ct-MVmx-VyeC-6y03-9LZdFV
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2023-12-30 2213 +0800
  LV Status              available
  # open                 0
  LV Size                3.00 GiB  # LV容量为3GiB
  Current LE             1536
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3

也可以在创建逻辑卷时指定为其分配的PE个数,例如,我想为创建的LV分配容量800M的容量,默认PE大小为4M,则为200个PE

[root@localhost ~]# vgdisplay vgtest2
  --- Volume group ---
  VG Name               vgtest2
  System ID             
  Format                lvm2
  Metadata Areas        2
  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                2
  Act PV                2
  VG Size               19.99 GiB
  PE Size               4.00 MiB  # PE大小为4MiB
  Total PE              5118
  Alloc PE / Size       0 / 0   
  Free  PE / Size       5118 / 19.99 GiB
[root@localhost ~]# lvcreate -l 200 vgtest2 -n lvtest2
  Logical volume "lvtest2" created.
[root@localhost ~]# lvdisplay vgtest2/lvtest2
  --- Logical volume ---
  LV Path                /dev/vgtest2/lvtest2
  LV Name                lvtest2
  VG Name                vgtest2
  LV UUID                rdYOR3-ETaO-Lc33-L0Si-ke3a-J3dV-qRTuGs
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2023-12-30 2207 +0800
  LV Status              available
  # open                 0
  LV Size                800.00 MiB  # LV容量为800MiB
  Current LE             200  # 分配到的PE个数为200
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:4

3.4 逻辑卷扩容

例如,如果我想对逻辑卷“lvtest2”进行扩容,增加200M容量

[root@localhost ~]# lvs
  LV      VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root    rl      -wi-ao----  45.08g                                                    
  swap    rl      -wi-ao----   3.91g                                                    
  lvtest  vgtest  -wi-a----- <10.00g                                                    
  lvtest1 vgtest1 -wi-a-----   3.00g                                                    
  lvtest2 vgtest2 -wi-a----- 800.00m    # 查看到lvtest2使用的是vgtest2这个卷组
[root@localhost ~]# vgs
  VG      #PV #LV #SN Attr   VSize   VFree 
  rl        1   2   0 wz--n- <49.00g     0 
  vgtest    1   1   0 wz--n- <10.00g     0 
  vgtest1   1   1   0 wz--n-  <5.00g <2.00g
  vgtest2   2   1   0 wz--n-  19.99g 19.21g  # 查看到vgtest2还有19.21G的空闲容量
[root@localhost ~]# lvextend -L +200M vgtest2/lvtest2
  Size of logical volume vgtest2/lvtest2 changed from 800.00 MiB (200 extents) to 1000.00 MiB (250 extents).
  Logical volume vgtest2/lvtest2 successfully resized.
[root@localhost ~]# lvdisplay vgtest2/lvtest2
  --- Logical volume ---
  LV Path                /dev/vgtest2/lvtest2
  LV Name                lvtest2
  VG Name                vgtest2
  LV UUID                rdYOR3-ETaO-Lc33-L0Si-ke3a-J3dV-qRTuGs
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2023-12-30 2207 +0800
  LV Status              available
  # open                 0
  LV Size                1000.00 MiB  # 容量增长为1000MiB
  Current LE             250
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:4

也可以指定增加的PE个数来对逻辑卷进行扩容

[root@localhost ~]# lvextend -l +25 vgtest2/lvtest2
  Size of logical volume vgtest2/lvtest2 changed from 1000.00 MiB (250 extents) to 1.07 GiB (275 extents).
  Logical volume vgtest2/lvtest2 successfully resized.
[root@localhost ~]# lvdisplay vgtest2/lvtest2
  --- Logical volume ---
  LV Path                /dev/vgtest2/lvtest2
  LV Name                lvtest2
  VG Name                vgtest2
  LV UUID                rdYOR3-ETaO-Lc33-L0Si-ke3a-J3dV-qRTuGs
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2023-12-30 2207 +0800
  LV Status              available
  # open                 0
  LV Size                1.07 GiB  # 容量增长为1.07
  Current LE             275  # 增加了25个PE
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:4

或者将VG的空闲容量全部分配给LV

[root@localhost ~]# lvextend -l +100%FREE vgtest2/lvtest2
  Size of logical volume vgtest2/lvtest2 changed from 1.07 GiB (275 extents) to 19.99 GiB (5118 extents).
  Logical volume vgtest2/lvtest2 successfully resized.
[root@localhost ~]# lvdisplay vgtest2/lvtest2
  --- Logical volume ---
  LV Path                /dev/vgtest2/lvtest2
  LV Name                lvtest2
  VG Name                vgtest2
  LV UUID                rdYOR3-ETaO-Lc33-L0Si-ke3a-J3dV-qRTuGs
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2023-12-30 2207 +0800
  LV Status              available
  # open                 0
  LV Size                19.99 GiB  # 容量增长为19.99
  Current LE             5118
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:4

将逻辑卷“lvtest2”挂载

[root@localhost ~]# mkfs.xfs /dev/vgtest2/lvtest2  # 创建xfs文件系统
meta-data=/dev/vgtest2/lvtest2   isize=512    agcount=4, agsize=1310208 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=5240832, 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@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/vgtest2/lvtest2 /data  # 挂载逻辑卷
[root@localhost ~]# df -Th /data
Filesystem                  Type  Size  Used Avail Use% Mounted on
/dev/mapper/vgtest2-lvtest2 xfs    20G  175M   20G   1% /data

如果想要永久挂载,需要在“/etc/fstab”文件中增加一行配置

[root@localhost ~]# blkid /dev/vgtest2/lvtest2  # 查看逻辑卷的UUID,通过UUID的方式挂载
/dev/vgtest2/lvtest2: UUID="544fae3b-7d08-4090-a6a7-aa5bcc4d9be0" BLOCK_SIZE="512" TYPE="xfs"
[root@localhost ~]# vim /etc/fstab


# 
# /etc/fstab
# Created by anaconda on Wed Nov 29 1550 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.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rl-root     /                       xfs     defaults        0 0
UUID=9d58ddae-ddae-4a83-8841-4b9863b55ab5 /boot                   xfs     defaults        0 0
/dev/mapper/rl-swap     none                    swap    defaults        0 0
UUID="544fae3b-7d08-4090-a6a7-aa5bcc4d9be0" /data xfs defaults 0 0  # 添加这一行
[root@localhost ~]# mount -a  # 读取“/etc/fstab”配置文件,挂载文件中定义的设备 

现在,假设服务器目录“/data”所涉及的业务量日益增加,而逻辑卷“lvtest2”的空间不足以支撑,需要对它再次进行扩容,我们可以这样做:

因为逻辑卷“lvtest2”关联的卷组是“vgtest2”,而“vgtest2”的所有容量已分配给了“lvtest2”,我们需要先对“vgtest2”进行扩容

新增一些scsi磁盘,如果希望在不重启的情况下让系统识别到新增的硬盘,可以这样做

[root@localhost ~]# ls /sys/class/scsi_host/
host0  host1  host2
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host0/scan   # 有多少个目录就对应执行多个目录的命令
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host1/scan 
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host2/scan 
[root@localhost ~]# ls /sys/class/scsi_device/
1:0:0:0  2:0:0:0  2:0:1:0  2:0:10:0  2:0:2:0  2:0:3:0  2:0:4:0  2:0:5:0  2:0:6:0  2:0:8:0  2:0:9:0
[root@localhost ~]# echo 1 > /sys/class/scsi_device/1:0:0:0/device/rescan   # 有多少个目录就对应执行多个目录的命令
[root@localhost ~]# echo 1 > /sys/class/scsi_device/2:0:0:0/device/rescan 
[root@localhost ~]# echo 1 > /sys/class/scsi_device/2:0:1:0/device/rescan 
[root@localhost ~]# echo 1 > /sys/class/scsi_device/2:0:10:0/device/rescan 
[root@localhost ~]# echo 1 > /sys/class/scsi_device/2:0:2:0/device/rescan 
[root@localhost ~]# echo 1 > /sys/class/scsi_device/2:0:3:0/device/rescan 
[root@localhost ~]# echo 1 > /sys/class/scsi_device/2:0:4:0/device/rescan 
[root@localhost ~]# echo 1 > /sys/class/scsi_device/2:0:5:0/device/rescan 
[root@localhost ~]# echo 1 > /sys/class/scsi_device/2:0:6:0/device/rescan 
[root@localhost ~]# echo 1 > /sys/class/scsi_device/2:0:8:0/device/rescan 
[root@localhost ~]# echo 1 > /sys/class/scsi_device/2:0:9:0/device/rescan 
[root@localhost ~]# lsblk  # 重新扫描后,就可以看到新增的块设备了
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                   8:0    0   50G  0 disk 
├─sda1                8:1    0    1G  0 part /boot
└─sda2                8:2    0   49G  0 part 
  ├─rl-root         253:0    0 45.1G  0 lvm  /
  └─rl-swap         253:1    0  3.9G  0 lvm  [SWAP]
sdb                   8:16   0   10G  0 disk 
└─vgtest-lvtest     253:2    0   10G  0 lvm  
sdc                   8:32   0   10G  0 disk 
└─sdc1                8:33   0    5G  0 part 
  └─vgtest1-lvtest1 253:3    0    3G  0 lvm  
sdd                   8:48   0   10G  0 disk 
└─vgtest2-lvtest2   253:4    0   20G  0 lvm  /data
sde                   8:64   0   10G  0 disk 
└─vgtest2-lvtest2   253:4    0   20G  0 lvm  /data
sdf                   8:80   0   10G  0 disk 
sdg                   8:96   0   10G  0 disk 
sdh                   8:112  0   10G  0 disk 
sdi                   8:128  0   10G  0 disk 
sdj                   8:144  0   10G  0 disk 
sr0                  11:0    1 1024M  0 rom  

首先,我们使用“/dev/sdf”这块磁盘创建PV,用于“vgtest2”的扩容

[root@localhost ~]# pvcreate /dev/sdf
  Physical volume "/dev/sdf" successfully created.
[root@localhost ~]# vgextend vgtest2 /dev/sdf
  Volume group "vgtest2" successfully extended
[root@localhost ~]# vgs vgtest2
  VG      #PV #LV #SN Attr   VSize   VFree  
  vgtest2   3   1   0 wz--n- <29.99g <10.00g  # 现在vgtest2的容量增长为30

然后,对逻辑卷“lvtest2”扩容,将空闲容量全部分配给它

[root@localhost ~]# lvextend -l +100%FREE vgtest2/lvtest2
  Size of logical volume vgtest2/lvtest2 changed from 19.99 GiB (5118 extents) to <29.99 GiB (7677 extents).
  Logical volume vgtest2/lvtest2 successfully resized.

虽然逻辑卷“lvtest2”的容量已扩容至30G,但是挂载的目录仍显示可用容量为20G

[root@localhost ~]# lvs vgtest2/lvtest2
  LV      VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lvtest2 vgtest2 -wi-ao---- <29.99g    
[root@localhost ~]# df -Th /data
Filesystem                  Type  Size  Used Avail Use% Mounted on
/dev/mapper/vgtest2-lvtest2 xfs    20G  175M   20G   1% /data

需要对文件系统进行扩容,ext类型的文件系统的扩容命令是“resize2fs”,xfs类型的文件系统扩容命令是xfs_growfs

[root@localhost ~]# xfs_growfs /dev/vgtest2/lvtest2 
meta-data=/dev/mapper/vgtest2-lvtest2 isize=512    agcount=4, agsize=1310208 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=5240832, 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 5240832 to 7861248
[root@localhost ~]# df -Th /data
Filesystem                  Type  Size  Used Avail Use% Mounted on
/dev/mapper/vgtest2-lvtest2 xfs    30G  247M   30G   1% /data    # 容量扩容至30G了

或者,我们可以在扩容逻辑卷的同时,一并把文件系统扩容,只需要在lvextend命令后面加上一个“-r”参数

对“lvtest2”再次进行扩容

[root@localhost ~]# pvcreate /dev/sdg  # 创建PV
  Physical volume "/dev/sdg" successfully created.
[root@localhost ~]# vgextend vgtest2 /dev/sdg # 扩容VG
  Volume group "vgtest2" successfully extended
[root@localhost ~]# lvextend -L +5G -r vgtest2/lvtest2  # 扩容LV,增加5G容量,同时扩容文件系统
  Size of logical volume vgtest2/lvtest2 changed from <29.99 GiB (7677 extents) to <34.99 GiB (8957 extents).
  Logical volume vgtest2/lvtest2 successfully resized.
meta-data=/dev/mapper/vgtest2-lvtest2 isize=512    agcount=6, agsize=1310208 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=7861248, 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 7861248 to 9171968
[root@localhost ~]# df -Th /data
Filesystem                  Type  Size  Used Avail Use% Mounted on
/dev/mapper/vgtest2-lvtest2 xfs    35G  283M   35G   1% /data  # 容量扩容至35

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 硬盘
    +关注

    关注

    3

    文章

    1290

    浏览量

    57230
  • Linux
    +关注

    关注

    87

    文章

    11224

    浏览量

    208902
  • 操作系统
    +关注

    关注

    37

    文章

    6737

    浏览量

    123188
  • LVM
    LVM
    +关注

    关注

    0

    文章

    9

    浏览量

    6425

原文标题:一文精通LVM逻辑卷管理

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    浅谈数据库内存和CPU资源控制及资源管理器的应用

    Governor),能够实现系统资源在逻辑上的隔离,解决在一台SQL Server实例上,管理多用户工作负载的需求。资源管理器允许数据库管理
    的头像 发表于 10-29 12:12 2739次阅读
    浅谈数据库内存和CPU资源控制及资源<b class='flag-5'>管理器</b>的应用

    第34章 窗口管理器实例(一)

    转stemwin教程为了帮助大家更好的理解窗口管理器的回调和消息机制,本期教程专门做了三个相关的例子,帮助大家更好的理解。 34. 1用户自定义消息类型实例 34. 2 桌面窗口回调函数实例 34. 3 官方WM_Redraw.
    发表于 10-16 10:43

    第35章 窗口管理器实例(二)

    转stemwin教程为了帮助大家更好的理解窗口管理器的回调和消息机制,本期教程专门做了三个相关的例子,这三个例子全部来自官方。 35. 1官方WM_Sample.c实例 35. 2 官方
    发表于 10-16 10:47

    【emWin实战教程V2.0】第36章 窗口管理器之回调消息类型

    以消息为基础的,初学者务必要掌握。 学习本章节前一定要优先学习第35章的窗口管理器基础知识。36.1初学者重要提示33.2 消息机制简介33.3 消息结构33.4 消息类型33.5 系统类型消息实例33.6 指针输入设备(PID
    发表于 02-17 13:00

    【emWin实战教程V2.0】第38章 窗口管理器官方实例简单讲解

    转最新版本教程 为了帮助大家更好的理解窗口管理器的回调和消息机制,官方也提供了好几个这方面的例子,本章节我们将官方这几个例子也跟大家进行简单讲解,进一步帮助大家更好的学习窗口管理器。38.1 初学者
    发表于 02-19 12:10

    如何理解Cypress更新管理器背后的逻辑

    时不时地,CyPress更新管理器检测过时的软件,并为我提供“更新”的选择。这对PSoC Programmer来说非常有用,当我点击“更新”时,它会在上传新软件时给我一个更新选项。然而,PSoC
    发表于 10-21 10:17

    布线产品之线缆管理器的应用

    以美国西蒙公司的VersaPOD机柜为例,挑选布线和跳线管理的几个实例来介绍水平/垂直线缆管理器在机柜内的安装和使用
    发表于 08-21 17:52 718次阅读

    Linux下的逻辑管理

    逻辑管理(Logic Volume Manager),简称LVM,是与传统的静态分区完全不同的磁盘管理方法
    发表于 01-06 17:02 1045次阅读

    封装下载管理器实例教学

    第一节:功能说明 首先,本篇文章教大家写一个最简单的下载管理器,不包含上传管理器。不过,上传管理器与下载管理器是一样的,后面会抛砖引玉,大家可以各自去尝试! 本篇文章所讲解的下载
    发表于 09-26 15:38 0次下载

    Linux磁盘如何划分 浅谈逻辑管理LVM)相关知识

    逻辑管理LVM是一个多才多艺的硬盘系统工具。无论在Linux或者其他类似的系统,都是非常的好用。传统分区使用固定大小分区,重新调整大小十分麻烦。但是,
    的头像 发表于 09-08 09:50 3202次阅读

    数据库的项目管理器是什么?项目管理器详细资料总结

    项目管理器是VFP集成开发环境中的一个重要组成部分。项目是文件、数据、文档和对象的集合,项目管理器通过项目文件(.PJX和.PJT)对项目进行管理。VFP所有管理功能所包含的信息和数据
    发表于 09-18 17:43 5次下载
    数据库的项目<b class='flag-5'>管理器</b>是什么?项目<b class='flag-5'>管理器</b>详细资料总结

    英特尔软件管理器简介

    英特尔®软件管理器简介
    的头像 发表于 05-31 09:53 3055次阅读
    英特尔软件<b class='flag-5'>管理器</b><b class='flag-5'>简介</b>

    如何使用Vivado硬件管理器连接F1进行定制逻辑设计

    本视频将向您展示为定制逻辑设计添加调试内核的步骤。此外,它还包含一个演示,展示如何使用Vivado硬件管理器连接F1实例,如何调试在膝上型电脑/ Linux机器上运行的定制逻辑 设计
    的头像 发表于 11-21 06:13 3260次阅读
    如何使用Vivado硬件<b class='flag-5'>管理器</b>连接F1进行定制<b class='flag-5'>逻辑</b>设计

    你知道linux内核中的device mapper?

    LVM2是Linux 下的逻辑管理器,它可以对磁盘进行分区等。但是我们这里用LVM主要是利用用户空间的device mapper 库以及它
    发表于 04-29 15:19 4430次阅读

    约束管理器.zip

    约束管理器
    发表于 12-30 09:22 2次下载