Project Tardigrade で Azure Virtual Machines の回復性を強化する

2019年8月14日 に投稿済み

Chief Technology Officer, Microsoft Azure

「Microsoft の目標は、組織がそのワークロードを Azure 上で確実に実行できるようにすることです。私たちはこのことを指針とし、ビジネスの生産性を高めるだけでなく、シームレスなカスタマー エクスペリエンスを提供するために、Azure プラットフォームを耐障害性の高いものに進化させるための投資を継続的に行っています。先月、私は、信頼できるクラウド サービスのセットを提供するという Microsoft のコミットメントの一環として、この領域で改善を続けるために進行中のいくつかの取り組みに焦点を当てたブログ記事を公開しました。本日は、Project Tardigrade についての内容を拡大してお伝えします。これはプラットフォームの回復性を高める取り組みで、稀に発生する自然発生的なプラットフォーム障害時にもサービスの高可用性を向上させます。次の投稿は、これらの取り組みを先導しているコンピューティング プラットフォーム ファンダメンタルズ チームの Pujitha Desiraju と Anupama Vedapuri による記事です。」 Mark Russinovich (CTO、Azure)


この投稿は、Jim Cavalaris (プリンシパル ソフトウェア エンジニア、Azure Compute) によって共同編集されました。 

 

Project Tardigrade と名付けられたこの取り組みは、8 本足の微小生物である緩歩動物 (別名クマムシ) からインスピレーションを得ています。クマムシは、事実上その命を奪うことはできず、過酷な条件にさらされても、どうにかして生き延びます。これは、回復力を考慮したときに、私たちが想定しているサーバーの姿と同じであり、Project Tardigrade という名前の由来となっています。このプロジェクトでは、さまざまな過酷な条件の中でクマムシが生き延びるのと同様に、ハードウェアからソフトウェアに至るまで、プラットフォームの複数のレイヤーにわたって回復性と自己回復メカニズムを構築し、お使いの仮想マシン (VM) を可能な限り保護することを目指しています。

クマムシのイメージ。

移行手順

Project Tardigrade は、広範なプラットフォームの回復性強化イニシアチブであり、予期せぬホストの挙動によってお使いの VM に影響を与えないようにすることを目的とした、多数の緩和戦略を採用しています。これには、コンポーネントを自己修復し、潜在的な障害から迅速に回復させて、ワークロードへの影響を防ぐことが含まれます。稀に重大なホスト障害が発生した場合でも、Microsoft の優先事項は、お客様のワークロードをシームレスに実行できるようにするために、これらの自然発生的なイベントからお客様の VM を維持し、保護することです。

回復ワークフローの一例を以下に示します。これは、ホスト サーバー上の基礎で起こった障害が原因で、お客様が開始した VM 操作が失敗するという、稀に発生するイベントです。失敗した VM の操作を正常に実行するため、また問題がサーバー上の他の VM に影響を与える可能性を先回りして防ぐために、Tardigrade の回復サービスに通知が送られ、フェールオーバー操作の実行が開始されます。

次のフェーズは、Tardigrade の回復ワークフローについて簡単に説明するものです。

フェーズ 1:

この手順は、お客様の VM の実行に影響はありません。ホストで実行されているすべてのサービスをリサイクルするだけです。稀にではありますが、障害が発生したサービスが正常に再起動しない場合は、フェーズ 2 に進みます。

フェーズ 2:

Microsoft の診断サービスはホスト上で実行され、関連するすべてのログ/ダンプをシステムで収集しています。これにより、フェーズ 1 での失敗の原因を十分に診断することができます。この包括的な分析により、問題の「根本原因」を把握し、将来の再発生を防ぐことができます。

フェーズ 3:

大まかに言えば、Microsoft はお客様への影響を最小限に抑えながら OS を正常な状態にリセットし、ホストの問題を緩和します。このフェーズでは、各 VM の状態が RAM に保持されます。その後、OS の正常な状態へのリセットが開始されます。OS がすみやかにリセットされると、サーバー上のすべての VM 上で実行中のアプリケーションは、CPU が一時的に停止しているため、短時間「フリーズ」します。この状況は、ネットワーク接続が一時的に失われたが、再試行ロジックによりすぐに再開された場合に似ています。OS が正常にリセットされると、VM は保存された状態を使用して通常のアクティビティを再開するため、潜在的な VM の再起動を回避することができます。

上記の原則により、ホスト内の単一コンポーネントの障害がシステム全体に影響を与えないことが保証され、お客様の VM の予期せぬホストの障害に対する免疫力を高めることができます。これにより、重要な障害 (カーネル レベルの障害やファームウェアの問題など) の中でも最も重大な形の障害から迅速に回復することができます。同時に、お客様にとって重要な仮想マシンの状態を維持することもできます。

今後の予定

現在、Microsoft は前述の Tardigrade 回復ワークフローを使用して、Azure フリート内の潜在的なソフトウェア ホストの障害を捕捉し、迅速に回復しています。それと並行して、Microsoft は継続的に技術力を革新し、この回復性イニシアチブで対処できるさまざまなホスト障害シナリオを拡大しています。

また、Project Tardigrade のプロアクティブな能力を活用するために、機械学習の最新のイノベーションを探求しています。たとえば、機械学習を活用して、より多くの種類のホストの障害をできるだけ早期に予測する、また、ワークロードに影響を与える可能性のあるホストの異常なリソース利用パターンを検出できるようにすることを計画しています。また、機械学習を活用して、適切な修復アクション (Tardigrade の回復ステップ、潜在的なライブ移行など) を推奨することで、Microsoft フリート全体の回復オプションを最適化する予定です。

多くのお客様がビジネスに不可欠なワークロードを Microsoft Azure クラウド プラットフォームに移行し続ける中、Microsoft は常に学習と改善を続けており、計画外の障害による中断に関してお客様の期待に応え続けられるように取り組んでいます。信頼性は、コンプライアンス、セキュリティ、プライバシー、透明性と共に、信頼できるクラウド コミットメントの中核となる理念です。これらすべての分野において、お客様からの信頼を獲得し、そしてそれを維持しなければならないことを Microsoft は知っています。そしてそれは正しいことを言うだけでなく、正しいことを行うことで実現できます。Project Tardigrade により実践しているプラットフォームの回復性は、基礎となるホストの問題が VM に影響を与えないようにすることで、VM の可用性が既に強化されています。

Microsoft は、このプロジェクトや他のプロジェクトのさらなる改善点を共有してまいります。お客様の組織に力を与えるためにプラットフォームの信頼性を常に向上させていき、また可能な限りその透明性を保って進めていきます。