1. 首页 > Linux教程 > 正文

Linux教程FG153-lvcreate -s命令LVM快照创建与恢复

内容大纲

内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。

1. LVM快照概述

LVM快照是逻辑卷在某个时间点的副本。快照可以用于数据备份、测试和恢复。快照使用写时复制(Copy-on-Write)技术,只存储原始逻辑卷中发生变化的数据。

# LVM快照的基本概念
# 逻辑卷在某个时间点的副本
# 用于数据备份、测试和恢复
# 使用写时复制技术
# 只存储发生变化的数据

2. 创建快照

使用lvcreate -s命令创建快照。

# 创建快照

# 1. 创建指定大小的快照
[root@localhost ~]# lvcreate -s -L 10G -n datalv_snap /dev/datavg/datalv
Logical volume “datalv_snap” created.

# 2. 创建使用卷组所有空闲空间的快照
[root@localhost ~]# lvcreate -s -l 100%FREE -n datalv_snap /dev/datavg/datalv
Logical volume “datalv_snap” created.

# 3. 创建带有标签的快照
[root@localhost ~]# lvcreate -s -L 10G –addtag “snapshot” -n datalv_snap /dev/datavg/datalv
Logical volume “datalv_snap” created.

3. 查看快照

使用lvdisplay和lvs命令查看快照信息。

更多学习教程公众号风哥教程itpux_com

# 查看快照信息

# 1. 显示所有逻辑卷,包括快照
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
datalv datavg -wi-ao—- 10.00g
datalv_snap datavg Vri—tz-k 10.00g datalv 0.00

# 2. 显示快照详细信息
[root@localhost ~]# lvdisplay /dev/datavg/datalv_snap
— Logical volume —
LV Path /dev/datavg/datalv_snap
LV Name datalv_snap
VG Name datavg
LV UUID abc123-def456-ghi789
LV Write Access read/write
LV Creation host, time localhost, 2026-04-03 10:00:00 +0800
LV snapshot status active destination for datalv
LV Status available
open count 0
LV Size 10.00 GiB
Current LE 2560
COW-table size 10.00 GiB
COW-table LE 2560
Allocated to snapshot 0.00%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
– currently set to 256
Block device 253:2

# 3. 显示快照使用情况
[root@localhost ~]# lvs -a -o +devices
LV VG Attr LSize Pool Origin Data% Devices
datalv datavg -wi-ao—- 10.00g /dev/sdb1(0)
datalv_snap datavg Vri—tz-k 10.00g datalv 0.00 /dev/sdb1(2560)

4. 恢复快照

使用lvconvert –merge命令恢复快照。

更多视频教程www.fgedu.net.cn

# 恢复快照

# 1. 合并快照到原始逻辑卷
[root@localhost ~]# lvconvert –merge /dev/datavg/datalv_snap
Merging of volume datavg/datalv_snap started.
datalv: Merged: 100.00%

# 2. 查看合并状态
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
datalv datavg -wi-ao—- 10.00g

from PG视频:www.itpux.com

5. 删除快照

使用lvremove命令删除快照。

# 删除快照

# 1. 删除快照
[root@localhost ~]# lvremove /dev/datavg/datalv_snap
Do you really want to remove active logical volume datavg/datalv_snap? [y/n]: y
Logical volume “datalv_snap” successfully removed

# 2. 强制删除快照(不提示)
[root@localhost ~]# lvremove -f /dev/datavg/datalv_snap
Logical volume “datalv_snap” successfully removed

6. 实战案例

学习交流加群风哥微信: itpux-com

g>案例1:数据库备份前创建快照

# 数据库备份前创建快照

# 1. 停止数据库服务
[root@localhost ~]# systemctl stop fgedudb
[root@localhost ~]# systemctl status fgedudb
● fgedudb.service – FGEDU Database Service
Loaded: loaded (/etc/systemd/system/fgedudb.service; enabled)
Active: inactive (dead) since Fri 2026-04-03 10:00:00 CST; 5s ago

# 2. 创建快照
[root@localhost ~]# lvcreate -s -L 20G -n fgedudb_snap /dev/datavg/fgedudb
Logical volume “fgedudb_snap” created.

# 3. 启动数据库服务
[root@localhost ~]# systemctl start fgedudb
[root@localhost ~]# systemctl status fgedudb
● fgedudb.service – FGEDU Database Service
Loaded: loaded (/etc/systemd/system/fgedudb.service; enabled)
Active: active (running) since Fri 2026-04-03 10:01:00 CST; 2s ago

# 4. 挂载快照进行备份
[root@localhost ~]# mkdir -p /mnt/snapshot
[root@localhost ~]# mount /dev/datavg/fgedudb_snap /mnt/snapshot
[root@localhost ~]# df -h /mnt/snapshot
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/datavg-fgedudb_snap
20G 5.0G 15G 25% /mnt/snapshot

# 5. 执行备份
[root@localhost ~]# tar -czf /backup/fgedudb_backup_20260403.tar.gz -C /mnt/snapshot .
[root@localhost ~]# ls -lh /backup/fgedudb_backup_20260403.tar.gz
-rw-r–r– 1 root root 4.8G Apr 3 10:05 /backup/fgedudb_backup_20260403.tar.gz

# 6. 卸载快照
[root@localhost ~]# umount /mnt/snapshot

# 7. 删除快照
[root@localhost ~]# lvremove /dev/datavg/fgedudb_snap
Do you really want to remove active logical volume datavg/fgedudb_snap? [y/n]: y
Logical volume “fgedudb_snap” successfully removed
学习交流加群风哥QQ113257174

v>

案例2:系统升级前创建快照

# 系统升级前创建快照

# 1. 查看当前系统版本
[root@localhost ~]# cat /etc/redhat-release
GF-Linux release 10.0

# 2. 创建系统根分区快照
[root@localhost ~]# lvcreate -s -L 30G -n root_snap /dev/vg0/root
Logical volume “root_snap” created.

# 3. 查看快照状态
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root vg0 -wi-ao—- 30.00g
root_snap vg0 Vri—tz-k 30.00g root 0.00

# 4. 执行系统升级
[root@localhost ~]# dnf update -y
Updating Subscription Management repositories.
Last metadata expiration check: 0:00:01 ago on Fri 03 Apr 2026 10:10:00 CST.
Dependencies resolved.
================================================================================================================
Package Architecture Version Repository Size
================================================================================================================
Installing:
kernel-core x86_64 5.14.0-284.11.1.el9_2 baseos 22 M
kernel-modules x86_64 5.14.0-284.11.1.el9_2 baseos 28 M
Upgrading:
systemd x86_64 252-14.el9_2.3 baseos 4.5 M
systemd-libs x86_64 252-14.el9_2.3 baseos 680 K

Complete!

# 5. 重启系统
[root@localhost ~]# reboot

# 6. 如果升级失败,恢复快照
[root@localhost ~]# lvconvert –merge /dev/vg0/root_snap
Merging of volume vg0/root_snap started.
root: Merged: 100.00%

# 7. 重启系统
[root@localhost ~]# reboot

# 8. 验证系统已恢复
[root@localhost ~]# cat /etc/redhat-release
GF-Linux release 10.0

注意事项

  • 快照大小应根据数据变化量合理设置,避免快照空间不足
  • 快照会占用存储空间,定期清理不需要的快照
  • 快照恢复需要重启系统,确保在维护窗口期操作
  • 快照不能替代常规备份,建议结合使用

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息