VPSについて
仮想化技術にはいろいろな方法があり レンタルサーバで行われているのは下記の手法によるものらしい
なおこの文章は デジインフラシ社のレポートを自分自身の勉強の為にメモしたもの
1 バーチャルホスティング
ユーザー間に破ることのでバーチャルホスティングきない「隔離壁」を作り、お互いの存在を隠す技術である
例えば、他人のファイルを改ざんする行為は、ファイルに対する書き込み権限うんぬん以前に
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使用時の注意点
jailを使用すると、jailの外にあるファイルはライブラリなども含めて、通常の方法では一切見えなくなってしまう。
「監獄」の中で生活するには、ライブラリなど一通りの「生活必需品」の持ち込みを忘れないように。
一方、「jailは果たしてどこまで絶対的な『壁』なのか」という議論がある。1ユーザーが1台のマシンで複数のサービスを動かす程度であれば
jailは十分過ぎるほどの壁となる。しかし、1台のマシンに複数のユーザーとなると、やや頼りない面がある。
jailはUNIXに後から導入されたものであり、未成熟の感を免れない。jailの中だからといって、信用できないユーザーに不用意に
アカウントを開放することはするべきではない。
BSD Jail
Linux chroot
1 Linuxではなく Windowsサーバの可能性と限界
これは技術的好奇心とVisual InterDevや ActiveServerPageをとおもい
2 低スペックサーバ 少数ユーザでの環境
サーバのスペックが低くてもユーザ数が少なければ 問題ないか知りたい
実際にはathron の1.7Gは極端に低いわけではないが高いわけではない
3 ADSLの低速下でのサーバの振る舞い
2と共通するが 当方もADSLの12Mモア で当面光は望めないので
見てみたいと思ったから 減衰47db 3510m 944kbps
2 仮想OS
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のルーツ
仮想OSは、源流をたどるとIBMがSystem/370で実用化した技術であり、研究としては1960年代から存在した。
この技術が、Linux/PCサーバといった、本サイトの読者にもなじみが深い領域に進出してきている。
PCサーバも応用範囲の拡大に伴い、いままで大型汎用機が歩いてきた道をたどるということであり、歴史的観点から見ても面白い。
仮想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.html
VMware ESX:http://www.vmware.com/products/server/esx_features.html
bochs:http://bochs.sourceforge.net/
Plex86:http://www.plex86.org/
仮想化技術のビジネス的な可能性
仮想化技術をサーバに応用すると、どのようなことが可能になるのか? これをビジネス的な観点から検討してみよう。