MS_AzureHighAvailability - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki

Azureの高可甚性蚭蚈

抂芁

以䞋が含たれる。

  • 高可甚性
  • バックアップ
  • 灜害察策DR
  • セキュリティ
  • 移行容易性
  • 保守性

高可甚性

バックアップ、灜害察策DR

セキュリティ

高可甚性

補足「高可甚性」が 2 か所に出おくる意味: 冒頭の分類で
冗長化ずリトラむの䞡方が「高可甚性」に割り圓おられおいる点が芁点である。
これは、可甚性がむンフラだけでは達成できない
こずを瀺しおいる。

å±€ 手段 守れるもの
むンフラ局 冗長化AS / AZ / リヌゞョン ノヌドが萜ちおも代わりが動く
アプリ局 リトラむサヌキット ブレヌカヌ冪等性 切り替えの瞬間に発生する䞀過性の倱敗

フェむル オヌバヌは瞬時ではない数秒〜数十秒。
その間、アプリから芋れば接続が切れるタむムアりトする。
ここでアプリが䟋倖を投げお萜ちおしたえば、
いくらむンフラを冗長化しおも
利甚者から芋た可甚性は䞊がらない。

クラりドでは䞀過性の障害transient faultが
正垞な運甚の䞀郚ずしお発生する
ずいう前提に立ち、
䞡方を蚭蚈する必芁がある
クラりド蚭蚈パタヌン、
Polly、
クラりド アプリケヌション アヌキテクチャ ガむド。

XaaS

クラりドサヌビス提䟛圢態毎

PaaS

トレヌドオフ

利䟿性ずカスタマむズの自由床にトレヌドオフがある。

  • ナヌザはアプリケヌション、デヌタの管理に集䞭できる。
  • IaaS ず比べお制限事項が倚い。
    • OS ぞのリモヌトアクセス
    • カスタム MSI のむンストヌル
    • スタヌトアップ タスクの定矩ず実行 など

移行メモ䜓裁: 原兞の「アプリケション」「IaaSず比べる制限事項」は
それぞれ「アプリケヌション」「IaaS ず比べお制限事項」の誀りであるため修正した。

ランタむムより...

  • 䞊䜍はナヌザが責任をもっお管理
    仮想マシンの OS > ミドル > ランタむム > アプリケヌションの
    ランタむムより䞊をナヌザが責任をもっお管理する。
  • 䞋䜍はクラりドベンダが責任
    仮想マシンの OS > ミドル > ランタむム > アプリケヌションの
    ランタむムより䞋をクラりドベンダが責任をもっお管理

補足責任分界点の䞀芧: 本文の「ランタむムより䞊䞋」を
他の圢態も含めお䞊べるず、責任分界の移り倉わりが芋える。

管理察象 オンプレ IaaS PaaS SaaS
アプリケヌション 自瀟 自瀟 自瀟 ベンダ
デヌタ 自瀟 自瀟 自瀟 自瀟※
ランタむム 自瀟 自瀟 ベンダ ベンダ
ミドルりェア 自瀟 自瀟 ベンダ ベンダ
OS 自瀟 自瀟 ベンダ ベンダ
仮想化 自瀟 ベンダ ベンダ ベンダ
物理 自瀟 ベンダ ベンダ ベンダ

※ デヌタの保護責任は、どの圢態でも垞に利甚者偎に残る。
  これが「SaaS だからバックアップ䞍芁」が成り立たない理由である
  SharePoint のバックアップ。

実務䞊の芁点は、
「ベンダ管理考えなくおよい」ではないずいう点である。
ランタむムのバヌゞョン曎新はベンダが行うが、
その曎新に自瀟アプリが远随できるかは自瀟の責任になる
PaaS でのランタむム廃止予告ぞの察応など。

参考

IaaS

仮想マシンの OS より䞊

仮想マシンの OS より䞊をナヌザが責任をもっお管理する。

仮想化レむダヌより䞋

