![]() |
![]() |
|||
|
INSIDE TECHNOLOGY
サーバのスライス&ダイス:仮想化とコンテナ化の手引き
サンは、SPARCおよびx86製品の両系列で、複数のOS向けの様々なオプションを用意しています。Solaris 10 OSの一部であるサンの革新的なSolaris コンテナ テクノロジにより、それぞれが専用のシステムで動作していると見なされる分離システムの実行を可能にします。 3部構成の第1部となるこの文書では、Solaris コンテナ テクノロジに焦点を当てながらサーバ指向のコンテナ化と仮想化をとりあげます。第2部では、x86プラットフォームでの仮想化技術について解説します。第3部ではストレージの仮想化をとりあげます。 アプリケーション1つにサーバ1台がもたらすサーバの無秩序な増殖 アプリケーションを導入して、そのアプリケーションをサポートするための適切なサーバリソースを選択し、その結果できた環境を管理するというのは、複雑な問題です。多くのITマネージャは単純な方法、すなわち、各アプリケーションに専用のサーバを割り当てるという方法をとるのですが、どういう理由があるのでしょうか。それは、何らかの形でアプリケーションが相互に干渉し合うのを望まないからです。またこの問題は、アプリケーション別の専用のサーバハードウェアによってのみ回避できると考えているからです。 この考えは、特定のアプリケーションに対する不信、サーバを共有する可能性がある他のユーザやアプリケーションに対する不信、さらには1つのカゴに卵を入れすぎないようにしておきたいという欲求、あるいは他の技術または組織上の理由が動機になっているのかもしれません。この方法によってもたらされるのは、しばしば、サーバの無秩序な増殖です。一般に十分に利用されないサーバの数が増えて、効果的な管理が難しくなり、データセンタの設置スペースや冷却、電源要件が増大します。 こうした問題に対処するために、様々なハードウェア、ソフトウェア技術が生まれ、進化してきました。そうした解決手段のほぼすべてにおいて、何らかの形のコンテナ化がみられます。コンピュータ環境では、アプリケーションやプロセス、ユーザグループ、場合によってはOSを丸ごとコンテナ化することが重要な場合があります。このひとつひとつは、綿密に定義された状態とエラー境界、起動および停止機能、他のサービスとの依存関係を伴った存続期間の長いソフトウェアオブジェクトの集合といったような、1つのサービスとして考えられます。サービスは1つのものとして表示され、管理される必要があります。すなわち、「コンテナ化」です。サービスにとってコンテナは、「境界を持つ環境」であり、そうした環境は、広範囲にわたる様々なハードウェアおよびソフトウェア技術を使って実現、管理できます。 2系統あるソフトウェアによるコンテナ化 ハードウェアによるコンテナ化は、1960年代と1970代に、初期メインフレームシステムとして始まり、現代のエンタープライズクラスのサーバにも引き継がれています。ソフトウェアによるコンテナ化ソリューションは、ハードウェアによるコンテナ化よりも先を行く手段であり、特別なハードウェアを必要とせず、ラップトップやデスクトップワークステーションからミッドレンジ、エンタープライズクラスのサーバまで、広範囲のシステムにおける利用が可能です。ソフトウェアによるコンテナ化の一般的なアーキテクチャとしては、ホストOS型仮想マシンモニタ(virtual machine monitor)を利用するものと、OSによる仮想化の2つがあります。 ホストOS型仮想マシンモニタでは、メインOSがシステムハードウェア上で直接動作し、仮想マシンモニタはホストのオペレーティングシステム上でアプリケーションとして動作します。この種のホストOS型仮想マシンモニタ環境には、例えばVMware WorkstationやMicrosoft Windows Virtual Server 2005があります。ホストOS型仮想マシンモニタでは、LinuxやMicrosoft Windows、Solaris OSなど複数のゲストOSが、そのアプリケーションと共に、コンテナ化方式により、ホストシステム上で同時実行が可能です。提供されている管理ツールは、ゲストOS間のリソースの割り当てや変更を行います。またアプリケーションは、仮想マシンモニタを完全に無視して、メインOS上で直接実行することもできます。 サーバコンテナ化技術がすべて仮想マシンモニタを必要とするわけではありません。実際には仮想マシンモニタはゲストOSを書き換えたり、リダイレクトしたりするときに(特にゲストOSの特権命令をインターセプトしてリダイレクトする必要がある場合)、かなりのCPUリソースを消費することがあります。 OSによる仮想化とSolaris 10 コンテナ コンテナ化したサーバ環境の要件に合わせて、一群のプロセスおよびリソースを定義し、境界を設定できると、別の仮想マシンモニタを使用することなく、効率よく仮想化の実現が可能になります。この種のコンテナ化はOSによる仮想化とみなすことができます。Solaris コンテナではこの手法が採用されています。 ハードウェア上で動作するただ1つのSolaris OSインスタンスを、「大域ゾーン(またはグローバルゾーン)」と呼びます。管理者は、仮想サーバ環境を含む非大域ゾーンを定義できます。どのユーザにも、非大域ゾーンは完全に実現されたサーバとして見ることができます。また、非大域ゾーンは互いに隔離されています。それぞれ専用のネームスペースを持つばかりでなく、互いを、またそのプロセスや属性(IPアドレスなど)を見ることはできません。 非大域ゾーンはメモリを共有することはできず、専用のユーザレベルのOSサービスを持つこともありません。このように各ゾーンが隔離されているため、システム上の他の環境の妨げになることなく、それぞれが独立して、自由に起動、再起動できます。Solarisコンテナは隔離とリソースの制御を行い、安全なIT基盤を構築するための重要な基礎になるのです。 コンテナ化と仮想化の長短の比較 どちらの技術が適切かは、データセンタによって異なります。仮想化技術は成熟しつつあり、アプリケーションやOSを素早く作成、テストするためのコンテナ化環境を提供したり、アプリケーションのサービス品質を保証したり、システム全体の利用率や投資収益率を向上したりできるという利点があります。と同時に、仮想化技術によって、次のような短所が生じることもあります。
例えば、Linux OSが動作するSun V40zサーバ上のVMware下で、Oracleソフトウェアを実行している環境を考えてみましょう。問題が発生した場合、どのようにしてその原因を突き止めようとするでしょうか。最終的に問題を見つけ、解決する責任を持つのはどのベンダでしょうか。 コンテナ化モデル同士の比較、選択に影響を与えるもっとも大きな要素は、コンテナ化するアプリケーションがどの運用環境向けに作成されたものであるかということです。残念なことに、構造基盤の決定に影響を与える要素は、アプリケーションの設計開発段階が開始され、時間が経過した後に考慮されることがしばしばなのです。 OSが決定されると、コンテナ化モデルの選択肢は限られ、ベンダに左右されがちです。次の表は、どちらの方式の仮想化を採用するかを決定するにあたっての主な指針をまとめています。
仮想化技術および方式の選択にあたっては次のことを検討してください。
コンテナ化および仮想化技術は、IT基盤をどのように設計するかの決定において、重要な役割を担い始めています。ITマネージャやCTO、CIOが、発展のさなかにあるこれらの概念やソリューションを理解し、その潜在的な長所や短所について何を問題にすればよいかを知っておくことは大切です。仮想化は、体系的に安全な方法でサーバの無秩序な増殖を減らし、リソースの利用率を向上させる全体的な戦略の中で重要な位置を占めています。 この文書は、Harry J. Foxwell、Isaac Rozenfeldによる2005年10月のSun BluePrints文書「Slicing and Dicing Servers: A Guide to Virtualization and Containment Technologies」を元に作成しています。 ご質問・ご意見はSite-TKY@sun.comにお寄せください。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||