EMC RepliStor

EMC RepliStor Tips ミラーリングと同期の違い

RepliStorでは、ミラーリングと同期という操作を使い分けて、データのレプリケーションを行っています。ですが同じような意味合いを持っているため、混同して使い方を間違えているユーザーが多いように思いました。
また、同期を毎日スケジュールで実行していたりと、誤ったオペレーションを行っているところもありました。

そこで今回のTipsでは、ミラーリング(リアルタイムミラーリング)と同期では何が違うのか仕組みを解説していきます。

ミラーリング

ミラーリングとは、下記フェーズによって、ソースとターゲット間でリアルタイムにデータを複製させることである。

ミラーリング:ソースシステムのデータに加えられた変更を収集する。
転送:データに加えられた変更をソースシステムからターゲットシステムに送信する。
更新:ターゲットシステムのファイルに変更を適用する。

Mirror

図1:ミラーのデータフロー

以下のステップは、ミラーリングのデータフロープロセスを表し、ステップ番号は、図1に示される数字タグを表す。

① アプリケーションはディスク操作を実行すると、この操作は、OSカーネルで扱われてInput/outputマネージャ、全てのフィルタードライバーを通って最終的に物理ディスクに書込まれる。
上に向かう矢印は、それぞれのリターン要求を示す。

② リクエストがRepliStorドライバーまで戻るとき、下記条件でミラーするかを判断する。

・ファイルオペレーションはファイルを変更したか?
・ファイル・フォルダはスペシフィケーションに含まれているか?
・ファイル・フォルダはグローバル除外に指定されていないか?
・オペレーションは正しく行われたか?

③ 答えが全てYESであれば、オペレーションはカーネルキャッシュへキュー入れられる。
カーネルキャッシュは、ソースからターゲットへ送るデータをキューに入れるために使用する一定量の共有メモリ

④ カーネルキャッシュは一定のサイズであるため、オーバーフローを起こすとファイルオペレーションはOC$nnnnn ファイルに記録される。
オーバーフローが解消されれば、OC$ファイルの書き込みが解除され、再びカーネルキャッシュが使用される。

⑤ カーネルがファイルオペレーションをキューに入れるとき、オペレーションを読み取るようRepliStorサービスに指示を行う。

⑥ カーネルキャッシュがフルの状態でOC$ファイルが書き出されれば、RepliStorサービスは先にOC$ファイルからファイルオペレーションを読み始めるようにする。

⑦ ファイルオペレーションは、ターゲットサーバーに送信される。

⑧ ターゲットサーバーのRepliStorサービスは、ファイルオペレーションを受け取る。

⑨ ファイルオペレーションは実行される。

⑩ 書込みが正常に終了したことをソースに送信する。これでファイルオペレーションの複製が完了したこととなる。

⑪ もしファイルオペレーションが書込みできない場合は、block.rdf ファイルが作成され、全てのファイルオペレーションが保存される。
このファイルが作成される原因は、ディスクの空きが無いか、ファイルが使用中であるかである。
一旦ファイルがブロックされるならば、それ以降のファイルオペレーションはblock.rdf ファイルに保存される。

⑫ 定期的にRepliStorサービスはブロックファイルの再書込みを実行し、書込みが可能であれば、それ以降のファイルオペレーションの書込みを実行する。

.

同期

同期とは、ある時点でのソースとターゲットで同一のデータを存在させることである。

Sync

図2:同期のデータフロー

以下のステップは、同期のデータフロープロセスを表し、ステップ番号は、図2に示される数字タグを表す。

① 同期は、RepliStor のコンソール、コマンド、スケジュールでのみ実行することが可能。

② 同期が開始されるとまずスペシフィケーションで指定されたディレクトリの全てのファイル数をカウントさせ、RepliStorカーネルドライバーにそのファイルのフルパスを記録させる。

③ ファイルパスがグローバル除外に含まれていないかチェックして含まれていないのであればフルパスをカーネルキャッシュキューに入れる。
またカーネルキャッシュがフルになった場合はOC$ファイルに書き込む。

④ カーネルキャッシュにエントリーされると、RepliStorサービスは同期オプションに基づいて特定のファイルを同期させていく。
同期の場合、エントリーはSYNC_COPYのみ。

⑤ ソースからターゲットへとデータは送信される。

⑥ ターゲットのファイルに適用される。

⑦ 書込みがブロックされるならば、データはblock.rdfファイルに保存される。

⑧ ブロックが解除されればblock.rdfのデータを適用する。

.