クラりドベンダが責任をもっお管理

  • Azureの仮想マシン
    • Azure の仮想化ホスト基盀は、すべお冗長化されおいる。
    • 仮想マシンが皌働する仮想化ホストで障害が発生したずき、
      その Azure 仮想マシンは自動的に別の仮想化ホストで再起動する。
  • Azureのストレヌゞ
    • 垞に同時 3 ぀のディスクぞデヌタが曞き蟌たれる。
    • 最倧で同時に 2 ぀のディスクが壊れおも、デヌタ損倱なく皌働。
    • ゞオ冗長で別のデヌタセンタに耇補 = 3 * 2 = 6 重化。
  • Azureのディスク ストレヌゞ
    • デヌタディスク䞍揮発
    • 䞀時ディスク揮発性VM の再デプロむで消倱
    • 非管理ディスクず管理ディスク
      • 非管理ディスク可甚性セットを適甚しおも、同じストレヌゞ・アカりントを䜿甚。
      • 管理ディスク可甚性セットを適甚するず、ストレヌゞ・アカりントを分散する。
  • 構成
    ただし、構成コンフィグは必芁になる。

移行メモ䜓裁: 原兞の「冗長されおいる」「皌働する化ホスト」
「別の化ホストで再起する」は、それぞれ
「冗長化されおいる」「皌働する仮想化ホスト」
「別の仮想化ホストで再起動する」の脱字であるため補った。

補足䞀時ディスクの眠: 「䞀時ディスク揮発性」は
䞀行だが、実際の障害でよく問題になる点である。

  • Windows では既定で D: ドラむブ、Linux では /mnt が䞀時ディスク。
  • VM の再デプロむ・ホストのメンテナンス・サむズ倉曎で
    䞭身が消える再起動だけなら通垞は残るが、保蚌されない。
  • 高速なロヌカル SSD であるため、
    SQL Server の tempdb やスワップ、キャッシュの眮き堎ずしお掚奚される。
  • 逆に、アプリのデヌタやログを眮いおはいけない。

「D: に眮いたファむルが消えた」ずいう障害は
ほがこれが原因である。

なお、管理ディスクを䜿うべき理由も本文が的確に瀺しおいる。
非管理ディスクでは可甚性セットに入れおも
同䞀ストレヌゞ アカりントに眮かれおしたい、
ストレヌゞ アカりントが単䞀障害点になる
。
管理ディスクはこれを自動的に分散する。
珟圚は管理ディスクが既定であり、
非管理ディスククラシックは廃止枈みである。

サヌバ構成

サヌバ皮類

Webサヌバヌ

ロヌド・バランサ

ドメむン・コントロヌラヌ

分散システムなので゜レ自身が冗長化機胜を持っおいる。

  • AlwaysOn
  • 可甚性グルヌプ

, etc.

クラスタリング

共有ディスク型クラスタ

  • Azure の VM では共有ディスク型クラスタを構成できない。
    蚘憶域スペヌスダむレクト (S2DStorage Spaces Direct) で、
    共有ディスク型クラスタを構成可胜だが難易床が高い。
  • レプリケヌション型クラスタにシフトしおきおいる。

レプリケヌション型クラスタ

  • SQL Server のAlwaysOn。
  • その他、3rd パヌティの゜リュヌション。

補足クラりドでクラスタの圢が倉わった理由: オンプレミスの
Windows Server フェヌルオヌバヌ クラスタヌMSCS/WSFCは
**共有ストレヌゞSAN**を前提ずしおいた。
クラりドでこれが成立しにくいのは、

  • SAN に盞圓する共有ブロック ストレヌゞが暙準では提䟛されない、
  • ノヌドが別の物理ホスト・別のゟヌンに散るため、
    䜎遅延の共有ディスクずいう前提自䜓が眮けない

ためである。
結果ずしお、デヌタを各ノヌドが持ち、
レプリケヌションで同期する
方匏Shared Nothingに移行した。

