今回はバックアップに関して。
アプリケーションサーバ内部で保管している本番データは大切に保存されていなければならない。
内蔵ストレージでRAID構成による冗長化を果たしていても、そのサーバ機器全体に障害が発生してしまった場合はデータ復旧が不可になる恐れがある。
そのために専用ストレージ機器などを別サイトに用意して、データのバックアップを図ることになる。
データのバックアップに必要となるデバイス
まず既存で稼働させているアプリケーションサーバはもちろんのこと。それ以外では下記のデバイスの用意が求められる。
- バックアップサーバ:バックアップ操作の管理とバックアップカタログの管理を行なう
- バックアップクライアント:バックアップ対象データを集めてストレージノードに送信する
- バックアップ用ストレージノード:データをバックアップデバイスに書き込む役割を持つ
- バックアップデバイス:実際にバックアップデータを保管する機器。専用ストレージによる物理ドライブのようにストレージノードと一体化されているか、テープ装置のようにネットワーク接続されている。
バックアップサーバの役割
バックアップサーバにはバックアップカタログの維持という役割がある。
このバックアップカタログにはバックアップ構成とバックアップメタデータに関する情報が含まれている。バックアップ構成にはバックアップの実行タイミング、バックアップ対象となるクライアントデータなどの情報が、バックアップメタデータにはバックアップされたデータに関する情報がそれぞれ含まれている。
バックアップサーバは、まずストレージノードに対してバックアップデバイスに適したバックアップメディアをロードさせる。それと並行して、バックアップクライアントにバックアップ対象のデータを収集させて、ストレージノードへデータ転送するように命令を出す。
そして全てのバックアップ処理が完了した後にバックアップカタログを更新して、また次回のバックアップに備える。
バックアップカタログは稼働しているバックアップサーバの内蔵ドライブ内で保管されていることが多い。
またトラッキング情報の受け取り、という処理も担っており、バックアップクライアントやバックアップ用ストレージノードにリクエストを送る立場なのでその応答を受信する役割も併せ持っている。
バックアップクライアントの役割
バックアップクライアントは、バックアップサーバから受け取った命令、ストレージノードへのバックアップデータの送信を実行する。
バックアップデータ転送後にバックアップメタデータをバックアップサーバに送信(事実上の応答)する。
これまではバックアップサーバがデータ転送まで行なうと誤認識をしており、もしかしたら他の方もそんな認識をされている可能性があるので、強調しておきたい。
バックアップサーバはあくまでバックアップ処理の管理・命令を出すに留まり、実際にバックアップ先(ストレージノード)へデータ転送を行なうのは、アプリケーションサーバやバックアップサーバとは別のホストを用意して、そのホストをバックアップクライアントとして活用して、アプリケーションサーバのバックアップ対象データをストレージノードへ送る処理をする。
このバックアップクライアントは仮想マシンによる処理も可能で、同じ物理サーバ上で複数の仮想マシンを作成し、一方はバックアップサーバとして、もう一方はバックアップクライアントとして活用することも可能である。
※この手法は例の一つであり、冗長性や安全な運用をする上で必ずしも最適な手法ではない。
バックアップ用ストレージノードの役割
バックアップデバイスの制御、という役割も持つストレージノード。
バックアップクライアントからバックアップ対象データを受け取った後に、いったん整理処理を行なってからバックアップデバイスへのデータ転送を行なう。
この転送処理を終えてから、実際に当該データがバックアップデバイスのどの位置に保存されたか、保存された時刻はいつか、追加があったバックアップメタデータをバックアップサーバに送信する。バックアップサーバはこれらの情報を元にバックアップカタログの更新を行なう。
バックアップデバイスの役割
バックアップ用ストレージノードから転送されたデータを保存を行なう。
実際に保存が成功したかどうかはストレージノード側で認識されるケースが多いので応答を発信することはない。
バックアップデバイス側が何かアクションを起こすとしたら、それはデータリストアの際で、ストレージノード側でデータ読み取りに対して提供を行なう。
データリストアに関してはこちらもいつか詳細についての投稿ができたらと思う。
ひとりごと
近所の外出で乗りたかった路線バスを逃し、次の運行までの50分待つのは苦痛だったのでGOアプリでタクシーを配車した。
運転手は60代っぽいシニア男性。スマホをカーナビ代わりにして運転していたのだが、明らかに目的地へのルートが遠回りなのだ。近所だからなんとなくわかる。
それよりもキツかったのが、平気で一時停止の標識を無視して交差点を突っ切っていたこと。タクシードライバー歴が浅いのは仕方ないにしても、運転が不慣れなのは怖くて仕方なかった。
更に不運だったのが前を走っていた車が仮免許の教習車。スピードは遅い、信号の切り替わり時は絶対に無理せず停止、など時間稼ぎらしきこともされて(これは仕方ないのだが)、当初の予想よりも¥1,000以上も高い支払いになってしまった。
路線バスを逃した自分の責任。こう思うことにする。