以上、データフローの違いについて解説しましたが、ミラーリングと同期の主な違いは、カーネルキャッシュに入れられる情報なのです。

ミラーリングの場合、ファイルオペレーションはあらゆるデータと共にカーネルキャッシュに入れられます。例えば、File Create, File Write, File Truncate, File Close, Attribute Changeなど。

同期の場合、SYNC_COPYコマンドだけがカーネルキャッシュに入れられます。
このSYNC_COPYコマンドとは実際のファイルデータを含んでおらず、ファイルのフルパス情報を含むだけです。
例えば1000個のファイルを同期させるとすると、カーネルキャッシュには1000のフルパス情報が入れられます。これは、1000個のファイルをカーネルキャッシュに入れるということではありません。

これらの仕組みについて詳しく知りたい方は、特許をご覧ください。

EMC RepliStor Tips フェイルオーバー後の処理

RepliStorのエイリアス機能を使うと、簡易的なクラスタが構成できます。構成した後は、障害が発生すると自動フェイルオーバーが行われ、ターゲットサイトにエイリアスが移動するようになっています。
ここで注意しておかなければならないのは、フェイルオーバーが発生した後は、下記のいずれかの処理を行わなければなりません。

・フェイルバック

Failback

フェイルバックでは、恒久的に役割を指定できるが、処理を行う前に同期が完了していること、セッションが切れるためクライアントへのアナウンスが必要なことなど予め準備する必要がある。

操作手順

1. ターゲット からソース へのデータの同期が完了していることを確認する。
2. ターゲットでエイリアス名を右クリックして、「フェイルバック」を実行する。
ターゲットに送信されたエイリアスのすべて(関連するIP アドレスも同様)は、ターゲット・システムから自動的に削除され、ソースに戻される。また、ソースからターゲットに追加されたスペシフィケーションはすべて削除される。
3. ソース上のスペシフィケーションを有効にする。
4. スペシフィケーションを同期する。

・ソースの設定

Set Source

ソースの設定では、そのまま運用を続けられるため、ダウンタイムを極力減らして運用することが可能です。

操作手順

1. ターゲット側のエイリアス名を右クリックして、「ソースの設定」を実行する。
これを行うことで、ソースとターゲットの役割を入れ替え、エイリアスが実行されているマシンが障害になると自動フェイルオーバーが行われるようになる。

ソースの設定を行う前と後では、エイリアスの所有マシンが入れ替わり、役割が変更される
set source1

set source2

本来はここまでの操作で十分なのだが、ソースの設定を実行すると、それぞれにエイリアスとスペシフィケーションが残されて、コンソール上には2つずつエイリアスとスペシフィケーションが表示されるようになってしまう。これでは、ヒューマンエラーを引き起こしやすく危険であるので、紛らわしい設定を消すことをお勧めする。

2.元ソースのエイリアスとスペシフィケーションを削除する。

元もとソースであったサイトを開き、余分なスペシフィケーションを削除する
set source3

余分なエイリアスを削除する
set source4

削除後のコンソール表示

現ソース(元もとターゲット)
set source6

現ターゲット(元もとソース)
set source5

このようにフェイルオーバー後の処理は、2パターン用意されているので、それぞれの運用ポリシーに沿った操作を検討してください。

EMC RepliStor Tips スケジュールオプションの効果的な使い方について

RepliStorの初期状態ではスケジュール設定がされていません。
つまり常にレプリケーションが動作している状態です。

これに対して、スケジュールオプションを使用すると、設定したスケジュールにしたがってレプリケーションを制御できるようになります。

RepliStorのスケジュールオプションでは、次の4つの制御を実行することができます。

1.更新の一時停止
ソースサイト(コピー元)で発生した更新データをターゲットサイト(コピー先)のデータディレクトリで保留し、実データには反映させない。
→ ターゲットのデータを更新前(1世代前)の状態にしておくことができます。最新のデータと更新前のデータを見比べることがある場合に有効です。

2.サイト転送の停止
ソースサイトで発生した更新データをターゲットサイトに送らず、ソースのデータディレクトリで保持する。
→ ソース、ターゲット間で実データの転送が停止し、RepliStorで使用する帯域を限りなく少なくできます。

3.転送の停止
ソースサイトで発生した更新データをターゲットサイトに送らず、ソースのデータディレクトリで保持する。
さらにソース、ターゲット間でハートビート通信も停止する。
→ サイト転送の停止に加え、ハートビート通信も停止するため、より多くの帯域を確保できます。

