ネットワークを渡り歩けるコンピュータ

ネットワークを渡り歩けるコンピュータ
須崎 有康
電子技術総合研究所
http://www.etl.go.jp/˜suzaki/NTC
仮想計算機を介して「ネットワークを渡り歩けるコンピュータ」環境を開発する。ここでは仮想計算機の実行イ
メージ (スナップショット ) がネットワークやリムーバブル記憶メディアを介して異る計算機に渡される。実行の再
開/中断は仮想計算機上で動作するハイバネーションソフトによって行われる。現在、仮想計算機ソフト vmware
を用いて Linux の実行イメージをハイバネーションソフト SWSUSP で再開/中断できる実行環境まで構築でき
ている。この環境はソフトウエア開発者にコラボレーションのプラットホームを提供し 、オープンソースでは得ら
れなかった共通実行/デバッグ環境を与えられる。また、エンド ユーザには “Install once, Use any computer!”
環境を提供し 、どの計算機においても今まで使っていたものと同じ環境を使うことができる。
1
はじめに
「ネットワークを渡り歩けるコンピュータ」とは、物理的な計算機を運ばなくてもオフィスで使って
いる計算機環境を自宅の計算機にそのまま再現することである (図 1)。ここではネットワークを介して
オフィスの計算機を使うのではない。オフィスで使っていた計算機のスナップショットを撮り、その実行
イメージをもとに自宅の計算機で再現するのである。実行イメージは仮想計算機を介してスナップショッ
トとし て撮られる。スナップショットを撮ったり、再現したりするメカニズムはノートパソコンのハイ
バネーションを用いる。通常のハイバネーションでは計算機自体が止ってしまってディスクを操作する
ことが出来ないが 、仮想計算機上のハイバネーションならば 仮想計算機を動かしている OS は停止して
いないのでデ ィスクを操作可能である。現在、
「ネットワークを渡り歩けるコンピュータ」は仮想計算機
ソフト の vmware[1] 、 Free OS の Linux 、ハイバネーションソフト SWSUSP[2] の組合わせで実現さ
れている。この環境で X window 上の MPEG 動画再生を中断し 、別の計算機上で継続することが可能
になっている。
「ネットワークを渡り歩けるコンピュータ」環境では二つの目標がある。一つはソフトウエア開発者に
コラボレーションのプラットホームとして「ネットワークを渡り歩けるコンピュータ」を提供し 、オープ
ンソースでは得られなかった共通実行/デバッグ環境が与えること、もう一つはエンド ユーザにど の計
算機でも同じ環境が使える機能を利用し 、“Install once, Use any computer!” 環境を与えることである。
ソフトウエア開発者は「ネットワークを渡り歩けるコンピュータ」によりコラボレーションのための
共通プラットホームが与えられる。ソースコード のみの静的情報交換から 、計算機の実行イメージのコ
Network Transferable Computer
Kuniyasu SUZAKI
Electrotechnical Laboratory
1
図 1: 実行イメージの転送(オフィスの環境を自宅に転送)
ピーを分配して同じ状態を共有することで、デバック途中のダ イナミックな情報や X window 上のグラ
フィカルな情報など 、より具体的な情報が得ることができる。これによりソフト 開発がより容易に 、且
つ加速することができる。
エンド ユーザが得られる “Install once, Use any computer!” 環境では手元の計算機は CPU パワー
を提供するのみで 、実行環境は「 ネットワークを渡り歩けるコンピュータ」を利用する。具体的には
StarOffice や ViaVoice など アプ リケーションソフトは一回インストールだけで vmware が動作するど
の計算機でも同じ 環境が使えるようにする。これによりエンド ユーザはオフィスでも自宅でも同じアプ
リケーションが継続して使えるようになる。
2
ネット ワークを渡り歩けるコンピュータ
「ネットワークを渡り歩けるコンピュータ」はマイグレーションではない。マイグレーションは計算
のスレッド が他の計算機に渡すことができる機能であるが 、
「ネットワークを渡り歩けるコンピュータ」
では計算機そのものを渡してし まう機能である。
「ネットワークを渡り歩けるコンピュータ」とマイグ
レーションとの違いは以下の項目になる。
• 移動する単位が違う。
プロセス 、スレッド など のアプリケーション単位の制御移動ではない。
「ネットワークを渡り歩け
るコンピュータ」は仮想的ハード ウエアのコピ ーで、電源供給中の状態の複製が渡り歩くのであ
る。この関係は異なる OS のアプリケーションソフトを一つだけ実行可能にする「エミュレーショ
ンソフト 」と計算機の実行イメージを提供する「仮想計算機ソフト 」の関係と同一であり、それそ
れに利点と欠点がある。
• 計算機環境をまるごと転送している。
マイグレ ーションでは移動し たアプ リケーションが移動先の環境に適応し なければならないが 、
「ネットワークを渡り歩けるコンピュータ」は仮想的ハード ウエアのコピ ーなので移動先の環境に
2
影響されない。基本的には「ネットワークを渡り歩けるコンピュータ」上の個々のプロセスから
見た環境は何も変らない。
「ネットワークを渡り歩けるコンピュータ」はネットワークあるいはリムーバブル記憶メデ ィアでデ ー
タ転送可能な環境で、計算機の実行イメージのスナップショットを撮り、別の計算機でスナップショット
を撮った状態から再開する。この「ネットワークを渡り歩けるコンピュータ」を実現するための基本機
能は仮想計算機と仮想計算機上の OS のハイバネーションである。
2.1
仮想計算機
仮想計算機はもともと OS 開発を行うために作り出された。計算機の状態をトレースし 、デバックを
容易にするためである。最近では異る OS のアプ リケーションを実行するために用いられている。この
用途ではサン・マイクロシステムの wabi やフリーソフトの wine,dosemu など のエミュレーションソフ
トが多いが 、CPU パワーの向上、デ ィスク容量の拡大に伴って仮想計算機ソフトも一般的になりつつ
ある。
「ネットワークを渡り歩けるコンピュータ」では異る計算機で実行イメージを再現したいのでアプ リ
ケーションのエミュレーションのみのソフトは適さない。本当の仮想計算機を提供する Connextix 社の
virtual PC [3] や VMware 社の vmware [1] などが適する。virtual PC は Machintosh 上で動作する仮
想計算機ソフトであり、vmware は Linux, Windows NT 上で動作する仮想計算機ソフトである。
「ネッ
トワークを渡り歩けるコンピュータ」ではソースコード がオープンな Linux 上で動作する vmware を
採用した。
vmware が提供する仮想計算機は CPU が Intel Pentium 相当、512M までのメモリ、SVGA のグラ
フィックス、IDE ハードデ ィスク、AMD PCnet 相当のネットワーク、Sound Blaster16 、PhenixBIOS
4.0R6 である。この仮想計算機ソフトが実行できる OS (Linux, WindowsNT) は「ホスト OS 」と呼ばれ、
仮想計算機上にインストールされる OS は「ゲスト OS 」と呼ばれる。ゲスト OS には Linux 、FreeBSD、
Windows95,98,NT,2000 がサポートされている。ゲスト OS は vmware が提供する仮想デ ィスクにイン
ストールされる。swap 領域も同じ仮想ディスクに取られる。
「ネットワークを渡り歩けるコンピュータ」
ではこの仮想デ ィスクが実行イメージのスナップショットとして使われる。
2.2
ハイバネーション
ハイバネーションは計算機の実行状態の保持して電源をセーブする機能である。この機能はノート PC
にインストールした OS が電源をセーブするために CPU を止めたり、ハードデ ィスクを止めても元の
状態から再開できるために作り出された。ハイバネーションは OS によって状態遷移の用語が異なるの
で本論文では以下のように定義する。
スタンバイ状態 メモリに実行状態を残し 、CPU やハードデ ィスクを停止する。電源供給を続けてメモ
リの内容を保持しなければならない。
サスペンド 状態 実行状態をすべて不揮発記憶に移し 、電源を停止する。電源供給の必要はない。
3
「ネットワークを渡り歩けるコンピュータ」では実行状態を転送しなければならないので、ハイバネー
ションした場合にすべてのデータが不揮発記憶に存在するサスペンド 状態になる必要がある。
通常、ハイバネーションは BIOS の省電力のためのインターフェース規格 (APM: Advanced Power
Management や ACPI: Advanced Configuration and Power Interface) と OS が連係して各デバイス
の電力を制御する。Linux では apm コマンド により実現できることになっているが 、BIOS に依存し
てサスペンド 状態になれないことがある。幸いにも Linux には apm コマンド の欠点を補う SWSUSP
(Software Suspend) ソフトがある。これは BIOS に依存せずに電源を切れる状態に移行可能にするソフ
トである。
SWSUSP は Linux カーネルパッチと起動に関係するソフト (shutdown,halt,init 等) へのパッチで構
成される。正確には SWSUSP でのハイバネーションはサスペンド 状態への移行ではない。シャットダ
ウンを行う際にスナップショットを swap 領域に撮り、次回のブート時に swap 領域に撮った実行イメー
ジから再開するのである。このため Linux が SWSUSP によるハイバネーションを行った後に別の OS
を立ち上げ、その OS のシャットダウン後に SWSUSP で停止した Linux の状態から再開することも可
能である。
3
実装
現在、
「ネットワークを渡り歩けるコンピュータ」は Linux をベースに運用されている。まず、Linux(ホ
スト OS) 用の仮想計算機ソフト vmware を利用した。この vmware が提供する仮想計算機にハイバネー
ションソフト SWSUSP を当てた Linux をゲスト OS としてインストールした。ゲスト OS の Linux は
vmware が提供する仮想ディスクに swap 領域を含めてインストールされている。SWSUSP によってス
ナップショットを撮られた実行イメージは仮想デ ィスク上の swap 領域に格納される。この仮想デ ィス
クがホスト OS によって他の計算機に運ばれる。運ばれた先の vmware で仮想ディスクの Linux がブー
トされ 、SWSUSP によって撮ったスナップショットから再開される。
「ネットワークを渡り歩く」仮想デ ィスクはゲスト OS である Linux のインストールの仕方によって
大きく異なる。例えば RedHat 6.0 をフルにインストールすると 1G 近くのデ ィスクが必要となる。これ
をネットワークで持ち運ぶには大きすぎ る。現在は PC カード によるリムーバブル記憶メデ ィアを使っ
て実行イメージを転送している。
現在の実装をまとめると以下のとおりである。
• ソフトウエア構成
仮想計算機ソフト vmware 1.1.1
– ホスト OS RedHat6.0 (Kernel version 2.2.5)
– ゲスト OS RedHat6.0 (Kernel version 2.3.4 + SWSUSP)
(SWSUSP は Kernel version に依存するため、2.3.4 に変更)
• ハード ウエア構成
デスクトップ PC + PC カード 用ド ック
4
デスクトップ PC で動画の再
リムーバブル メディアで転送。
ノート PC で再開。
生。この実行イメージを保存
する。
図 2: デモンストレーション風景
ノート PC (Toshiba Dynabook)
PC カード (TypeIII) 1G ハード デ ィスク
この環境でデ スクトップ PC 上の xanim による MPEG 動画の再生を中断させ、実行イメージを PC
カード で運んでノート PC で続行することが可能である (図 2)。このデモンストレーションの様子とイ
ンストール手順は「ネットワークを渡り歩けるコンピュータ」のホームページで公開している。
4
研究課題
「ネットワークを渡り歩けるコンピュータ」がとりあえず動作することは確かめられた。しかし 、現
在の「ネットワークを渡り歩けるコンピュータ」はまだ問題を抱えており、広く普及するためにはいく
つかの課題が残されている。問題点とその対応について検討する。
4.1
仮想計算機ソフト、CPU、他のハード ウエアへの依存性
現状の「 ネット ワークを渡り歩けるコンピュータ」は vmware 上に構築されていて、CPU は Intel
Pentium 相当に限定されている。しかしこのことは「ネットワークを渡り歩けるコンピュータ」が vmware
に限定されてることを意味していないし 、また CPU が限定されることも意味しない。現在、vmware の
代替え候補とし ては Macintosh 上の Virtual PC を利用することを検討している。CPU のインストラク
ションセットの問題はソフトウエアとハード ウエア両方で解決が計れると考えられる。ソフトウエアの
解決法とし ては Power PC,G3,G4 でインテルの CPU 動作を可能にする INSIGNIA 社の Real PC [4]
や Connextix 社の virtual PC [3] の技術を使えば異なる CPU 間でも「ネットワークを渡り歩けるコン
ピュータ」は可能である。ハード ウエアの解決方法としては Transmeta 社の Crusoe [5] にあるコード
モーフィングの機能がある。コード モーフィングが可能になれば インストラクションセットの違いは吸
収される。
その他のハード ウエアの違いは仮想計算機ソフトが対応しなくてはならない部分が多い。このため各
5
表 1: PC カード のリムーバブル記憶メディア
メデ ィア
容量
転送速度
ハードデ ィスク
1000M
1Mbps
マイクロド ライブ
コンパクトフラッシュ
340M
128M
メモリスティック
64M
5Mbps
READ 8Mbps
WRITE 0.8Mbps
READ 2.5Mbps
WRITE 1.5Mbps
(参考) ダ イレクトラムバス メモリ
—
1600Mbps
種の仮想デバイスを付加できる機能が仮想計算機ソフトに望まれる。現在有望なプロジェクトとし てフ
リーの仮想計算機ソフト FreeMware [6] がある。これはソースコード をすべて公開しており、仮想計算
機上のデバイスを各人で開発できるものと期待している。
4.2
スケジューラ
現在「ネットワークを渡り歩けるコンピュータ」のデモンストレーションで動画が中断/再開できる
ことが確かめられたが 、実行イメージを移した計算機の処理能力によって動作スピード が変わることも
確かめられている。これは vmware のプロセスに与える CPU パワーやデバイス速度など の違いから起
因するものと思われる。これらの QoS (Quality of Service) を保つことが広く普及するためには必要と
考える。
CPU パワーの配分機能については既に論文やスケジューリングソフトがある。論文では CPU パワー
を均等に分割するスケジューリング proportional share resource allocation[7] 、ある一定の CPU パワー
を保証するスケジューリング Early Projection Deadline First [8],[9] などがある。また、マルチメデ ィア
の QoS を目指しているスケジューラ DSRT2 [10],[11] は POSIX の real time インターフェースによっ
て書かれており、カーネルに依存せずに CPU パワーを分割することができる。筆者が開発中の Kernel
Stealer も POSIX の real time インターフェースを利用して、CPU パワーの分割を目指し ている。今
後はこれらを元に vmware のプロセスの CPU パワー制御を試す予定である。
4.3
実行イメージの小型化
現在配布されている RedHat 等の Linux デ ィストリビューションではフルインストールで 1G 程度
のデ ィスクを要求される。しかし 、ネットワークを介して実行イメージを送る場合、1G はまだまだ大
容量でネットワークのキラーアプ リケーションになるばかりでなく、多くのユーザを引き付けることが
できない。計算機環境を転送できる「ネットワークを渡り歩けるコンピュータ」の利点を生かしつつマ
イグレーションの性能に負けないように、できるだけ少ない容量で必要なアプ リケーションのみを選択
しなければならない。現在、Slackware 7.0 では Linux + bash + X の構成で 60M 程度要求されること
6
を確かめている。これにどの機能を付加していけばど の程度記憶容量が大きくなるか確かめる必要があ
る。幸い、wmware ではブ ートからシャットダウンまでの差分を別の仮想デ ィスクで保存し 、ブート前
の仮想ディスクとマージすることが可能である。
「ネットワークを渡り歩けるコンピュータ」を普及させ
るためにはコアとなる小さな仮想デ ィスクとそれに機能を付加する差分仮想デ ィスクを配布することを
検討している。
また、転送速度ばかりでなく記憶容量の制約はリムーバブル記憶メデ ィアでも同様である。更にリムー
バブル記憶メデ ィアでは表 1 にまとめるように記憶容量と転送速度に大きな違いがある。表 1 のリムー
バブル記憶メデ ィアそれぞれについては今後すべて実行イメージを作成し 、適した利用方法を検討する
予定である。また、表 1 の参考に示したように RAM は記憶メデ ィアに比べ高速なので RAM disk も
検討する価値があると思われる。
4.4
デバイスド ライバ
デバイスド ライバについては以下の不都合が見つかっている。
• サウンドド ライバのハイバネーションが機能しない。
• vmware から提供される X 環境設定ソフト VMware Tools によって/etc/X11/XF86Config を設
定すると計算機を変えた場合に画面が正し く表示されないことがある。
これはハイバネーションソフトの問題、個々のデバイスド ライバの問題、vmware のデバイスの扱い
方の問題等いくつか絡んでいることが判っている。これらを一つ一つ明らかにして使いやすい環境を構
築していく予定である。
4.5
セキュリティ
「ネットワークを渡り歩けるコンピュータ」ではネットワークで配布された悪意のある実行イメージ
を動作させてし まった場合や仮想計算機ソフトに悪意のあるコード が含まれている場合の対策を考慮し
ておかなければならない。例えば 、anonymous ftp で配布される実行イメージの安全保証や自分固有の
実行イメージを他の計算機で実行させた場合にその計算機にインストールされている仮想計算機ソフト
の信頼性など が考えられる。広く「ネットワークを渡り歩けるコンピュータ」を普及させるためにはセ
キュリティを避けて通れない。
5
おわりに
本論文で「ネットワークを渡り歩けるコンピュータ」を提案した。これは仮想計算機を介して実行イ
メージを計算機間で渡すことで 、ど こでも同一計算機環境がつかえるようにすることである。現在の実
装では 仮想計算機ソフト vmware 、Free OS の Linux 、Linux でのハイバネーションソフト SWSUSP
を組み合わせて実行イメージが渡せることを確かめた。デモンストレーションとして MPEG 動画を中
断し 、別の計算機で再開することできた。しかし 、この研究はまだ概略ができたのみで、多くに利用者
に満足して使ってもら うにはいくつかの研究課題がある。
7
この「ネットワークを渡り歩けるコンピュータ」はソフトウエア開発者にコラボレーションのプラッ
トホームを提供して共通実行/デバッグ環境を使えるようにすること、エンド ユーザには “Install once,
Use any computer!” 環境を提供することの第一歩である。この目標のための共通基盤とし て「ネット
ワークを渡り歩けるコンピュータ」を開発していきたい。
参考文献
[1] WMware. “http://www.vmware.com”.
[2] SWSUSP. “http://falcon.sch.bme.hu/ seasons/linux/swsusp.html”.
[3] Connectix. “http://www.connectix.com”.
[4] INSIGNIA. “http://www.insignia.com”.
[5] Crusoe. “http://www.transmeta.com”.
[6] FreeMware. “http://www.freemware.org”.
[7] I. Stoica, H. Abdel-Wahab, K. Jeffary, S.K. Baruah, J.E. Gehrke, and C.G. Plaxton. A proportional share resource allocation algorithm for real-time, thme-sharing systems. Real Time
Systems Symposium, pages 288–299, 1996.
[8] 安田, 高田. Mixed fixed and proportional resource share allocation algorithm. 電子情報通信学会
技術研究報告 CPSY98-173-185, pages 87–94, 1999.
[9] 今井, 安田, 高田. Earliest Projected Deadline First (EPDF) アルゴ リズム. コンピュータシステ
ムシンポジュウム, pages 9–15, 1999.
[10] DSRT2. “http://monet.cs.uiuc.edu/dsrt2/”.
[11] H. Chu and K. Nahrstedt. CPU service classes for multimedia applications. EEE Multimedia
Systems ’99, 1999.
8