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


29

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

为什么?

好吧,正如我所看到的那样,尽管Linux具有巨大的实用性,但它最大的缺点是安装应用程序的方式混杂。所有dll都转到一个目录。将所有配置文件转移到另一个。二进制文件也被放在一堆。是的,Windows或多或少地以相同的方式工作,但是由于Linux上安装的系统/服务器软件的性质,在任何给定时间,大多数已安装软件的成熟度仅为95%左右,因此每月要使您的系统混乱两次很有可能..

当然,我们可以在每次安装之前和之后备份系统,但这需要一百万年。系统备份(仅针对数据/文件备份)要求您关闭计算机,并使用某种形式的可启动实时CD和备份媒体。而且,如果驱动器的容量已超过15%,即使使用现代硬件,备份也可能需要很长时间。

那么,该怎么办呢?


3
这不是问题……我也想你看起来并不难。一个用于“ ubuntu lvm快照”的快速Google,出现的第一件事是wiki.ubuntu.com/Lvm
psusi 2014年

1
与...无关...您读了吗?它涵盖了您在这里所说的一切。
psusi 2014年

5
当然,您可以问一个问题然后自己回答-但请记住,此站点以问答形式运行-不适用于免费形式的教程。
guntbert

3
就是这样 AskUbuntu提供了教程,但是我找不到一种简单的方法。由于我想与任何可以受益的人分享我的辛勤工作,所以我决定只在此处发布。
2014年

4
投票重新开放,使我们可以分成Q&A这
穆鲁

Answers:


11

另一种方法-LVM快照 -您可以在此处了解有关LVM快照的信息:http : //www.tutonics.com/2012/12/lvm-guide-part-2-snapshots.html

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

乍一看似乎很复杂,但是我可以向您保证,在第一次尝试之后,使用快照机制所需的全部只是2行脚本(提供下载!)。

保修-不对以下说明提供任何保修。使用风险自负!

怎么样?

如果您没有预先配置的卷组,则可能需要安装全新的Ubuntu。然后,您将不得不为首次正确配置系统付出一些努力,但是从那时起,快照将变得毫不费力。毫不费力地,我的意思是使用预先配置的脚本执行一个线性命令。

  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

    关闭终端并启动安装程序。

    选择“使用LVM ...”(您也可以选择启用整个磁盘加密-但我没有对其进行测试。)

    选择“其他”,然后按继续。在此阶段,您将找到定义的/ dev / mapper / ...卷的分配。其中一些是自动生成的(lvsnap- *)-您现在可以忽略它们。

    选择:/ dev / mapper / vgsnap-lvroot卷。选择“ ext4”作为格式,并安装为“ /”

    选择:/ dev / mapper / vgsnap-lvswap卷,然后选择“交换区域”

    如果要创建加密的驱动器(我不知道该快照是否适用于快照?),则可能要选择/ dev / sda2并标记“加密卷”。虽然没有测试。

    注意:未使用的15G留给快照卷使用。

    选择:/ dev / sda1分区。将其格式化为“ ext2”并将其安装为“ / boot”

    在下面-选择:/ dev / sda1分区作为启动

    安装!

使用快照

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

  1. 挂载快照:

    创建快照卷

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

    创建安装目录

    # mkdir /mnt/vgsnap-lvsnap
    

    将快照挂载为只读挂载

    # 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. 重新安装快照:(请参阅重新安装脚本,其中包含以下说明-文档末尾的链接)与以前非常相似:

    # 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. 丢弃卷组-仅可以通过删除卷组的卷来实现,这可能意味着删除OS安装。但是当然,实际上并不需要删除卷组。

    删除卷组:

    # vgremove vgsnap
    

重要的提示!-格式化/运行fdisk并删除所有分区不会删除卷或组,因为它们被写在驱动器的不同部分上...因此,只需使用上面给出的删除说明,并在需要时删除卷和组。


非常感谢您提供这些详细的说明...哇。
阿德里亚诺·卢卡斯

2

通过使用创建cronjob进行备份 lvcreate -s -L <size> -n <snapshot_name> <volume_name>

卷名是您要为其快照创建的卷的名称。有关更多详细信息,您也可以阅读本教程


1
不错的向导!但是请注意,我打算在没有备份媒体的情况下提供一种备份方法。作为惰性备份的一种形式。在过去,使用Norton GoBack和Windows 2000可以节省很多时间:)我曾经真的搞砸了我所使用的系统,并且可以指望我可以立即恢复错误,这很容易!备份可能是在真实服务器上进行迁移的正确方法,但是对于不放在VMWare / VirtualBox(外部提供快照)上的工作站,我相信快照是可行的方法。
2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.