このページの本文へ

ゼロからはじめるバックアップ入門 第9回

従来と変わらない方法もあるが、運用面の難易度には要注意!

サーバー仮想化環境では、どうバックアップする?

2010年08月05日 09時00分更新

文● 伊藤玄蕃

  • この記事をはてなブックマークに追加
  • 本文印刷

サーバーの仮想化は、コストパフォーマンスの向上・管理者の手間の軽減といったメリットが大きいため、このところ導入事例が急増している。仮想化環境では、従来とは異なる運用管理の技術が必要とされるケースも少なくない。今回は、仮想化環境のバックアップに関する注意点やテクニックを説明する。

サーバー仮想化とは

 この数年、「仮想化(Virtualization)」はIT業界の注目キーワードとなり、分散する多数のサーバーを集約する技術として導入が進んでいる。仮想化技術を利用してサーバーを統合することのメリットには、ハードウェアコストの削減、保守コストの削減、運用管理工数の削減、サーバーリソースの有効活用などが挙げられる。要約すれば、システムのコストパフォーマンス向上と、運用管理の効率化を実現できるわけだ。

 サーバーを仮想化するソフトウェアには、MicrosoftのHyper-VやVMwareのInfrastructure/vSphere、CitrixのXenServerなどがある。これらはすべて、実際のサーバーのハードウェア上のデバイスを抽象化して、「仮想マシン(Virtual Machine)」に見せかけるソフトである。ほとんどの場合、この「仮想マシン」は、きわめて一般的な、俗にいう“枯れた”デバイスで構成されたサーバーをエミュレーションする。

 サーバーの仮想化環境では、この仮想マシンに対してサーバーOSをインストールし、その上で動作するアプリケーションをインストールする。仮想化ソフトを挟むことで、ハードウェア構成が異なるサーバー間でバックアップイメージを流用することができ、サーバーの移行や能力拡張が容易になる(図1左)。

図1 サーバー仮想化のメリット

 従来は、1台の物理サーバーに1つのOSを入れ、そこで1つのアプリケーションを動かすというのが安定運用のテクニックであった。最近のサーバーには複数のコアを持つCPUが搭載されるなど、高性能化が進んでいる。そのため、従来と同じ運用ではサーバーのリソースの大半が遊んでしまって「もったいない」状態になりがちである。そこで、1台の物理サーバーに複数の仮想マシンを動作させ、複数のサーバー機能を統合することが行なわれるようになった(図1右)。

従来と同じ手法でバックアップ

 それでは、サーバー仮想化環境のバックアップはどうすればよいのだろうか。上に挙げたような仮想化ソフトには、それ自体にバックアップ機能が含まれていたり、それぞれの仮想化ソフトに特有の機能を使って効率的にバックアップを行なうことが可能なサードパーティーのバックアップソフトウェアも市販されている。あるいは、一般的なバックアップソフトウェアを使う手もある。

 そのうち、いちばん簡単な方法は「1つの仮想マシンを、従来の1台のサーバーと同じように一般的なバックアップソフトウェアでバックアップする」だろう。基本的には、仮想マシンに入れたバックアップソフトウェアからは、仮想マシンも従来の1台の物理的なサーバーもまったく同じに見える。よって、従来のサーバー用バックアップソフトウェアが利用できる。もちろん、物理サーバーに接続されたテープ装置にローカルにバックアップすることも可能だし、あるいはLANやSANを経由してストレージ装置にバックアップすることも可能である。

 ただし、仮想化環境ならではの注意点がある。コストパフォーマンス向上と、運用管理の効率化を追求すると、システムリソースをつねに高い利用率に保つように、1台の物理サーバー上でできるだけ多くの仮想マシンを稼動させ、システムリソースをつねに高い利用率に保つようにシステムを構築しがちである。そのような環境で、従来と同じ手法でバックアップを行なうケースを想定してみよう。従来の環境では、それぞれのサーバーごとにバックアップを取得することが可能であった(図2)。

図2 サーバーごとのバックアップ方法

 しかし、仮想化により1台の物理サーバーに複数の仮想OSが統合されると、ハードウェアリソースが共有される。特にバックアップのジョブは短時間に大量のデータを読み書きするため、ディスクやテープなどのストレージデバイスのI/Oチャネルや、ネットワーク上で競合が発生する(図3)。このため、夜間や休日などの予定時間内にバックアップ処理が終わらず、通常運用時間に食い込んでしまうといった影響が出ることもある。

