スナップショット機能によるバックアップ

バックアップについての最終回はストレージの機能を利用した俗に言うスナップショット機能によるバックアップについて書きたいと思います。

最近のバックアップ事情では24時間止めずにバックアップが取れることが重要になってきています。詳しくはこちらをお読みくださいバックアップだけでは止められない - 誰かに任せておけないストレージ
バックアップ時間を短縮し、オンラインでのバックアップを取得する方法としてストレージの世界でずっと使われてきた手法としてストレージ内部のコピー機能を使ったバックアップがあります。

ストレージのコピー機能とは大きく分けて2種類の方法があります。

  • クローン(コピー)機能
  • スナップショット機能

クローン(コピー)機能とは、ストレージ内部に管理者が指定したボリュームとまったく同じデータをコピーしてくれる機能です。またそのコピーされた領域は別のサーバにマウントして中のデータを見せることができるため、バックアップのときに「コピー ⇒ バックアップサーバにマウント ⇒ バックアップサーバにてバックアップ取得 ⇒ マウント削除」という一連の流れでアプリケーションが動いている本番サーバには一切の負荷をかけずにバックアップを取得することが可能です。24時間稼動し続けるという目的としては、本番サーバに負荷がかからない、本番のボリュームではなくバックアップ専用のボリュームができるというポイントから考えてオンラインに近いバックアップの手法として使うことができます。

注意点としては、バックアップは重要 - 誰かに任せておけないストレージに書かれてしますが、バックアップを取得するためには静止点を作る必要があります。データのコピーをする前に本番データの静止点をいかにして作るかを考えてバックアップの取得方法を考えましょう。

もうひとつの方法としてスナップショットバックアップがあります。スナップショットとは上記のクローン(コピー)機能のようにデータのコピーを作るわけではなく、ポインタと呼ばれるどこにどのようなデータが入っているのかというメタデータだけをコピーする方法です。ポインタが2つ作られればそのデータをもとにサーバへのマウント処理が行えるため、1つのポインタはそのまま本番サーバ用に使い、2つ目のポインタはバックアップサーバへのマウント用に使うことで同じデータを2台の違うサーバから見ることができます。

注意点としては、あくまでポインタを利用したバックアップのため、サーバがアクセスするボリュームはまったく同じボリュームとなります。そのため、バックアップ取得時はそのボリュームに対して負荷がかかることを忘れてはいけません。

バックアップをサーバではなくストレージ側で取得する方法はCPU負荷や運用管理面から考えても非常に有効な方法です。この機能は以前はハイエンドの高価なストレージ装置にのみ実装されていますが、最近では一部のストレージを除いてほぼすべてのローエンド・ミドルレンジのストレージ装置にも搭載されています。この機能を有効に活用できるようにバックアップを設計したいです、