网站搜索

如何在 LVM 中拍摄“逻辑卷快照并恢复” - 第三部分


LVM 快照是lvm卷的节省空间的时间点副本。它仅适用于 lvm,并且仅当源逻辑卷更改为快照卷时才会消耗空间。如果源卷对 1GB 的总和进行了巨大更改,则快照卷也会进行相同的更改。为了提高空间效率,最好始终进行小规模的更改。如果快照存储空间不足,我们可以使用 lvextend 来增长。如果我们需要缩小快照,我们可以使用 lvreduce。

如果我们在创建快照后不小心删除了任何文件,我们不必担心,因为快照中有我们删除的原始文件。创建快照时该文件可能就在那里。不要更改快照卷,在使用快照进行快速恢复时保持原样。

快照不能用作备份选项。备份是某些数据的主副本,因此我们不能使用快照作为备份选项。

要求

  1. 在 Linux 中使用 LVM 创建磁盘存储 – 第 1 部分
  2. 如何在 Linux 中扩展/减少 LVM – 第二部分
我的服务器设置
  1. 操作系统 – CentOS 6.5,带 LVM 安装
  2. 服务器IP – 192.168.0.200

第1步:创建LVM快照

首先,使用以下“vgs”命令检查卷组中的可用空间以创建新快照。

vgs
lvs

您会看到,上面的 vgs 输出中还剩下 8GB 的可用空间。因此,让我们为我的一个名为 howtoing_datas 的卷创建一个快照。出于演示目的,我将使用以下命令仅创建 1GB 快照卷。

lvcreate -L 1GB -s -n tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas        

OR

lvcreate --size 1G --snapshot --name tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas

上面的两个命令都做同样的事情:

  1. -s – 创建快照
  2. -n – 快照名称

这里是对上面强调的每一点的解释。

  1. 我在这里创建的快照的大小。
  2. 创建快照。
  3. 为快照创建名称。
  4. 新快照名称。
  5. 我们将为其创建快照的卷。

如果要删除快照,可以使用“lvremove”命令。

# lvremove /dev/vg_howtoing_extra/howtoing_datas_snap

现在,使用以下命令列出新创建的快照。

lvs

如上所示,快照已成功创建。我用箭头标记了快照的创建位置,它是 howtoing_datas。是的,因为我们已经为 howtoing_datas l-volume 创建了快照。

让我们向 howtoing_datas 添加一些新文件。现在卷中有一些大约 650MB 的数据,我们的快照大小是 1GB。因此有足够的空间来备份我们对快照卷的更改。在这里我们可以使用以下命令查看快照的状态。

lvs

您会看到,快照卷的 51% 已被使用,对文件进行更多修改没有问题。有关更详细的信息,请使用该命令。

lvdisplay vg_tecmint_extra/tecmint_data_snap

同样,这里对上图中突出显示的每一点都有清晰的解释。

  1. 快照逻辑卷的名称。
  2. 当前使用的卷组名称。
  3. 读写模式下的快照卷,我们甚至可以挂载该卷并使用它。
  4. 创建快照的时间。这非常重要,因为快照将查找该时间之后的每个更改。
  5. 该快照属于howtoing_datas 逻辑卷。
  6. 逻辑卷处于联机状态并可供使用。
  7. 我们拍摄快照的源卷的大小。
  8. Cow-table 大小=写入时复制,这意味着对 howtoing_data 卷所做的任何更改都将写入此快照。
  9. 目前,我们使用的快照大小,howtoing_datas 是 10G,但我们的快照大小是 1GB,这意味着我们的文件约为 650 MB。因此,如果文件在 howtoing_datas 大小增长到 2GB 大小,现在的 51% 将增加超过快照分配的大小,那么我们肯定会遇到快照问题。这意味着我们需要扩展逻辑卷(快照卷)的大小。
  10. 给出快照的块的大小。

现在,让我们在 howtoing_datas 中复制超过 1GB 的文件,看看会发生什么。如果这样做,您将收到一条错误消息“输入/输出错误”,这意味着快照空间不足。

如果逻辑卷已满,它将自动删除,并且我们无法再使用它,即使我们扩展快照卷的大小也是如此。创建快照时最好与源大小相同,howtoing_datas大小为10G,如果我创建10GB大小的快照,它永远不会像上面那样溢出,因为它有足够的空间可以占用您的音量快照。

步骤2:在LVM中扩展快照

如果我们需要在溢出之前扩展快照大小,我们可以使用。

lvextend -L +1G /dev/vg_tecmint_extra/tecmint_data_snap

现在快照总共有 2GB 大小。

接下来,使用以下命令验证新的大小和 COW 表。

lvdisplay /dev/vg_tecmint_extra/tecmint_data_snap

了解快照卷的大小和使用情况%

lvs

但如果您有与源卷大小相同的快照卷,我们就不需要担心这些问题。

步骤 3:恢复快照或合并

要恢复快照,我们需要先卸载文件系统。

unmount /mnt/tecmint_datas/

只需检查挂载点是否已卸载即可。

df -h

这里mount已经被卸载了,所以我们可以继续恢复快照。使用命令 lvconvert 恢复快照。

lvconvert --merge /dev/vg_tecmint_extra/tecmint_data_snap

合并完成后,快照卷将自动删除。现在我们可以使用 df 命令查看分区的空间。

df -Th

快照卷自动删除后。您可以看到逻辑卷的大小。

lvs

重要:要自动扩展快照,我们可以在conf文件中进行一些修改。对于手动,我们可以使用 lvextend 进行扩展。

使用您选择的编辑器打开 lvm 配置文件。

vim /etc/lvm/lvm.conf

搜索单词“自动扩展”。默认情况下,该值将类似于以下内容。

此处将 100 更改为 75,如果是这样,自动扩展阈值为 75,自动扩展百分比为 20 ,它会将大小扩大 20%

如果快照卷达到75%,它会自动将快照卷的大小再扩展20%。这样,我们就可以自动扩展。使用 wq! 保存并退出文件。

这将保存快照免于溢出丢弃。这也将帮助您节省更多时间。 LVM 是唯一可以进行更多扩展的分区方法,并且具有许多功能,例如精简配置、条带化、虚拟卷等。使用精简池,让我们在下一个主题中看到它们。