GIO」の安定稼働を支える仕組みを、サービスの開発者や基盤運用エンジニアが解説します。P2)の運用プロセス」についてご説明します。P2のメンテナンス頻度は?突然ですが、以下の図は、昨年のカレンダーにメンテナンスを実施した日にチェックを付けた記録です。ご覧になっていかがでしょうか。多いと感じられますか?それとも見慣れた頻度に感じられますか?おそらく、大半の方には、単一システムのメンテナンス頻度としては、度を超えて多いと感じられるのではないでしょうか。それぞれのメンテナンスは大小様々です。ための緊急システムアップデート、一部リソースにかかる負荷を平準化させるためのマイグレーションなど、内容は多岐にわたります。これだけの頻度でメンテナンスが実施されるのは、それだけIaaSというものが他のサービスに比較して相当に複雑なものであり、数十のマイクロサービスから構成されていることが理由の一つです。P2では頻繁にメンテナンスが実施されているわけですが、実のところサービス停止を伴うメンテナンスは1度しか行われていません。それはコントロールパネルが停止されるだけで、仮想サーバやネットワークアプライアンス類のリソースが停止するものではありません。P2をご利用いただいているお客様にも、これほどメンテナンスが実施されているとは思われていないのではないでしょうか。それはIaaSとして当然のように感じられるかもしれませんが、何の戦略もなく実現することではありません。サービスの設計段階からシステムの更新を無停止で行うことをスペックに盛り込み、実装されているからこそ可能なのです。メンテナンスを無停止で実行できるということは、障害に対する可用性が高いことも意味しています。避けられないハードウェア障害もっとも、サーバのハードウェア障害はいかんともしがたく、即仮想サーバの停止に至ります。稀にクラウドサービスはいかなる障害にも耐性があると思われ、たとえサーバにハードウェア障害が起ころうとも無停止で利用できることを期待される方がいらっしゃいます。IaaSにおいてサーバの冗長化は利用者の責任とされていますので、この点はどうかご容赦ください。停止しても自動的に別筐体が割り当てられるので、すぐに起動が可能です。グループを分けてアクティブ・スタンバイに構成することで、物理的にネットワークやサーバを分離して複数の仮想サーバを収容することが可能です。ハイパーバイザのメンテナンスそれでは、ハードウェア障害による停止はやむを得ないとして、仮想サーバが収容されるハイパーバイザノードにメンテナンスが必要になった場合、どうなるでしょう?もしハイパーバイザの再起動が必要となれば、それは障害発生時と同じことで、仮想サーバの停止を伴うことになります。IaaS基盤の都合に合わせてお客様の仮想サーバを停止することはおいそれとできませんが、かといって仮想サーバを動かしたままハイパーバイザをアップデートすることもできません。そこで活躍するのがライブマイグレーションです。ご存じの方も多いと思いますが、ハイパーバイザからハイパーバイザへ、仮想サーバを停めることなく移動させる技術です。P2の運用にはライブマイグレーションが積極的に活用されており、メンテナンスが必要な時、あるいは特定のリソースに過剰な負荷が集中しているとき、ライブマイグレーションを利用して仮想サーバを停めずに様々な作業を実施しています。ライブマイグレーションを前提とした設計ライブマイグレーションは便利な技術ですが、どんなIaaSでも利用されているわけではありません。それは、利用を前提にサービスがデザインされていなければならないからです。ライブマイグレーションとは、仮想サーバのCPUやメモリなどの状態を別ハイパーバイザ上へ転送し、後にストレージをつなぎ直し、IPアドレス等のリソースを再度割り当てることで、仮想サーバを移動させる技術です。これを短時間に実行するために、ローカルディスクのように別筐体へつなぎ直すことができないストレージはサービススペックに盛り込めません。逆に言えば、ローカルディスクを提供しているIaaSでは、ライブマイグレーションを利用できない可能性が高いのです。まれにゲストOS(の特定のカーネルバージョン)によっては、ライブマイグレーションに失敗するケースが存在します。マイグレーションに成功したかに見えても、パケットを受信できなくなるなどの症状が発生し得ます。したがって、検証済みのOSのみ利用できるようにすることがサービスを安定運用する一つの条件になります。サービスを安定運用するためのライブマイグレーションと、いくつかのサービススペックの有無はトレードオフの関係にあるのです。膨大なサーバを半自動的にアップデートする仕組みライブマイグレーションが利用できたとしても、数千、数万というサーバから構成されるIaaS基盤において、仮想サーバを一切停めずにハイパーバイザのアップグレードを実施するのは簡単なことではありません。手作業では困難なものになることは容易に想像ができるでしょう。P2の基盤にはハイパーバイザを半自動的にアップデートする仕組みが実装されていますし、必要とあらばライブマイグレーションを活用することもできるので、無停止でハイパーバイザを更新することが可能です。その仕組みを簡単に紹介しましょう。P2のハイパーバイザサーバは起動時に最新のソフトウェアを使ってリモートブートし、自動的に構成されて稼働を始めます。サーバを再起動するだけで最新のハイパーバイザへアップデートが完了します。そこで、まず仮想サーバを一つも収容していない空のハイパーバイザサーバへ再起動するように指示を出します。すると、それ以降に起動される仮想サーバはアップデート済みのハイパーバイザにだけ収容される仕組みになっているので、仮想サーバが停止されるに従い旧バージョンのハイパーバイザから仮想サーバが抜けていきます。空になったハイパーバイザは自動的に再起動され、徐々にアップデートが進んでいきます。その後、一定期間経過してもアップデートされていないサーバのみライブマイグレーションを利用し、手作業でのアップデートを実行、これで完了です。このように、随所に無停止かつ自動化された運用プロセスがサービス開発当初から計画されており、それがサービスデザイン、システムデザインに反映されているがゆえに、常にセキュアで安定したIaaSがご提供できているのです。※2017年1月に弊社ブログに掲載した記事を、一部加筆修正しました。10の更新プログラム。10の更新プログラム。~世界情勢に応じたスピーディーな海外拠点展開と各国レギュレーション対応の両立を実現するソリューションとは~IIJの法人向けサービス・ソリューションについては、お気軽にお問い合わせください。Blogこのサイトは株式会社インターネットイニシアティブが運営しています。