Share via


クラウド コンピューティング: リソースを管理する

クラウド コンピューティングなど、本質的に複雑なシステムのリソース管理では、さまざまなリソースの測定と割り当て方法が必要になります。

Dan Marinescu

出典: 『Cloud Computing: Theory and Practice』(Elsevier Science & Technology books、2013 年)

リソース管理は、人間が作り出したあらゆるシステムで必要な核となる機能です。リソース管理は、パフォーマンス、機能、およびコストというシステムを評価するための 3 つの基本的な基準に影響します。リソース管理が効率的に行われていないと、パフォーマンスとコストに直接的に悪影響を及ぼします。また、システムの機能にも間接的に影響します。システムの一部の機能では、コストが高くなりすぎたり、パフォーマンスが低いことが原因で非効率になるおそれがあります。

クラウド コンピューティング インフラストラクチャは、大量の共有リソースを保有する複雑なシステムです。共有リソースは、予測不可能な要求を受けたり、制御できない外部のイベントの影響を受ける可能性があります。クラウドのリソース管理では、多目的の最適化に対応するための複雑なポリシーや判断が必要になります。クラウド コンピューティング インフラストラクチャのシステムは複雑で、グローバルな状態情報を正確に把握することが不可能なので、クラウドのリソース管理は、かなり困難な課題となります。また、環境との絶え間ない予測不可能な相互作用にもさらされます。

サービスとしてのインフラストラクチャ (IaaS)、サービスとしてのプラットフォーム (PaaS)、およびサービスとしてのソフトウェア (SaaS) という 3 つのクラウド提供モデルに関連するクラウド リソース管理の戦略は、それぞれ異なります。どのモデルでも、クラウド サービス プロバイダーは、クラウドの弾力性を求める声に反する大規模で流動的な負荷に直面しています。スパイクが発生する可能性を予測できる場合は、あらかじめリソースを用意できます。たとえば、季節限定の Web サービスでスパイクが発生する可能性があります。

計画されていないスパイクについては、状況は少しだけ複雑になります。需要に応じてリリースまたは割り当て可能なリソースのプールがあり、リアルタイムのリソース再割り当てを実行できる監視システムがある場合は、計画されていないスパイクの負荷に対応するために自動スケーリングを使用できます。自動スケーリングは Google App Engine などの PaaS サービスでサポートされています。IaaS の自動スケーリングには規格がないため複雑です。

頻繁に変化して変化を予測できないクラウドでは、一元管理を行っても、サービスを継続して提供したり、パフォーマンスを保証したりすることはできそうにありません。実際、一元管理では、施行する必要がある多数のクラウド管理ポリシーに適切な解決策を提供できません。

システムの規模、多数のサービス要求、多数のユーザー人口、および予測できない負荷により、自立型ポリシーは強い関心を集めています。ピークのリソース要求の平均割合は大きくなる可能性があります。

ポリシーとメカニズム

通常、ポリシーは決断を導く主要な方針を表しますが、メカニズムはポリシーを実装する方法を表します。ポリシーとメカニズムを分離することは、コンピューター サイエンスの分野の原則です。Butler Lampson と Per Brinch Hansen は、OS の設計において、この分離の確かな根拠を提示しています。

クラウド リソース管理のポリシーは、5 つのグループに大別できます。

受付制御ポリシーの明確な目的は、上位レベルのシステム ポリシーに違反してシステムがワークロードを受け入れないようにすることです。たとえば、システムで処理中または請け負ったジョブの完了を妨げる追加のワークロードを受け入れないようにします。ワークロードを制限するには、グローバル システム状態について多少把握している必要があります。多くの場合、動的なシステムでは、この情報は古い情報となります。

容量の割り当ては、個々のインスタンスにリソースを割り当てることを意味します。1 つのインスタンスは、1 つのアクティブ化されたサービスです。複数のグローバルな最適化の制約を受けるリソースを割り当てるには、各システムの状態が急速に変化する大きな領域で検索を行う必要があります。

ローカルで負荷分散と電力消費の最適化を実行することはできますが、負荷分散や電力の最適化のグローバル ポリシーを作成する際には、前述の課題と同様の課題に直面します。負荷分散と電力の最適化には相関関係があり、サービスを提供するコストに影響します。

負荷分散という用語の一般的な意味は、一連のサーバーに負荷を均等に分散することです。たとえば、4 台の構成が同じサーバー A、B、C、および D がある場合について考えましょう。相対的な負荷は、それぞれサーバー容量の 80%、60%、40%、および 20% であるとします。完全な負荷分散を行うと、すべてのサーバーで同じ負荷 (各サーバー容量の 50%) を処理することになります。