4.スロットル
ソース、ターゲット間での帯域の制限をおこないます。
→ RepliStorで使用する帯域を制御することにより、他のアプリケーションでのネットワーク通信を確保します。

例えば、次のような要求がある場合に、スケジュールオプションを使用することが有効です。

・業務時間内はサーバーの負荷とネットワークトラフィックの増加を避けるため、RepliStorによるレプリケーションを動作させたくない。レプリケーションは業務時間外に処理させたい。

・ソースとターゲット間のネットワーク線が細く、RepliStorで帯域を占有させると困るため、業務時間内はスロットルを使用して帯域を制御したい。

例として、午前9時から午後5時まで毎日スケジュールを組む場合は以下のように設定します。

rep_schedule01

EMC RepliStor簡単活用法 第5回 パフォーマンスチューニング

RepliStorを使う上で大切な要素として、データ転送時の速度を上げるためのパフォーマンスチューニングを考慮する必要がある。

オプションのパフォーマンスタブを開くと設定項目が現れる。

  • TCP/IPバッファ サイズ
  • 完全同期バッファ サイズ
  • 最大バッチ サイズ
  • ターゲット接続
  • 圧縮レベル

各項目については、マニュアルやヘルプをご確認ください。

この中で比較的簡単にチューニング出来る[ターゲット接続]、[圧縮レベル]を変えたときのパフォーマンスを測定した。尚、最適化オプションは[高速LAN]でTCPの設定を行っている。データとして一般的に使用するOfficeやpdf、画像ファイル、圧縮ファイルなどを含んだ6.4GBのファイルでテストを行った。

テスト環境等の詳しい情報は、RepliStorデータ速度比較をご覧いただきたい。

1Gbpsのデータ転送結果

1Gbps

1Gbpsの結果は、非圧縮で接続数を1本にすると最もパフォーマンスが得られた。また、非圧縮の場合、圧縮処理が必要ないため、CPU使用率が最も低い結果であった。

1Gbpsの環境では、次の結果を参考にしてチューニングを行うとよい。
・非圧縮で接続本数を少なめで調整すると速度向上が見られる。
・圧縮レベルは、「なし」「レベル1」で調整すると効果が期待できる。

100Mbpsのデータ転送結果

100mbps

100Mbpsのボトルネックがあるとき、圧縮レベル1、2、3に設定して接続数を8本以上に設定することで12.5MB/Secの理論値超えが可能である。
デメリットとしては高圧縮にすると、CPU使用率が極端に上がり、サーバーのパフォーマンスがダウンしてしまう可能性がある。

100Mbpsの環境では、次の結果を参考にしてチューニングを行うとよい。
・高圧縮で接続本数を多めに調整すると速度向上が見られる。
・圧縮レベルは、レベル1~3で調整すると効果が期待できる。

ファイルサイズと転送スピードの関係

ファイルサイズの大きさによっても、データ転送速度が大きく異なることを知っておいてください。IEなどWebブラウザのキャッシュファイルを削除するとブラウザがハングしてしまう経験はよくあると思います。このように大量の小さなファイルがある環境ではどうしてもパフォーマンスが低下するため注意が必要である。

使用するハードによっては、小さなファイルが多数あっても、速度低下に陥らない事もあるので注意してもらいたい。典型的なハードによる速度低下のグラフを示す。

下記グラフはハードの違いによるデータ転送速度の差を表している。

ハード違い

チップセットやCPUが異なるが、同じSATAⅡ規格のHDDを実装しているマシンで「100KB 100000個」のデータ転送では1ケタの違いが出るほど顕著な差が現れている。小さなファイルが多数あるような環境では、事前にシミュレーションを 行い、同期にかかる時間を予測しておく必要があるかもしれない。

また、OSの違いによる速度差のグラフを示す。
これは、同一スペックのハードでOSだけ異なる環境を構成し速度を計測した。

OS違い

グラフを見ると、1GBのデータではWindows2003で最高速度が出たが接続数が増えるにつれ極端に低下している。その点、Windows2008の方が、なだらかな曲線を描いており、トータルで考えるとパフォーマンスが得られている。1MBのデータではほぼ大差は見られないものの、100KBデータになると接続数16で10MB/sec近くの差が出てしまっている。

実環境のデータは大小さまざまなサイズのデータが入り混じっているため、Windows2008を使用するとトータル的にパフォーマンスが上がる傾向があるだろう。

圧縮と接続数の違いによる転送スピード

