一次使用Linux server过程中发现的新知识:
LVM(Logical Volume Manager,逻辑卷管理器)是一种用于Linux系统的存储管理工具,它提供了一种比传统分区更灵活的存储管理方式。LVM允许管理员动态调整磁盘存储的分配,创建、调整和删除卷,而不会中断系统的运行。
LVM的基本概念
LVM由以下几个主要部分组成:
Physical Volume (PV):物理卷,通常是物理硬盘或硬盘分区,是LVM的最底层单位。
Volume Group (VG):卷组,是由一个或多个物理卷组成的存储池,逻辑卷是在卷组的基础上创建的。
Logical Volume (LV):逻辑卷,从卷组中分配出来的存储单位,可以被挂载并用于存储文件系统。
LVM的主要特性
动态扩展:可以在线增加或减少卷组和逻辑卷的大小。
快照:可以创建逻辑卷的快照,以便进行备份或恢复。
条带化:可以将数据分布在多个物理卷上,提高I/O性能。
镜像:可以在多个物理卷上保存数据副本,提高数据的可靠性。
+----------------------------+
| LVM结构 |
+----------------------------+
| Volume Group (VG) |
| +-------+ +-------+ |
| | PV1 | | PV2 | |
| | (HDD) | | (HDD) | |
| +-------+ +-------+ |
| ... |
| +-------+ +-------+ |
| | PVn | | PVm | |
| | (HDD) | | (HDD) | |
| +-------+ +-------+ |
| |
+-------------|--------------+
|
v
+----------------------------+
| Logical Volume (LV) |
| +-------+ +-------+ |
| | LV1 | | LV2 | |
| | | | | |
| +-------+ +-------+ |
| ... |
| +-------+ +-------+ |
| | LVx | | LVy | |
| | | | | |
| +-------+ +-------+ |
+----------------------------+
图解说明
PV(Physical Volume,物理卷):底层存储单元,通常是硬盘或分区。
VG(Volume Group,卷组):由多个PV组成的存储池。
LV(Logical Volume,逻辑卷):从VG中分配出来的可用存储单元,可以像传统分区一样使用。
实践
添加剩余空间到逻辑卷
首先检查VG中是否还有未分配空间
vgdisplay ubuntu-vg
💡 当然,可以先用sudo vgdisplay
查看vg名字,这里假设是ubuntu-vg
还要看lv目录,实践应该是用lsblk看:
找到free(可用空间),上图显然没有,如果有:
# 使用百分比划分空间
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
#使用具体数值划分空间
sudo lvextend -L +50G /dev/ubuntu-vg/ubuntu-lv
最后,再更新下文件系统:
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
添加磁盘到VG
首先,找硬盘:lsblk
应该找到个sdb或者什么sd开头的硬盘名字
初始化为物理卷(PV):
sudo pvcreate /dev/sdb
扩展卷组(VG) 将新的物理卷添加到现有的卷组(假设现有卷组名称是 ubuntu-vg):
sudo vgextend ubuntu-vg /dev/sdb
验证
sudo vgdisplay
然后就有free空间,扩容到逻辑卷就看开头步骤。
移除硬盘
⚠️很麻烦,尽量不要出现缩容情况
top:从逻辑LV中空出要移除硬盘的空间:(比如减10G)
sudo lvreduce -L -10G /dev/ubuntu-vg/ubuntu-lv
移动数据
首先,需要确保从要移除的物理卷上移动所有数据到其他物理卷。使用
pvmove
命令将数据迁移。假设要移除的物理卷是/dev/sdb1
:sudo pvmove /dev/sdb1
从卷组中移除物理卷:
sudo vgreduce ubuntu-vg /dev/sdb1
从物理卷中移除 LVM 元数据:
sudo pvremove /dev/sdb1