使用LVM快照备份(并还原)LVM分区

使用LVM快照备份(并还原)LVM分区 本教程介绍如何创建LVM分区的备份 使用LVM功能calle ...

使用LVM快照备份(还原)LVM分区

版本1.1
作者:Falko Timme

本教程将介绍如何使用称为LVM快照的LVM功能来创建LVM分区的备份。 LVM快照是LVM分区的精确副本,具有创建快照时LVM卷的所有数据。 LVM快照的最大优点在于,它们可以用于大大减少备份期间服务/数据库关闭的时间,因为快照通常会在几分之一秒内创建。 创建快照后,您可以在服务和数据库正常运行时备份快照。

我还将介绍如何在本教程末尾的额外章节中从备份恢复LVM分区。

本文档不附带任何形式的保证! 我不会保证这将为您工作!

1初步说明

我已经在Debian Etch服务器上测试了这个IP地址为192.168.0.100和主机名server1.example.com 。 它有两个硬盘:

  • / dev / sda (10GB),包含一个小/启动分区(非LVM),一个/分区(LVM,一个小于10GB)和一个交换分区(LVM)
  • / dev / sdb (60GB),目前未使用; 将用于创建一个30GB /备份分区(LVM)和/ partition的快照(10GB - 这是足够的,因为/分区有点小于10GB)。

我创建了一个可以在VMware Server或VMware Player中下载并运行的Debian Etch VMware映像 (请参阅https://www.howtoing.com/import_vmware_images了解如何执行此操作)。 它具有与上述测试系统相同的规格。 root密码是howtoing 。 使用该VMware映像,您可以执行与本教程中完全相同的步骤,以便习惯使用LVM快照。

要从备份中恢复/分区(在本教程最后一章中介绍),您需要一个支持LVM的Linux Live-CD,如Knoppix或Debian Etch Netinstall CD,如果您指定救援,则可以将其用作救援CD在引导提示符下。 在这个例子中我将使用Debian Etch Netinstall CD(镜像列表可以在这里找到: http : //www.debian.org/CD/http-ftp/ - 我下载了这个: http : //ftp.de。 debian.org/debian-cd/4.0_r0/i386/iso-cd/debian-40r0-i386-netinst.iso )。

要创建/分区的备份,我将按照以下步骤进行操作:我将创建一个/ partition的快照,之后我将在/ backups分区上创建快照的备份(而不是实际的/分区!)当然,您可以随时随地存储该备份 - 而不是创建一个额外的/备份的 LVM分区,您还可以使用外部USB驱动器)。 备份可以使用您首选的备份解决方案,例如tardd 。 之后,我将摧毁快照,因为它不再需要,并且会使用系统资源。

您不一定需要快照的第二个硬盘 - 您可以使用第一个HDD,只要您有足够的空闲(未分区)空间即可在其上创建快照(您应该使用与您使用的快照相同的空间您要备份的分区)。 如前所述,您可以使用USB驱动器备份快照。

要了解有关LVM的更多信息,您应该阅读本教程: http : //www.howtoing.com/linux_lvm

2创建/备份LVM分区

(如果您想将备份存储在别的地方,例如在外部USB驱动器上,则无需执行此操作。)

我们目前的情况如下:

pvdisplay

server1:~# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda5
  VG Name               server1
  PV Size               9.76 GB / not usable 0
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              2498
  Free PE               0
  Allocated PE          2498
  PV UUID               vQIUga-221O-GIKj-81Ct-2ITT-bKPw-kKElpM

vgdisplay

server1:~# vgdisplay
  --- Volume group ---
  VG Name               server1
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               9.76 GB
  PE Size               4.00 MB
  Total PE              2498
  Alloc PE / Size       2498 / 9.76 GB
  Free  PE / Size       0 / 0
  VG UUID               jkWyez-c0nT-LCaE-Bzvi-Q4oD-eD3Q-BKIOFC

lvdisplay

server1:~# lvdisplay
  --- Logical volume ---
  LV Name                /dev/server1/root
  VG Name                server1
  LV UUID                UK1rjH-LS3l-f7aO-240S-EwGw-0Uws-5ldhlW
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                9.30 GB
  Current LE             2382
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           254:0

  --- Logical volume ---
  LV Name                /dev/server1/swap_1
  VG Name                server1
  LV UUID                2PASi6-fQV4-I8sJ-J0yq-Y9lH-SJ32-F9jHaj
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                464.00 MB
  Current LE             116
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           254:1

fdisk -l

server1:~# fdisk -l

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          31      248976   83  Linux
/dev/sda2              32        1305    10233405    5  Extended
/dev/sda5              32        1305    10233373+  8e  Linux LVM

Disk /dev/sdb: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/dm-0: 9990 MB, 9990832128 bytes
255 heads, 63 sectors/track, 1214 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-0 doesn't contain a valid partition table

Disk /dev/dm-1: 486 MB, 486539264 bytes
255 heads, 63 sectors/track, 59 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-1 doesn't contain a valid partition table

所以/ dev / sda包含逻辑卷/ dev / server1 / root/ partition)和/ dev / server1 / swap_1 (交换分区)加上一个小/启动分区(非LVM)。

