NetApp Tech OnTap NetApp Logo
NetApp Tech OnTap
     
Back to Basics:FlexClone
シェアする NetAppオフィシャルFacebook

NetAppの代表的なテクノロジの基礎を解説するBack to Basicsシリーズの第3弾をお届けします。

IT業界では、データセットのコピーが必要となる状況が数多く発生します。アプリケーションの開発 / テストや、新しい仮想マシンのプロビジョニングなどが典型的な例といえるでしょう。しかし残念ながら、従来のアプローチでコピーを作成すると、コストがかかり、ストレージ容量や、サーバリソース、ネットワークリソースだけでなく、管理者の貴重な時間と労力が大量に消費されるため、最新コピーの数を少なく抑えるという方法で対処している企業が多いようです。これでは、本来必要な量のコピーを作成することができません。

こうした問題を解消するために開発されたのが、NetApp FlexClone®テクノロジです。FlexCloneは、フレキシブルボリューム(FlexVol®)とLUNのコピーを、スペース効率よく迅速に作成する目的で、Data ONTAP® 7Gに導入されました。過去のTech OnTap®記事では、FlexCloneテクノロジをベースに構築されたNetAppの高速クローニング機能を活用したITチームの事例を紹介しました(現在FlexCloneは、NetApp Virtual Storage Console(VSC)に組み込まれています)。このITチームは、NetAppのクローニング機能を使用して9,000クライアントの仮想デスクトップ環境を展開し、使用するストレージ容量を通常の数分の一に抑えながら、柔軟性に優れた高速プロビジョニングを行うことに成功しました。NetAppの自社データセンターでは、この事例と同じ方法でサーバのプロビジョニングを行っています

FlexCloneテクノロジと従来のデータコピー手法を比較

図1)FlexCloneテクノロジと従来のデータコピー手法を比較

従来のデータコピー手法の代わりに、FlexCloneテクノロジを使用すると、以下のように優れたメリットが実現します。

  • 高速な処理。従来の手法でコピーを作成すると、数分~数時間かかりますが、FlexCloneテクノロジなら、非常に大きなボリュームでも、わずか数秒でクローニングできます。
  • 優れたスペース効率。クローンによって使用されるのはメタデータ用のわずかなスペースのみ、新たなスペースが消費されるのも、データが変更 / 追加された場合のみです。
  • コストを削減。FlexCloneテクノロジは、開発 / テスト環境や仮想環境に必要なストレージの容量を50%以上削減します。
  • 開発 / テストの質を向上。本番環境のデータセットのフルコピーを必要なだけ作成することができ、テスト中にデータが破損しても、数秒でテストを再開できます。データセットに短時間でアクセスできるため、開発者やテストエンジニアが生産性の高い業務に時間を投入できるようになります。
  • DR環境を最大限に活用。FlexCloneを使用すると、御社のDRプロセスをクローニングして、全面的なテストを実施できます。また、進行中の複製プロセスに影響を及ぼすことなく、DR環境を開発 / テストに活用できます。つまり、DRコピーのクローンを簡単に作成し、そのクローンを使って開発 / テストを行えるようになります。
  • 仮想マシンと仮想デスクトップのプロビジョニングを高速化。数十台~数百台の新しい仮想マシンを数分で展開できます。しかも、新たに消費されるストレージ容量はわずかで済みます。

FlexCloneを使用してボリュームをクローニングできることについては、Tech OnTap読者のほとんどがご存知だと思いますが、Data ONTAP 7.3.1以降、個々のファイルをクローニングする機能がFlexCloneに追加されたことや、FlexCloneのLUNクローニング機能が強化されたことは、あまり知られていません。

本稿では、NetApp FlexCloneテクノロジの仕組み、最も一般的な使用事例、FlexCloneを実装するにあたってのベストプラクティスなどについて解説します。

Data ONTAPでのFlexCloneの仕組み

ボリュームのクローニング

