LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系 统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。
Linux发行版本:Centos7
[root@localhost admin]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 1.4G 49G 3% / #将给/目录扩容50G
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 17M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/vda1 1014M 145M 870M 15% /boot
/dev/mapper/centos-home 42G 243M 41G 1% /home #将给/home目录扩容350G
tmpfs 3.2G 0 3.2G 0% /run/user/1000
[root@localhost admin]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sr0 11:0 1 1024M 0 rom
vda 252:0 0 100G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 99G 0 part
├─centos-root 253:0 0 50G 0 lvm / #注意此处,将扩容50G
├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
└─centos-home 253:2 0 41.1G 0 lvm /home #注意此处,将扩容350G
vdb 252:16 0 400G 0 disk
[root@localhost admin]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).
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
Building a new DOS disklabel with disk identifier 0x9b37b4a1.
Command (m for help): n # 添加新分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): # 分区类型,回车,默认p,主分区
Using default response p
Partition number (1-4, default 1): # 分区号,回车,默认1
First sector (2048-838860799, default 2048): # 回车,默认起始位置
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-838860799, default 838860799): # 回车,默认最后位置
Using default value 838860799
Partition 1 of type Linux and of size 400 GiB is set
Command (m for help): t # 更改分区格式
Selected partition 1
Hex code (type L to list all codes): L # 查看可选项
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
1e Hidden W95 FAT1 80 Old Minix
Hex code (type L to list all codes): 8e # 更改分区格式为LVM
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): p # 打印,查看改好的分区(blocks为分区大小 单位为kb)
Disk /dev/vdb: 429.5 GB, 429496729600 bytes, 838860800 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
Disk label type: dos
Disk identifier: 0x9b37b4a1
Device Boot Start End Blocks Id System
/dev/vdb1 2048 838860799 419429376 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 admin]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sr0 11:0 1 1024M 0 rom
vda 252:0 0 100G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 99G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
└─centos-home 253:2 0 41.1G 0 lvm /home
vdb 252:16 0 400G 0 disk
└─vdb1 252:17 0 400G 0 part
[root@localhost admin]# pvcreate /dev/vdb1
Physical volume "/dev/vdb1" successfully created.
[root@localhost admin]# vgdisplay
--- Volume group ---
VG Name centos # 这是Centos系统下默认的VG Name,RHEL系统显示为rhel
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size <99.00 GiB
PE Size 4.00 MiB
Total PE 25343
Alloc PE / Size 25342 / 98.99 GiB
Free PE / Size 1 / 4.00 MiB
VG UUID rZR1wr-c9jd-RALA-wwIU-zkGO-fJtC-w9TGZh
[root@localhost admin]# vgextend centos /dev/vdb1
Volume group "centos" successfully extended
[root@localhost admin]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 2
Act PV 2
VG Size 498.99 GiB # 此处空间已扩展
PE Size 4.00 MiB
Total PE 127742
Alloc PE / Size 25342 / 98.99 GiB
Free PE / Size 102400 / 400.00 GiB
VG UUID rZR1wr-c9jd-RALA-wwIU-zkGO-fJtC-w9TGZh
[root@localhost admin]# lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID KZkj21-9nMn-7r5C-i4R1-nebQ-E0yz-9QOrge
LV Write Access read/write
LV Creation host, time localhost, 2019-12-11 00:28:35 +0800
LV Status available
# open 2
LV Size <7.88 GiB
Current LE 2016
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/centos/home # 后面将扩展该逻辑卷,记住此路径
LV Name home
VG Name centos
LV UUID 2XyDak-rwgq-QEoi-bPsP-uBlO-Y8Kk-cCdG4H
LV Write Access read/write
LV Creation host, time localhost, 2019-12-11 00:28:36 +0800
LV Status available
# open 1
LV Size <41.12 GiB
Current LE 10526
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
--- Logical volume ---
LV Path /dev/centos/root # 后面将扩展该逻辑卷,记住此路径
LV Name root
VG Name centos
LV UUID e8DRcw-DS3l-Q2zY-Bfi2-zF9I-48ee-e202ng
LV Write Access read/write
LV Creation host, time localhost, 2019-12-11 00:28:38 +0800
LV Status available
# open 1
LV Size 50.00 GiB
Current LE 12800
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
[root@localhost admin]# lvextend -L +50G /dev/centos/root # 给/dev/centos/root扩容50G
Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 100.00 GiB (25600 extents).
Logical volume centos/root successfully resized.
[root@localhost admin]# lvextend -L +350G /dev/centos/home # 给/dev/centos/home扩容350G
Size of logical volume centos/home changed from <41.12 GiB (10526 extents) to <391.12 GiB (100126 extents).
Logical volume centos/home successfully resized.
说明:
lvextend命令 用于在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问。使用lvextend命令动态在线扩展磁盘空间,整个空间扩展过程对于应用程序来说是完全透明的。
语法:
lvextend(选项)(参数)
选项:
-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节;
-l:指定逻辑卷的大小(LE数)。
参数:
逻辑卷:指定要扩展空间的逻辑卷。
[root@localhost admin]# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=3276800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=13107200, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=6400, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 13107200 to 26214400
[root@localhost admin]# xfs_growfs /dev/centos/home
meta-data=/dev/mapper/centos-home isize=512 agcount=4, agsize=2694656 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=10778624, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=5263, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 10778624 to 102529024
如果是ext系统,可以使用resize2fs命令替换xfs_growfs命令。
10. 检查扩容效果
[root@localhost admin]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 100G 1.7G 99G 2% /
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 17M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/vda1 1014M 145M 870M 15% /boot
/dev/mapper/centos-home 392G 245M 391G 1% /home
tmpfs 3.2G 0 3.2G 0% /run/user/1000
tmpfs 3.2G 0 3.2G 0% /run/user/0