2010年3月2日火曜日

Windows クライアントのお約束

今日は bacula にかかわらず、
ネットワークバックアップソフトでのお約束設定をご紹介。

その設定とは、

 I).NICの優先順位を設定
 II).バックアップ側NICのDNS自動登録の解除

この優先順位が適当だと、

ADのDNSへックアップセグメントのIPを登録されてしまい
名前解決を邪魔したりなんかで結構困っちゃいます。

XP、2003、2008、みんな似たような画面ですが。。。

1).「詳細設定」→「詳細設定」(なんだか日本語が変)


2).画面上部の「接続」内で、優先する(サービス提供側)を上部に移動します
 順位の上下は右の「↑」「↓」で設定できます。
 また、画面上部の「バインド」内でバックアップセグメント側のチェックを外しておきます。これでバックアップセグメント側でSMBを話さなくなります。


もう一箇所大事な設定。

上記の1)、2)とは別場所の設定ですが。。。
バックアップ側のNICのDNS自動登録設定を無効にします。

画面下の「この接続のアドレスをDNSに登録する」のチェックを外します。


ご参考までということで。

2010年2月25日木曜日

Bacula Director の設定ファイル

Bacula をはじめるにあたって。。。

確実にハマること、
それは、「Directorの設定」。
(他にもいっぱいハマリどころはありますが。)

何はさておき、「Directorの設定」じゃないですかね?
実はわたしも、はじめの1週間程度は「ピクりとも」動かせませんでした。

商用のバックアップソフトは、
仕様がわからなくとも
「とりあえず動かす」ことがなんとなくできてしまいます。
が、Baculaの設定は容赦なく厳しいのです。
「マニュアル読み癖」が無い方には特に。。。

しかし、設定を難しくしている要因は、それだけではないのです。
わたしが思うに、(あくまで個人的な意見ですが。)

 bacula-dir.conf にすべての要素を持たせ過ぎ。

これに尽きると思います。
バックアップ対象やジョブが増えたりすると設定ファイルが長すぎるものになってしまい、メンテが繁雑になる傾向があります。(画面のスクロールだけではとても。。。)

まあ、エディタの検索機能を生かし、目印になるコメントでやりくりする手もアリでしょう。

前置きが長くなりましたが、
おすすめは、「管理しやすい単位に設定ファイルを分けること」です。

わたしの場合は、

 ジョブ(クライアントごと)
 クライアント定義
 スケジュール
 ストレージ
 プール

をbacula-dir.confとは別ファイルにしています。
すると、X上でタブ機能のあるエディタを設定に利用すると非常に便利です。

他ファイルを読み込むためには「@」を使います
例えば、こんな感じ。

#クライアント設定
@/etc/bacula/sharedconf/clients.conf




いかかでしょう?

2010年2月23日火曜日

Bacula構成事例〜その1

今日はかなり短かめに。。。

事例紹介です。
実際はもう少し台数があったり、
セグメント数が違ったり、
若干コンディションは違いますが、

雰囲気はこんな感じです。

・バックアップサーバはCentOS5.3 + MySQL5.? + Bacula3.0系
・バックアップ対象はLinux とWindows Server 2003
・全てのサーバにはNIC2枚以上を搭載
 ※必要によってチーミング、バックアップサーバのNICはチーミングしておくと良いかも。
・セグメントごとに、バックアップ用セグメントを構築
・バックアップに必要なポート以外は閉じる
 ※ICMPぐらいは通しても良いかな?

目玉は、ファイルサーバかな?
ファイル数200万+、容量50GB+ 程度を2.5時間かかりません。

レストアもBAT上でファイルバージョンを簡単に比較できるので楽チン!


2010年2月22日月曜日

BaculaでDRその2

Server 2008 で実験してみました。
で結果は。。。

XPで成功したVSS(Volume Shadow Copy Service)を利用したフルバックアップ。
同じ要領でファイルセットを定義。

フルバックアップを取得後、VM上でPE3.0を起動しレストア

。。。起動しない

ガックリ。

何か上手い方法があるのかも知れませんが、
はやりのオンラインイメージ取得は無理のようです。
(VSSだけでは取れないように、某MS社が細工をしているのかも。。。)

で、やられっぱなしでは悔しいので別な方法にトライ!
オンラインイメージバックアップが無理ならオフライン。

CD起動のLinuxからブロックデバイス経由で起動ディスク(/dev/sda)
を取得してみました。

結果はOK!

ちゃんと起動します。
これなら使えそうですね。

2010年2月16日火曜日

BaculaでDRその1

ただいま検証中。

某プロジェクトでは、Baculaはファイルバックアップオンリーでした。
とはいえ、マニュアルにはDRについても記載があったので、気になっていました。

。。。で、検証してみました。

テスト環境は、

サーバはCentOS
バックアップ対象はWinXP

ファイルのバックアップは、VSS(ボリュームシャドウコピー)ですべてのファイルを取得。
VSSではオープンファイルも取れるので、何事もなく取得完了。

