LVM中怎么利用LVM的Thin Pool实现快照的零空间初预留与按需写时复制

胖浩吖_3714

胖浩吖_3714

2026-08-19

451人浏览

原创

LVM Thin Snapshot通过元数据驱动实现快照“零空间初预留”和“按需写时复制”,本质是复用thin pool中已有数据块与映射逻辑,创建瞬间不占实际存储、写入才分配、相同内容自动去重。

lvm中怎么利用lvm的thin pool实现快照的零空间初预留与按需写时复制

LVM Thin Pool 实现快照“零空间初预留”和“按需写时复制”,本质是把传统 COW 快照的预分配机制升级为元数据驱动的动态块共享。它不预先划出固定快照空间,而是复用 thin pool 中已有的数据块与映射逻辑,真正做到了创建快照瞬间不占实际存储、写入才分配、相同内容自动去重。

快照不再预占空间:thin snapshot 的底层机制

普通 LVM 快照(COW 类型)需要在创建时指定大小,并立即从卷组中分配一块独立 LV 作为空间缓冲区;而 thin snapshot 完全不同:

  • 它本身就是一个 thin LV,不单独占用物理 PE,只登记一条元数据记录
  • 快照创建命令 lvcreate -s /dev/vg0/lv1 在 thin pool 环境下会自动生成一个 thin 类型的快照 LV,初始 Data% 为 0
  • 只有当原 thin LV 或快照 LV 发生写入、且涉及已有数据块修改时,LVM 才在 pool 中分配新 chunk 并执行写前拷贝(Copy-on-Write)
  • 若多个 thin LV 写入相同数据(如克隆镜像、批量部署容器根文件系统),它们可共享同一物理块,进一步压缩空间开销

创建 thin snapshot 的实操要点

前提是已存在可用的 thin pool(例如 vg0/thinpool),且原逻辑卷必须是 thin LV(非普通 thick LV):

Boxy
Boxy

Boxy是一款AI开发辅助工具,CodeSandbox推出的AI编程助手。

下载
  • 确认原卷是 thin 类型:lvs -o +seg_type vg0/lv1,输出应为 thin
  • 创建快照:lvcreate -s -n lv1_snap1 vg0/lv1(无需指定大小,也不支持 -L)
  • 挂载快照时需确保只读:mount -o ro /dev/vg0/lv1_snap1 /mnt/snap
  • 快照 LV 同样计入 pool 的 data_percent 和 metadata_percent 使用率,不可忽略

写时复制如何真正“按需”触发

thin snapshot 的写时复制不是按“块”粗粒度拷贝,而是按 pool 的 chunk 单位(默认 64KB)精细调度:

  • 当原 thin LV 修改某 chunk 时,LVM 先检查该 chunk 是否被其他 thin LV(含快照)引用
  • 若仅被原 LV 引用 → 直接覆写,不触发复制
  • 若同时被快照 LV 引用 → 将原 chunk 内容复制到 pool 新分配 chunk,再更新原 LV 的映射指向新位置,快照 LV 映射保持指向旧 chunk
  • 因此,快照越久、原卷写入越多,实际占用空间增长越明显;但空闲或只读快照几乎零开销

监控与防满关键动作

thin snapshot 的空间风险隐藏更深——它不报错,但一旦 data_percent == 100%,所有写入(包括原卷和快照)将阻塞:

  • 实时查看使用率:lvs -o+data_percent,metadata_percent vg0/thinpool
  • 设置自动扩容(推荐):lvchange --monitor y vg0/thinpool,并配置 thin_pool_autoextend_threshold=80 和 thin_pool_autoextend_percent=20
  • 删除快照后空间不会立刻释放,需运行 lvconvert --thinpool vg0/thinpool --poolmetadatasize +1M 触发垃圾回收(或等待内核后台任务)

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

940

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3172

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1036

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

929

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

474

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2896

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5432

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

847

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134万人学习