## 1、LVM 概览 LVM(Logical Volume Manager,逻辑卷管理)用于在 Linux 中更灵活地管理磁盘空间。 相比传统分区,LVM 的优势在于: - 可以把多块磁盘组合成一个逻辑空间 - 可以更灵活地扩容和缩容 - 更适合做在线扩容、统一存储管理 不过,LVM 也会增加一定的复杂度,实际生产中要根据业务场景使用。 ## 2、LVM 核心概念 ### 2.1 PV:物理卷 Physical Volume,物理卷。 可以理解为:把磁盘分区或整块磁盘初始化成 LVM 可识别的底层存储单元。 ### 2.2 VG:卷组 Volume Group,卷组。 把一个或多个 PV 组合起来,形成一个大的存储池。 ### 2.3 LV:逻辑卷 Logical Volume,逻辑卷。 从卷组里切分出来给文件系统使用的逻辑设备。 ### 2.4 PE:物理扩展单元 Physical Extent,物理扩展单元。 是 LVM 中分配空间时的最小单位,通常是若干 MB。 ## 3、LVM 的基本关系 可以把它理解成: - **磁盘/分区** 先做成 **PV** - 多个 **PV** 组成 **VG** - 从 **VG** 中划分出 **LV** - 再把 **LV** 格式化并挂载给系统使用 ## 4、物理卷管理 ### 4.1 创建物理卷 ```shell pvcreate /dev/sdb1 ``` ### 4.2 查看物理卷 ```shell pvscan pvdisplay /dev/sdb1 ``` ### 4.3 删除物理卷 ```shell pvremove /dev/sdb1 ``` ## 5、卷组管理 ### 5.1 创建卷组 ```shell vgcreate myvg /dev/sdb1 /dev/sdc1 ``` ### 5.2 查看卷组 ```shell vgscan vgdisplay myvg ``` ### 5.3 从卷组中移除物理卷 ```shell vgreduce myvg /dev/sdb1 ``` ### 5.4 删除卷组 ```shell vgremove myvg ``` ### 5.5 重命名卷组 ```shell vgrename myvg newvg ``` ## 6、逻辑卷管理 ### 6.1 创建逻辑卷 ```shell lvcreate -L 10G -n mylv myvg ``` ### 6.2 查看逻辑卷 ```shell lvscan lvdisplay /dev/myvg/mylv ``` ### 6.3 扩容逻辑卷 ```shell lvextend -L +5G /dev/myvg/mylv ``` 扩容后,通常还需要继续扩展文件系统。 ### 6.4 缩容逻辑卷 ```shell lvreduce -L -5G /dev/myvg/mylv ``` **缩容风险较高**,必须先确认文件系统支持、先备份数据,并严格按步骤操作。 ### 6.5 删除逻辑卷 ```shell lvremove /dev/myvg/mylv ``` 删除前如果已经挂载,通常要先卸载。 ## 7、典型使用流程 ### 7.1 新建 LVM 存储 常见步骤: 1. 分区或准备磁盘 2. `pvcreate` 3. `vgcreate` 4. `lvcreate` 5. `mkfs` 6. `mount` 7. 写入 `/etc/fstab` ### 7.2 逻辑卷扩容 常见步骤: 1. 确认 VG 还有剩余空间 2. `lvextend` 3. 扩展文件系统,例如 `resize2fs` 或 `xfs_growfs` 4. 再次检查容量是否生效 ## 8、常见运维注意点 - 扩容通常比缩容安全得多 - 缩容前一定要备份数据 - 删除 PV、VG、LV 前要先确认是否还在使用 - 记清楚设备关系,避免误删底层磁盘 - 云服务器场景中,如果 LVM 跨多块盘,删除任意一块底层盘都可能导致卷组异常 ## 9、小结 - LVM 让磁盘管理更灵活 - 核心对象是 `PV`、`VG`、`LV` - `pvcreate`、`vgcreate`、`lvcreate` 是三步基础命令 - 扩容逻辑卷后通常还要扩展文件系统 - 缩容和删除操作都要格外谨慎