2.6GBを11分程度で完了。
とはいっても、仮想化環境なのであまり参考にはなりませんが。。。

レストアは新たに準備した仮想マシン上で

 PE3.0を起動
 disk part でパーティションを作成後、
 ntfsでフォーマット。
 アクティブパーティションを作り、
 bacula-fdを起動。

(この間10分程度)

でDirector上でレストアジョブを流す。
5分弱でレストア完了。

bootsectツールでMBRを更新

で、再起動。
何事もなく起動。

。。。ちょっと感動、あっさりすぎ。
baculaの古いマニュアルには、
「所有者やアクセス権がちゃんともどらないかも?」
的な記述もありましたが、

現行バージョンではざっくり見た感じ問題なさそうです。

今後は2008 Server + AD 等、もう少しリアリティのある環境で検証してみます。

2010年2月13日土曜日

BATの導入

1.依存パッケージの導入

 1).Xソフトウェア開発の導入
 アプリケーション→ソフトウェアの追加/削除
 開発→Xソフトウェア開発にチェック (35 of 43)
 (※ホントはもっと対象を絞れるかもしませんが。)

 2).QTの導入
 QTのパッケージの取得
  wget ftp://ftp.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.0.tar.gz
 tar等で解凍
  tar -xvzf qt-everywhere-opensource-src-4.6.0.tar.gz
 解凍先のフォルダ内で
  ./configure

 しばらく待つと
 Which edition of Qt do you want to use ?

 Type 'c' if you want to use the Commercial Edition.
 Type 'o' if you want to use the Open Source Edition.

 o(oとタイプしEnter)

 This is the Qt for Linux/X11 Open Source Edition.
  (中略)
 Do you accept the terms of either license? yes(yesとタイプしEnter)

make (3〜4時間かかる場合もあります)
make install

 パスを通す
 PATH=$PATH:/usr/local/Trolltech/Qt-4.6.0/bin/
 export PATH

2.BATのビルド

 rpmbuild --rebuild bacula-bat-5.0.0-1.src.rpm

 30分程度でビルド完了です。

bacula 5のCentOSへの導入

今回はbaculaの導入例を紹介します。
導入例といっても、とっかかりのパッケージのビルドの部分です。

 なぜソースからのビルドをするのかというと、
 なんとなく安定している気がする。特にGUIのツールが。
 (感覚的な表現で申し訳ないが。。。)

手順は多少面倒かも知れませんが、実際やってることは単純です。

今回は、1月26日に公開されたバージョン5.0.0で、
カタログDBにPostgreSQLバージョン8.4を使います。
(MySQLの例が多いのであえてのPostgreSQLです)

1.PostgreSQLの導入

 1).初期レポジトリからPostgreSQLの除外

 /etc/yum.repos.d/CentOS-Base.repoを編集
 [base]と[updates]セクション内最後にそれぞれ

 exclude=postgresql*

 を追記する

 2).レポジトリの追加

 wget http://yum.pgsqlrpms.org/reporpms/8.4/pgdg-centos-8.4-1.noarch.rpm
 rpm -ivh pgdg-centos-8.4-1.noarch.rpm

 3).パッケージの導入
 
 yum install postgresql-server

 備考:導入されたパッケージの一覧
  compat-postgresql-libs-4-1PGDG.rhel5.i686.rpm
  apr-util-1.2.7-7.el5_3.2.i386.rpm
  postgresql-libs-8.4.2-1PGDG.rhel5.i386.rpm
  postgresql-8.4.2-1PGDG.rhel5.i386.rpm
  postgresql-server-8.4.2-1PGDG.rhel5.i386.rpm

 ソースからのビルドに必要なので次の開発パッケージも導入
 
 yum install postgresql-devel

 備考:導入されたパッケージの一覧
  postgresql-devel-8.4.2-1PGDG.rhel5.i386.rpm

2.パッケージのビルド

 rpmbuild --rebuild --define "build_centos5 1" --define "build_bat 1" --define "build_postgresql 1" bacula-5.0.0-1.src.rpm

あっさりビルド完了。

 備考:ビルドされたパッケージの一覧
  /usr/src/redhat/RPMS/i386/bacula-postgresql-5.0.0-1.i386.rpm
  /usr/src/redhat/RPMS/i386/bacula-client-5.0.0-1.i386.rpm
  /usr/src/redhat/RPMS/i386/bacula-updatedb-5.0.0-1.i386.rpm
  /usr/src/redhat/RPMS/i386/bacula-debuginfo-5.0.0-1.i386.rpm

CUI(bconsole)だけで利用する場合はこれだけで準備OKなのですが、正直運用するにはちょっと大変です。
baculaにはBAT(Bacula Administration Tool)というGUIのツールがあるのでこれを導入しときましょう。

次回は、BATのビルドについて書きます。

※BATのビルドが面倒な場合はwin版のパッケージもあるのでそちらを利用するのも良いかも知れません。