dump/restoreコマンドによるシステムリカバリの方法

2014年02月07日 23時37分

201402072337BDUC00.png

はじめに

現在、システムのバックアップには、BackupExec、ARCServeなどのGUIベースのバックアップソフトウエアを利用できるようになっています。UNIXでは、古くからdump/restoreコマンドを使ったシステムのバックアップ、リストアが行われて来ました。 今回は、バックアップ&リカバリの基本とも言えるdump/restoreコマンドを用いたシステムリカバリの方法について解説します。

前提条件

構築に必要なサーバー要件および、導入パッケージは下記のとおりです。

  1. 作業環境
    OSWindows 7 Ultimate 32bit
    CygwinSetup Version 2.831
    VirtualBox4.3.6 r91406
    Vagrant1.4.1
  2. サーバー要件

    サーバー要件は、次のとおりです。

    サーバーバックアップサーバーリストアサーバーNFSサーバー
    ホスト名dump-backupn/anfs-server
    IPアドレス192.168.0.10(eth1)n/a192.168.0.90(eth1)
    OSCentOS 5.5 i386n/aubuntu 13.10 i386
    インストールタイプminimaln/aserver
    HDD8GB(SCSI)
    RAM512MB

    NFSサーバーは、/backupをエクスポートフォルダとして設定しています。

  3. 導入するパッケージ
    パッケージバージョン
    dump0.4
    rmt0.4

サーバーのバックアップ

  1. パッケージのインストール

    CentOSの場合、dumpコマンドが標準インストールされていませんので、パッケージをインストールします。

    $ sudo yum -y install dump
    
    201402072337BDUC01.png
    201402072337BDUC02.png
  2. ディスク情報の出力

    バックアップ対象サーバーのディスク情報を、ファイルに出力します。

    $ LANG=C sudo fdisk -l > /tmp/`hostname`_fdisk.txt
    $ LANG=C sudo df -k > /tmp/`hostname`_df.txt
    $ LANG=C sudo pvdisplay > /tmp/`hostname`_pv.txt
    $ LANG=C sudo vgdisplay > /tmp/`hostname`_vg.txt
    $ LANG=C sudo lvdisplay > /tmp/`hostname`_lv.txt
    
    201402072337BDUC03.png
  3. シングルユーザーモードへの移行

    データベースアクセスが無いサーバーの場合、オンラインバックアップでも構いませんが、念の為シングルユーザーモードに移行してバックアップを実行します。

    $ sudo init 1
    
    201402072337BDUC04.png

    201402072337BDUC05.png
  4. ネットワーク設定とNFSマウント

    ネットワーク設定を行った後、dumpコマンドで出力するダンプファイルを保存するフォルダをNFSでマウントします。

    # ifconfig eth1 192.168.0.10
    # mount -o rw 192.168.0.90:/backup /mnt
    # df
    
    201402072337BDUC06.png
    201402072337BDUC07.png
  5. バックアップの実行

    バックアップ対象サーバーのマウントポイントごとに、ダンプします。
    今回は、/および、/bootをバックアップ対象とし、tmpfsは、バックアップ対象外とします。

    # dump -b 32 -0f /mnt/`hostname`_lv_root.dump /dev/mapper/VolGroup-lv_root
    # dump -b 32 -0f /mnt/`hostname`_boot.dump /dev/sda1
    
    201402072337BDUC08.png
    201402072337BDUC09.png

    ダンプが終了すると、NFSマウントしたマウント先にダンプファイルが出力されますので、NFSマウントを解除します。

    # ls -l /mnt
    # umount /mnt
    
    201402072337BDUC10.png

レスキューモードの起動

ダンプが終了しましたので、リストア対象サーバーにリストアを行います。
なお、リストア対象サーバーは、OSがインストールされていない新規サーバーです。

  1. レスキューモードの起動

    CentOSのインストールCDを用いて、リストア対象サーバーを起動します。
    ブートメニューが表示されたら、Rescue Installed Systemを選択します。

    201402072337BDUC11.png
  2. 言語とキーボードの指定

    Rescueモードを選択すると、言語とキーボードレイアウトを選択します。
    なお、言語選択では、日本語も選択できますが、Warningが表示されるため、英語を選択して下さい。

    201402072337BDUC12.png
    201402072337BDUC13.png
  3. ネットワーク指定

    ネットワークを開始するか確認されますので、Noを選択します。

    201402072337BDUC14.png
  4. レスキュー処理の選択

    既存のLinuxシステムがある場合、Continueを選択しますが、今回は新規サーバーのレスキューとなりますので、Skipを選択します。

    201402072337BDUC15.png
  5. レスキューシェルの起動

    shell Start shellを選択して、レスキュー用シェルを起動します。

    201402072337BDUC16.png
    201402072337BDUC17.png

