【後編】AWS/Azureの高耐久性/高持続性を支える「3重記録ミラーリング」~クラウドの耐久性とは~
- コラム
- クラウド
本編は、「クラウドを使えば、何千年もデータを保存できる。それは誤解です。」の後編です。AWS/Azureで提供されるサービスの耐久性/持続性は、99.999999999%(イレブンナイン)、言い換えれば、“オブジェクト平均年間予測喪失率”0.000000001%に設計されているとアナウンスされています。
この高い信頼性を支えているのは、RAID技術の中のRAID1(ミラーリング)技術です。本編では、クラウド環境でのミラーリング技術の利用について解説します。
AWS,Azureともに、同じオブジェクトを同時に別々の3か所に記録することで耐久性/持続性を向上させていると説明しています。RAID技術でいえば、RAID1(ミラーリング)で、3個のストレージを使用することに相当します。
(2)3重記録のRAID1(ミラーリング)構成
ストレージ1個の“オブジェクト平均年間予測喪失率”が仮に、0.1%(=1X10-3)であった場合に、ストレージ書込みを多重化した場合に、この値がどのように改善されるかについて試算してみます。多重化するストレージがそれぞれ独立に稼働している場合は、その確率を掛け合わせることで、同時障害が発生する確率を計算できます。結果は以下の通りですが、多重化することで“オブジェクト平均年間予測喪失率”は飛躍的に改善されます。
AWS/Azureの“オブジェクト平均年間予測喪失率”0.000000001%に設計されているとアナウンスされていますので、3重化される前の元のストレージの“オブジェクト平均年間予測喪失率”を逆算してみました。
AWS,Azureともに、3重書だけで、データを完全に守れるとは考えず、追加のシステム的な仕掛けも入れております。そうは言っても、データの可用性を保ったまま、データを喪失しない手段として、別リージョンでもデータ保管するということを推奨しています。つまり、3重書込みを2セット持つことになります。例えば、東京リージョンで、データを保管しているなら、大阪リージョンでもコピーを持ちましょうということです。これは、自然災害対策にもなりますし、通常時にデータの喪失確率も格段に下げられます。
(1)AWS/Azureの高耐久性/高持続性を支える「3重記録ミラーリング」について解説を行いました。特に、運用停止ができないクラウドサービスでは3重以上の多重化が必要であることを説明しました。4.AWS,Azureにおけるミラーリング
(1)RAID1(ミラーリング)の基本構成
RAID1(ミラーリング)の基本構成は、図1のように、コントローラの下に2台のHDDを配置します。上位装置から書き込まれたデータA,B,Cは順に、HDD0,HDD1の2台のHDDに同時に書き込まれます。HDD0またはHDD1でいずれか読み出し又は書き込み障害が発生した場合、図2のような手順で、障害復旧を図ります。
①障害発生で、運用を停止します。
②障害の発生しているドライブを交換します。
③障害の発生していないHDDを使って、交換したドライブにデータを復旧(リビルド)します。
④運用を開始します。
2台構成のRAID1では、1台が故障すると正常なのは残り1台となります。このまま運用を続けて、もし、もう1台も故障するとデータ喪失に繋がります。そこで、1台目の故障で運用を停止し、復旧手順に入ります。部門内での利用に限定しているような、運用停止時間を取ることが許されるケースでは、この構成でも利用できます。
しかし、クラウドサービスでは原則、運用停止時間を取ることが許されませんので、さらに信頼性を高くしています。
AWS,Azureともに、同じオブジェクトを同時に別々の3か所に記録するとしていますので、これと構成が同じRAID1(ミラーリング)の3重記録にスペアストレージを加えた構成を図3に示します。この構成では、コントローラの下に、3個のストレージとコントローラからオンラインで繋ぐことができるスペアのストレージを用意します。上位装置から書き込まれたデータA,B,Cは順に、ストレージ0,ストレージ1、ストレージ2の2個のストレージに同時に書き込まれます。
ストレージ0、ストレージ1または、ストレージ2のいずれか読み出し又は書き込み障害が発生した場合、図4のような手順で、障害復旧を図ります。
①障害を発生したストレージをコントローラから切り離し、スペアストレージをコントローラに
繋ぎます。
・復旧モードにはなりますが、運用は停止しません。
②障害が発生していないストレージからデータをスペアストレージにコピーします。
・新たなデータ登録があった場合には、元のスペアストレージにも記録します。
・スペアストレージへのコピーが完了すると復旧は完了し、通常運用に戻ります。
このように常に2個以上のストレージが正常稼働している状態で運用を停めることなく、障害から復旧します。
5.RAID1(ミラーリング)による信頼性の向上
①2重化の場合 0.1%X0.1%=1X10-6=0.0001%
②3重化の場合 0.1%X0.1%X0.1%=1X10-9=0.0000001%
尚、ストレージがそれぞれ独立に稼働しているという条件を満たすため、AWSでは、各ストレージを電力、冷却、物理セキュリティが異なる別々のデータセンター群に配置しています。リージョン内にあるこのデータセンター群をアベイラビリティゾーンと称しています。
結果は、0.025%で、通常のHDDの平均年間故障率にくらべれば、極めて信頼性の高い値となりました。ただ、AWS/Azureの耐久性/持続性ともに単なる計算値であり、保証値でも実績値でもないことには留意しておく必要があります。
6.さらなるデータ保全のために
HDDは機械的稼働部、物理的特性、電気的特性の劣化が常に進みます。また、SSDは電気的特性劣化に加え、ファームウエアバグのリスクも持っています。クラウドは確かに可用性が高くアクセス時間が短いのですが、その裏では常に多量のHDD,SSDといったホットストレージを入れ替えながら運用しているという実態もあります。大量の電源供給や大量のHDD,SSDの供給が必要という事情もあります。新型コロナウィルスのような未知なる脅威の影響も受けやすいと考えます。
一方、磁気テープや光ディスクは、コールドデバイスと呼ばれ、機械的稼働部や電気的な部品を含まず、記録素材の劣化のみ緩やかに進みます。また、読み出し障害が発生しても、影響範囲は媒体の一部に限られ、媒体全体に一度に波及することはありません。可用性の面ではホットデバイスに及びませんが、重要データの喪失防止の観点からは、コールドデバイスに退避しておくことは極めて有効な手段となります。
まとめ
(2)3重化しているとは言っても、災害対策の観点等から重要データの場合は、地理的に離れた二つのリージョンにデータを置くことを、サービス提供側も推奨していることを紹介しました。
(3)重要データの場合は、追加のデータ保全手段として、年数が経過しても物理的な劣化が少ないコールドデバイス(磁気テープ、光ディスク)の利用も有効であることを紹介しました。