FlexCloneボリュームには、他のFlexVolと同様の機能がすべて備わっているため、拡大 / 縮小が可能で、Snapshot®コピーや、別のFlexCloneボリュームのソースボリュームとして使用することができます。NetAppには、こうした機能をすべて可能にするテクノロジがあり、それがData ONTAPでストレージを管理する上で重要不可欠な役割を果たしています。そのテクノロジとは、Write Anywhere File Layout(WAFL®)です。NetAppストレージシステムは、このWAFLテクノロジによってディスクストレージを管理しているため、新しいデータをボリュームに書き込む際にも、特定の場所を選ぶことなく、ディスク上の任意の場所に書き込むことができます。WAFLを使用すれば、メタデータを更新するだけで、新たに書き込まれたデータを統合できます。

Snapshotコピーは、ボリュームに関連付けられているメタデータをコピーするだけで簡単に作成できます。親FlexVolのデータが変更されても、元のデータブロックとSnapshotコピーとの関連付けは維持され、元のデータブロックが再利用されることはありません。メタデータの更新時には、ポインタ情報のみが変更されます。

FlexCloneボリュームは、Snapshotコピーの手前に配置される透過的で書き込み可能なレイヤと考えることができます。FlexCloneボリュームは書き込み可能なため、クローンに書き込まれたデータを格納するためには物理的なスペースが必要となります。Snapshotコピーは、親ボリュームに上書きされた既存データを参照するだけなのに対し、FlexCloneボリュームは、書き込まれたデータを(WAFLによって)ディスク上に格納し、その新しいデータを参照することができます。Snapshotコピーに関連づけられたディスクスペースと、FlexCloneボリュームに関連付けられたディスクスペースは、親FlexVol内のデータからは別々に認識されます。

ボリューム単位のクローニング

図2)ボリューム単位のクローニング

FlexCloneボリュームを作成するときには、親ボリュームとなるFlexVolを認識する必要があります。また、親ボリュームのSnapshotコピーも必要となります(このSnapshotコピーをベースとして使用します)。Snapshotコピーを事前に用意しない場合は、クローニング時に自動作成することもできます。FlexCloneボリュームは、Snapshotのメタデータのコピーを取得し、その後、クローンボリュームが作成されるたびに、そのメタデータを更新します。FlexCloneボリュームは、ほんの一瞬で作成できます。これは、コピーされるメタデータの量が、実際のデータ量に比べて非常に小さいためです。

親FlexVolは、FlexCloneボリュームとは独立した形で変更することができます。これは、Snapshotコピーに変更履歴が残されており、Snapshotコピーが存在する間は元の親ブロックが解放されない仕組みになっているためです。Snapshotコピーは読み取り専用で、複数のFlexCloneボリュームのベースとして再利用することができます。新たに使用されるディスク容量は、少量のメタデータや、親FlexVol、親FlexCloneボリュームに加えられた変更や追加の分だけで済むため、スペースを非常に効率よく使用できます。

また、上記のボリュームクローニング手法を使用して、LUNが含まれているボリュームのクローニングを行うこともできます。一般的に、対象となるLUN、つまりボリューム内のLUNターゲットは、クローニングする前に整合性のある状態になっている必要があります。この手法や、その他の機能については、TR-3347:『FlexClone™ ボリュームの概説』で紹介していますが、ボリューム単位のクローニングに代わって、LUNクローニングが行われることが多くなっています。LUNクローニングについては次の段落で解説します。

ファイル / LUNのクローニング

Data ONTAP 7.3.1以降、Snapshotコピーをベースにすることなく、NAS環境のFlexVol内にあるファイルや、SAN環境のLUNのクローンを作成できるようになりました。

ボリューム単位のクローニングと同様に、ファイル / LUN単位のクローニングも非常にスペース効率が高くなっています。これは、クローンコピーが複製元と同じ物理スペースを共有し、メタデータによって最初に消費されるスペースも極めて少なく済むためです。クローンファイルやクローンLUNによって新たなスペースが消費されるのは、複製元かクローンにデータが上書き / 追加された場合のみです。クローンの作成は、物理データのコピーが必要ないため、高速で時間効率に優れたプロセスと言えます。

ファイル / LUN単位のクローニング (Data ONTAP 7.3.1以降が必要)

図3)ファイル / LUN単位のクローニング (Data ONTAP 7.3.1以降が必要)

