当前位置: 首页>>技术教程>>正文


将LVM快照设置为ubuntu中的备份/还原点

, , , ,

问题描述

将LVM快照设置为ubuntu中的备份/还原点。

为什么?

好吧,正如我所看到的,Linux具有非常实用的功能,其最大的缺点在于其安装应用程序的混合方式。所有的dll都转到一个目录。所有配置文件到另一个。二进制文件也放在一堆。是的,Windows或多或少的工作方式相同,但由于Linux上安装的系统/服务器软件的性质,安装的大多数软件在任何给定时间只有95%成熟,每月两次弄乱你的系统是非常可能..

当然,我们可以在每次安装之前和之后备份系统,但这需要一百万年。系统备份(与数据/文件备份相反)要求您关闭计算机并使用某种形式的可启动Live CD和备份媒体。而且,如果驱动器已满15%,则可能需要很长时间才能进行备份,即使使用现代硬件也是如此。

那么,怎么做呢?

最佳解决方案

替代方案 – LVM快照 – 您可以在此处阅读有关LVM快照的信息:http://www.tutonics.com/2012/12/lvm-guide-part-2-snapshots.html

简而言之 – 快照是冻结HardDisk上使用过的扇区的一种方式,告诉系统在HardDisk的保留部分上写入任何更改/删除/添加,称为快照卷,从而推迟保留/放弃更改的决定在快照卷空间提供的驱动器上的某个未来时间。因此,一旦您决定回滚更改(或保留它们),您就可以使用一行来完成。

一开始可能看起来很复杂,但我可以向您保证,在第一次使用后,使用快照机制所需的只是2行脚本(提供下载!)

保修 – 对以下说明不做任何保修。使用风险自负!

怎么样?

如果您没有pre-configured卷组,则可能需要安装一个全新的干净Ubuntu。然后,您将不得不首次正确配置系统,但从现在开始,快照将变得毫不费力。通过毫不费力,我指的是一个使用pre-configured脚本的线性命令。

  1. 启动到ubuntu live cd(还没有安装..只是live cd)

  2. 打开配件 – >终奌站

  3. 我们将清理硬盘!请在完成此阶段之前备份重要内容。

    首先,让我们删除现有的分区:

    # fdisk /dev/sda
      Enter 'd' to delete - enter for as many partitions you have 
    > d   
    > <enter>
      ...
      Enter 'w' to write down changes
    > w
    
  4. 创建启动分区,将其余驱动器创建为另一个分区

    # fdisk /dev/sda
    > n
      To create a new partition.
    > p
      For Boot Primary partition.
    > 1
      Press <enter> to accept the default start sector.
      Enter:
    > +512M
      To give the boot partition a size of 512MB
    > n
      To create (another) new partition.
    > p
      Should be Primary too.
    > <enter> 
      To accept the default value of 2 (the second partition)
    > <enter>
      To accept the default start sector
    > <enter>
      To accept the whole disk
    > t
      To change the type of the second partition to LVM
    > 2
      To choose the second partition
    > 8e
      To set the type to 'LVM Linux'
    > w
      To write changes and exit.
    

    要检查更改是否正常运行:

    # fdisk --list
    

    你应该得到这样的东西:

      Device     Boot   Start    End        Blocks     Id   System
      /dev/sda1         2048     524287     261120     83   Linux
      /dev/sda2         524288   488397167  243936440  8e   Linux LVM
    
  5. 删除所有以前的卷组/逻辑卷:

    # lvdisplay 
    

    将显示您在系统上可能具有的逻辑卷

    # lvremove <existing_logical_volume_name>
    

    如果需要删除任何可能干扰此安装的卷安装。

    # vgdisplay 
    

    将显示系统上的任何现有卷组

    # vgremove <existing_volume_group>
    

    与卷组相同..

  6. 创建卷组’vgsnap’

    # vgcreate vgsnap /dev/sda2
    

    应该导致:

      Volume group "vgsnap" successfully created
    
  7. 创建逻辑卷

    # lvcreate --extents 100%FREE --name lvroot vgsnap
    

    根逻辑卷,从100%的设备开始。

    # lvresize --size -30G /dev/mapper/vgsnap-lvroot
    

    这将取消30G的交换&快照卷。当然 – 您可以为交换/快照选择较小的尺寸。

    > 'y'
      for the warning shown.
    

    并创建交换量:

    # lvcreate --size 15G --name lvswap vgsnap
    

    注意:我们现在留下15G未使用的驱动器空间,为将来的快照保留。

  8. 安装Ubuntu关闭terimnal并启动安装程序。选择“使用LVM …”(您也可以选择启用整个磁盘加密 – 但我没有测试它。)选择”Something Else”并按继续。在此阶段,您将找到定义的/dev /mapper /…卷的分配。其中一些是自动生成的(lvsnap- *) – 你现在可以忽略它们。选择:/dev /mapper /vgsnap-lvroot卷。选择”ext4″作为格式,并挂载为’/’选择:/dev /mapper /vgsnap-lvswap卷,然后选择”swap area”如果要创建加密驱动器(我不知道是否可以使用快照?),你可能会想要选择/dev /sda2并标记“加密卷”。虽然没有测试它。注意:未使用的15G对于快照卷是免费的。选择:/dev /sda1分区。将其格式化为’ext2’并将其挂载为’/boot’如下所示:选择:/dev /sda1 partition作为启动安装!

