0

0

Linux LVM 管理与快照使用技巧

冰川箭仙

冰川箭仙

发布时间:2026-02-21 14:49:03

|

124人浏览过

|

来源于php中文网

原创

常见报错“snapshot: invalid argument”源于源lv未激活或vg空闲pe不足;需用vgs/lvs确认状态与空间,快照只读且保存创建时数据视图,删除不影响原lv,合并需源lv与快照均inactive。

linux lvm 管理与快照使用技巧

lvcreate 创建快照时为什么报错 snapshot: Invalid argument

常见于源逻辑卷(LV)未处于激活状态,或所在卷组(VG)空间不足。LVM 快照依赖 COW(Copy-on-Write)机制,必须确保 VG 中有足够空闲 PE(Physical Extent)——不是“剩余空间”概念,而是未被分配的 PE 数量。

实操建议:

  • 先运行 vgs -o +vg_free_count,vg_extent_size 确认 VG 的空闲 PE 数和单个 PE 大小(通常 4M),算出真实可用字节数
  • lvs -o +lv_size,lv_attr 检查源 LV 是否为 wi-a-----(writable & active),若含 wi---a--- 表示 inactive,需先 lvchange -ay <code>lv_name
  • 快照大小不必等于源 LV,但至少要能容纳快照期间源 LV 的变更量;生产环境建议按预期写入量预估,比如 10%~20% 源 LV 大小
  • 不要对正在被 mkfs 格式化或处于 fsfreeze --freeze 中的 LV 直接建快照,会触发内核拒绝

快照挂载后修改原 LV,快照内容为何没变

这是 LVM 快照的正常行为:快照保存的是创建时刻的数据视图,后续对原 LV 的写操作不会反向影响快照内容,COW 仅在原 LV 对已占用块做覆盖写时,把旧块拷贝进快照区域。快照本身是只读的(除非显式用 --permission rw 创建)。

实操建议:

  • 默认创建的快照是只读的,挂载前检查属性:lvs -o lv_name,lv_attr,若第二列为 sri----- 表示 snapshot & read-only;如需读写,请加 -p rw 参数(但不推荐用于备份场景)
  • 挂载快照前务必 e2fsck -f /dev/vg_name/snap_name(ext4)或对应文件系统校验工具,否则可能因元数据不一致导致挂载失败
  • 不要长期保留活跃快照——当快照区填满(lvs 显示 100.00 在 Snap% 列),该快照自动失效,读取会返回 I/O 错误

如何安全删除快照而不影响原 LV

快照本质是独立 LV,删除它只释放其占用的 PE,不影响源 LV 数据或状态。但前提是:没有进程正打开快照设备、没有挂载、且未被其他快照依赖(如嵌套快照)。

SmartB2B行业电子商务
SmartB2B行业电子商务

SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于Linux与Windows等多重服务器环境,安装方便,使用灵活。 系统使用当前流行的PHP语言开发,以MySQL为数据库,采用B/S架构,MVC模式开发。融入了模型化、模板

下载

实操建议:

  • 先确认未挂载:findmnt | grep <code>snap_name;若有输出,先 umount /mount/point
  • 确认无活跃使用:lsof /dev/vg_name/<code>snap_namedmsetup ls --tree | grep <code>snap_name
  • 直接执行 lvremove /dev/vg_name/<code>snap_name,无需停服务、无需 umount 原 LV
  • 如果提示 “Can’t remove open logical volume”,说明还有内核层引用(比如某个 dd if=/dev/vg_name/<code>snap_name 进程卡住),用 dmsetup info -c | grep <code>snap_name 查 open count

lvconvert --merge 合并快照回原 LV 的前提条件

合并(merge)是把快照里“被覆盖的老数据”写回原 LV,让原 LV 回滚到快照创建时的状态。但它不是万能回滚开关,有严格限制。

实操建议:

  • 原 LV 必须处于 inactive 状态:lvchange -an /dev/vg_name/<code>origin_lv,否则命令直接拒绝
  • 快照本身也必须是 inactive,且不能是“已满”或“无效”状态(lvs 中 Snap% s)
  • 合并过程不可中断,耗时取决于快照中实际存储的差异块数量,不是快照大小;SSD 上较快,HDD 可能数分钟到小时级
  • 合并完成后,快照 LV 自动删除,原 LV 恢复为普通 LV,属性变为 wi-a-----;若中途失败,原 LV 仍保持 inactive,需手动 lvchange -ay 激活

快照的生命周期管理比看起来更脆弱——它不感知上层文件系统语义,也不保证崩溃一致性。哪怕你用 fsfreeze 配合快照,也得靠应用层配合才能真正达到“应用一致”。这点容易被忽略,但线上数据库备份时恰恰最关键。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

826

2023.08.22

counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

199

2023.11.20

counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

199

2023.11.20

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

374

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2094

2023.08.14

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

356

2023.08.31

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

259

2023.09.05

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

329

2023.10.09

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

796

2026.02.13

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.4万人学习

Git 教程
Git 教程

共21课时 | 3.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号