IBM PureFlex System で KVM のバックアップを作成する

KVM 仮想マシンの災害復旧

IBM PureFlex System は、統合されたネットワークおよびストレージの仮想化、オープン・ハイパーバイザーを利用して、コスト効果の高いオープン・ソリューションを顧客に提供します。この記事では、PureFlex System 環境で KVM (Kernel-based Virtual Machine) 仮想マシンのバックアップを作成する方法を紹介します。

Pradeep K. Surisetty, KVM Developer, IBM

Pradeep K. Surisetty photoPradeep K Surisetty は、インドの IBM Systems and Technology Group Labs の Linux Technology Center に所属する KVM 開発者で、仮想化およびクラウドの開発に 6 年の経験があります。彼は、KVM ベースのソリューションを設計することにより、顧客対応を行う IBM のチームを支援しています。



Pradipta Kumar, KVM Virtualization and Cloud Management Architect, IBM

Pradipta Kumar photoPradipta Kumar Banerjee は、インドの IBM Systems and Technology Group Labs の Linux Technology Center に所属する KVM 仮想化およびクラウド管理アーキテクトです。彼は、IBM Master Inventor として、顧客と密接に関わって、顧客のワークロードに対応する仮想化データ・センターとクラウド・インフラストラクチャーを設計しています。



Tony Gargya, KVM Systems Management Architect, IBM

Author photoTony Gargya は、ドイツの Linux Technology Center に所属する KVM システム管理アーキテクトで、主にオープンソース・ベースのプロジェクトや、それらのプロジェクトと商用製品との統合にフォーカスしています。彼は、数多くの顧客と密接に関わって、顧客が自らのデータ・センターを管理するのを支援したり、IBM や Linux 財団がスポンサーを務めるカンファレンスで、たびたび講演を行ったりしています。



2013年 10月 10日

仮想環境の規模が大きくなり、その中で実行されるアプリケーションがビジネスの成功にとって重要性を増してくるにつれ、KVM (Kernel-based Virtual Machine) データ・ストア内にある仮想マシン (VM) のバックアップを迅速かつ効率的な方法で作成することに対する要求が極めて重要になってきています。この記事では、IBM PureFlex System シャーシの中で IBM Storwize V7000 ストレージと IBM FlashCopy 機能を使用して、KVM VM から整合性のあるバックアップを作成し、それらを別の (場合によってはリモートの) PureFlex System シャーシ上でリカバリーするという問題に取り組みます。

構成とセットアップ

このセットアップの一環として使用する環境は、以下のコンポーネントで構成されます。

  • Red Hat Enterprise Linux (RHEL) 6.3
  • IBM Flex System Manager (FSM) によって管理される IBM System x ITE (IT Element) が組み込まれた PureFlex System シャーシ
  • Fibre Channel によってサーバーに接続されるストレージ・エリア・ネットワーク Storwize V7000 ストレージ (論理ユニット番号)

PureFlex System と KVM: 強力な組み合わせ

この記事では、計算、ストレージ、ネットワーキング、仮想化、管理を単一のインフラストラクチャーに組み込んだ統合システムである IBM PureFlex System 環境において、KVM 仮想マシンのバックアップを作成する方法を詳しく説明します。

PureFlex System の長所を KVM などのハイパーバイザー技術と組み合わせる方法についての調査を (PowerVM、VMware、Hyper-V を含めるように) 拡張することができます。

この記事では、Storwize V7000 ストレージを備えた PureFlex System と FSM が構成済みであることを前提とします。また、System x ITE 上に RHEL バージョン 6.2 以降が適切にインストールおよび構成済みであることが必要です。「参考文献」で、詳細な情報へのリンクを参照してください。

構成ステップの概要