既存のファイルとLUNをクローニングする際、クローンの作成中や作成後にクライアントからのアクセスに影響が及ぶことはありません。クローニング処理の最中にも、クライアントから元のファイルやLUNにデータを書き込むことができます。クローニング後には、ファイルやLUNのクローンにクライアントからアクセスし、ほかのファイルやLUNと同様に扱うことができます。複製元のファイルとLUN、クローンされたファイルとLUNを削除しても、弊害はありません。

データセンターでは、同じデータセットのコピーが複数必要となる問題が多く発生しますが、こうした新しい機能と、前述したボリューム単位のクローニング機能を組み合わせることで、スペース効率と時間効率に優れたソリューションを実現し、データセンターの問題を解消することができます。ボリューム、ファイル、LUN単位のFlexCloneを組み合わせれば、時間とスペースの効率に優れた強力なソリューションを実現し、重複したデータセットを格納することができます。これはつまり、重複するファイルやLUNのすべてが、同じ物理ストレージを共有するためです。

また、FlexCloneを使用して、SAN環境のLUN内にある個々のファイルをクローニングすることもできます。Data ONTAPでは、APIを使用してこの機能を実現できますが、クローンファイルをホストのファイルシステムに統合し、そのクローンファイルをクライアントで使用するためには、ホスト側のサポートが必要となります。このプロセスについて、また、ファイルとLUNのクローニングの詳細については、TR-3742:『Using FlexClone to Clone Files and LUNs』(英語)をご参照ください。

使用事例

FlexCloneテクノロジは、ファイル、LUN、ボリュームのコピーが必要な場合に、状況を選ばず、ほぼ例外なく使用することができます。中には、本番環境でFlexCloneテクノロジを問題なく使用している企業もあります。こうした企業では、FlexShare®を使用してクローンの遅延を制御しています。大規模なデータベースを所有している企業の場合は、データウェアハウスや開発 / テストにFlexCloneを組み合わせて活用することで、とりわけ大きなメリットが得られるでしょう。

このセクションでは、最も一般的な使用例を2つ紹介します。

  • 開発 / テスト—ボリューム単位のクローニング
  • 仮想環境のプロビジョニング—ファイル / LUN単位のクローニング

開発 / テスト

クローンを作成しても、パフォーマンスに一切影響しないため、開発に使用する本番環境のクローンデータを頻繁に更新することができます。そのため、古いデータではなく、常に最新のデータを使用してテストを実施できます。大半の環境では、データの更新は90日に1回程度しか行われていません。

また、開発者とテスト担当者が、1~2つのテスト用データベースのコピーを共有する必要もありません。ゴールドコピー(実作業には使用しないコピー)を作成し、そのクローンを複数回作成できます。そのため、担当者がそれぞれ自分専用のクローンを使って業務を行うことが可能となります。障害テストも、クローン以外のものに一切影響を及ぼすことなく行えます。テストが完了したら、クローンを削除するだけで済みます。また、新しいクローンイメージも数分で作成できます。このアプローチについては、Oracle11g™の開発をテーマに取り上げた最近のTech OnTap記事で紹介しています。この記事では、(ユーザの機密データを削除するために)データマスキングを開発プロセスに組み入れる方法を説明しています。

DR環境がほぼ未使用の状態で放置されている、という場合もあるかもしれません。しかし、FlexCloneテクノロジを使用すれば、クローニングによって本番環境と同一のDRボリュームを作成し、そのクローンを活用できます。開発 / テストチームが本番環境のクローンを使用して作業を行っている間も、クローンのソースボリュームへの複製を行うことができます。

そのため、開発 / テストのプロセスが大幅に改善され、アプリケーションの品質向上につながります。また、アプリケーションを迅速に提供できるだけでなくコストも削減できます。たとえば、100 GBの本番環境のデータベースの開発 / テストを開始する場合、通常はフルミラーを1つ作成し、さらに、開発者、テスト担当者用に複数のコピーをそれぞれ用意する必要があります。控えめに見積もって、3つずつミラーコピーを用意するとしても、本番環境のデータベースと合わせて合計800 GBのストレージが必要になります。フルミラーを保持し(本番環境のストレージへの影響を防ぐため)、FlexClone使用して開発 / テスト用のコピーを作成すれば、ストレージの総所要量をわずか260 GBに削減することができます。つまり、ストレージ所要量が67%削減されることになります (開発 / テスト用のボリュームの平均変更率を約10%と仮定した場合)。クローンを迅速に作成し、削除できるため、ユーザはコピーの用意に時間をとられることなく、業務に専念しやすくなります。

