MySQL のイメージバックアップ – ActiveImage Protector 3.1 Linux Edition

ActiveImage Protector 3.1 Linux Edition リリース

ActiveImage Protector のLinux 版 バージョン3.1がリリースされました。

Linux EditionはイメージングバックアップのActiveImageのLinuxネイティブ版になります。
主な特長は

  • Linuxネイティブ
  • ボリューム単位の高速バックアップ
  • ext 3, 4のホットイメージングバックアップが可能
  • 未使用領域をバックアップしないスマートセクター
  • LVMに対応

となっています。

今回の3.1の見どころは

  • Red Hat Enterprise Linux 6.0/6.1 に対応
  • MySQLへの対応

となっています。
今回のバージョンアップでの一番のウリはMySQLが稼働しているサーバーでのホットバックアップが可能になったことでしょう。

MySQLへの対応

データーベースが動作している状態でのバックアップは、バックアップソフトを扱っていると必ずぶつかる問題です。通常のファイルベースのものでも問題になりますし、AIPはイメージングによるバックアップなので、その時のディスクの状態がどうであれスナップショットを取得してバックアップしてします。この時にデータベースをバックアップしても整合性がとれている状態にしてから実行することがポイントになってきます。そうしないと、いわゆる強制電源断と同じ状態でのバックアップになり復元しても期待した状態にはなりません。
この電源断の状態で問題になるのは、データーを書き込んでいる途中で突然終了してしまったという状態です。こうなると書き込んだデータは失われて、書き込んだのかどうかすらわからなくなることもあります。特にバッファやキャッシュにあったデーターはディスク上にはないので、このメモリ上のデーターをハードディスクのバックアップソフトでバックアップすることはできないわけです。 ですので、この部分を解決すればよいわけです。

従来のバックアップソフトの場合

MySQLのみのバックアップであれば、mysqlhotcopyやInnoDB Hot Backupで行うのが一般的かと思いますが、実体はcpやdumpでのバックアップであり、もちろんバックアップできるのはMySQLのデーターのみです。

MySQLが動作しているサーバーでシステムも含めた全体のバックアップを行う場合、ざっくりと

  1. MySQLを一旦停止(あるいはLOCK TABLES/FLUSH TABLES WITH READ LOCKなどを行うスクリプトを実行)
  2. スナップショット作成
  3. MySQLを再開(UNLOCK)
  4. バックアップを開始

という手順が必要でした。
もしもクラッシュやアタックなどでサーバーの復旧/再構築が必要になった場合はシステム再構築、設定の後にMySQLを復旧、再稼働させる必要がありました。

  1. Linuxサーバーを再構築
  2. サービス類を設定
  3. MySQLを設定
  4. データベースを復元
  5. サービスを再稼働
  6. 運用再開

という感じになります。

ActiveImage Protectorの場合

AIP 3.1 Linux Editionでは、MySQLを使用して運用しているサーバー全体のバックアップを取得することができるようになりました。MySQLに対するスクリプト等を記述しなくても、インストールしてすぐにバックアップを作成できます。
MySQL DBのLOCK/FLUSHに相当する部分はAIPの内部で処理を行っているので、特になにかを行う必要はありません。

復旧も簡単です。AIPはボリュームのイメージバックアップですので、そのまま復元すれば、MySQLも含めてボリュームが復元されますので、すぐに再稼働できます。

  1. Active Image Protector で復元
  2. 運用再開

と、ちょっとあっさりしすぎていますが、簡単です。復元にかかる時間もイメージをハードディスクに展開する時間だけですのでかなり高速です。

Linuxの分野では、Windowsのようなイメージングバックアップソフトはまだあまり一般的ではありませんが、従来のバックアップ方式に較べて、簡単で高速なバックアップ、安全な復元が可能です。