以下のステップは、フェイルオーバー・クラスターの論理構成フェーズを表しています。

  1. PureFlex System がサポートしている最新の RHEL オペレーティング・システムである RHEL 6.3 を PureFlex System の System x ITE ノード上にインストールします。
  2. 管理レイヤー (PureFlex System における FSM) を使用して VM を作成します。
  3. クリティカルな VM をサスペンドします。
  4. FlashCopy を使用して VM Storwize V7000 ストレージの各ボリュームのスナップショットを作成します。
  5. VM の libvirt XML ファイルのバックアップを作成します。
  6. VM を再開します。
  7. Storwize V7000 ストレージ内でボリュームをバックアップ・サーバーにマッピングします。
  8. バックアップ・ボリュームとそれに対応する XML ファイルをメディア・テープ・デバイスにコピーします。
  9. バックアップ済みのボリュームと XML ファイルを使用してシステムをリストアします。
  10. 新しいシステム上で FSM からインベントリーを実行します。

VM のバックアップおよびリカバリー

PureFlex System で Storwize V7000 ストレージと FlashCopy を使用して KVM VM のバックアップを作成することは、KVM 環境に対する完全なデータ保護ソリューションとなります。

クリティカルな VM のサスペンド

virsh ツールは、ゲスト・ドメインを管理するための libvirt 管理アプリケーション・プログラミング・インターフェース上に構築されます。リスト 1 に、VM ボリュームのスナップショットを作成する前に VM をサスペンドする方法を示します。

リスト 1. VM のスナップショットを作成する前に VM をサスペンドする
 virsh # list 
 Id    Name                           State 
---------------------------------------------------- 
 29    win2008-r2-64               running 
  31    vm1                               running 
virsh #  suspend  vm1
virsh # list 
Id    Name                           State 
---------------------------------------------------- 
 29    win2008-r2-64               running 
 31    vm1                               paused

FlashCopy によるボリュームのスナップショットの作成

FlashCopy は、Storwize V7000 ディスクのある時点でのコピーを取る機能であり、ソース・ボリュームからターゲット・ボリュームへの即時かつ整合性のある完全なコピーを作成するために使用されます。この機能は多くの場合、タイム・ゼロ・コピー、ポイント・イン・タイム・コピー、スナップショット・コピーなどと呼ばれます。FlashCopy は、コピー・サービスの 1 つであり、図 1 に FlashCopy でボリュームのスナップショットを取る方法を示します。

図 1. FlashCopy でボリュームのスナップショットを作成する
FlashCopy でボリュームのスナップショットを作成する方法を示す画像

VM と XML ファイルのバックアップ

リスト 2 に示すように、対応する libvirt XML ファイルをバックアップし、その後で VM を再開します。

リスト 2. VM を再開する
# virsh dumpxml vm1 > /tmp/vm1-snap1-xml
virsh # list 
Id    Name                           State 
---------------------------------------------------- 
 29    win2008-r2-64               running 
31    vm1                               paused
virsh # resume vm1 
virsh # list 
Id    Name                           State 
---------------------------------------------------- 
 29    win2008-r2-64               running 
 31    vm1                                running

バックアップ・サーバーへの新規ボリュームのマッピング

バックアップ・サーバーが使用可能な場合、バックアップ済みのボリュームをそのサーバーにマッピングします (図 2 を参照)。

図 2. ボリュームのマッピング
ボリュームのマッピング方法を示す画像

ボリュームがマッピングされると、リスト 3 に示すように、バックアップ・サーバー上に新規ボリュームがリストアップされます。

リスト 3. バックアップ・サーバーへのボリュームのマッピング
[root@llmvm11 ~]# multipath -ll 
mpathe (3600507680280865df800000000000042) dm-7 IBM,2145 
size=5.9G features='1 queue_if_no_path' hwhandler='0' wp=rw 
|-+- policy='round-robin 0' prio=50 status=active 
| `- 0:0:1:5  sdq 65:0  active ready running 
`-+- policy='round-robin 0' prio=10 status=enabled 
  `- 0:0:0:5  sdf 8:80  active ready running 
mpathd (3600507680280865df800000000000017) dm-3 IBM,2145 
size=10G features='1 queue_if_no_path' hwhandler='0' wp=rw 
|-+- policy='round-robin 0' prio=50 status=active 
| `- 0:0:0:3  sdd 8:48  active ready running 
`-+- policy='round-robin 0' prio=10 status=enabled 
  `- 0:0:1:3  sdo 8:224 active ready running 