仮想環境のプロビジョニング

FlexCloneテクノロジは、仮想サーバ環境、仮想デスクトップ環境のプロビジョニングにも優れた効果を発揮します。従来のプロビジョニング手法では、フルコピーが必要となります。また、一般的なサイズのVMのフルコピーを作成するためには20~30分かかりますが、FlexCloneを使用してプロビジョニングを行うと、開始から終了までの時間を約3分に短縮できます。

VMware®環境では、NFS経由でアクセスされるVMwareデータストアに格納されたVMDKファイルのクローンを、ファイル単位のクローニングによって作成することができます。VMDKファイルが、FCPかiSCSI経由でアクセスされるLUNのVMFSデータストア内に格納されている場合は、LUN単位のクローニングを使用できます。この機能には、VMware vCenter™からアクセスできます(NetApp Virtual Storage Console(VSC)に組み込まれているRapid Cloning Utilityを使用)。VSCを使用すると、クローニングが行えるだけでなく、vCenterの設定と、vCenterへの登録を行うことができます。また、VSCには、既存の仮想マシンに最新のパッチを適用したり、その他の変更を加えて最新状態にし、再導入する機能があります。VMware環境におけるNetAppストレージのプロビジョニングなどの管理タスクについては、最近のTech OnTapの記事で紹介しています。

Microsoft® Hyper-V™環境のクローニングを統合するため、NetAppはApplianceWatch for Microsoft System Centerを提供しています。また、Citrixとの共同開発によるCitrix StorageLink Adapter for NetApp Data ONTAPで、XenServerのクローニング機能統合を実現しています。

FlexCloneテクノロジの使用にあたって

ベストプラクティスを幾つか適用すると、FlexCloneテクノロジをスムーズに使用することができます。詳細については、NetApp TR-3347:『FlexClone™ ボリュームの概説』TR-3742:『Using FlexClone to Clone Files and LUNs』(英語)をご参照ください。以下に、ベストプラクティスの概要をまとめます。

ボリューム単位のクローニングを行う場合

  • 1つのボリュームに対して作成できるクローンの数は最大255個です。
  • FlexCloneボリュームを使用する場合は、スペースリザベーションの仕組みを理解し、使用可能な容量を確認しましょう。ツールの多くにアラート機能が搭載されているため、スペースが少なくなった場合には通知を送信することができます。
  • ボリュームをクローニングすると、FlexCloneボリュームには、元のボリュームと同一の所有権と権限を持ったデータが格納されます。FlexCloneボリュームにアクセスできるユーザとアプリケーションは、親ボリュームにもアクセスできます。開発 / テスト環境と本番環境では、ユーザアカウントを使い分けることをお勧めします。つまり、FlexCloneボリュームへのアクセスを許可しても、親ボリュームへのアクセスは禁止する必要があります。具体的な方法として、まずそれぞれのFlexCloneボリュームを管理ホストにマウント / マッピングし、正式な許可を得ている開発 / テストユーザに権限が付与されるよう、ファイルのアクセス権限や所有権を設定し、その後でFlexCloneボリュームを適切なサーバに再マウントするという方法があります。
  • NetApp SnapLock®で保護しているボリュームのクローンは作成しないでください。
  • 手動でSnapshotコピーを作成する場合は、そのSnapshotコピーがクローン用であることが分かる名前を付けることをお勧めします。Snapshotコピーの名前は変更できないため、クローンボリュームの元となっているSnapshotコピーが既に存在している場合は、注意が必要です。
  • Data ONTAPは、クローンがスプリットまたは削除されるまで、元となっているすべてのSnapshotコピーをロックします。また、Snapshotコピーと関連付けられているディスクブロックは、すべてロックされます。Snapshotコピーが削除されるまでは、ディスクブロックを解放し、再利用することはできません。
  • 元となるSnapshotコピーを削除しないようにしてください。このSnapshotコピーが存在していることで、FlexCloneボリューム内で変更されるデータの量を少なく抑えることができ、FlexCloneボリューム内のデータに対してクライアントから実行する処理の一部を高速化できます。
  • Data ONTAPには、FlexCloneボリュームがスプリットまたは削除された場合に、親ボリューム内にある元のSnapshotコピーを自動的に削除する機能はありません。これは、そのSnapshotコピーが後で必要となる可能性があるためです。Snapshotコピーを削除する必要がある場合は、FlexCloneボリュームを削除した後に既存のSnapshotコピーを確認し、削除するSnapshotコピーをユーザの判断で選択することができます。