クラウド コンピューティングの主な目的は、サービスの提供にかかるコストを最小限に抑えることです。具体的に言うと、電力消費を最小限に抑えることも目的としています。その結果、負荷分散という用語に異なる意味が適用されるようになりました。すべてのサーバーに負荷を均等に分散するのではなく、負荷を集中させて、できる限り少ない台数のサーバーを使用するようにし、使用しないサーバーをスタンバイ モード (サーバーの電力消費が少ない状態) にします。この例では、サーバー D の負荷をサーバー A に移行し、サーバー C の負荷をサーバー B に移行するようにします。そのため、サーバー A とサーバー B の負荷は最大量になり、サーバー C とサーバー D はスタンバイ モードに切り替わります。

サービス品質は、対応が非常に困難であると同時に、クラウド コンピューティングの将来に不可欠な要素となる可能性があるリソース管理の側面です。多くの場合、リソース管理の戦略では、パフォーマンスと電力消費の両方を対象としています。

Intel SpeedStep や AMD PowerNow! などの動的電圧周波数スケーリング (DVFS) 手法では、電圧や周波数を下げて電力消費を削減します。これらの手法は、当初はモバイル デバイスの節電ニーズに対応することを目的としていましたが、高パフォーマンスのサーバーで使用されるプロセッサーを含む、ほぼすべてのプロセッサーに組み込まれています。電圧と周波数を下げた結果、プロセッサーのパフォーマンスは低下しますが、電力消費量に比べて、パフォーマンスの低下を大幅に抑えています。

事実、5 種類のポリシーに対応するすべての最適なメカニズムまたは最適な状態に近いメカニズムはスケール アップしません。通常、このようなメカニズムでは、受付制御など 1 つのリソース管理の側面を対象にし、電力消費の節約については対応していません。多くのメカニズムでは、応答に許容された時間内に効率的に処理できない複雑な計算が必要になります。パフォーマンス モデルは複雑で、分析ソリューションは手に負えず、パフォーマンス モデルの状態情報を集めるのに使用する監視システムはかなり煩雑になる可能性があり、正確なデータを提供できません。

そのため、多くの手法では、システムのスループットや時間という観点でシステム パフォーマンスに着目しています。多くの手法には電力のトレードオフまたは QoS 保証が含まれておらず、一部の手法は非現実的な憶測に基づいています。たとえば、容量の割り当ては最適化の問題と見なされますが、サーバーはオーバーロードから保護されているという憶測に基づいています。

クラウドを制御する

コンピューター クラウドの割り当て手法は、アドホックな方式ではなく、しっかりとしたアプローチに基づいている必要があります。リソース管理のポリシーを実装するための 4 つの基本的なメカニズムは、次のとおりです。

  • 制御理論: フィードバックを使用してシステムの安定性を保証したり、遷移動作を予測しますが、ローカルの動作しか予測できません。
  • 機械学習: 主なメリットは、システムのパフォーマンス モデルが必要ないことです。この手法は、いくつかの自立型システム マネージャーの調整に適用できます。
  • 実用性ベース: ユーザー レベルのパフォーマンスとコストに相関関係を持たせるメカニズムとパフォーマンス モデルが必要です。
  • 市場指向/経済のメカニズム: 一連のリソースのオークションをまとめるシステム モデルを必要としないメカニズムです。

対話的なワークロードと非対話的なワークロードは区別する必要があります。対話的なワークロード (たとえば Web サービス) の管理手法ではフロー制御と動的なアプリケーションの配置が必要になりますが、非対話的なワークロードではスケジューリングに焦点を当てる必要があります。

対話的なワークロードのリソース管理について取り上げている文書は数多くありますが、非対話的なワークロードのリソース管理について取り上げている文書はそれほど数が多くなく、この 2 つを組み合わせた特殊なワークロードについて取り上げている文書は少数しかありません。このようなワークロードを管理する方法についてあらかじめ計画を立てておくと、クラウドで作業を行うための移行をスムーズに行えます。

Dan C. Marinescu

Dan C. Marinescu は、1984 ~ 2001 年にパーデュ大学でコンピューター サイエンス学部の教授として教鞭を執った後、セントラル フロリダ大学のコンピューター サイエンス学部の教授に就任しました。彼は、IBM T. J. Watson Research Center、北京の Institute of Information Sciences、Intel Corp. の Scalable Systems Division、Deutsche Telecom AG、およびフランスの INRIA Rocquancourt で客員講師を務めた経験があります。彼の研究対象は、並列分散システム、クラウド コンピューティング、科学計算、量子計算、および量子情報理論です。

この書籍と Elsevier から出版されたその他の書籍については、Elsevier Science & Technology books (英語) をご覧ください。

関連コンテンツ