〜 技術解説からカーネルカスタマイズまで 〜
Linux上で仮想的なLinuxを動かす「User Mode Linux」。仕組みからインストール/管理方法、そしてIPSecやIPv6に対応させるためのカーネル構築までを徹底解説。
宮本 久仁男<miyamotokn@nttdata.co.jp>
NTTデータ システム開発事業本部
基盤システム事業部 第一ソリューション技術担当
2002/5/25
User Mode Linuxとは?
User Mode Linux(以下UML)は、サーバの仮想化技術とビジネス展開の可能性でも紹介された、Linuxの上で動作するLinux OSです。厳密にいうと「Linux OS」とは少し違いますが、環境としてはこう表現しても差し支えないでしょう。
日本語による情報源としては、「User Mode Linux紹介」(http://www.digitalinfra.co.jp/uml/index.html)があります。ここには、実際に使うに当たって必要とされる情報などがあります。2002年5月現在では未翻訳の部分もかなりありますが、UMLの使用に必要な部分は翻訳されているので、あまり支障はありません。
なお、本稿では便宜上、UMLを動かすOSを「Host OS」、UMLによって提供されるOS(環境)を「Guest OS」と呼びます。
■UMLの機能概要
UMLでは、どのような機能が用意されているのでしょうか。ざっと目立つ機能を挙げると、
- UMLによるプロセスの独自スケジューリング(注)
- ネットワーク機能のフルサポート(Universal TUN/TAPドライバ経由)
- ディスクイメージファイル上に構築されたLinux環境
- 差分ファイルへのディスクイメージ変更履歴取得
- hostfs機能による、Host OS環境上のファイル資源へのアクセス
- 仮想化されたシリアル・ドライバ経由でのUMLへのログイン
などがあります。
ほかにもたくさんの機能がありますが、そもそも「Linux Full Featuring」な仮想OSなので、全部挙げるとLinuxの基本機能+UML特有の機能の紹介になってしまいます。
注:ドキュメントには、「Host OSから独立したスケジューラ」と記述されています。 |
■UMLのプロセス/メモリ管理
1.メモリ管理
UMLは、Host OSの上で動作するプロセス群でその環境が構成されます。従って、最終的なメモリ管理はHost OSが実施します。なお、デフォルトで認識するメモリは32Mbytesとなっていますが、カーネルに与えるパラメータで、
linux mem=96M |
とすると認識するメモリサイズを変更できます。このパラメータは、実際にHost OSが認識しているメモリサイズとは無関係に与えることが可能です。Host OSが認識しているメモリサイズ以上の容量をGuest OSに認識させることも可能ですが、あまり意味があるとも思えません。それに、あまり大きなメモリサイズを指定すると、UML自体がエラーを出力して起動しません。筆者の環境(メモリ128Mbytes、スワップ256Mbytes)では、480Mbytes以上を指定したところで起動しなくなりました。
2.プロセス構造
UMLは、独自にプロセス管理を行いますが、最終的には、
「UML上で動作している1プロセス」≒「Host OS上の1プロセス」 |
というマッピングがなされます。感じとしては、図1のようになります。当然、プロセス資源は有限なので、UMLを動かす数とアクティブなプロセス数が増えると、プロセススイッチのためにより多くの時間がかかることになります。
図1 UML利用時のプロセスの状態 |
この点、VMWareは図2のように、ハードウェアを1つのプロセス上でエミュレートするような形になるため、仮想マシンのOS環境上でいくらプロセスが増えてもHost OSのプロセス数が増えることはありません。
図2 VMware利用時のプロセスの状態 |
1/5
|
|
||||||||||
|
Linux Square全記事インデックス |
Linux Squareフォーラム Linuxカーネル関連記事 |
連載:Linux Kernel Watch(連載中) Linuxカーネル開発の現場ではさまざまな提案や議論が交わされています。その中からいくつかのトピックをピックアップしてお伝えします |
|
連載:Linuxファイルシステム技術解説 ファイルシステムにはそれぞれ特性がある。本連載では、基礎技術から各ファイルシステムの特徴、パフォーマンスを検証する |
|
特集:全貌を現したLinuxカーネル2.6[第1章] エンタープライズ向けに刷新されたカーネル・コア ついに全貌が明らかになったカーネル2.6。6月に正式リリースされる予定の次期安定版カーネルの改良点や新機能を詳しく解説する |
|
特集:/procによるLinuxチューニング[前編] /procで理解するOSの状態 Linuxの状態確認や挙動の変更で重要なのが/procファイルシステムである。/procの概念や/procを利用したOSの状態確認方法を解説する |
|
特集:仮想OS「User
Mode Linux」活用法 Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説 |
|
Linuxのカーネルメンテナは柔軟なシステム カーネルメンテナが語るコミュニティとIA-64 Linux IA-64 LinuxのカーネルメンテナであるBjorn Helgaas氏。同氏にLinuxカーネルの開発体制などについて伺った |
|
|
- 【 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」コマンドです。
|
|