66
社内サーバーバックアップ作戦/ Amandaによるバックアップ入門 株式会社びぎねっと 大内

社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

社内サーバーバックアップ作戦/Amandaによるバックアップ入門

株式会社びぎねっと 大内 明

Page 2: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

本日のアジェンダ

•  バックアップとは •  びぎねっと社内サーバーについて •  Amandaの紹介 •  Amandaのインストールと設定 •  Amandaバックアップのリストア

Page 3: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

バックアップとは

•  データの複製を作って保管しておき、 トラブル時に復旧できるよう備えること – 間違えて削除してしまった – HDDが死亡した – 地震雷火事親父などによって物理的に壊れた

Page 4: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

バックアップの手段

•  バックアップメディア – CD/DVD – ハードディスク

•  1TBが1万円切ってる

– USBメモリ, SSD – テープ

•  DDS: 容量少なめ・遅い •  Ultrium: 大容量・高速

Page 5: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

バックアップの手段

•  ソフトウェア – Windows: 標準のバックアップ – Mac: Time Machine – Linux: tar(?), Amanda – Acronics True Imageみたいな市販製品

•  ファイルを自力コピーする方法もあり

Page 6: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

バックアップしてますか?

•  個人では今年ぐらいから取るようになった – 自宅Windows機: 標準のバックアップツール – Mac: Time Machine (外付けHDD使用)

•  自宅サーバー破壊事件 – バックアップしておらず……。 –  rm –rf *をルートディレクトリで実行 – ブログを1つ破損

•  バックアップ重要ですね!!!!!!

Page 7: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

社内サーバーのそれまで

•  初代サーバー「sebone」(自作機) – RAIDを組む程度

•  2代目サーバー「sebone2」(HP ML110) – Xenで仮想化

• 仮想化の会社もやってるし、自社にも導入しないと

– やはりRAIDを組む程度 –  「バックアップ取りたいね」とは思っていた

Page 8: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

社内サーバーのそれまで

•  3代目サーバー「orange」(HP ML350) – 業務拡大?によるサーバーの高性能化 – HDDの大容量化(1TB) – 電源の冗長化 – RAID設定 – バックアップを意識してテープドライブ装備

•  しかし「バックアップ取らないとね」と言うだけ • やるやる詐欺

Page 9: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

1ヶ月(?)後……

•  仕事が片付いて暇だった •  ちょうど自宅サーバーを壊した後だった •  実は社内サーバーもrmコマンドで破壊しかけたことがある。

バックアップやろうぜ!

Page 10: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

どうやってバックアップするの?

•  技術部長「まぁ、Amandaでいいじゃない。」 – 有名らしい – 簡単らしい – →じゃあそれで!

•  …ただし、日本語資料は少なかった。 – ググっても5, 6件しかない。本当に有名なの? – オライリーのバックアップ本が判りやすかった

Page 11: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

Amandaとは

•  The Advanced Maryland Automatic Network Disk Archiver の略。

•  メリーランド大学で開発されたパブリックドメインのバックアップユーティリティ

•  2008年12月現在の最新版は2.6.0p2 – CentOSでyumを使った場合は2.5.0p2が最新

•  http://www.amanda.org/

Page 12: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

Amandaの特徴

•  複数マシンのデータを1台のバックアップドライブでバックアップする – クライアントソフトを使用してデータを吸い出す方式

–  1台のみでの利用も、もちろん可能 – Sambaを利用してWindowsマシンのデータをバックアップすることも可能らしい

•  テープバックアップに最適化 – HDD等にもバックアップ可能らしい

Page 13: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

社内サーバーの構成

•  マシン: HP ML350 G5 (ヤフオクで購入) •  ストレージ(HP SmartArray E200i)

– OS用: 80GB SATA*2 (RAID1+0) – 共有スペース: 1TB SATA*2 (RAID1+0) – Amanda用: 250GB SATA*2 (RAID1+0)

•  テープドライブ: HP StorageWorks 960 – Ultrium-3で高速・大容量(400GB/800GB) – テープも含めてヤフオクで購入

Page 14: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

社内サーバーの構成

•  OS: CentOS 5.2 + Xen •  仮想マシンが5台稼働

