LVM配置
1. 准备工作
- 一块新磁盘(假设为
/dev/sdb)。 - 安装
工具:lvm2sudo apt install lvm2 # Debian/Ubuntu sudo yum install lvm2 # CentOS/RHEL
2. 配置 LVM
2.1 创建物理卷(PV)
将新磁盘初始化为物理卷:
pvcreate /dev/sdb
2.2 创建卷组(VG)
创建一个卷组(Volume Group, VG):
vgcreate vg_os /dev/sdb
2.3 创建 Thin Pool
创建 Thin Pool,作为虚拟磁盘的存储池。可以根据磁盘总大小合理分配。例如,预留 500GB 作为 Thin Pool:
lvcreate --type thin-pool --size 500G --name thin_pool vg_os
3. 创建虚拟磁盘(Thin Volume)
使用 Thin Pool 为 3 个操作系统创建虚拟磁盘,每个虚拟磁盘的虚拟大小为 1000GB:
lvcreate --type thin --virtualsize 1000G --name os1_disk vg_os/thin_pool
lvcreate --type thin --virtualsize 1000G --name os2_disk vg_os/thin_pool
lvcreate --type thin --virtualsize 1000G --name os3_disk vg_os/thin_pool
此时,每个虚拟磁盘的“虚拟大小”为 1000GB,但实际占用的空间取决于存储的数据量。
4. 监控和自动回收
4.1 监控 Thin Pool 使用情况
定期检查 Thin Pool 的使用情况,避免空间耗尽:
lvs -o +data_percent,metadata_percent vg_os/thin_pool
4.2 自动回收释放的空间
在 Thin Pool 中,删除数据后,空间会自动回收。但如果你使用的是虚拟机磁盘(如 qcow2 格式),需要手动执行以下操作:
-
在虚拟机中清空未使用的空间(例如,使用
zerofree工具)。 -
在宿主机上使用
fstrim命令通知 LVM 回收空间:fstrim -v /mnt/vm_disk
5. 使用虚拟磁盘
5.1 在虚拟机中使用虚拟磁盘
将虚拟磁盘分配给虚拟机。例如,使用 KVM:
virt-install --name=vm1 --ram=2048 --vcpus=2 --disk path=/dev/vg_os/os1_disk --cdrom=/path/to/iso --network bridge=br0
5.2 在物理机中使用虚拟磁盘
如果需要直接在物理机上使用虚拟磁盘,可以将其挂载到文件系统:
-
格式化虚拟磁盘:
mkfs.ext4 /dev/vg_os/os1_disk -
挂载虚拟磁盘:
mkdir /mnt/os1 mount /dev/vg_os/os1_disk /mnt/os1
6. 扩展 Thin Pool 空间(可选)
如果 Thin Pool 空间不足,可以扩展其大小:
lvextend --size +100G vg_os/thin_pool
7. 最佳实践
- 监控磁盘使用:定期检查 Thin Pool 的空间使用情况,避免磁盘耗尽。
- 备份数据:虽然 Thin Provisioning 提供了灵活的存储管理,但仍需定期备份重要数据。
- 性能优化:如果性能是关键,可以将 Thin Pool 放在高性能存储设备(如 SSD)上。
通过以上步骤,你可以在新磁盘上配置 LVM,并为 3 个操作系统的虚拟磁盘实现“用多少占多少”和“删除数据自动回收”的效果。

浙公网安备 33010602011771号