Newer
Older
baremetal / baremetal.rst
Notes On Baremetal Backup/Restore
=================================

A TundraWare Inc. Technical Note


:Author: Tim Daneliuk (tundra@tundraware.com)

:Version: ``$Id: baremetal.rst,v 1.102 2014/08/22 23:05:22 tundra Exp $``


Précis
------

Many commercial and open source solutions exist to solve the problem
of creating backups that can be restored to "bare metal".  That is,
restoring a system *image* back to a disk when the machine will no
longer boot or a disk has to be replaced.  Image backups are preferred
when rebuilding systems so you don't have to manually reinstall every
application, system setting and so forth.

The purpose here was to do just that - create images capable of being
"poured" onto, say, a blank, new hard drive, but *using only standard
linux commands and tools*.


General Approach
-----------------

The idea is to make an image snapshot right after you build a machine,
and anytime thereafter you make significant changes to its operating
system and application configuration.  You might do this, say, right
before patching a server so that, if patching breaks the server
to the point where it will no longer boot, you can just "pour" the
previous image onto the disk.

To do this, we reboot our target machine using the *Linux System Rescue CD*.
This CD has all the tools on it we need to do both image creation and
restoration.  You can find the iso image for this disk here::

      http://sourceforge.net/projects/systemrescuecd/

You will also need access to a place to store and retrieve your images.
In the examples below, we used a NAS nfs share, though you could also
use another local hard drive, SAN connected storage or even a USB-connected
drive.


Example Environment
-------------------

In our examples below, we're imaging a CentOS 6.5 machine.  The only thing
we need to image is the *operating system itself*.  In this example, we know
there are 2 partitions of interest:

    ``sda1`` - The ``/boot`` partition
    ``sda2`` - The rest of the operating system, in this case contained in LVM containers

The idea is that if the machine were to go dead, a disk failed, or what have you, this 
would be sufficient to get the replacement booting properly again.  Presumably, you
could then restore any data files you have from your standard backup/restore tools.


Backup Procedure
----------------

::

    mount nas1:/shared /shared   # Mount shared storage





Restore Procedure
-----------------





Conclusions & Limitations
-------------------------

- This seems to work fine in the limited configuration that was tested.

- The upside of this approach is that you can use standard Linux
  commands to do imaged backups of your machine.

- There are two downsides:

    1) You cannot do this while the machine is up and running.

    2) Every block in the partition gets copied whether it is used or not.

- In *theory* this should also work on SAN-booted machines so long as
  the exact same LUN (WWID and size) is presented for the restore as
  was used for the backup.  However, this was not tested and theory
  and Reality usually collide in rather nasty ways.  Mr. Murphy is not
  our friend.

- Same story for VMs.  Not tested.  It's unclear whether a VM booted
  from a rescue disk would see the underlying disk storage (VMDK or
  whatever).

- Again, *theoretically* this should work with other operating system
  partitions and data partitions.  But ... not tested.



Copyright And Licensing
=======================

This document is Copyright (c) 2014, TundraWare Inc., Des Plaines, IL
60018, All Rights Reserved.

Permission is hereby granted for the free duplication and dissemination of
this document if the following conditions are met:

  - The document is distributed in whole and without modification,
    preserving the content in its entirety.

  - No fee may be charged for such distribution beyond a usual and
    ordinary fee for duplication.

  - You acknowledge that this document describes an EXPERIMENTAL
    PROCEDURE for learning purposes.  It has not been tested in all
    possible hardware, software, operating system, and network
    configurations.  You should not trust this approach unless you
    prove these procedures are satisfactory in YOUR OWN ENVIRONMENT.

  - By using this material in any way, you acknowledge you are doing
    so at your own risk.  You agree to hold TundraWare Inc.  harmless
    for any damage, direct or indirect, that this may or does cause to
    your computational environment, including, but not limited to,
    your or others' hardware, software, network, or data.  You FURTHER
    AGREE TO HOLD TUNDRAWARE INC. HARMLESS FOR ANY ECONOMIC DAMAGE OR
    ANY OTHER ADVERSE CONSEQUENCE, DIRECT OR INDIRECT, CAUSED BY THE
    USE OF THIS MATERIAL.



Document Information
====================


You can find the latest version of this document at:

  http://www.tundraware.com/TechnicalNotes/Baremetal

A pdf version of this document can be downloaded at:

  http://www.tundraware.com/TechnicalNotes/Baremetal/baremetal.pdf

This document produced with ``emacs``, ``RestructuredText``, and ``TeXLive``.