使用快照

以下步骤将说明如何在任何给定时间使用快照:

  1. 挂载快照:

    创建快照卷

    # lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
    

    创建安装目录

    # mkdir /mnt/vgsnap-lvsnap
    

    将快照装载为read-only装载

    # mount -o ro /dev/vgsnap/lvsnap  /mnt/vgsnap-lvsnap
    

    快照开启!

    在这一点上,你可能会开始弄乱你的系统,安装beta驱动程序,甚至(不!这只是不恰当的)。

    从现在开始,您可以随时(在快照大小提供的情况下……)返回到先前的状态,或者,如果对新外观满意,请保留它。

  2. 自动快照卷可用磁盘空间监视:使用此处提供的脚本的调整版本:http://blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/我创建了monitor_snapshot脚本。

    如何使用/安装它? – 与上面的链接非常相​​似:

    # cd /etc/cron.hourly
    # copy /home/<user>/Downloads/monitor_snapshot
    # chmod +x monitor_snapshot
    

    在第一次运行它之前,您最好编辑其中的值,例如您的电子邮件地址(要发送通知的位置等)。如果配置正确,cron守护程序将每隔X小时/天运行一次脚本 – 在你决定的时候 – 一旦快照即将满了就通知你。

    要测试脚本运行:

    # sh /etc/cron.hourly/monitor_snapshot
    

    它将打印快照中可用空间的百分比(数量)。

    重要!完成测试/安装后 – 回滚或保持更改 – 并卸载快照!

  3. 回滚更改:(请参阅rollback_snapshot脚本,其中包含以下说明,文档末尾的链接)

    # lvconvert --merge /dev/vgsnap/lvsnap
    

    这也将卸载快照,但会丢弃您的任何更改。此外 – 您将看到一条警告,表明恢复仅在下次激活时发生,因此:

    # reboot
    

    注意:如果您跳过合并,则在卸载快照后应提交更改。

  4. 提交更改 – 卸载快照:(请参阅commit_snapshot脚本,其中包含以下说明 – 文档末尾的链接)

    # umount /mnt/vgsnap-lvsnap
      Will unmount (commit0 the snapshot
    
    # lvremove /dev/mapper/vgsnap-lvsnap
    # rm -rf /mnt/vgsnap-lvsnap/
    
    # rm /etc/cron.hourly/monitor_snapshot
      Remove the cron daemon script (that is unused)
    
  5. Re-mounting快照:(参见remount脚本,其中包含以下说明 – 文档末尾的链接)与以前一样:

    # lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
    # mkdir /mnt/vgsnap-lvsnap
    # mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
    

    如果您在家庭目录中保存了monitor_snapshot,则可以将其恢复:

    # cp /home/<user>/monitor_snapshot /etc/cron.hourly/
    # chmod +x /etc/cron.hourly/monitor_snapshot
    

这就是所有人!以下说明仅适用于戒烟者;)

  1. 丢弃快照卷(如果不再需要)

    # rmdir /mnt/vgsnap-lvsnap
    # lvremove /dev/vgsnap/lvsnap
    

    (您可能还希望调整根分区的大小或交换以占用为交换保留的缺少的15G)

  2. 丢弃卷组 – 只能通过删除卷组的卷来实现,这可能意味着删除操作系统安装。但是,当然,没有必要删除卷组…

    要删除卷组:

    # vgremove vgsnap
    

重要的提示! – 格式化/运行fdisk并删除所有分区不会删除卷或组,因为这些是写在驱动器的不同部分…所以,只需使用上面给出的删除说明并删除卷和组(如果需要)。

次佳解决方案

使用lvcreate -s -L <size> -n <snapshot_name> <volume_name>创建用于备份的cronjob

此处卷名称是您要拍摄其快照的卷的名称。有关详细信息,您还可以通过this tutorial

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6831.html,未经允许,请勿转载。