– ファイルサーバー – 社内Webサーバー –  svnサーバー –  vpnサーバー –  pxeサーバー

Page 15: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

バックアップ計画

•  バックアップするもの – Dom0(Xenの管理OS)の/etc – ファイルサーバーの共有部分と、/etc – 社内WebサーバーのWebデータ

•  バックアップサイクル – 平日(月~金)の25:00にフルバックアップ – 土日はバックアップしない

• 会社がお休み。 • 平日祝日のバックアップどうしよう?

Page 16: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

Amanda導入の流れ

•  インストール •  設定

– サーバー(バックアップ処理を実行するマシン) – クライアント(バックアップ対象のマシン)

•  テープの用意 •  設定確認 •  バックアップ実行

Page 17: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

インストール(サーバー側)

インストール先: Dom0 •  yumでインストール

–  # yum –y install amanda-server

•  xinetdの設定(disable=noに変更) –  /etc/xinetd.d/amanda (Amandaサーバ) –  /etc/xinetd.d/amandaidx (リストア時に使用) –  /etc/xinetd.d/amidxtape (リストア時に使用)

•  xinetdを再起動 –  # service xinetd restart

Page 18: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

インストール(クライアント側)

インストール先:  Dom0, ファイルサーバー, Webサーバー

•  yumでインストール –  # yum –y install amanda-client

Page 19: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

hostsの設定

•  Amamdaはhosts設定重要 – ホスト名を使用して通信するため

•  弊社での設定例 # Dom0 192.168.100.8 orange.office.begi.net orange

# File Server 192.168.100.10 sebone3.office.begi.net sebone3

# Web Server 192.168.100.13 ginjiro.office.begi.net ginjiro

Page 20: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

Amandaの各種設定、の前に

•  Amandaの設定ファイルは、amandaユーザになってから編集する –  # su amanda

•  設定を行うのは次の2つのディレクトリ –  /etc/amanda/ –  /var/lib/amanda

Page 21: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amandahostsの設定

•  /var/lib/amanda/.amandahostsを編集 – FQDN名とバックアップユーザ名を指定

•  サーバー側

•  クライアント側

orange.office.begi.net amanda # バックアップ用 orange.office.begi.net root # リストア用 sebone3.office.begi.net amanda sebone3.office.begi.net root ginjiro.office.begi.net amanda ginjiro.office.begi.net root

orange.office.begi.net amanda

Page 22: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

バックアップの設定準備

•  /etc/amanda/DailySet1をバックアップする – 設定ミスに備えるため –  $ cd /etc/amanda

$ cp –a DailySet1 DailySet1.original •  DailySet1ディレクトリに入り、tapelistファイルを作成 –  $ cd DailySet1 –  $ touch tapelist; chmod 660 tapelist

Page 23: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amanda.confの設定(1/7)

•  バックアップに関する基本的な設定を行う – バックアップのサイクル – テープドライブのパス – テープドライブの種類 – ホールドディスク – バックアップ対象ディレクトリの設定

•  サンプルは設定項目が多いが、 大体はデフォルト設定のままで良い

Page 24: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amanda.confの設定(2/7)

•  org “DailySet1” –  設定名。ディレクトリ名と同じ名前にする。

•  mailto “[email protected]” –  通知メールの送信先を指定する。

•  dumpuser “amanda” –  バックアップユーザーを指定。変更しない

•  netusage 100000Kbps –  バックアップ時の転送速度の指定。誰もいない夜間に バックアップするので、帯域は適当に大きくとった。

org ”DailySet1” # your organization name for reports mailto "[email protected]” # space separated list of operators .. dumpuser "amanda" # the user to run dumps under

netusage 100000 Kbps # maximum net bandwidth for Amanda, ...

Page 25: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amanda.confの設定(3/7)

•  月~金にフルバックアップする例

•  dumpcycle 0 weeks –  フルバックアップのサイクルを指定

•  runspercycle 0 days – 差分バックアップのサイクルを指定

•  tapecycle 5tapes –  1サイクルあたりに使用するテープの本数

dumpcycle 0 weeks # the number of days in the normal ... runspercycle 0 days # the number of amdump runs in dumpcycle.. tapecycle 5 tapes # the number of tapes in rotation...

