SBUMLについて


test

SBUMLとは?


SBUMLは, 仮想計算機の1つであるUser-mode Linuxを拡張したものです. ハードディスク, デバイス, プロセス, カーネルを含めて, Linuxの実行状態を完全に保存することができます. 保存された"スナップショット"は, 同一あるいは他のPCでも復元, 再開することが可能です. スナップショットは「デルタ圧縮」という手法により, 数メガバイト程度のサイズに抑えられます. したがって, Webサーバからダウンロードしたり, CD-ROMの形式で配布することも十分, 現実的です.

SBUMLは"ScrapBook for User-Mode Linux"を意味します.

SBUMLはソフトウェアの実行, 再開, フォールトレーランス, プロセスの移植など, 従来のチェックポインティングへの応用に対して, 大きな可能性を秘めています. また現在, モデルチェッキングやプログラミングツールとしての用途も模索してします. さらに, APIを通して, スクリプト言語によりSBUMLを制御することが出来るので, スナップショットプログミングが可能になります.

オープンソースコミュニティの支援を受けて, SBUMLは様々なアイディアを実現することが出来るようになるはずです. 現在, 最も実用的な応用は, 実行状態の配布でしょう. ソフトウェアのインストールやプログラムをデモンストレーションするのに大いに役立つでしょう. 例えば, プログラミング環境やデバッグ環境のサンプルを配布することが可能になるでしょう. Linux上で使えるほとんど全てのプログラミング言語に対して, プログラミングの授業のために利用することが出来ます.



コアアーキテクチャ


SBUMLでは, 実行中のLinux仮想マシンも, 保存されたスナップショットも共に, ディレクトリとして表現されます. たいていの場合, SBUMLコマンドの第1引数は仮想マシンディレクトリ, 第2引数はスナップショットディレクトリを表します.

sbumlboot /tmp/mymachine というコマンドを実行すると, 新しく仮想マシンが起動し, 全てのリソースは/tmp/mymachine下に置かれます.
sbumlsave /tmp/mymachine /tmp/mysnapshot -f -c というコマンドを実行すると, mymachineを停止し, その全ての実行状態を/tmp/mysnapshot-(ユニークな識別子)にコピーし, 再びmymachineを実行します.
sbumlrestore /tmp/acopy /tmp/mysnapshot -c というコマンドを実行すると/tmp/mysnapshot-(ユニークな識別子)として保存されたスナップショットを, マシンディレクトリ/tmp/acopyとして仮想マシンを起動, 再開します.

仮想マシンもスナップショットも単なるディレクトリであるので, 通常のLinuxコマンドを適用することは, もちろん可能です. du -s /tmp/mymachineはmymachineで利用されるリソースのサイズを表します. あるいは, /tmp/mysnapshot-(ユニークな識別子)はスナップショットによって利用されるリソースのサイズを表します. tar czvf mysnapshot.tar.gz /tmp/mysnapshot-(ユニークな識別子)を実行すれば, 持ち運びしやすい, 手ごろなサイズのtarファイルを作成することが出来ます.

より詳細な情報は下記のページを参考にしてください.

  • スナップショットのデルタ圧縮
  • デフォルトでのディレクトリ構成
  • スナップショットの移植
  • SBUMLスクリプトのカスタマイズ
  • 高レベルでのスクリプトによるSBUMLコマンド