(BTW, / dev / server1 / root与Debian Etch上的/ dev / mapper / server1-root相同,第一个是第二个符号链接,本教程中将使用两个符号,同样适用于/ dev / server1 / swap_1/ dev / mapper / server1-swap_1 。)

我现在将创建分区/ dev / sdb1并将其添加到server1卷组,之后我将创建卷/ dev / server1 / backups (这将是30GB,而不是完整的60GB / dev / sdb ,以便我们有足够的空间留给快照)我将挂载/备份

fdisk /dev/sdb

server1:〜#fdisk / dev / sdb
设备既不包含有效的DOS分区表,也不包含Sun,SGI或OSF disklabel
构建新的DOS磁盘标签。 更改只会保留在内存中,
直到你决定写它们。 之后,当然是以前的
内容将无法恢复。


此磁盘的柱面数设置为7832。
没有什么问题,但是这大于1024,
并且在某些设置中可能会导致以下问题:
1)在引导时运行的软件(例如,LILO的旧版本)
2)从其他操作系统启动和分区软件
(例如DOS FDISK,OS / 2 FDISK)
警告:分区表4的无效标志0x0000将被w(rite)修正

命令(m帮助): < - n
命令行动
e扩展
p主分区(1-4)
< - p
分区号(1-4): < - 1
第一个气缸(1-7832,默认为1): < - [ENTER]
使用默认值1
最后一个圆柱体或+大小或+ sizeM或+ sizeK(1-7832,默认值为7832): < - [ENTER]
使用默认值7832

命令(m为帮助): < - t
所选分区1
十六进制代码(类型L列出代码): < - 8e
更改系统类型的分区1到8e(Linux LVM)

命令(m为帮助): < - w
分区表已被更改!

调用ioctl()重新读取分区表。
同步磁盘

pvcreate /dev/sdb1
vgextend server1 /dev/sdb1
lvcreate --name backups --size 30G server1
mkfs.ext3 /dev/mapper/server1-backups
mkdir /backups

现在我们将/ dev / server1 / backups卷挂载到/ backups上

mount /dev/mapper/server1-backups /backups

要在启动系统时自动安装该卷,您必须编辑/ etc / fstab并添加如下所示的行:

vi /etc/fstab

[...]
/dev/mapper/server1-backups /backups               ext3    defaults,errors=remount-ro 0       1

现在我们的新情况看起来像这样:

pvdisplay

server1:~# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda5
  VG Name               server1
  PV Size               9.76 GB / not usable 0
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              2498
  Free PE               0
  Allocated PE          2498
  PV UUID               vQIUga-221O-GIKj-81Ct-2ITT-bKPw-kKElpM

  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               server1
  PV Size               59.99 GB / not usable 0
  Allocatable           yes
  PE Size (KByte)       4096
  Total PE              15358
  Free PE               7678
  Allocated PE          7680
  PV UUID               cvl1H5-cxRe-iyNg-m2mM-tjxM-AvER-rjqycO

vgdisplay

server1:~# vgdisplay
  --- Volume group ---
  VG Name               server1
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               69.75 GB
  PE Size               4.00 MB
  Total PE              17856
  Alloc PE / Size       10178 / 39.76 GB
  Free  PE / Size       7678 / 29.99 GB
  VG UUID               jkWyez-c0nT-LCaE-Bzvi-Q4oD-eD3Q-BKIOFC

lvdisplay

server1:~# lvdisplay
  --- Logical volume ---
  LV Name                /dev/server1/root
  VG Name                server1
  LV UUID                UK1rjH-LS3l-f7aO-240S-EwGw-0Uws-5ldhlW
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                9.30 GB
  Current LE             2382
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           254:0

  --- Logical volume ---
  LV Name                /dev/server1/swap_1
  VG Name                server1
  LV UUID                2PASi6-fQV4-I8sJ-J0yq-Y9lH-SJ32-F9jHaj
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                464.00 MB
  Current LE             116
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           254:1

  --- Logical volume ---
  LV Name                /dev/server1/backups
  VG Name                server1
  LV UUID                sXq2Xe-y2CE-Ycko-rCoE-M5kl-E1vH-KQRoP6
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                30.00 GB
  Current LE             7680
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           254:2