Page 26: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

バックアップサイクル

•  差分バックアップも可能 •  1週間に1回フルバックアップして、 次のフルバックアップまでの間に 3回差分バックアップを取る例

•  現在研究中 •  Amandaの設定で一番難しいポイント

dumpcycle 1 weeks # the number of days in the normal ... runspercycle 4 days # the number of amdump runs in dumpcycle.. tapecycle 5 tapes # the number of tapes in rotation...

Page 27: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amanda.confの設定(4/7)

•  tapetype: テープドライブの種類 – 次のページでドライブの設定を探して 設定ファイルの最後に書き加える http://wiki.zmanda.com/index.php/Tapetype_definitions

•  labelstr: テープの命名規則 – 正規表現が使用可能。 –  DailySet1-01, DailySet1-02 ...のようになる。

tapetype HP-Ultrium-960 # what kind of tape it is ... labelstr ”^DailySet1-[0-9][0-9]*$" # label constraint regex: ...

Page 28: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amanda.confの設定(5/7)

•  保持ディスクの設定 –  各クライアントから集めたダンプデータを置く場所

•  directory –  /dunpsを作成して250GBのAmanda用ディスクにマウント –  /dumps/amandaディレクトリを作成(所有者をamandaユーザーに)

•  use: 200GBを確保。「-50000 Mb」を指定しても大体同じ •  chunksize: 2GB以上のファイルを扱えないOSでは2GBに設定する。そうでなければ大きめにとる。