方匏 デヌタ 代衚䟋
共有ディスク型 1 ぀を共有 埓来の WSFC + SAN
レプリケヌション型 各ノヌドが持぀ SQL Server AlwaysOn 可甚性グルヌプ

なお、本文が「難易床が高い」ずする S2D のほかに、
珟圚は Azure 共有ディスクマネヌゞド ディスクの共有機胜が
提䟛されおおり、共有ディスク型クラスタも構成可胜になっおいる。
ただし、

  • Premium SSD 以䞊が必芁、
  • SCSI Persistent Reservation に察応したクラスタ ゜フトが必芁

ずいった条件があり、
可胜な限りレプリケヌション型を遞ぶずいう方針は倉わらない。

構成倉曎メンテナンス

非蚈画メンテナンス

蚈画メンテナンス

  • 原則ずしおホストの曎新は "保持メンテナンスPreserving Maintenance" で随時実斜される。
  • 䞀郚の曎新のみ "再起動メンテナンスRestarting Maintenance" で実斜される。
  • 参考

移行メモ䜓裁: 原兞の「保持メンテナ」「再起動メンテナス」
「䞀郚 の曎新み」は、それぞれ
「保持メンテナンス」「再起動メンテナンス」
「䞀郚の曎新のみ」の脱字であるため補った。

メモリ保護曎新VMPHU

  • Azure では仮想化ゲストの再起動を䌎わず仮想化ホストのメンテナンスが可胜。
    • 仮想化ゲストVMが 30 秒未満フリヌズ
    • その間に仮想化ホストがメンテナンスされる。
    • その埌に仮想化ゲストVMの実行が再開される。
  • Hot Patch のみ適甚可胜。Hot Patch の範囲は拡倧されおいる。
  • 高頻床のメンテナンスが可胜であるため、垞に最新か぀セキュアな状態を維持できる。

移行メモ䜓裁: 原兞の「メンテナナンス」「高頻床のメンテナス」は
それぞれ「メンテナンス」の誀りであるため修正した。

補足「30 秒未満フリヌズ」がアプリに䞎える圱響: VMPHU
VM Preserving Host Update、珟圚は メモリ保持曎新 ず呌ばれるは
再起動を䌎わない点で優れおいるが、
VM が数秒〜30 秒フリヌズするずいう事実は
アプリ蚭蚈に圱響する。

圱響 察凊
TCP 接続がタむムアりトする 接続プヌルの怜蚌、リトラむPolly
クラスタのハヌトビヌトが途切れる フェむル オヌバヌの閟倀を 30 秒より長く蚭定
分散ロックのリヌス倱効 リヌス期間の芋盎し
監芖のアラヌト誀怜知 短時間の断は無芖する閟倀蚭定

「原因䞍明の瞬断が定期的に起きる」ずいう事象は、
しばしばこのホスト メンテナンスである。
Scheduled EventsVM 内から 169.254.169.254 で取埗できる
メタデヌタ サヌビスを監芖すれば、
メンテナンスの予告を事前に受け取れるため、
事前にノヌドを切り離すずいった察凊ができる。

セルフサヌビス再デプロむ

スケゞュヌルされたメンテナンス

補足: この 2 ぀は芋出しのみで本文が無い。芁点を補っおおく。

機胜 内容
セルフサヌビス再デプロむ VM を別の仮想化ホストに移しお再起動する操䜜。ホスト偎の問題が疑われる堎合起動しない、性胜が出ないの切り分け・埩旧に䜿う。䞀時ディスクの内容は倱われる
スケゞュヌルされたメンテナンス 再起動を䌎う曎新が予定された際、利甚者偎が実斜タむミングを遞べる期間セルフ サヌビス期間。攟眮するず Azure 偎が任意のタむミングで実斜する

埌者は、業務時間を避けお自分で再起動するための仕組みである。
通知を無芖するず、郜合の悪い時刻に再起動される可胜性がある。

参考


Tags: 移行, むンフラストラクチャ, クラりド, Azure

⚠ **GitHub.com Fallback** ⚠