mpathc (3600507680280865df80000000000004e) dm-0 IBM,2145 
size=12G features='1 queue_if_no_path' hwhandler='0' wp=rw 
|-+- policy='round-robin 0' prio=50 status=active 
| `- 0:0:0:0  sda 8:0   active ready running 
`-+- policy='round-robin 0' prio=10 status=enabled 
  `- 0:0:1:0  sdl 8:176 active ready running

VM のバックアップ済みのボリュームとそれぞれの XML ファイルは、バックアップ・サーバー上またはテープ・メディア上に格納することができます。

災害時のリカバリー

PureFlex System シャーシ上でバックアップ済みのボリュームを新規 System x ITE へとマッピングします。リスト 4 に示すように、libvirt を使用して XML ファイルを編集して定義します。

リスト 4. 新規ボリューム・パスを使用するように VM1 を編集する
    <disk type='block' device='disk'> 
      <driver name='qemu' type='raw' cache='none' io='native'/> 
      <source dev='/dev/disk/by-id/wwn-0x600507680280865df800000000000017'/> 
      <target dev='vda' bus='virtio'/>

virsh # virsh define /etc/libvirt/vm1-snap1.xml
virsh # start vm1

インベントリーの実行

VM イメージが異なるホスト上でリカバリーされた場合、FSM から新規ホスト上でインベントリーを実行します (図 3 を参照)。

図 3. インベントリーの実行
インベントリーを実行する方法を示す画像

この先の作業

libvirt を使用して VM をサスペンドすると、VM は即時にサスペンドされ、メモリーに格納されている内容をディスクにフラッシュする機会が得られないため、クラッシュが付き物です。このイメージを別のホスト上で再開すると、ファイル・システムのエラーがチェック (fsck) されて修復されます。そのコピーには、メモリーに格納されていた内容は含まれないため、データ損失が生じる可能性があります。

ゲスト・エージェントを使用して VM を凍結、解凍する

QEMU GuestAgent と呼ばれる近々実装される機能は、VM のファイル・システムを、スナップショットを作成する前と整合性のある状態にすることができます。言い換えると、ゲスト・エージェントを使用して VM の凍結と解凍を実装することができます。

ゲスト・エージェントは、ドメイン内で実行されるデーモン・プログラムであり、ゲスト OS の補助を必要とする機能を管理アプリケーションが実行するのを支援するように作られています。例えば、ファイル・システムの凍結や解凍を行ったり、サスペンド・モードに入ったりします。

QEMU GuestAgent を使用すると、スナップショットでファイル・システムに整合性がない状態を避けることができ (つまり、VM を再開する際にファイル・システムのチェックをする必要がありません)、データ損失が生じる機会がありません。この QEMU GuestAgent 機能がエンタープライズ・ハイパーバイザーで使用可能である場合、この機能を上記のスナップショット作成手順とともに使用することで、整合性があり、損失のないバックアップおよびリストア機能が得られます。

ゲスト・エージェントを構成するには、以下の内容を実行します。

  1. VM 上に QEMU GuestAgent をインストールします。
  2. virtio-serial または isa-serial チャネルを指定して、VM を起動します。
  3. QEMU GuestAgent を起動します。
    "qemu-ga -m virtio-serial -p /dev/virtio-ports/org.qemu.guest_agent.0"
  4. 異なる端末から QEMU Management Protocol を起動します。
    socat unix-connect:/tmp/qga.sock readline
  5. 以下のコマンドを実行することで、VM の凍結および解凍を行います。
    { "execute": "guest-info"}
    { "execute": "guest-fsfreeze-freeze"}
    { "execute": "guest-fsfreeze-thaw"}

参考文献

学ぶために

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing
ArticleID=947262
ArticleTitle=IBM PureFlex System で KVM のバックアップを作成する
publish-date=10102013