holdingdisk hd1 { comment “main holding disk” # コメント directory “/dumps/amanda” # 保持ディスクの場所 use 200000 Mb # 保持ディスクとして利用できる容量 chunksize 100Gb # チャンクサイズ }

Page 29: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amanda.confの設定(6/7)

•  infofile –  バックアップのデータベースを格納するディレクトリ。 –  特に変更しない。ディレクトリを作成する必要はない。

•  logdir –  ログを格納するディレクトリ。

•  indexdir –  インデックスを格納するディレクトリ –  特に変更しない。ディレクトリを作成する必要はない。

infofile "/etc/amanda/DailySet1/curinfo" # database DIRECTORY logdir "/etc/amanda/DailySet1" # log directory indexdir "/etc/amanda/DailySet1/index" # index directory

Page 30: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amanda.confの設定(7/7)

•  バックアップ方法(dumptype)の設定 –  define dumptype global設定のindex yesのコメントアウトを削除する(リストア時に必要になる)

•  グローバル設定の下に、それぞれのバックアップ方法の設定が記述されている –  この中にある設定を、disklistファイルで指定する。

define dumptype global { comment "Global definitions

(略) index yes # コメントアウトを外す (略)

}

Page 31: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

disklistの設定 •  バックアップを取る場所の指定 •  バックアップ方法(dumptype)の指定 #書式 # <ホスト名> <パス> <dumptype>

# ファイルサーバー  sebone3.office.begi.net /etc comp-user-tar # 設定ファイル  sebone3.office.begi.net /home comp-user-tar-sebone # 共有部分 # 社内WebサーバーのWebデータ部分  ginjiro.office.begi.net /var/www/html comp-user-tar # Dom0で利用しているAsteriskの設定データ  orange.office.begi.net /etc comp-user-tar

Page 32: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

使用したdumptype(1/2) •  comp-user-tar

•  comp-user-tar-sebone (ファイル共有部分用)

define dumptype comp-user-tar { user-tar # user-tarの設定を読み込み compress client fast # クライアント側で高速圧縮をかける }

define dumptype comp-user-tar-sebone { user-tar compress client fast exclude “./diskimage” # LinuxなどのISOイメージを排除している }

Page 33: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

使用したdumptype(2/2)

•  user-tar-compで読み込んだ設定 define dumptype user-tar { root-tar # root-tarの設定を読み込む comment "user partitions dumped with tar" priority medium # 優先度は中 }

define dumptype root-tar { global program “GNUTAR” # GNU TARを使用 comment "root partitions dumped with tar" compress none # 圧縮しない index # ? # exclude list “/etc/amanda/exclude.gtar” # 除外のサンプルらしい priority low # 優先度は低 }

Page 34: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

テープの準備

•  ラベルを書き込む –  $ amlabel –f <設定名> <ラベル名> –  -fは強制でラベルを設定するという意味 – ラベル番号は1から始まる(0ではない)

$ amlabel -f DailySet1 DailySet1-01 changer: got exit: 0 str: 3 /dev/nst0 labeling tape in slot 3 (/dev/nst0): rewinding, reading label, not an amanda tape (Cannot allocate memory) rewinding, writing label DailySet1-01, checking label, done.

Page 35: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

設定の確認

•  amcheckコマンドを実行 –  $ amcheck DailySet1

•  エラーが無ければ準備完了! •  エラーがあったら、設定を見直す

–  hosts, .amandahostsの設定 –  amanda.confの設定 – ファイヤーウォールが設定されていれば、ポート解放(10080/udp, 10082/tcp, 10083/tcp)

Page 36: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

設定の確認(実行例) $ amcheck DailySet1 Amanda Tape Server Host Check ----------------------------- Holding disk /dumps/amanda: 227924984 KB disk space available, that's plenty slot 16: read label `DailySet1-01', date `X'

NOTE: skipping tape-writable test Tape DailySet1-01 label ok Server check took 0.277 seconds

Amanda Backup Client Hosts Check -------------------------------- Client check: 3 hosts checked in 0.051 seconds, 0 problems found

(brought to you by Amanda 2.5.0p2)

Page 37: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

バックアップの実行

•  amandaユーザーでamdumpコマンドを実行 –  $ amdump DailySet1

•  バックアップ中のステータスは、amstatusコマンドで確認可能 –  $ amstatus DailySet1 – ダンプの進行状況などが確認できる

•  バックアップが完了するとメールが送信される

Page 38: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

バックアップ完了通知メール

These dumps were to tape DailySet1-01. The next tape Amanda expects to use is: DailySet1-02.

STATISTICS: Total Full Incr. -------- -------- -------- Estimate Time (hrs:min) 0:00 Run Time (hrs:min) 1:38 Dump Time (hrs:min) 1:24 1:24 0:00 Output Size (meg) 44362.8 44362.8 0.0 Original Size (meg) 51459.5 51459.5 0.0 Avg Compressed Size (%) 86.2 86.2 -- Filesystems Dumped 4 4 0 Avg Dump Rate (k/s) 9046.3 9046.3 --

Tape Time (hrs:min) 0:13 0:13 0:00 Tape Size (meg) 44363.0 44363.0 0.0 Tape Used (%) 11.5 11.5 0.0 Filesystems Taped 4 4 0

Page 39: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

バックアップ完了通知メール

Chunks Taped 0 0 0 Avg Tp Write Rate (k/s) 59898.7 59898.7 --

USAGE BY TAPE: Label Time Size % Nb Nc DailySet1-01 0:13 45427680K 11.5 4 0

NOTES: taper: tape DailySet1-01 kb 45427680 fm 4 [OK]

DUMP SUMMARY: DUMPER STATS TAPER STATS HOSTNAME DISK L ORIG-KB OUT-KB COMP% MMM:SS KB/s MMM:SS KB/s -------------------------- ------------------------------------- ------------- ginjiro.offi -r/www/html 0 24420 17696 72.5 0:07 2406.0 0:04 4998.7 orange.offic /etc 0 420 160 38.1 0:00 316.7 0:02 71.9 sebone3.offi /etc 0 104780 14560 13.9 0:11 1305.7 0:05 3125.4 sebone3.offi /home 0 52564872 45395264 86.4 83:23 9073.9 12:28 60690.1

(brought to you by Amanda version 2.5.0p2)

Page 40: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

感動する

Page 41: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

cronにジョブ登録

•  /etc/amanda/crontab.sampleを参考にする •  今回の設定

– 月曜日~金曜日の17時にテープチェック •  amcheck –mは、エラー時にメールを送信する

– 月曜日~金曜日の25時にバックアップ実行

•  amandaユーザーで「crontab –e」コマンドを実行して、cron設定を記述する 0 17 * * 1-5 /usr/sbin/amcheck -m DailySet1 0 1 * * 2-6 /usr/sbin/amdump DailySet1

Page 42: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

リストア

•  リストアするまでがバックアップです。 –  「家に着くまでが遠足です」

•  おおよそ3種類のリストア方法 – Amandaのバックアップデータベースを利用

•  amrecoverによるリストア •  amrestoreによるリストア

– Amandaを利用しないリストア •  ddコマンド

Page 43: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

バックアップデータベース

•  設定ファイルのディレクトリ下に配置される •  データベースが壊れると、amandaのリストアコマンドが使えないらしい – ちょっと面倒

•  データベースのバックアップも重要! – テープではなく別のサーバーなどにコピーする

• テープの場合、最新の1つ前のデータベースが バックアップされるため

Page 44: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amrecoverによるリストア

•  対話式のリストアツール •  バックアップデータベースを利用 •  ファイル毎のリストアが可能 •  リストアするデータの日付・パス、展開先を指定するだけ

•  リストアに必要なテープを指示通りに入れると自動的にリストアしてくれる

Page 45: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amrecoverによるリストア

•  データをリストアしたいクライアント上の rootユーザーでamrecoverコマンドを実行

–  -s : バックアップサーバー –  -t : テープドライブのあるサーバー

• 大体は-sで指定するサーバーと同じ –  -C : 設定名

# amrecover ‒s sebone ‒t sebone ‒C DailySet1

Page 46: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amrecoverによるリストア演習

•  社内Webの画像をリストアしてみる – 弊社相談役・旭山銀次郎のイラスト(絵:私) – 社内Webの入口はこんな感じ

•  とりあえずrmで削除 –  ……ではなく、失敗したと時の ために、mvでリネーム

Page 47: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amrecoverによるリストア演習

•  Webサーバーの端末からamrecoverを実行 –  rootユーザーでOK # amrecover -s orange -t orange -C DailySet1 AMRECOVER Version 2.5.0p2. Contacting server on orange ... 220 orange AMANDA index server (2.5.0p2) ready. 200 Access OK Setting restore date to today (2008-11-12) 200 Working date set to 2008-11-12. Scanning /dumps/amanda... 200 Config set to DailySet1. 200 Dump host set to ginjiro.office.begi.net. Trying disk / ... Trying disk rootfs ... Can't determine disk and mount point from $CWD '/root' amrecover>

Page 48: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amrecoverによるリストア演習

•  バックアップされているディスクを確認して マウントする amrecover> listdisk ← ディスクの確認 200- List of disk for host ginjiro.office.begi.net 201- /var/www/html 200 List of disk for host ginjiro.office.begi.net amrecover> setdisk /var/www/html ← マウント 200 Disk set to /var/www/html. amrecover> ls ← バックアップ中の/var/www/htmlの一覧を表示 2008-11-12 wiki/ 2008-11-12 top.png ← リストアしたいファイル (略) 2008-11-12 . amrecover>

Page 49: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amrecoverによるリストア演習

•  対象のファイルをリストア対象に追加する

•  データのリストア先を指定する

amrecover> add top.png Added /top.png amrecover>

amrecover> lpwd ← Local側のpwdみたいな意味らしい /root amrecover> lcd /var/www/html ← Local側のcdみたいな意味らしい amrecover>

Page 50: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amrecoverによるリストア演習

•  リストアの実行 amrecover> extract

Extracting files using tape drive null: on host orange. The following tapes are needed: DailySet1-02

Restoring files into directory /var/www/html Continue [?/Y/n]? Y ← /var/www/htmlに展開して良いですか

Extracting files using tape drive null: on host orange. Load tape DailySet1-02 now Continue [?/Y/n/s/t]? Y ← DailySet1-02 をセットしてYを入力 ./top.png ← 展開されると出力される amrecover>

Page 51: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amrecoverによるリストア演習

•  リストアの確認

•  大成功!

amrecover> exit 200 Good bye. # ls /var/www/html blog files index.php style.css top.png.orig enter.gif geekowiki screenshot top.png wiki #

Page 52: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

感動する

 *     +    巛 ヽ

            〒 !   +    。     +    。     *  。

      +    。  ¦  ¦

   *     +   / /   イヤッッホォォォオオォオウ!

       ∧_∧ / /

      (´∀` / / +    。     +    。   *     。

      ,-     f

      / ュヘ    ¦ *     +    。     +   。 +

     〈_} )   ¦

        /    ! +    。     +    +     *

       ./  ,ヘ  ¦

 ガタン ¦¦¦ j  / ¦  ¦ ¦¦¦

Page 53: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amrestoreによるリストア

•  ディスク単位のリストアツール –  disklistで指定したバックアップ対象ごと

•  バックアップデータベースを利用

•  確認作業などはamandaユーザーで実行 •  リストアはrootユーザーで実行

Page 54: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amrestoreによるリストア演習

•  現在のファイルサーバーのバックアップ状況を調べる -bash-3.2$ /usr/sbin/amadmin DailySet1 find Scanning /dumps/amanda... Scanning /dumps/amanda...

date host disk lv tape or file file part status 2008-11-06 sebone3.office.begi.net /etc 0 DailySet1-03 2 -- OK 2008-11-07 sebone3.office.begi.net /etc 0 DailySet1-04 2 -- OK 2008-11-08 sebone3.office.begi.net /etc 0 DailySet1-05 2 -- OK 2008-11-11 sebone3.office.begi.net /etc 0 DailySet1-01 3 -- OK 2008-11-12 sebone3.office.begi.net /etc 0 DailySet1-02 3 -- OK 2008-11-06 sebone3.office.begi.net /home 0 DailySet1-03 4 -- OK 2008-11-07 sebone3.office.begi.net /home 0 DailySet1-04 4 -- OK

: (略) :

Page 55: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amrestoreによるリストア演習

•  11/06にバックアップしたファイルサーバーの/etcをリストアしてみる –  /root/testを作業ディレクトリとした # amrestore /dev/nst0 sebone3 /etc  ←amrestore テープドライブ ホスト名 パス amrestore: missing file header block amrestore: WARNING: not at start of tape, file numbers will be offset amrestore: 1: skipping orange.office.begi.net._etc_asterisk.20081106.0 amrestore: 2: restoring sebone3.office.begi.net._etc.20081106.0 amrestore: 3: skipping ginjiro.office.begi.net._var_www_html.20081106.0 amrestore: 4: skipping sebone3.office.begi.net._home.20081106.0 amrestore: 5: reached end of tape: date 20081106 # ls sebone3.office.begi.net._etc.20081106.0  ←リストア……された?

Page 56: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

amrestoreによるリストア演習

•  sebone3.office.begi.net._etc.20081106.0の正体はtarファイル

•  大成功!

# tar xvf sebone3.office.begi.net._etc.20081106.0 ←展開 ./ ./NetworkManager/ ./X11/ ./X11/applnk/ (略) # ls ←確認してみる DIR_COLORS hosts protocols DIR_COLORS.xterm hosts.allow quotagrpadmins (略)

Page 57: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

感動する

 *     +    巛 ヽ

            〒 !   +    。     +    。     *  。

      +    。  ¦  ¦

   *     +   / /   イヤッッホォォォオオォオウ!

       ∧_∧ / /

      (´∀` / / +    。     +    。   *     。

      ,-     f

      / ュヘ    ¦ *     +    。     +   。 +

     〈_} )   ¦

        /    ! +    。     +    +     *

       ./  ,ヘ  ¦

 ガタン ¦¦¦ j  / ¦  ¦ ¦¦¦

Page 58: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

Amandaを利用しないリストア

•  障害などによってバックアップデータベースが壊れたときに覚えておくべき方法

•  Amandaのテープフォーマットはシンプル – 各イメージの先頭32KBにイメージの情報 – それ以降にイメージが格納されている

•  mtコマンドとddコマンドでテープから取りだしが可能……のはず – ここはスライドを作りながら練習中(!)

Page 59: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

Amandaを使わないリストア演習

•  テープの中身のイメージ

•  テープのヘッダを表示 # mt ‒f /dev/st0 rewind # dd if=/dev/nst0 bs=32k count=1 ←テープ先頭から32KB分読み込む AMANDA: TAPESTART DATE 20081106 TAPE sebone-03 014 1+0 records in 1+0 records out 32768 bytes (33 kB) copied, 0.081231 seconds, 403 kB/s # dd if=/dev/nst0 bs=32k ←よくわからないなにかを読み飛ばす

テープの ヘッダ(32KB)

よくわからないなにか

イメージ1のヘッダ(32KB)

イメージ1 イメージ2のヘッダ(32KB)

イメージ2 つづく……

Page 60: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

Amandaを使わないリストア演習

•  テープの中身のイメージ

•  イメージ1のリストア # dd if=/dev/nst0 bs=32k count=1 ← ヘッダの取りだし AMANDA: FILE 20081106 orange.office.begi.net /etc lev 0 comp .gz program /bin/tar ← Dom0の/etcらしい To restore, position tape at start of file and run:

dd if=<tape> bs=32k skip=1 ¦ /bin/gzip -dc ¦ /bin/tar -f... ‒ (ddの出力結果略) # dd if=/dev/nst0 of=1106-orange-etc bs=32k ← イメージ1の取りだし # tar xf 1106-orange-etc # ls 1106-orange-etc host.conf quotatab DIR_COLORS hosts racoon

テープの ヘッダ(32KB)

よくわからないなにか

イメージ1のヘッダ(32KB)

イメージ1 イメージ2のヘッダ(32KB)

イメージ2 つづく……

Page 61: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

感動する

 *     +    巛 ヽ

            〒 !   +    。     +    。     *  。

      +    。  ¦  ¦

   *     +   / /   イヤッッホォォォオオォオウ!

       ∧_∧ / /

      (´∀` / / +    。     +    。   *     。

      ,-     f

      / ュヘ    ¦ *     +    。     +   。 +

     〈_} )   ¦

        /    ! +    。     +    +     *

       ./  ,ヘ  ¦

 ガタン ¦¦¦ j  / ¦  ¦ ¦¦¦

•  これでHDDが丸ごと逝っても安心です(?) ……テープも一緒に壊れていなければ。

Page 62: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

•  テープの入れ替え忘れ – テープチェック時にはき出される – 次のテープを入れてもはき出してしまう

• !?

– サーバーにログインして、テープチェックプロセスをkillしなくてはいけなくなる、らしい。

– 年末年始はどうなるの……(笑) – ToDo: 正しい対処法を調べる

実運用中のプチトラブル

Page 63: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

まとめ

•  Amandaの使い勝手 – 設定は若干難しいというか複雑・面倒 – 設定の山を越えれば、後は簡単!

•  バックアップ重要!! – データを失う辛さに比べたら バックアップの面倒さなんてちっぽけなもの

–  1週間ぐらいで洗脳される • バックアップジュウヨウ、バックアップジュウヨウ、バックアップジュウヨウ……

Page 64: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

参考文献

•  Unixバックアップ&リカバリ (オライリージャパン)

•  amandaを使ってLTOにバックアップ –  http://www.ait.pref.akita.jp/~kurosawa/

backup.html •  その他のページは、はてなブックマークに いくつか登録してます –  http://b.hatena.ne.jp/Akkiesoft/バックアップ/

Page 65: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

宣伝

•  日本Amandaユーザ会作りました。 – なさそうだったので

•  Amandaのさらなる活用を探る!(?) •  参加はmixiコミュニティへ

–  http://mixi.jp/view_community.pl?id=3816284 – 現状: びぎねっとによる自演コミュ状態 – 既に放置

Page 66: 社内サーバーバックアップ作戦/ - begi.netbegi.net/files/081213OSCFukuoka-Amanda.pdf · amanda.confの設定(5/7) • 保持ディスクの設定 – 各クライアントから集めたダンプデータを置く場所

バックアップで今日も安心!

 *     +    巛 ヽ

            〒 !   +    。     +    。     *  。

      +    。  ¦  ¦

   *     +   / /   イヤッッホォォォオオォオウ!

       ∧_∧ / /

      (´∀` / / +    。     +    。   *     。

      ,-     f

      / ュヘ    ¦ *     +    。     +   。 +

     〈_} )   ¦

        /    ! +    。     +    +     *

       ./  ,ヘ  ¦

 ガタン ¦¦¦ j  / ¦  ¦ ¦¦¦