データの複製方法の一つとして、レプリケーションというものがある。同じシステムに複数の環境を置いて、一方は本番用、もう一方は待機用という区分で使い、通常のバックアップと比較して、本番で障害が発生した際の切り替えが早い。システム復旧までの時間を最小限に食い止めることができる。
レプリケーションは災害対策という側面もあるため、基本的には距離の離れた2つのサイトにそれぞれの環境を置くことが推奨されているが、稀に同じサイトの同じネットワーク内にレプリケーションを行なう手法も存在する。
今回の投稿では、その方法について見ていきたい。
複数台のストレージからレプリカとしての利用
同じネットワーク内に2台のストレージを置いたレプリケーションの例を見ていく。
・プライマリ(マスタ):メインのストレージとして活用。データの読み書きが行なわれる。
・セカンダリ(レプリカ):マスタのデータを複数するためのストレージ。複製方法としてリアルタイム書き込みである同期型、一定の時間に反映処理を行なう非同期型が存在する。
同じネットワーク内にレプリカを置くメリットとして、まず障害発生時の迅速な切り替えが挙げられる。これは長距離型の2サイトレプリケーションにも通ずるが2サイトよりも物理的な距離が近い分、復旧がよりスピーディーな形で期待できる。同サイトという性質上、両機を設置しているデータセンター全体に災害による被害が発生した際はデータ復旧ができなくなるリスクも併せ持つ。
また万が一、マスタ側のストレージ筐体そのものが故障してデータの取り出しができなくなったとしてもレプリカ側での復元でどうにかなる。
そして同サイトに置く最大のメリットは負荷分散だろう。レプリカを読み取り専用として使うリードレプリカとして活用してマスタとネットワーク、それぞれの負荷を軽減させる効果がある。
マスタ側は新規データの格納、またはデータ更新処理に専念して、レプリカ側では大量のアクセスを捌く。ものすごい数のユーザが利用するようなアプリケーションではネットワーク内にリードレプリカを設置するメリットは大きい。
同じ筐体内でのレプリケーション
次の例では同じネットワーク内の1台のストレージ内で行なわれるレプリケーションについても触れる。
デメリット面から先に言えば、設置先のデータセンターへの災害はもちろん、ストレージ機器そのものに障害が起きてしまったらデータ復旧ができないリスクもある。
ただ、レプリケーションすらせずに本番データだけでシステム運用するよりははるかにマシなのでその効用について見ていく。
同一筐体型レプリケーションは、ストレージ内に本番データの倍相当の容量を準備する。そこから領域を2つに分けて本番用と複製用として使える。
メリットとしてはストレージ機器の購入台数を少なくするコスト削減効果、そして別筐体によるレプリカより物理的な距離がもっと近くなるため、障害発生時はかなり迅速な復旧が期待できる。
同一筐体内レプリケーションの仕組み
複数の物理ディスクから生成されるストレージプール、こちらを本番用と複製用の領域、2つの領域に分割することを初めに行なう。
この領域の分割手法としてはRAID技術の採用が一般的である。複数本の物理ディスクから2つの独立したRAIDグループを作成して、それぞれのグループを本番用と複製用に割り当てる。
1つのRAIDグループで本番用と複製用に領域を分けることはデータ冗長性ではかなり非効率な仕組みとなっており、その1つのRAIDグループ全体に故障が起きた際は両方のデータに影響が及んでしまう。その意味で同一筐体内でのレプリケーションでは2つのRAIDグループを作成できるくらいの物理ディスクの本数が必要となる。ストレージ機器を複数台用意するよりはリーズナブルな選択肢となっている。
ひとりごと
いろいろなサービスで使っているログインIDとパスワードの組み合わせが不正ユーザに漏れたかもしれない。。
複数のサービスから「異なるデバイスからの不正アクセスがありました」とのメール通知を受けとったため、この組み合わせでアカウントを作成してクレカ情報を登録しているサービスやアプリのパスワードを片っ端から変更した。急いで。
でも自分が把握していないサービスもおそらくあって。それに不正アクセスされたらアウトだから今は気が気ではない。
どこで漏れたのかなぁ。