LVM
磁盘管理
常用命令
mount
用于挂载设备,Linux系统一般插入某个磁盘需要进行挂载之后才可以进行访问
1 | 输出系统下mount信息 |
findmnt
1 | 显示设备上所有挂载树状图 |
df
1 | 显示挂载的文件系统及其磁盘使用情况 |
blkid
常用于/etc/fstab磁盘挂载查询分区UUID
1 | 显示所有分区的UUID |
lsblk
1 | 显示所有块设备关系,包括lvm卷关系信息等信息 |
LVM
安装完PVE后,PVE默认会将磁盘进行分区,其中包括真实的物理分区/boot和一个虚拟分区lvm,此虚拟分区包含了两个部分,1.系统所在分区 2.虚拟化池,1分区中包含一个物理分区,调整其大小需要先对物理分区进行调整(例如ext4 使用
resize2fs
),后对包含这个物理分区的逻辑卷进行调整(例如lvreduce -L 10G /dev/vg_name/lv_name
)顺序不能错。2虚拟化分区采用使用 Thin Provisioning 技术的存储管理方案,允许你创建逻辑卷的虚拟容量,而不需要立即分配所有实际的存储空间(物理),说百了就是可灵活的加多个磁盘,对这些磁盘存储资源可进行灵活分配,比如我可以将一个新插入的磁盘规划到2分区,2分区就会被逻辑上被看作一个大的存储池,这个池可以被所有的虚拟机灵活取用,按需分配,无论加入多少设备,都可以逻辑上按需规划这些资源到不同的池,不同的池也可以包含所有设备部分/全部资源。扩展知识:ext4上需要lvm扩展这些新的特性,但Btrfs文件系统自带这些新的特性,可以不创建lvm可直接使用lvm这种特性,我觉得少一层lvm或许会有性能提升。
特性
- 动态调整存储空间
扩展卷组:可以动态添加新的物理卷(PV)到现有的卷组(VG)中,以增加存储容量。
扩展逻辑卷:可以动态扩展逻辑卷(LV)的大小,而不需要停机或重新分区。
缩小逻辑卷:可以动态缩小逻辑卷的大小(需要先缩小文件系统)。 - 创建快照
快照卷:可以创建逻辑卷的快照,这些快照可以用于数据备份、测试或恢复操作。快照是写时复制(COW)的,因此只存储自快照创建以来的更改。 - 磁盘条带化(Striping)
提高性能:通过将数据分布在多个物理卷上,可以实现并行I/O操作,从而提高磁盘性能。 - 磁盘镜像(Mirroring)
数据冗余:可以创建逻辑卷的镜像,将数据实时复制到多个物理卷上,提高数据的可靠性和冗余性。 - 移动物理卷
在线移动:可以在系统运行时将数据从一个物理卷移动到另一个物理卷,以便进行硬件维护或升级。 - 硬盘快照和恢复
灵活备份:LVM 的快照功能可以在不停止服务的情况下进行数据备份,并在需要时轻松恢复。 - Thin Provisioning
节省存储:LVM 支持 Thin Provisioning,可以动态分配存储空间,避免预分配未使用的空间,提高存储利用率。 - 卷组管理
卷组:通过卷组管理多个物理卷,简化了存储管理和扩展。可以在卷组内创建和管理多个逻辑卷。
创建
物理卷(Physical Volume,PV)
1 | 物理设备初始化为物理卷 |
卷组(Volume Group,VG)
1 | 将一个或多个物理卷加入到一个卷组中 |
逻辑卷(Logical Volume,LV)
1 | 卷组中创建逻辑卷,lv_name 替换为逻辑卷的名称,10G 为逻辑卷的大小,vg_name 为卷组的名称。 |
查看
查看物理卷、卷组和逻辑卷
1 | 需 sudo |
调整容量
有一个这样的场景:某个磁盘上有一个lvm区,其中包含两个逻辑卷,现将其中一个减小容量后,增加另一个的容量
列出所有逻辑卷及其当前大小
1 | lvdisplay |
确认要调整大小的逻辑卷。例如:
- 逻辑卷1:
/dev/vg_name/lv_name1
- 逻辑卷2:
/dev/vg_name/lv_name2
检查文件系统的大小
1 | df -h |
调整
注意:建议在调整之前备份重要数据,以免造成损失。
- 调整大小时要注意顺序,先进行物理调整,再进行逻辑调整
- 调小某个物理卷时一定要大于存储数据的总容量,才可进行无损调整
1 | 卸载逻辑卷1 |
数据池
在 LVM (Logical Volume Manager) 中,数据池 (Data Pool) 是用于管理存储的高级功能,尤其是涉及快照、克隆等功能时。数据池通常由两个主要的逻辑卷组成:数据池元数据 (Metadata) 和数据池数据 (Data)。数据池是使用 Thin Provisioning 技术的存储管理方案。Thin Provisioning 允许你创建逻辑卷的虚拟容量,而不需要立即分配所有实际的存储空间。这有助于提高存储效率和灵活性。
数据池的主要组件
数据池数据 (Data Pool Data)
作用: 存储实际的数据内容。
详细信息:
- 逻辑卷用于存放文件系统、虚拟机磁盘映像等实际数据。
- 这是数据池的主要部分,用于保存用户数据或虚拟机数据。
命名示例:
1
2├─pve-data_tdata
│ └─pve-data-tpool这里,
pve-data_tdata
是数据池的数据逻辑卷,pve-data-tpool
是数据池的实际存储池。数据池元数据 (Data Pool Metadata)
作用: 管理数据池的元数据,包括跟踪数据块的分配情况、空闲空间、快照信息等。
详细信息:
- 逻辑卷用于存储数据池的元数据。
- 这个部分包含数据池的管理信息,不直接存储用户数据。
命名示例:
1
2├─pve-data_tmeta
│ └─pve-data-tpool这里,
pve-data_tmeta
是数据池的元数据逻辑卷,pve-data-tpool
是数据池的实际存储池。
如需调节数据池大小需调节pve-data-tpool
大小,pve-data_tmeta
的大小到0.1%-1%的pve-data-tpool
的大小。