ファイル / LUN単位のクローニングを行う場合

  • WAFLでは、ブロック1つに対して最大255個のポインタを設定することができます。つまり、1つのFlexVol内でファイルやLUNを最大255回クローニングできるということになります。256個以上クローンを作成する場合は、物理コピーが作成されます。
  • FlexCloneファイルの作成後に、自動的にスペースリザーブが行われることはありません。元のファイルのスペースリザベーションがどのように設定されていても、クローンファイルのスペースリザベーションは行われません。クローンファイルのスペースリザベーションを有効にするには、file reservationコマンドを使用してください。
  • FlexCloneで作成したクローンLUNには、元となるLUNのスペースギャランティ設定が継承されます。ボリューム内に、元のLUNと同じスペースギャランティを設定したクローンを作成するスペースがない場合、クローニング処理は失敗します。スペースギャランティを有効化した場合でも、元のLUNとクローンLUNはディスク上の同一ブロックを共有するため、ご注意ください。
  • クローンには、クォータの論理スペースが使用されます。そのため、クローン作成によってクォータ内で新たに使用されるスペースの量は、クローンの論理サイズの合計と等しくなります。たとえば、10 GBのファイルのクローンを作成した場合、元のファイルとクローンファイルに対して使用されるクォータ内のスペースの合計は、20 GB(元のファイルに10 GB、クローンファイルに10 GBを使用)となります。
  • ファイルのFlexCloneインスタンスを作成することによって、クォータの上限を超えた場合の影響は、qtree用のクォータと、ユーザ / グループ用のクォータで異なります。クローンの作成によって使用される論理スペースの合計が、qtreeに割り当てられたツリークォータを超える場合、クローン処理は失敗します。
  • クローンの作成によって使用される論理スペースの合計が、ユーザやグループに割り当てられたクォータを超える場合は、クローンのメタデータやデータを格納するだけの十分なスペースがFlexVolにあれば、クローン処理はそのまま正常に行われます。ただし、クローン処理が正常に完了しても、そのユーザとグループのクォータは超過したままとなります。
  • 元となるファイルでアクセス制御リスト(ACL)を利用していたり、ストリームへのアクセス制御を行っている場合、ACLとストリームのクローニングは行われないため、クローンファイルでは制御の対象を認識できません。クローンファイルで元のファイルと同様にACLベースの許可を行う、またはクローンファイルにストリームを付加する必要がある場合には、クローニング処理の完了後に、クローンファイルに対して別途それらの処理を行う必要があります。
  • DU –kコマンドを使用すると、LUNやファイルのクローン内にある一意のブロックを容易に特定できます。

ボリューム単位、ファイル / LUN単位のクローニングを組み合わせて行う場合

  • 単一のファイルやLUNのクローンを大量に作成しなければならない場合、ボリューム単位のクローニングと、ファイル / LUN単位のクローニングを組み合わせて使用することができます。元のボリュームで、ファイルまたはLUNのクローンを最大数(255個)作成した後、ボリュームを必要な回数だけクローニングすれば、大量のクローンを作成できます。
  • 同じボリューム内で、大量のファイルやLUNのコピーを作成する必要がある場合は、クローンを255個作成できます。256個目のクローンは、フルコピーになります。さらに、このフルコピーを255回クローニングできます。必要な数のコピーが出来るまで、処理を繰り返してください 。
  • この処理の詳細については、TR-3742:『Using FlexClone to Clone Files and LUNs』(英語)をご参照ください。

FlexCloneと他のNetAppテクノロジとの併用