図3サーバー仮想化環境のLANバックアップ

 このほか、1物理サーバー内に複数のOS環境が混在するケースでは、運用面の難易度が増えることに注意しよう。筆者の勤務先でも、アプリケーションサーバーにはWindows、インターネット系のサービスにはLinux、データベースにはUNIXといった具合にOSが混在するケースがあるが、従来のようにOSごとに完全に異なるバックアップシステムを構築することは、まず不可能である。

 「マシンのハードウェアが1台に集約されるのだから、バックアップシステムも統合しなければ、コストダウン効果が減ってしまうだろう!」と予算面からの縛りがきつくなるのだ。このため複数OSに対応したバックアップシステムを構築することになるのだが、こうしたシステムは設定や運用が複雑になりがちだ。結果として運用管理者の手間は増えてしまう。

 また、ソフトウェアのライセンスコストも注意が必要だ。高性能なサーバー上で仮想化環境を構築すると、相当な数の仮想マシンを動作できる。これまでは容易に増やせなかった開発環境やテスト環境もドンドン増やせる。ただし、仮想マシン単位でエージェントの費用が必要なライセンス形態のバックアップソフトウェアを使っていると、仮想マシンを増やすごとにライセンスコストが増え、たいていの場合は保守費もそれにつれて増えていく。ここでもコストダウン効果が減ってしまう。

サーバー仮想化環境ならではのバックアップ

 こんどは、サーバー仮想化環境ならではのバックアップ方法を紹介しよう。

1.スナップショットでまるごとバックアップ

 まずは、「スナップショット機能を利用して、1つの仮想マシンをまるごとバックアップする」という手法である。この手法は、ファイル単位のリストアではなく、仮想マシンのシステム全体を一括してリストアすることを目的としたバックアップである。スナップショットは、VMwareであれば「VMware VCB(VMware Consolidated Backup)」、Hyper-Vであれば「Hyper-V管理コンソール」を使う。また、ストレージ装置のスナップショット機能を使ってもよい。

 スナップショットのデータは、物理サーバーの仮想ディスクファイルか、ストレージ装置内に作成した論理ディスクに保存できる。それを別のバックアップサーバーに接続してテープなどに吸い上げる(図4)。

図4 スナップショットで仮想マシンをまるごとバックアップ

 この方法は、バックアップソフトウェアのエージェントライセンスが必要ないので、ライセンスコストを気にすることなく仮想マシンを追加できる。また、まるごとバックアップしたデータを使って、まるごとリストアで仮想マシンを復旧できるため、災害などのサーバーの物理障害対策の手法として有用である。

 ただし、スナップショットで作成される仮想マシンのデータは、カプセル化された1つの大きなファイルである。そのため、ファイル単位の重複排除機能しかないバックアップソフトを使ってバックアップすると、毎回フルバックアップを行なうことになる。バックアップするデータ量を削減しバックアップ時間を短縮するため、ブロック単位の重複排除機能のあるバックアップソフトウェアを使用するとよい。

2.ホストレベルのバックアップ

 サーバー仮想化環境ならではバックアップ方法の2番目は、「仮想化ソフトのレイヤで動作するバックアップソフトウェアを利用して、仮想マシンをまるごとバックアップしたり、仮想マシンのファイル単位でバックアップする」というものだ。この方法を「ホストレベルでのバックアップ」と呼ぶこともある。Hyper-Vでは仮想化ソフト環境を「ホストOS」と呼び、その上で動作する仮想マシン環境を「ゲストOS」と呼ぶが、このマイクロソフトの用語で説明し直したほうが頭に入りやすいかもしれない。

 すなわち、「ホストレベルでのバックアップ」とは、バックアップソフトウェアをホストOS上で動作させて、ゲストOS全体を一括してリストアできるようにバックアップしたり、ゲストOSのファイル単位でリストアできるようにバックアップする仕組みを指す。この機能をもつソフトウェアには、Symantec Backup Exec 2010 やCA ARCserve Backup などがある。これらのソフトウェアは、ゲストOS(仮想マシン)にインストールしたエージェントを使えば、従来と同じ手法でバックアップも可能だ。

カテゴリートップへ

この連載の記事