Linux中对于LVM逻辑卷的使用
LVM,是Logical Volume Manager的缩写,中文意思是逻辑卷管理,它是linux下对磁盘分区进行管理的一种机制,LVM是建立在磁盘分区和文件系统之间的一个逻辑层,管理员利用LVM可以在磁盘不用重新分区的情况下动态的调整分区的大小。如果系统新增了一块硬盘,通过LVM就可以将新增的硬盘空间直接扩展到原来的磁盘分区上。
- 物理存储设备(physical media):指系统的存储设备文件,比如:/dev/sda、/dev/hdb
- 物理卷(physical volume):简称PV
- 卷组(Volume Group):简称VG
- 逻辑卷(logical volume):简称LV
- PE(physical extent):PV中可以分配的最小存储单元称为PE
- LE(logical extent):LV中可以分配的最小存储单元称为LE
操作前,先确定相关工具包是否安装
$ rpm -qa | grep lvm
lvm2-libs-2.02.187-6.el7.x86_64
lvm2-2.02.187-6.el7.x86_64
llvm-private-7.0.1-1.el7.x86_64
$ rpm -qa | grep e2fsprogs
e2fsprogs-1.42.9-19.el7.x86_64
e2fsprogs-libs-1.42.9-19.el7.x86_64
$ rpm -qa | grep xfsprogs
xfsprogs-4.5.0-22.el7.x86_64
pv管理工具
-
显示pv信息
pvs
:简要pv信息显示pvscan
pvdisplay
-
创建pv
pvcreate /dev/DEVICE
-
删除pv
pvremove /dev/DEVICE
vg管理工具
-
显示卷组
vgs
vgdisplay
vgscan
-
创建卷组
vgcreate VGName PVname [PVname...]
-
管理卷组
扩展卷组
vgextend VGName PVname [PVname...]
缩减卷组
vgreduce VGName PVname [PVname...]
-
删除卷组
先做pvmove
,再做vgremove
-
激活卷组
vgchange –ay vgname
lv管理工具
-
显示逻辑卷
lvs
lvscan
lvdisplay
-
创建逻辑卷
lvcreate -L LVsize -n LVname VGname
按照逻辑卷的大小分配,比如10G
,10M
lvcreate -l pe数量 -n LVname VGname
按照pe数量分配,比如1000
lvcreate -l 60%vg -n LVname VGname
按照这个vg中pe数量的百分比分配 比如60%vg
lvcreate -l 100%free -n LVname VGname
按照剩余未分配的pe数量百分比分配 比如100%free
-
删除逻辑卷
lvremove /dev/VG_NAME/LV_NAME
-
重设文件系统大小
fsadm [options] resize device [new_size[BKMGTEP]]
resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
xfs_growfs /mountpoint
实战
对硬盘进行分区
# 先对/dev/sdb分区
$ fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
# 打印分区情况
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000131b1
设备 Boot Start End Blocks Id System
# 新建分区
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
# 选择主分区
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
# 选择分区大小
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G
分区 1 已设置为 Linux 类型,大小设为 2 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):
起始 扇区 (4196352-20971519,默认为 4196352):
将使用默认值 4196352
# 选择分区大小
Last 扇区, +扇区 or +size{K,M,G} (4196352-20971519,默认为 20971519):+3G
分区 2 已设置为 Linux 类型,大小设为 3 GiB
# 打印分区情况
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000131b1
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 10487807 3145728 83 Linux
/dev/sdb3 10487808 20971519 5241856 83 Linux
# 保存
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
# 对/dev/sdc进行分区
$ fdisk /dev/sdc
# ...
命令(输入 m 获取帮助):p
磁盘 /dev/sdc:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf98d3d22
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 6293503 3145728 83 Linux
/dev/sdc2 6293504 20971519 7339008 83 Linux
# 保存
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
# 查看设备分区情况
$ fdisk -l
磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000c9b3c
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 106956799 52428800 83 Linux
/dev/sda3 106956800 115345407 4194304 82 Linux swap / Solaris
/dev/sda4 115345408 209715199 47184896 5 Extended
/dev/sda5 115347456 209715199 47183872 83 Linux
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000131b1
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 10487807 3145728 83 Linux
/dev/sdb3 10487808 20971519 5241856 83 Linux
磁盘 /dev/sdc:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf98d3d22
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 6293503 3145728 83 Linux
/dev/sdc2 6293504 20971519 7339008 83 Linux
创建物理卷
$ pvcreate /dev/sdb* /dev/sdc*
Device /dev/sdb excluded by a filter.
Device /dev/sdc excluded by a filter.
# 询问分区上某个位置上有xfs_external_log 是否擦除 选择擦除
WARNING: xfs_external_log signature detected on /dev/sdb2 at offset 19968. Wipe it? [y/n]: y
Wiping xfs_external_log signature on /dev/sdb2.
WARNING: xfs_external_log signature detected on /dev/sdb2 at offset 20992. Wipe it? [y/n]: y
Wiping xfs_external_log signature on /dev/sdb2.
WARNING: xfs_external_log signature detected on /dev/sdb2 at offset 22528. Wipe it? [y/n]: y
Wiping xfs_external_log signature on /dev/sdb2.
WARNING: xfs_external_log signature detected on /dev/sdb2 at offset 24064. Wipe it? [y/n]: y
Wiping xfs_external_log signature on /dev/sdb2.
WARNING: xfs_external_log signature detected on /dev/sdb2 at offset 25088. Wipe it? [y/n]: y
Wiping xfs_external_log signature on /dev/sdb2.
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
Physical volume "/dev/sdb3" successfully created.
Physical volume "/dev/sdc1" successfully created.
Physical volume "/dev/sdc2" successfully created.
# 查看物理卷简要信息
$ pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 a-- <2.00g 0
/dev/sdb2 lvm2 a-- <3.00g 0
/dev/sdb3 lvm2 --- <5.00g 0
/dev/sdc1 lvm2 a-- <3.00g 0
/dev/sdc2 lvm2 --- <7.00g 0
# 查看物理卷详细信息
$ pvdisplay
"/dev/sdb2" is a new physical volume of "3.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb2
VG Name
PV Size 3.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID GT1wek-8p9F-6vZ8-S7Ak-PdKA-NZ54-MUCpat
"/dev/sdc1" is a new physical volume of "3.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size 3.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID A3MG5u-x650-Gccr-t3qF-pURX-FYOx-NPan2D
"/dev/sdc2" is a new physical volume of "<7.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc2
VG Name
PV Size <7.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID a0YIsz-26zN-F1U9-ckok-agnm-3jj7-55NYXK
"/dev/sdb3" is a new physical volume of "<5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb3
VG Name
PV Size <5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID xSIu1M-oUvW-RaAT-3s9q-UCCS-7Pev-uHQ0L8
"/dev/sdb1" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID ZXGHko-H3pq-tr0U-wHgB-I2c1-UnZy-n42GBX
创建卷组
# 将/dev/sdb1 /dev/sdb2 /dev/sdc1这三个物理卷创建为一个卷组
$ vgcreate myvg1 /dev/sdb1 /dev/sdb2 /dev/sdc1
Volume group "myvg1" successfully created
# 查看卷组简要信息
$ vgs
VG #PV #LV #SN Attr VSize VFree
myvg1 3 5 0 wz--n- <7.99g 0
# 查看卷组详细信息
$ vgdisplay myvg1
--- Volume group ---
VG Name myvg1
System ID
Format lvm2
Metadata Areas 3
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 3
Act PV 3
VG Size <7.99 GiB
PE Size 4.00 MiB
Total PE 2045
Alloc PE / Size 0 / 0
Free PE / Size 2045 / <7.99 GiB
VG UUID gSCt0u-63Jy-wKEO-d2oU-z2s2-gYHJ-unS3cQ
# 激活卷组 myvg1
$ vgchange -ay myvg1
0 logical volume(s) in volume group "myvg1" now active
创建逻辑卷
# 按逻辑卷大小分配 创建一个名字是mylv1的3G逻辑分区
$ lvcreate -L 3G -n mylv1 myvg1
Logical volume "mylv1" created.
# 查看对应逻辑分区的详细信息
$ lvdisplay /dev/myvg1/mylv1
--- Logical volume ---
LV Path /dev/myvg1/mylv1
LV Name mylv1
VG Name myvg1
LV UUID 3JNzYH-twEU-I6xE-UMRf-U0ox-HLGF-asS6zx
LV Write Access read/write
LV Creation host, time hexug, 2022-04-09 23:16:57 +0800
LV Status available
# open 0
LV Size 3.00 GiB
Current LE 768
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
# 按pe数量创建
$ lvcreate -l 300 -n mylv2 myvg1
Logical volume "mylv2" created.
# 查看创建的逻辑卷
$ lvdisplay /dev/myvg1/mylv2
--- Logical volume ---
LV Path /dev/myvg1/mylv2
LV Name mylv2
VG Name myvg1
LV UUID s1js9d-iAPO-FIJN-nY4o-ldGR-LJqo-Ncn7T6
LV Write Access read/write
LV Creation host, time hexug, 2022-04-09 23:18:29 +0800
LV Status available
# open 0
LV Size 1.17 GiB
Current LE 300
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
# 按卷组总量的百分比分配创建
$ lvcreate -l 20%vg -n mylv3 myvg1
Logical volume "mylv3" created.
# 按剩余量的百分比分配创建
$ lvcreate -l 20%free -n mylv4 myvg1
Logical volume "mylv4" created.
# 按剩余量的百分比分配创建
$ lvcreate -l 100%free -n mylv5 myvg1
Logical volume "mylv5" created.
# 查看逻辑卷简介
$ lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv1 myvg1 -wi-ao---- 3.00g
mylv2 myvg1 -wi-a----- 1.17g
mylv3 myvg1 -wi-a----- <1.60g
mylv4 myvg1 -wi-a----- 452.00m
mylv5 myvg1 -wi-a----- <1.78g
# 查看所有逻辑卷详情
$ lvdisplay
--- Logical volume ---
LV Path /dev/myvg1/mylv1
LV Name mylv1
VG Name myvg1
LV UUID 3JNzYH-twEU-I6xE-UMRf-U0ox-HLGF-asS6zx
LV Write Access read/write
LV Creation host, time hexug, 2022-04-09 23:16:57 +0800
LV Status available
# open 0
LV Size 3.00 GiB
Current LE 768
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/myvg1/mylv2
LV Name mylv2
VG Name myvg1
LV UUID s1js9d-iAPO-FIJN-nY4o-ldGR-LJqo-Ncn7T6
LV Write Access read/write
LV Creation host, time hexug, 2022-04-09 23:18:29 +0800
LV Status available
# open 0
LV Size 1.17 GiB
Current LE 300
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/myvg1/mylv3
LV Name mylv3
VG Name myvg1
LV UUID edeUrt-gBuy-cpxo-usiw-53D7-qyec-AV1Q8d
LV Write Access read/write
LV Creation host, time hexug, 2022-04-09 23:19:56 +0800
LV Status available
# open 0
LV Size <1.60 GiB
Current LE 409
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
--- Logical volume ---
LV Path /dev/myvg1/mylv4
LV Name mylv4
VG Name myvg1
LV UUID OTgzSC-UyJ3-9h0o-wevi-DYtc-yt3Z-xxlKIN
LV Write Access read/write
LV Creation host, time hexug, 2022-04-09 23:21:38 +0800
LV Status available
# open 0
LV Size 452.00 MiB
Current LE 113
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
--- Logical volume ---
LV Path /dev/myvg1/mylv5
LV Name mylv5
VG Name myvg1
LV UUID AUanOu-r42n-d3DR-WiTy-jSSx-niZJ-Gy2cbH
LV Write Access read/write
LV Creation host, time hexug, 2022-04-09 23:22:29 +0800
LV Status available
# open 0
LV Size <1.78 GiB
Current LE 455
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:4
# 查看分区情况
$ fdisk -l
# ........
磁盘 /dev/mapper/myvg1-mylv1:3221 MB, 3221225472 字节,6291456 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/myvg1-mylv2:1258 MB, 1258291200 字节,2457600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/myvg1-mylv3:1715 MB, 1715470336 字节,3350528 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/myvg1-mylv4:473 MB, 473956352 字节,925696 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/myvg1-mylv5:1908 MB, 1908408320 字节,3727360 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
格式化分区
新建的逻辑卷设备名是/dev/卷组名/逻辑卷名
# 以xfs分区
$ mkfs.xfs /dev/myvg1/mylv1
meta-data=/dev/myvg1/mylv1 isize=512 agcount=4, agsize=196608 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=786432, 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
$ mkfs.xfs /dev/myvg1/mylv2
meta-data=/dev/myvg1/mylv2 isize=512 agcount=4, agsize=76800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=307200, 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
# 按ext4格式化
$ mkfs.ext4 /dev/myvg1/mylv3
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
104832 inodes, 418816 blocks
20940 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=429916160
13 block groups
32768 blocks per group, 32768 fragments per group
8064 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
$ mkfs.ext4 /dev/myvg1/mylv4
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
115824 inodes, 462848 blocks
23142 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=34078720
57 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
$ mkfs.xfs /dev/myvg1/mylv5
meta-data=/dev/myvg1/mylv5 isize=512 agcount=4, agsize=116480 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=465920, 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
挂载
$ mount /dev/myvg1/mylv1 /tmp
$ df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 985M 0 985M 0% /dev
tmpfs 1000M 0 1000M 0% /dev/shm
tmpfs 1000M 9.0M 991M 1% /run
tmpfs 1000M 0 1000M 0% /sys/fs/cgroup
/dev/sda2 50G 4.6G 46G 10% /
/dev/sda5 45G 33M 45G 1% /data
/dev/sda1 1014M 170M 845M 17% /boot
tmpfs 200M 0 200M 0% /run/user/0
/dev/mapper/myvg1-mylv1 3.0G 33M 3.0G 2% /tmp
扩展卷组
# 扩展卷组
$ vgextend myvg1 /dev/sdc2
Volume group "myvg1" successfully extended
$ pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 myvg1 lvm2 a-- <2.00g 0
/dev/sdb2 myvg1 lvm2 a-- <3.00g 0
/dev/sdb3 lvm2 --- <5.00g <5.00g
/dev/sdc1 myvg1 lvm2 a-- <3.00g 0
/dev/sdc2 myvg1 lvm2 a-- <7.00g <7.00g
$ vgs
VG #PV #LV #SN Attr VSize VFree
myvg1 4 5 0 wz--n- 14.98g <7.00g
# 缩减卷组
$ vgreduce myvg1 /dev/sdc2
Removed "/dev/sdc2" from volume group "myvg1"
$ pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 myvg1 lvm2 a-- <2.00g 0
/dev/sdb2 myvg1 lvm2 a-- <3.00g 0
/dev/sdb3 lvm2 --- <5.00g <5.00g
/dev/sdc1 myvg1 lvm2 a-- <3.00g 0
/dev/sdc2 lvm2 --- <7.00g <7.00g
$ vgs
VG #PV #LV #SN Attr VSize VFree
myvg1 3 5 0 wz--n- <7.99g 0
扩展和缩减逻辑卷
扩展逻辑卷:
-
lvextend -L +LVsize /dev/VG_NAME/LV_NAME
-
lvextend -l +pe数量 /dev/VG_NAME/LV_NAME
-
lvresize -r -l +100%free /dev/VG_NAME/LV_NAME
让扩展生效
ext4格式
resize2fs /dev/VG_NAME/LV_NAME
xfs格式
xfs_growfs /dev/VG_NAME/LV_NAME
缩减逻辑卷:
尽量不要缩减
umount /dev/VG_NAME/LV_NAME
e2fsck -f /dev/VG_NAME/LV_NAME
resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
mount
扩展逻辑卷实操
# 扩展卷组
$ vgextend myvg1 /dev/sdc2
Volume group "myvg1" successfully extended
$ pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 myvg1 lvm2 a-- <2.00g 0
/dev/sdb2 myvg1 lvm2 a-- <3.00g 0
/dev/sdb3 lvm2 --- <5.00g <5.00g
/dev/sdc1 myvg1 lvm2 a-- <3.00g 0
/dev/sdc2 myvg1 lvm2 a-- <7.00g <7.00g
# 扩展逻辑卷
$ lvextend -L +2G /dev/myvg1/mylv1
Size of logical volume myvg1/mylv1 changed from 3.00 GiB (768 extents) to 5.00 GiB (1280 extents).
Logical volume myvg1/mylv1 successfully resized.
$ lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv1 myvg1 -wi-ao---- 5.00g
mylv2 myvg1 -wi-a----- 1.17g
mylv3 myvg1 -wi-a----- <1.60g
mylv4 myvg1 -wi-a----- 452.00m
mylv5 myvg1 -wi-a----- <1.78g
$ lvextend -l +100%free /dev/myvg1/mylv4
Size of logical volume myvg1/mylv4 changed from 452.00 MiB (113 extents) to <5.44 GiB (1392 extents).
Logical volume myvg1/mylv4 successfully resized.
$ lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv1 myvg1 -wi-ao---- 5.00g
mylv2 myvg1 -wi-a----- 1.17g
mylv3 myvg1 -wi-a----- <1.60g
mylv4 myvg1 -wi-a----- <5.44g
mylv5 myvg1 -wi-a----- <1.78g
# ext4格式的生效
$ resize2fs /dev/myvg1/mylv4
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/myvg1/mylv4 to 5701632 (1k) blocks.
The filesystem on /dev/myvg1/mylv4 is now 5701632 blocks long.
# xfs格式的生效
$ xfs_growfs /tmp
meta-data=/dev/mapper/myvg1-mylv1 isize=512 agcount=4, agsize=196608 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=786432, 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 786432 to 1310720
# 查看已经生效
$ df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 985M 0 985M 0% /dev
tmpfs 1000M 0 1000M 0% /dev/shm
tmpfs 1000M 9.0M 991M 1% /run
tmpfs 1000M 0 1000M 0% /sys/fs/cgroup
/dev/sda2 50G 4.6G 46G 10% /
/dev/sda5 45G 33M 45G 1% /data
/dev/sda1 1014M 170M 845M 17% /boot
tmpfs 200M 0 200M 0% /run/user/0
/dev/mapper/myvg1-mylv1 5.0G 33M 5.0G 1% /tmp
删除物理卷实操
# 先卸载
$ umount /tmp
# 再删除逻辑卷
$ lvremove /dev/myvg1/mylv*
Do you really want to remove active logical volume myvg1/mylv1? [y/n]: y
Logical volume "mylv1" successfully removed
Do you really want to remove active logical volume myvg1/mylv2? [y/n]: y
Logical volume "mylv2" successfully removed
Do you really want to remove active logical volume myvg1/mylv3? [y/n]: y
Logical volume "mylv3" successfully removed
Do you really want to remove active logical volume myvg1/mylv4? [y/n]: y
Logical volume "mylv4" successfully removed
Do you really want to remove active logical volume myvg1/mylv5? [y/n]: y
Logical volume "mylv5" successfully removed
$ lvs
# 删除卷组
$ vgremove myvg1
Volume group "myvg1" successfully removed
$ vgs
# 删除物理卷
$ pvremove /dev/sdb* /dev/sdc*
Device /dev/sdb excluded by a filter.
Device /dev/sdc excluded by a filter.
Labels on physical volume "/dev/sdb1" successfully wiped.
Labels on physical volume "/dev/sdb2" successfully wiped.
Labels on physical volume "/dev/sdb3" successfully wiped.
Labels on physical volume "/dev/sdc1" successfully wiped.
Labels on physical volume "/dev/sdc2" successfully wiped.
$ pvs
本文来自博客园,作者:厚礼蝎,转载请注明原文链接:https://www.cnblogs.com/guangdelw/p/17125816.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