パーティションの準備

レスキューシェルが起動しましたので、新規ディスクのパーティションを作成し、フォーマットを行います。

  1. パーティション作成

    新規のSCSIハードディスクに、パーティションを作成します。
    ここでは、sda1および、sda2(LVM)を作成し、sda1にブートフラグを設定しています。

    201402072337BDUC18.png
    201402072337BDUC19.png
    201402072337BDUC20.png
    201402072337BDUC21.png
    201402072337BDUC22.png
    201402072337BDUC23.png
  2. LVM作成

    バックアップ対象サーバーのディスク情報を元に、LVMを作成します。

    # lvm pvcreate /dev/sda2
    # lvm vgcreate VolGroup /dev/sda2
    # lvm lvcreate --size 512M --name lv_swap VolGroup
    # lvm lvcreate --size 7G --name lv_root VolGroup
    
    201402072337BDUC24.png

    作成した論理ボリューム(LV)を表示します。

    # lvdisplay
    
    201402072337BDUC25.png
  3. ディスクフォーマットとスワップ領域の作成

    作成したパーティションのフォーマットとスワップ領域を作成します。

    # mke2fs -j /dev/sda1
    # mke2fs -j /dev/VolGroup/lv_root
    # mkswap -f /dev/VolGroup/lv_swap
    
    201402072337BDUC26.png
    201402072337BDUC27.png
    201402072337BDUC28.png

データのリストア

パーティションが準備できましたので、NFSサーバーに保存したダンプデータをリストアします。

  1. ダンプデータのマウント

    ネットワークを設定し、NFSサーバーのダンプデータの保存フォルダをマウントします。

    # ifconfig eth0 192.168.0.10
    # mkdir /dump
    # mount -o rw 192.168.0.90:/backup /dump
    # mkdir /dump/tmp
    
    201402072337BDUC29.png
  2. データのリストア

    作成したパーティションをマウントして、対応するダンプデータをリストアします。

    1. rootファイルシステムのリストア
      # mkdir /restore
      # mount -t ext4 /dev/VolGroup/lv_root /restore
      # cd /restore
      # restore -r -T /dump/tmp -f /dump/dump-backup_lv_root.dump
      
      201402072337BDUC30.png
    2. bootファイルシステムのリストア
      # mount -t ext4 /dev/sda1 /restore/boot
      # cd boot
      # restore -r -T /dump/tmp -f /dump/dump-backup_boot.dump
      
      201402072337BDUC31.png

ブートローダーのセットアップ

ここまでの作業で、リストアが完了しましたので、ブートローダーをセットアップします。

  1. chroot環境への移行

    リストアのマウントポイントを仮想ルートディレクトリに設定します。

    # chroot /restore
    
    201402072337BDUC32.png
  2. デバイスの作成

    リストア直後は、デバイスが作成されていませんので、MAKEDEVコマンドで作成します。

    $ MAKEDEV sda
    
  3. GRUBのセットアップ

    grubコマンドを起動し、下記のとおり設定します。

    # grub
    
    root (hd0,0)
    setup (hd0)
    quit
    
    201402072337BDUC33.png
    201402072337BDUC34.png
  4. fstabの修正

    /etc/fstabの/bootデバイスを修正します。

    # vi /etc/fstab
    
    201402072337BDUC35.png

    201402072337BDUC36.png

    ここでは、/dev/sda1をデバイス名として設定しています。

  5. サーバーの再起動

    chroot環境および、レスキュー用シェルをexitで終了すると、GUI画面に戻りますので、 CentOSのインストールCDを取り出した後、reboot Rebootを選択して サーバーを再起動します。

    201402072337BDUC37.png
    201402072337BDUC38.png