NetApp FlexCloneテクノロジには、他のNetApp製品との統合という点で、NetApp重複排除機能との類似点が多くあります。この2つのテクノロジはどちらも、単一ブロックに多くのポインタを設定することによって、ストレージの使用量を削減するためです。FlexCloneは、重複排除機能をはじめとするNetAppテクノロジと、以下のように連動します。

  • 重複排除機能。重複排除されたボリュームのFlexCloneボリュームを作成すると、重複排除の効果がそのまま維持されます。また、重複排除されていないボリュームのFlexCloneを作成し、後でクローンに対して重複排除を行うことも可能です。この際、親コピーには影響が及びません。仮想環境では、FlexCloneテクノロジを使用することによって、非常にスペース効率よく仮想マシンを作成することができます。さらに、重複排除機能を使用すれば、長期間にわたりスペースを最大限に節約できます。
  • Flash CacheFlash Cacheは、インテリジェント・キャッシングによってI / Oパフォーマンスを向上させます。NetApp FlexCloneテクノロジは、キャッシュヒットの確率を高めます。多くのファイルやボリュームによって共有されているブロックがFlash Cache内に存在する場合、そのキャッシュが再度要求される確率は非常に高くなります。この効果は「キャッシュ増強」と呼ばれ、サーバやデスクトップが仮想化された環境では特に有効です。

SnapMirror。FlexCloneテクノロジでファイル単位やLUN単位のクローニングを行う際、Volume SnapMirror®を併用すると、スペースの削減効果が維持されます。これは、コピーの数がどれだけ多くても、クローンの複製は1度しか行われないためです。qtree SnapMirrorとSnapVault®を使用する場合は、スペース削減効果は無効となり、クローンファイルのフルコピーが幾つも作成されてしまいます。このような場合は、重複排除機能を使用すると、複製先の空き領域を増やすことができます。

場合によっては、スペース効率に優れたボリュームクローンに、複製を必要とする重要なデータが含まれている場合があります。Data ONTAPの8.0.1(7-Mode)より前のバージョンで、Volume SnapMirrorを使用してFlexCloneボリュームを複製すると、スペース削減効果が無効化されるため、複製先のFlexCloneボリュームには、親ボリュームと同じ容量が必要となります。Data ONTAP 8.0.1以降の7-Modeでは、Volume SnapMirrorを使用することにより、スペースを新たに消費することなくFlexCloneボリュームを複製できます(複製先システムにFlexCloneボリュームの親も複製されている必要があります)。詳細については、TR-3446:『SnapMirror®ベストプラクティスガイド』をご参照ください。

まとめ

NetApp FlexCloneテクノロジは、重要なStorage Efficiencyツールです。単独で使用することも、NetApp Flash Cache、重複排除機能などのソリューションと併用することも可能です。NetApp FlexCloneの詳細については、NetApp TR-3347:『FlexClone™ ボリュームの概説』TR-3742:『Using FlexClone to Clone Files and LUNs』(英語)をご参照ください。

 FlexCloneに関するご意見をお寄せください。

ご質問、意見交換、情報提供は、NetAppのコミュニティサイトまでお願いいたします。

Carlos Alvarez
シニア・ テクニカル・マーケティング・エンジニア
NetApp


2008年にNetAppに入社して以来、Carlosはストレージの効率化に専門的に取り組んでおり、重複排除、データ圧縮、シンプロビジョニングについて深い専門知識を持っています。Carlosは、お客様の環境で最も効果を発揮するNetApp® Storage Efficiencyテクノロジの最適な組み合わせについて、頻繁にアドバイスを行っています。この業界で20年以上の経験を積んでいるCarlosは、これまでにも数々の実装ガイド、テクニカル・ホワイト・ペーパー、リファレンス・アーキテクチャ、ベストプラクティス、ソリューションガイドの執筆を依頼されてきました。


関連情報
関連情報
その他のBack to Basics

NetApp®のコアテクノロジの基礎について、シリーズでご紹介しています。過去に掲載された記事は以下のとおりです。

   
関連情報
 
Go further, faster TRUSTe
お問い合わせ   |   購入方法   |   フィードバック   |   採用情報  |   登録   |   プライバシーポリシー   |   © 2011 NetApp