はじめに
- 恥ずかしながら、レプリケーションとスナップショットの言葉の定義が曖昧だったので備忘として記録します。
- こちらも恥ずかしながらですが、Qiita初投稿となります。笑
#対象者
- 最近インフラ周り、クラウド系の技術知識を勉強し始めた方(AWSとかの勉強をしていても良く出てくる言葉ですよね)
- スナップショット、レプリケーションの認識が曖昧な方
レプリケーションとスナップショットとは
###レプリケーション
- レプリケーションを一言で表すなら「異なる場所にデータの複製を作る」というデータ保護方式のことになります。
- Replication:複製
- 後ほど説明するスナップショットとの大きな違いになりますが、レプリケーションは「データ自体」を保存し、ある時点、あるいは、リアルタイムでストレージAとまったく同じ状態を別のストレージBに複製します。
- 大きなメリットとしては、以下のような感じかと思います。
- 遠隔地(他のサイトなど)にデータコピーできるため、レプリケーションをディザスタ・リカバリ(DR)として使用することが可能です。
例えば、ストレージAに何らかの問題があったとしても、予備のシステム(ストレージB)を稼働させることで、障害からの復旧時間を最小限に食い止めることが可能です。 - 障害対策だけではなく、読み取り処理を分散できるなど負荷分散の面でも利点があります。
例えば、多くの参照リクエストが想定されるようなシステムにおいて、リードレプリカ(読み取り用ノード)に参照の処理を分散し、一方で、マスターノードは更新処理のみを行うといった負荷分散が可能になります。
###スナップショット
- 続いてスナップショットの説明になりますが、こちらを一言で表すなら、「ある瞬間のデータを切り取る」というバックアップ方式になります。データが変化した(更新された)部分だけを時間毎に記録しているのでスナップショットの保存領域は元データの1割~2割程度となります。バックアップでは容量が2倍になりますが、そうならないのは、OS情報等が割愛され、ファイルはブロック単位のデータとして圧縮されているためです。完成したスナップショットはプライマリストレージからセカンダリストレージにコピーされ削除されるか、新しいスナップショットによって消去されるまで格納されます。
- Snapshot:瞬間を切り取ったモノ
- レプリケーションと大きく違う部分になりますが、スナップショットで記録するのは、メタデータ(対象となるボリュームやLUN(Logical Unit Number)に加わった変化のI/O)であり、バックアップではないことに注意が必要です。
- サイト間バックアップを行いたい場合は、例えば仮想マシンのスナップショットからテンプレートを作成することで対応可能です。
- 大きなメリットとしては、以下のような感じかと思います。
- ストレージがウイルス感染やシステム障害によってデータ復旧ができない状態でも、定期的にスナップショットをしておくことで、取得時点にシステムをリストアすることが可能です。そのため「データ可用性」を担保するために欠かせない機能の1つです。
- 通常のバックアップと比較し保存領域が小さいため、データのコピーが非常に高速で、また、ストレージ性能に影響を与えにくいです。取得間隔や、何世代分保持するかを設定することが可能です。
- 図2 スナップショットイメージ
#おわりに
・今回は、レプリケーションとスナップショットの特徴について解説しました。
・引き続き、アウトプットできる知識の吸収を意識し、勉強に勤しみます。
・それでは!