サーバの仮想化技術とビジネス展開の可能性
菊池 宏(kikuchi@digitalinfra.co.jp)
有限会社デジタルインフラ(http://www.digitalinfra.co.jp/)
2002/5/14
MEX | 100Mbits/s+1ラック | 75万円/月 |
Business246 | 1.5Mbits/s+ハーフラック | 11万円/月 |
iDC料金比較表(参考:Bフレッツは100Mbits/s固定IP接続がプロバイダ料金込みで1万3000円程度) |
従来は、インターネットビジネスのボトルネックは回線であるといわれていた。しかし、8Mbits/sのADSLが月々3000円程度で提供され、iDC料金も低下傾向にある現在、むしろ、サーバにボトルネックが移っている状況がある。
そこで注目されるのが、ブレードサーバなど、1機能1サーバ、1ユーザー1サーバといった使い方ながら、従来に比べ費用対効果に優れたサーバを多数使用する方法である。その一方で、1台の高性能サーバに複数の役割を集約させる仮想化技術がある。この種の技術には主に、
- バーチャルホスティング
- jail
- 仮想OS
- 仮想マシン
がある。この4つの技術をふかんした後、それがどのようなビジネスに応用できるか考察する。
各種仮想化技術の特徴
■バーチャルホスティング
図1 バーチャルホスティング |
「バーチャルホスティング」の原理は簡単で、1つのIPアドレスに対して複数のドメイン名を割り当てる。そして、(例えばWebのアクセスなら)HTTPのヘッダに含まれているドメイン名に関する情報(Host:フィールド)を使用し、表示するHTMLデータを切り替える。
TCP/IPの規格において、IPアドレスは必ずパケットに入っているが、ドメイン名は入っているとは限らない。よって、バーチャルホスティングはIPアドレスに加えてドメイン名も送ってくるプロトコルでなければ使えないが、現在のHTTP(Web)/SMTP(電子メール)では、ほぼすべてドメイン名に関する情報も送ってくるので、この2つのプロトコルしか使用しないのであれば問題ない。
図1からも分かるように、OSもサーバソフトも1台に1つしか存在せず、複数存在するのはユーザーデータだけである。よって、マシンに対する負担が軽くコストも安い。Webとメールだけの使い方であれば、優れた方法である。実際、「www.あなたの会社名.co.jpが取れます」といっている業者の多くが、この方法を使っている。
注:以上で述べたのは、「ネームベースバーチャルホスティング」という技術で、ほかにも「IPベースバーチャルホスティング」という技法がある。この場合、1台のサーバにドメインの数だけIPアドレスを割り当て、ドメインとIPアドレスの対応関係を1対1にする。メリットとしては、どんなプロトコルでもバーチャルホスティングが可能なことが挙げられる。ただ、IPアドレスの確保の問題があるうえ、日本においては少なくともHTTPについてはJPNICがこのようなやり方を許さない。 |
参考:ApacheによるWebサーバ構築
第8回 バーチャルホストによる複数サイトの同時運用
第9回 IP認証によるアクセス制限のテクニック
■jail
図2 jail |
「jail」(注)とは、ユーザー間に破ることのできない「隔離壁」を作り、お互いの存在を隠す技術である(図2)。例えば、他人のファイルを改ざんする行為は、ファイルに対する書き込み権限うんぬん以前に、jailの壁によって阻まれる。これにより、1台のマシンに複数の役割を期待する場合のセキュリティが大幅に向上する。
注:「jail」はFreeBSDのコマンド名であり、Linuxでは「chroot」がこれに相当する。ただし、jailはネットワーク設定にまで「壁」を作れるなど、chrootより高機能である。 chroot:http://www.linux.or.jp/JM/html/LDP_man-pages/man2/chroot.2.html |
jailの代表的な使い方として、ApacheとBINDを1台のサーバで運用する場合がある。BINDとApacheを別サーバで運用する場合は多いが、これはBINDのセキュリティホールから侵入されてApache配下のHTMLデータを改ざんする手口を警戒するからである。しかし、ApacheとBINDの間にjailで壁を作ることで、BINDが破られたとしてもApacheに手を出すことは困難になる。よって、1台のサーバで2つのサービスを運用してもセキュリティ的な問題は小さく、経費削減効果の方が大きいと思われる。
|
一方、「jailは果たしてどこまで絶対的な『壁』なのか」という議論がある。1ユーザーが1台のマシンで複数のサービスを動かす程度であれば、jailは十分過ぎるほどの壁となる。しかし、1台のマシンに複数のユーザーとなると、やや頼りない面がある。jailはUNIXに後から導入されたものであり、未成熟の感を免れない。jailの中だからといって、信用できないユーザーに不用意にアカウントを開放することはするべきではない。
■仮想OS
図3 UML |
1台のマシンを、複数の(お互い信用のできない)ユーザーで共有する方法として、「仮想OS」がある。これは、通常のOSの上で動作する特殊なOSである。仮想OSには、「UML」(User Mode Linux)がある(オブジェクト指向のUMLとは無関係)。UMLはLinux上で動作する特殊なLinuxであり、GPLで提供されている(図3)。商用のものとしては「Virtuozzo」がある。
OSはハードウェアの上で直接実行されるが、仮想OSはOSの上でアプリケーションのように動く。仮想OSの中では、ソフトウェアのインストールも含め、通常のOSと同じような作業が可能だ。また、同一OS上で複数の仮想OSが動作している場合、仮想OS同士はネットワーク越しでしかアクセスできない。よって、複数ユーザーで共用した場合でも、1ユーザー1マシン環境とほぼ同等の機能とセキュリティを1台のマシンで実現できる。
|
仮想OSの大きな利点として、1台のマシンを共有しているユーザー間で資源を自由に配分できることが挙げられる。例えば、開発段階であるとか、あまり性能が要求されない場合は資源配分を絞っておき、ビジネスの発展に伴って性能が要求されてきたときに配分を増やすといったことが容易である。ユーザー間でうまくピークを分散させれば、処理能力を超えたユーザーを収納することも可能だ。例えば、10の能力を持つサーバに3の性能を要求するユーザー10名を詰め込んでも、ピークさえ分散できれば問題ない。
UML:http://user-mode-linux.sourceforge.net/(本家)
http://www.digitalinfra.co.jp/uml/(デジタルインフラ)
Virtuozzo:http://www.sw-soft.com/products/virtuozzo/
編注:UMLについては、単独の特集を企画している。5月中に公開するので、そちらもぜひご覧いただきたい。 |
■仮想マシン
仮想OSは優れた技術であるが、「OSの上で動くOS」という特殊なOSに限定される。この制約のない技術として、「仮想マシン」がある。これは、仮想的なハードウェアを作り、その上で普通のOSを動かす技術である。 仮想マシン技術を利用したものとしては、「VMware」が有名である。WindowsなどのOS(これをホストOSと呼ぶ)上に仮想的なPC/AT環境を作り、その中にLinuxなどのOS(これをゲストOSと呼ぶ)のインストールを可能にするソフトウェアだ。VMwareの特徴としては、高い完成度が挙げられる。動作が安定しておりチューニングも進んでいるため、この種のソフトウェアとしては非常に高速である。VMware GSX(図4)はそれに加え、複数の仮想マシンを集中管理するコンソールが装備されている。VMware ESX(図5)は、VMware独自カーネルに限定することで、さらなる性能の向上を図ったものである。高性能PCサーバを使用すれば、10台程度の仮想PCサーバを作ることが可能なようだ。 |
フリーの仮想マシンとしては「Plex86」と「bochs」(図6)がある。ともに、開発の中心は同一人物である。Plex86はもともと「FreeMware」と称していたもので、VMwareのフリー版という存在である。bochsはCPUを仮想化することにより、x86以外のCPUを搭載したマシン(PowerPC搭載のPowerMacなど)でもPC/AT互換機用のOSを動かすことが可能なソフトウェアである。 |
コラム bochsとPlex86 |
bochsはVMwareよりも早く存在していたソフトウェアで、開発順としてはbochs→Plex86となる。bochsは、CPUの仮想化によるオーバーヘッドが非常に大きく、現在のところは速度的な問題が大き過ぎる。これに関しては、今後の改良に期待したい。 |
仮想マシン技術のサーバへの応用は、仮想OSの場合と同じく資源配分を自由に変更してサーバ性能への需要の変動に柔軟に対応できる利点がある。仮想OSと異なる点はOSを選ばないことであり、1台のマシンにLinuxとFreeBSDとWindows NTをインストールし、それらを同時に動作させるといったことも可能だ。しかし、ハードウェアをそのまま仮想化することによるオーバーヘッドが大きい。Windowsのように、仮想OSの存在しないOSをサーバOSに選んでいる場合は良い選択だが、Linuxのように良質な仮想OSが存在する場合、仮想マシンは必ずしも良い選択ではない。
VMware GSX:http://www.vmware.com/products/server/gsx_features.htmlVMware ESX:http://www.vmware.com/products/server/esx_features.html
bochs:http://bochs.sourceforge.net/
Plex86:http://www.plex86.org/
1/2
|
|
||||
|
Linux Square全記事インデックス |
Linux Squareフォーラム 仮想化技術関連記事 |
連載:実践! Xenで実現するサーバ統合 有力な仮想化技術として注目を集めるようになった「Xen」。このXenを活用してサーバ統合を実践していく手順を具体的に紹介します |
|
特集:サーバの仮想化技術とビジネス展開の可能性 jailからUML/VMwareまで 1台のマシンで複数のサーバを動かす「仮想化技術」。VMwareやUMLの登場により、WebサイトだけでなくOS自体を仮想化できるようになった |
|
特集:仮想化技術のアプローチと実装 VMwareから要注目技術Xenまで 1台のサーバで複数の仮想マシンを実行する仮想化技術は、空間コストを引き下げる可能性を持つ。最新の仮想化技術を概観してみよう |
|
特集:仮想OS「User Mode Linux」活用法 技術解説からカーネルカスタマイズまで Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説 |
|
特集:仮想化技術の大本命「Xen」を使ってみよう インストール & Debian環境構築編 高いパフォーマンスで本命の1つとなった仮想マシンモニタ「Xen」。日本語による情報が少ないXenを、実際に動かしてみよう |
|
特集:仮想化技術の大本命「Xen」を使ってみよう Xen対応カスタムカーネル構築編 Xen環境およびその上で動作する仮想マシン用カーネルを自分で構築しよう。これにより、自由にカスタマイズしたカーネルを利用できる |
|
特集:IPv6、UML、セキュリティ機能の統合 全貌を現したLinuxカーネル2.6[第4章] 今回は、これまでに紹介し切れなかった機能を一気に紹介する。これを読めば、カーネル2.6の正式リリースが楽しみになるだろう |
|
Linux Squareプロダクトレビュー VMware Workstation 4 PC/AT互換機エミュレータとして不動の地位を築いたVMware。その新バージョンがリリースされた。新機能を早速試してみよう |
|
古くて新しい「サーバ仮想化技術」の行方 サーバ仮想化を実現するための技術がソフトウェア、ハードウェアの両面で出そろってきた。ハイパーバイザーのさらなる高速化に向けた動きを紹介する |
|
Linux Squareフォーラム全記事インデックス |
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|