在CentOS系统中,逻辑卷管理(LVM,Logical Volume Manager)是一个强大的工具,它允许用户灵活地管理硬盘空间。LVM快照功能是其重要特性之一,它允许用户在不影响原始卷的情况下创建卷的快照,从而进行数据的备份、恢复或测试等操作。本文将详细讲解CentOS LVM快照的概念、创建过程、管理及应用。
一、LVM快照概述
LVM快照是一种只读的、瞬时的卷副本,它提供了对原始卷数据的一个固定点的访问。快照并不存储原始卷的所有数据,而是存储自快照创建以来原始卷上发生的变化。因此,快照创建过程非常快速,占用的磁盘空间也较少。
二、创建LVM快照
创建LVM快照的基本步骤如下:
-
确保已经安装了LVM软件包。在CentOS系统中,可以通过运行
yum install lvm2
命令来安装LVM软件包。 -
使用
lvcreate
命令创建快照。命令格式如下: -
lvcreate -s -n 快照名称 -L 快照大小 原始卷名称
其中,-s
选项表示创建快照,-n
选项用于指定快照的名称,-L
选项用于指定快照的大小,原始卷名称
是要创建快照的原始卷的名称。
例如,要创建一个名为mysnapshot
、大小为1GB的快照,基于原始卷myvolume
,可以运行以下命令:
lvcreate -s -n mysnapshot -L 1G myvolume
创建快照后,可以使用lvs
命令查看快照信息
三、管理LVM快照
LVM快照的管理主要包括查看快照信息、删除快照等操作。
-
查看快照信息:使用
lvs
命令可以查看所有逻辑卷的信息,包括快照。在输出中,快照通常会显示为原始卷名称后加上-snap
后缀。 -
删除快照:使用
lvremove
命令可以删除快照。命令格式如下:
例如,要删除名为mysnapshot
的快照,可以运行以下命令:
lvremove 快照名称
四、LVM快照的应用
LVM快照在实际应用中具有多种用途,例如:
- 数据备份:可以使用快照创建原始数据的一个固定点备份,以便在需要时恢复数据。
- 数据恢复:如果原始数据被误删除或损坏,可以使用快照进行恢复。
- 测试环境:可以使用快照创建一个测试环境,以便在不影响生产环境的情况下进行测试。
五 完整的LVM 操作(创建 PV、VG、LV 及快照恢复)
[root@localhost ~]# pvcreate /dev/sdd /dev/sde #创建pv
Physical volume "/dev/sdd" successfully created.
Physical volume "/dev/sde" successfully created.
[root@localhost ~]# vgcreate vgtest /dev/sdd /dev/sde #创建vg
Volume group "vgtest" successfully created
[root@localhost ~]# vgs #查看vg
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vgtest 2 0 0 wz--n- 9.99g 9.99g
[root@localhost ~]# lvcreate -L +3G -n lvt01 vgtest #创建lv
WARNING: xfs signature detected on /dev/vgtest/lvt01 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/vgtest/lvt01.
Logical volume "lvt01" created.
[root@localhost ~]# lvs #查看lv
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lvt01 vgtest -wi-a----- 3.00g
[root@localhost ~]# mkfs.xfs /dev/vgtest/lvt01 #格式lv
meta-data=/dev/vgtest/lvt01 isize=512 agcount=4, agsize=196608 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=786432, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mount /dev/vgtest/lvt01 /lvm-t01 #挂载lv
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lvt01 vgtest -wi-ao---- 3.00g
[root@localhost ~]# echo "this test snap at 2024-02-22">> /lvm-t01/aa.txt
[root@localhost ~]# echo "this test snap at 2024-02-22">> /lvm-t01/aa.txt
[root@localhost ~]# echo "this test snap at 2024-02-22">> /lvm-t01/aa.txt
[root@localhost ~]# echo "this test snap at 2024-02-22">> /lvm-t01/aa.txt
[root@localhost ~]# echo "this test snap at 2024-02-22">> /lvm-t01/aa.txt
[root@localhost ~]# echo "this test snap at 2024-02-22">> /lvm-t01/aa.txt
[root@localhost ~]# echo "this test snap at 2024-02-22-16:04">> /lvm-t01/aa.txt
[root@localhost ~]# more /lvm-t01/aa.txt #查看文件
this test snap at 2024-02-22
this test snap at 2024-02-22
this test snap at 2024-02-22
this test snap at 2024-02-22
this test snap at 2024-02-22
this test snap at 2024-02-22-16:04
[root@localhost ~]# lvcreate -L +1G -s -n /dev/vgtest/lvt01_snap /dev/vgtest/lvt01 #创建快照
Logical volume "lvt01_snap" created.
[root@localhost ~]# rm -rf /lvm-t01/aa.txt #删除文件测试
[root@localhost ~]# more /lvm-t01/aa.txt
/lvm-t01/aa.txt: No such file or directory
[root@localhost ~]# umount /lvm-t01 #卸载lv
[root@localhost ~]# lvconvert --mergesnapshot /dev/vgtest/lvt01_snap #恢复lv
Merging of volume vgtest/lvt01_snap started.
vgtest/lvt01: Merged: 100.00%
[root@localhost ~]# mount /dev/vgtest/lvt01 /lvm-t01 #挂载lv
[root@localhost ~]# more /lvm-t01/aa.txt #查看文件
this test snap at 2024-02-22
this test snap at 2024-02-22
this test snap at 2024-02-22
this test snap at 2024-02-22
this test snap at 2024-02-22
this test snap at 2024-02-22-16:04
六、总结
本文详细讲解了CentOS LVM快照的概念、创建过程、管理及应用。LVM快照功能为用户提供了强大的数据管理和恢复能力,使得用户可以更加灵活地管理硬盘空间。在实际应用中,用户可以根据需求创建和管理快照,以实现数据备份、恢复和测试等目的。