パート1では、EC2でディスクアレイ構成を行うこと自体の意味に関してご紹介しました。
どのようにディスクアレイの一貫性を保証するか?ストレージスタックについて考える場合、それぞれの階層が他の階層の実装を認識していないことを意識する必要があります。例えばストレージの層でパフォーマンスの向上のためにキャッシュが実装されているとします。この場合、アプリケーションが開いているファイルのデータは実際にはメモリ内キャッシュに存在するかもしれません。しかし、アプリケーションはファイルシステムがキャッシュを実装しているか、またどのようにデータをキャッシュしているかは必ずしもわかりません。つまり、アプリケーションがデータを保存するためにはファイルを閉じるか、ファイルシステムにデータをフラッシュするための特殊なAPIを用いる必要があります。ただ、ファイルシステムとボリュームについては同じようにはいきません。
ディスク(EBSボリューム)のスナップショットショットをとることは可能ですが、キャッシュされたデータがスナップショット実施前フラッシュされていない場合、その結果は矛盾したイメージになります。ほとんどの場合、アプリケーションは停電後のシステムクラッシュから回復するのと同様に、不整合から復旧することができますが、これには手間がかかります。また、ディスクアレイの場合、キャッシュがフラッシュされたとしても、全てのディスクが100%同期しているわけではない可能性があるため、より注意する必要があります。
ディスクアレイのバックアップで一貫性を保証する場合、まず、アプリケーションが一貫性のある状態になっていることを確認します。これは通常、アプリケーション(OracleやMySQL、MongoDBなど)が提供する様々なAPIを用いて実行できます。次、ボリュームについてですが、単一のディスク(EBSボリューム)で構成されている場合にはアプリケーションレベルの静止のみで十分です。複数のEBSボリュームを持つディスアレイの場合には、全てのスナップショットで、全てのボリュームが同期されていることを確認するため、ボリュームマネージャが一貫性のある状態になっていることを確認する必要があります。順番としては以下のように実施します。
- アプリケーションの一貫性を確認
- ボリュームマネージャの一貫性を確認
- EBSスナップショットを作成
ボリュームマネージャの一貫性(環境ごとの違い)
Windowsダイナミックディスク
Windowsは十分に統合された環境であり、ディスクアレイは通常、ダイナミックディスクと呼ばれるWindowsの内部メカニズムを使用して定義されます。Windowsのダイナミックディスクでは複数のディスクにまたがるボリュームやソフトウェアRAIDを定義できます。Windowsの場合、ストレージスタック全体のバックアップはVSS(ボリュームシャドウコピー)と呼ばれるインフラストラクチャによってカバーされています。これによりSQL ServerやExchange、SharePointといったMicrosoftアプリケーションはVSS経由で一貫性のあるバックアップをサポートしています。
VSSサポートするバックアップソリューション(N2WS CPMやVeeam Backup and Replication、CloudBerry Backupなど)では、このVSS経由の処理でアプリケーションレベル、ファイルシステムレベル、ダイナミックディスクとして構成されたボリュームなどで一貫性のある状態を保証できます。
Linux Mdadm
LinuxでmdadmはソフトウェアRAIDの作成と管理のために使用されるユーティリティです。これ自体がボリュームマネージャではありません。スナップショットやバックアップはサポートされておらず、多くの場合mdadmはスナップショットをサポートするLVM(論理ボリュームマネージャ)と組み合わせ使用されます。
mdadmを単独で使用する場合には、アプリケーションレベルとファイルシステムレベルでの一貫性まで保証できます。例えばLinuxのxfsファイルシステムでは、ファイルシステムをフラッシュし、静止した状態にすることができます。これにより、mdadmのソフトウェアRAIDでスナップショットを作成する際のリスクを軽減できます。
LVMを使用している場合には、mdadmと組み合わせるかどうかにかかわらず、EBSスナップショットをしたEC2のバックアップに使用できる内部LVMスナップショットがあります。次のパート(作成中)ではこのLVMバックアップについてご紹介します。
関連トピックス:
- AWS EC2のディスクアレイ(LVMやダイナミックディスク)をバックアップ パート1
- AWS EC2のディスクアレイ(LVMやダイナミックディスク)をバックアップ パート3:EBSボリュームで構成されたLVM
- VMware vSphere Storage vMotionで適切なフォーマットはシックか、シンのどちらか?
- AWS EC2のバックアップはなぜ必要になるのか? N2WS Cloud Protection Managerで確実なバックアップ
- VMware + Net App(Data ONTAP Simulator)を仮想マシンとして導入
- ストレージスナップショットは従来のバックアップの代わりになるのか?
- Windows Server 2016でのReFSファイル・システムの優位性
- Hyper-Vバックアップについて重要な4つの要素
AWS #EC2 バックアップ: N2WS Backup & Recoveryのトライアルをお申込みいただき、アンケートにご回答いただきますと、お使いのAWSアカウントで使用できる $100クレジットをプレゼントいたします。
お申し込みは: https://www.climb.co.jp/tech_blog/archives/2211