1. 逻辑卷管理器(LVM)的作用
LVM 是 Linux 的“存储魔术师”,解决传统分区的两大痛点:
-
灵活扩容:无需停机,动态调整磁盘空间(如从 100G 扩展到 200G)。
-
抽象管理:将多个物理磁盘合并成“逻辑池”,统一分配使用。
通俗比喻:
-
传统分区:固定大小的抽屉,装满后无法扩展。
-
LVM:可伸缩的收纳盒,随意调整格子大小。
2. 物理卷(PV)、卷组(VG)、逻辑卷(LV)
-
物理卷(PV):物理磁盘或分区(如
/dev/sdb1
),是 LVM 的“砖块”。 -
卷组(VG):多个物理卷组成的“存储池”,是 LVM 的“地基”。
-
逻辑卷(LV):从卷组中划分的“逻辑分区”,是最终用户使用的“房间”。
关系示意图:
物理磁盘 → 物理卷(PV) → 卷组(VG) → 逻辑卷(LV) → 挂载使用
3. LVM 的工作流程
步骤:
-
创建物理卷(PV):
pvcreate /dev/sdb1 # 将分区初始化为物理卷
-
创建卷组(VG):
vgcreate my_vg /dev/sdb1 # 用物理卷创建卷组
-
创建逻辑卷(LV):
lvcreate -n my_lv -L 50G my_vg # 从卷组中分配 50G 逻辑卷
-
格式化并挂载:
mkfs.ext4 /dev/my_vg/my_lv # 格式化为 ext4 mount /dev/my_vg/my_lv /mnt # 挂载到 /mnt
动态调整示例:
# 扩展逻辑卷(无需卸载)
lvextend -L +20G /dev/my_vg/my_lv
resize2fs /dev/my_vg/my_lv # 扩展文件系统(ext4)
4. VDO(虚拟数据优化器)的作用与组成
作用:通过去重和压缩减少存储占用(如重复文件仅存一份)。
-
适用场景:虚拟机镜像、备份存储、日志文件。
LVM VDO 的组成:
-
VDO 卷:基于物理卷或逻辑卷创建。
-
逻辑卷:挂载使用,自动应用去重和压缩。
创建 VDO 卷示例:
# 创建 VDO 卷(假设已安装 vdo 和 kmod-kvdo)
vdo create --name=my_vdo --device=/dev/sdc --vdoLogicalSize=1T
mkfs.xfs /dev/mapper/my_vdo
mount /dev/mapper/my_vdo /mnt/vdo
5. 如何将文件系统扩展至逻辑卷大小?
关键步骤:
-
扩展逻辑卷:
lvextend -L +20G /dev/my_vg/my_lv # 增加 20G
-
扩展文件系统:
-
ext4:
resize2fs /dev/my_vg/my_lv
-
xfs:
xfs_growfs /mnt # 直接针对挂载点操作
-
6. 如何扩展交换空间逻辑卷?
步骤:
-
关闭现有交换分区:
swapoff /dev/my_vg/swap_lv
-
扩展逻辑卷:
lvextend -L +4G /dev/my_vg/swap_lv
-
重新格式化并启用:
mkswap /dev/my_vg/swap_lv swapon /dev/my_vg/swap_lv
7. 如何缩减卷组存储?
步骤(需谨慎操作):
-
转移数据:将目标物理卷上的数据迁移到其他物理卷。
pvmove /dev/sdb1 # 假设 sdb1 是要移除的物理卷
-
从卷组中移除物理卷:
vgreduce my_vg /dev/sdb1
-
删除物理卷(可选):
pvremove /dev/sdb1
8. RAID(独立磁盘冗余阵列)的作用
RAID 的三大功能:
-
性能提升:并行读写(如 RAID 0)。
-
数据冗余:镜像或校验保护(如 RAID 1、5、6)。
-
容量扩展:合并多盘空间(如 RAID 0、5)。
常见 RAID 级别:
级别 | 特点 | 最少磁盘数 | 容错 |
---|---|---|---|
RAID 0 | 条带化(速度快,无冗余) | 2 | 无 |
RAID 1 | 镜像(数据安全,容量减半) | 2 | 有 |
RAID 5 | 分布式校验(平衡性能与安全) | 3 | 有 |
RAID 6 | 双校验(更高容错) | 4 | 有 |
RAID 10 | 镜像 + 条带(高性能高安全) | 4 | 有 |
9. Stratis 的核心目标
Stratis 是新一代“智能存储管家”,目标:
-
简化管理:自动处理 LVM 和文件系统的复杂操作。
-
高级功能:内置快照、去重、分层存储(类似 ZFS/Btrfs)。
通俗对比:
-
LVM:手动挡汽车,灵活但需精细操作。
-
Stratis:自动挡汽车,一键完成存储管理。
10. Stratis 的核心组件
-
存储池(Pool):由多个磁盘或分区组成的存储池(类似 LVM 的卷组)。
-
文件系统(Filesystem):从存储池中动态分配空间,支持按需扩展。
操作示例:
# 创建存储池
stratis pool create my_pool /dev/sdb /dev/sdc # 创建文件系统
stratis filesystem create my_pool my_fs # 挂载使用
mount /stratis/my_pool/my_fs /mnt
11. 查询 Stratis 文件系统空间
stratis pool list # 查看存储池信息
stratis filesystem list # 查看文件系统空间使用