下記グラフは、同一スペックのハードを使用し圧縮と接続数を変化させたときの、転送スピードを表している。

Windows2003

win2003

Windows2008

win2008

巨大なファイル群がある環境では、接続数を少なく調整した方がスピードを得られる傾向にある。逆に小さなファイル群がある環境下では、接続数を増やして並列処理させた方がスピードを得られる傾向にある。
また圧縮レベルでは、「圧縮レベル1」に対し「圧縮なし」に設定した方がスピードを得られる傾向にある。これは圧縮することで余分なオーバーヘッドが発生してしまっているためと考えられる。

データは、「1GB 10個」「1MB 10000個」「100KB 100000個」のランダムテキスト ファイルを用意して計測している。いずれも1Gbps環境での測定結果である。

チューニングのまとめ

まずは実環境でのデータを調査して、下の条件に照らし合わせてチューニングを行ってみるのがよいだろう。

1Gbpsの環境下では、圧縮レベルを「なし」に調整
100Mbpsの環境下では、圧縮レベルを1~3に調整
*ただし、圧縮レベルを上げるとCPUの負荷がかかる為、注意が必要

ファイルサイズの平均が大きい場合 — 接続本数を少なめにチューニング
ファイルサイズの平均が小さい場合 — 接続本数を8本程度に設定
ファイルサイズの分布が分からない場合 — 「高速LAN」設定

考慮点として、圧縮されたファイルが多い環境で圧縮レベルを高めに設定すると、圧縮ファイルをさらに圧縮しようとするため、余分なオーバーヘッドがかかり、スピードがダウンする傾向が予想でき、逆に、圧縮しやすい非圧縮ファイルが多い、且つ100Mbpsの環境であれば、圧縮レベルを操作する方がスピードを得られる傾向が予測できる。

さまざまな環境があるためこれらの結果は一概に結論付けるものではないが、チューニングの傾向と対策に活用していただきたい。

第1回 EMC RepliStorの概要
第2回 EMC RepliStorインストールとスペシフィケーションの作成
第3回 VSSオ プションの概要
第4回 フェイ ルオーバー構成
第5回 パフォーマンスチューニング

EMC RepliStor簡単活用法 第4回 フェイルオーバー構成

EMC RepliStorの主要な機能である、フェイルオーバーについて解説していきます。フェイルオーバーとは、あるサーバーに障害が発生すると、別のサーバーにリソースを切り替えることを言います。ハイアベイラビリティのシステムでは、ほとんどがこのフェイルオーバー技術を用いて可用性を高めているのです。

フェイルオーバークラスタの運用サイクル

基本動作は、MSCSやAutoStartなどクラスタリングソフトウェアと同じで、障害が発生すればクラスタリソースを待機側のサーバーへ移動させ、クライアントの接続性を守ります。

Failback

RepliStorでは、データレプリケーションソフトでありながら、仮想IP、仮想ホスト名の作成が可能なため、他社のデータレプリケーションソフトには無い利点を持っています。その利点とは、物理ホスト名を移動させるのではなく、仮想ホスト名を移動させる事が可能であるということ。これは非常に大きな意味を持っています。

RepliStorでは下図のようにクライアント接続を仮想ホスト名で処理させるため、障害が発生しても、その仮想ホスト名を移動させるだけである。

replistor

一方、他社製品では、物理ホスト名を移動させてクライアント接続を処理させるため障害復旧の際、名前の重複が起こる可能性が非常に高く、LANケーブルを抜いて復旧作業することになる。または、復旧作業が難解なためヒューマンエラーを引き起こし、データ損失やシステムダウンなど、2次障害を招く恐れがある。

other

フェイルオーバーの設定

設定はいたって簡単で、Aliasのメニューで必要な項目を入力していくだけである。

alias

このウィザードの詳細は、RepliStorの管理者ガイドをご覧ください。

ファイルサーバーのクラスタであれば、非常に簡単に構築が可能です。また、Windowsのサービスもクラスタリソースとして簡単に登録ができるため、WebサーバーやSQLServer、Oracleなどのクラスタリングも構成が簡単に出来てしまいます。

今回は、EMC RepliStorのフェイルオーバー構成について解説してきました。第5回ではパフォーマンスチューニングについてご説明していきます。

第1回 EMC RepliStorの概要
第2回 EMC RepliStorインストールとスペシフィケーションの作成
第3回 VSSオ プションの概要
第4回 フェイ ルオーバー構成
第5回 パフォーマンスチューニング

Powered by WordPress, WP Theme designed by WSC Project.