目录
LVM存储管理介绍
- PV(Physical Volume):这是起点,相当于原始硬盘或分区。使用pvdisplay命令可以查看所有物理卷详情。
- VG(Volume Group):构建于PV之上,将多个PV聚合形成存储池,提升灵活性。通过vgcreate命令创建VG,vgdisplay展示VG信息。
- LV(Logical Volume):在VG中划分的可调整大小的逻辑空间,类似传统分区,但更灵活。用lvcreate创建LV,lvdisplay查看LV状态。LV创建后,格式化并挂载即可使用。
简言之,LVM通过PV→VG→LV的层级设计,结合实用命令操作,实现了存储资源的高效与动态管理。
lvm磁盘扩容有两种方式
1.一种是新加一块儿盘,将两块儿或多块儿硬盘和成一个卷
2.另一种是原有磁盘可以扩容,扩容磁盘空间后扩容分区表
然后扩容pv vg lv即可
创建lvm磁盘
- 下面文档介绍的是新建一块儿盘做成lvm卷,然后再加一块儿新盘,将两块儿盘空间合成一个卷。
1. 首先先加入第一块儿新的磁盘
2. 对新磁盘 /dev/sdb 进行分区
(parted是磁盘分区命令,也可用fdisk,由于现在磁盘空间占用都很大,最好分gpt分区不要分mbr分区)
# parted /dev/sdb #使用parted进入sdb磁盘
(parted) mktable gpt #指定分区表类型为gpt
(parted) mkpart ext4 0% 100% #指定gpt分区表的空间 (ext4只是一个标签,并不是真正的分区,分区还是要通过mkfs.ext4分)
(parted) print #打印分区信息
(parted) quit #退出
- 分好区后可以lsblk看到新的分区/dev/sdb1
通过LVM命令创建新卷
1. 创建物理卷
# pvcreate /dev/sdb1
2.创建卷组 并将物理卷加入其中
# vgcreate data /dev/sdb1
(data为卷组名称可自定义)
3. 创建逻辑卷并分配大小
# lvcreate -l +100%free -n lvdata data
(该分配为全部分配,lvdata为逻辑卷名 data为卷组名)
- 也可以只分配一部分空间
lvcreate -L 10G -n lvdata data
- 创建完成后可以lsblk看到新的lvm的盘的名字和储存位置
- 以及这块儿盘的实际文件位置(两个红框都是同一个新建的data-lvdata 只不过软连接的位置不一样)
4.格式化刚刚创建的硬盘
# mkfs.ext4 /dev/mapper/data-lvdata
- 格式化成功后可以看到已经有UUID号了
5. 挂载磁盘
扩容lvm之新增磁盘扩容
1. 新加一块儿磁盘,并分区
sdc 8:32 0 500G 0 disk
- 分区要创建GPT分区,可以用fdisk或parted分区,参考文档开头
- 对新磁盘 /dev/sdc 进行分区
(parted是磁盘分区命令,也可用fdisk,由于现在磁盘空间占用都很大,最好分gpt分区不要分mbr分区)
# parted /dev/sdc #使用parted进入sdc磁盘
(parted) mktable gpt #指定分区表类型为gpt
(parted) mkpart ext4 0% 100% #指定gpt分区表的空间 (ext4只是一个name标签,并不是真正的分区,分区还是要通过mkfs.ext4分)
(parted) print #打印分区信息
(parted) quit #退出
- 分好区后可以lsblk查看到sdc1
sdc 8:32 0 500G 0 disk
└─sdc1 8:33 0 500G 0 part
2. 创建物理卷
# pvcreate /dev/sdc1
[root@fce ~]# pvcreate /dev/sdc1 #创建物理卷
Physical volume /dev/sdc1 successfully created.
root@fce ~]# pvs #查看已创建的物理卷
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <49.50g 0
/dev/sdb1 data lvm2 a-- <500.00g 0
/dev/sdc1 lvm2 --- <500.00g <500.00g #可以看到这个是我们刚刚创建的
3. 扩容VG卷组
查看当前vg卷组创建情况命令:vgs
[root@fce ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <49.50g 0
data 1 1 0 wz--n- <500.00g 0
- 这一步可以看到 当前有哪些vg卷组,我们需要扩容的卷组是data
4. 将新的PV物理卷加入之前创建的data VG卷组
# vgextend data /dev/sdc1 #data就是以前创建的卷组名字叫data
- 查看扩容后的VG卷组 命令:vgs
[root@fce- ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <49.50g 0
data 2 1 0 wz--n- 999.99g <500.00g #可以看到VSize大小变成了1T了, VFree剩余空间也多除了500GB
5. 扩容LV卷
可以先查看当前lv的大小 命令:lvs
[root@fce- ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <45.50g
swap centos -wi-ao---- 4.00g
lvdata data -wi-ao---- <500.00g #这里可以看到我们需要扩容的LV逻辑卷lvdata当前是500GB
- 查询需要扩容的lv卷具体文件位置 命令:fdisk -l (根据磁盘的数量,输入内容会很多,要找一下我们需要的lv)
磁盘 /dev/mapper/data-lvdata:536.9 GB, 536866717696 字节,1048567808 个扇区 #找到这一行 /dev/mapper/data-lvdata 就是需要扩容lv的文件位置
Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
- 将VG卷组剩余的空间全部分给需要扩容的LV卷
lvextend -l +100%free /dev/mapper/data-lvdata
lsblk 已经可以看到盘的空间变大了,注意:此时分区还没有变大
- 将之前的逻辑卷分区lvdata 仅增加10GB 空间
# lvextend -L +9.9G /dev/mapper/data-lvdata
(如图所示就是已经加成功了)
6.检查刷新文件系统使其空间生效
如果是xfs文件系统就用
#xfs_growfs /挂载目录
如果是ext4文件系统用如下命令:
# resize2fs -p /dev/mapper/data-lvdata
可以看到容量已经增上来了
扩容lvm之在原有磁盘扩容
先从虚拟化或者云平台扩容当前磁盘(#虚拟化平台扩容磁盘不能有快照)
1.扩容分区表
(如下是parted扩容,注意如果parted版本低则没有resizepart命令。需要手动删除现有分区表重建分区表)
查看当前vdc磁盘分区表
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 215GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 107GB 107GB
可以看到磁盘是215g,分区表只有107g
开始扩容分区表
(parted)
(parted) resizepart
Partition number? 1
End? [107GB]? 100%
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 215GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 215GB 215GB
(parted) quit
Information: You may need to update /etc/fstab.
[root@fcecsldlc01 data]#
[root@fcecsldlc01 data]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@fcecsldlc01 data]#
查看vdc1分区是否扩容成功
[root@fcecsldlc01 data]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 100G 0 disk
└─vda1 253:1 0 100G 0 part /
vdb 253:16 0 16G 0 disk [SWAP]
vdc 253:32 0 200G 0 disk
└─vdc1 253:33 0 200G 0 part
└─data-lv_data 252:0 0 100G 0 lvm /data
2.扩容物理卷PV
命令如下:
#pvresize /dev/vdb1
3.扩容逻辑卷LV
#lvextend -l +100%free /dev/data/lvdata
4.检查刷新文件系统使其空间生效
如果是xfs文件格式就用
#xfs_growfs /挂载目录
如果是ext4用如下命令:
# resize2fs -p /dev/mapper/data-lvdata
可以看到容量已经增上来了