Ottawa Linux Symposium 3日目レポート

今年のOttawa Linux Symposiumの3日目のレポートである。都合により午前中は参加できなかったのだが、午後の部では、Linuxの仮想化、コミュニティにおける女性の活動、カナダの著作権法の最新動向といったテーマで興味深い情報がいろいろ提供された。
Xen 3.0 と仮想化技術

ケンブリッジ大学のIan Pratt氏は、まもなく公開予定のXen 3.0仮想化システムの特徴と、より全般的な仮想化技術の特徴について語った。Xenの現在の安定版リリースは2.4である。Pratt氏の講演を聞いて、私は仮想化という技術をより深く理解できるようになった。

Pratt氏によれば、仮想化とは、1つのOSイメージを使用して、システム上に複数のOSの外観を作り出すことである。つまり、巨大なchrootと言える。完全な仮想化とは、既存システムを包括的にエミュレートすることだ。

擬似仮想化は仮想化によく似ているが、この場合、ホストOS上で稼動しているゲストOSは、自分が実際にはコンピュータを制御していないことを認識しており、ただの仮想マシンにすぎない。XenおよびUser-Mode Linuxは、どちらもこのカテゴリに分類される。

今日の大部分のデスクトップ・コンピュータで一般的に採用されているx86アーキテクチャは、仮想化を想定した設計ではないため、Pratt氏はこのアーキテクチャを仮想化にはまったく適さないと評した。

Pratt氏は「なぜ仮想化が必要なのか?」と問いかけ、この質問に対して非常に明快な答えを述べた。

多くのデータセンターでは何百台、何千台ものマシンが1種類のOSを稼動しており、たいていの場合は、それぞれのマシンがたった1つのソフトウェアまたはサービスを実行している。仮想化を利用すれば、こうしたマシンの1台1台が複数のOSをホストでき、それぞれが独自のサービスセットを実行できるため、運営に必要なハードウェアの数を大幅に削減できる。

Xenはこれをもう一歩推し進め、仮想マシン群を利用してロードバランス・システムとフェイルオーバー・システムを実現できるようにする。

Pratt氏の説明によると、Xenクラスタ内のXen仮想マシンホストがハードウェア障害の予兆を検出した場合、そのホストは仮想マシンのゲストOSを別のノードに引き渡し、自身は適切な方法で終了することができる。これにより、ホストしていたサービスを道連れにすることはなくなる。その間、ユーザはサービスをほぼ邪魔されずに使用し続けることができるので、サービスの提供元が変わったことにほとんど気付かない。

同じ構造に基づいて、Xen仮想マシンホスト群によりロードバランスを実現することもできる。数台のホスト間でいくつかの仮想マシンが稼動している場合、このホスト群は、多忙な仮想マシンをあまり多忙でないホストに引き渡して、クラスタ内のどれか1つのノードだけが過負荷になることを回避できる。この手法により、同数のハードウェア上でさらに多くの仮想マシンを稼動できるようになるため、組織のハードウェアコストをさらに削減することが可能である。

仮想マシンホストサーバ内では、仮想マシンが悪意あるソフトウェアに感染するリスクを減らすために、個々の仮想マシンをしっかりと保護しなければならない、とPratt氏は指摘した。さもないと、同じサーバ上の別の仮想マシンにも問題が及ぶおそれがある。

Xenを実行するには、カーネルだけを書き換えればよい。カーネル上のソフトウェアは、「大きなシステム内のスレーブOS」という自分の新しい役割を認識する必要はない。現時点では、XenはLinux 2.4および2.6(.12)、OpenBSD、FreeBSD、Plan 9、およびSolarisに対応している。ゲストカーネルは他のカーネルと平行してハードウェアと通信しなければならないので、親OSを認識し、Xenを通じて親OSにアクセスできるようにするためにパッチを当てる必要がある。ゲストカーネルがシステムのハードウェアに直接アクセスしようとすると、たいていの場合は失敗する。

Linux 2.6カーネルでXenを使用できるようにするためには、arch/カーネル・ソース・サブディレクトリを変更するだけでよい、とPratt氏は述べた。Linuxは非常に移植性が高いということだ。

仮想化したカーネルは2種類の時間を理解する必要があるが、通常のカーネルは1種類の時間だけを理解していればよい、とPratt氏は指摘した。

仮想マシン内にない通常のカーネルは、システム上のすべてのハードウェアにいつでもフルアクセスできる。このカーネルが認識している時間は、実際の時間と同じである。カーネル時間が1秒進む間に、壁にかかっている時計も1秒進むことになる。しかし、カーネルが仮想化されている場合には、同じコンピュータ上にある他のすべてのカーネルとハードウェアを共有しているため、カーネル時間が1秒進む間に、実際の時間は数秒進んでいる可能性がある。したがって、仮想化したカーネルは、実際の壁掛け時計の時間と仮想的なプロセッサ時間(ハードウェアに実際にアクセスする時間)の両方を認識していなければならない。

Xen 3.0の機能には、X86_64システムとSMPシステムのサポートが含まれている。Xenで近々実現されると期待されているのは、ゲストカーネルがシステムごとに最大32の仮想CPUを(実際のCPU数がそれほどなくても)使用でき、それらの仮想CPUを実行中に追加および削除できるという機能である。これは、ホットスワッピングをまったく新しい仮想化レベルへと進化させるものだ。

メモリリングについてはよく理解できなかったが(おそらく誰かが詳しく説明してくれるだろう)、Pratt氏は、32ビットx86環境と64ビットx86環境でのXenの動作の違いをメモリリングというコンテキストにおいて説明してくれた。X86_32では、Xenはリング0で動作し、ゲストカーネルはリング1で動作し、仮想マシンに提供されるユーザ領域はリング3で動作する。X86_64では、Xenはリング0で動作し、仮想マシンのユーザ領域はリング3で動作するが、64ビット環境の場合はゲストカーネルもリング3で動作する。これは、32ビット増えたことによりメモリアドレス空間が大きくなったからだ。8TBのメモリアドレス領域が利用可能であるため、Xenは大きく離れたアドレスを使用することで、別の大きなメモリブロックを割り当てることができる(32ビットモデルはメモリアドレス空間がもっと制限されていた)。

XenのSMPサポートの目的は、Xenの堅牢性と安全性を高めることだ。しかし、SMPのスケジューリングは難しい処理である。ギャング・スケジューリング(Pratt氏によると、複数のジョブを複数のCPUに同時に送信すること)ではCPUサイクルを無駄に消費することになるので、効率を保つためにはプロセスを動的に管理する必要がある。

Pratt氏によると、Xenのメモリ管理は他の仮想化システムとは異なるそうだ。Xenは仮想マシン内のカーネルとユーザ領域にページテーブルを割り当てるが、いったん割り当てた後は制御を行わない。しかし、カーネル領域メモリとユーザ領域メモリとのやり取りに関しては、Xenサーバを通じて要求を作成しなければならない。仮想マシンは自身の割り当てメモリ内に制限されており、自身のメモリ領域を離れることができない。唯一の例外は、仮想マシン間の特殊な制御された共有メモリ環境である。

Xenの開発チームは、目下、Xen環境でオリジナルのカーネルを無修正で実行できるようにすることを目指して作業を進めている。これにより、仮想マシン内にあることを意識せずに、レガシーのLinuxカーネルやWindowsなどのOSをXen上で実行できるようになる予定だ。しかしそれが実現するまでは、Xenは障害を発生させる可能性があるゲストカーネルからのすべてのシステムコールをインターセプトし、まるでXenが存在していないかのように処理しなければならない。

Pratt氏はここでロードバランスの話に戻り、仮想マシンをXenクラスタ内のあるホストから別のホストに引き渡すプロセスについて説明した。

クラスタの2つのノードが同じ正常なネットワーク上にあり、理想的な環境で、1GBのメモリイメージが相手側のホストに転送されて再開可能な状態になるまでに8秒かかるとしよう。ダウン時間がこのくらい長いとミッション・クリティカルなサービスやユーザに気付かれてしまうので、より良いソリューションを目指すならば、実行中の仮想マシンを一方のノードから他方のノードに転送できるようなシステムを構築しなければならない。

1つのソリューションでは、まず、移動対象のプロセスで使用されているリソースの10%を使用して、そのプロセスを宛先ノードに転送する。これならば、当面の間はパフォーマンスに大きな影響はない。次に、仮想マシンが動作しているメモリブロック全体を宛先ノードに繰り返し転送する。1回1回の転送では、前回の転送後に変更されたメモリ内の要素だけを送信する。すべての変更を転送するわけではないので、各サイクルが短時間で済み、変更箇所も少なくなる。最終的には、仮想マシン(終了しようとする仮想マシン)の移行元ホストと移行後ホストのメモリにはほとんど違いがなくなるので、メモリ内の最新の変更内をコピーすれば、その仮想マシンを新しい位置で再開できるようになる。Pratt氏が示した統計では、多忙なWebサーバの場合でも、準備段階としてメモリをコピーするのに約1分半かかった後は、約165ミリ秒の合計ダウン時間で済むということだ。

Quake 3サーバを実行しており、大学院生らがゲームをプレーしている最中の仮想マシンを移行してみたところ、この移行に伴うダウン時間は40〜50ミリ秒であり、大学院生らは移行が行われたことに気付きもしなかった。

Pratt氏はXen 3.1に向けたロードマップとして、パフォーマンスの向上、制御ツールの改良、チューニングと最適化の改良、稼動させるまでの手動構成の減少という点を挙げた。

Pratt氏は、Xenには活発な開発者コミュニティと強力なベンダ・サポートがあり、それが同プロジェクトの開発に大いに役立っていると語った。

Xenプロジェクトについてはxen.sf.netまたはxensource.comを参照。Pratt氏によると、Xenはケンブリッジ(イギリス)、パロアルト(カリフォルニア)、ニューヨークで採用されているそうだ。

仮想化についてのもう1つの話題

3日目の午後には、Intelの設計者であるGordon McFadden氏が、仮想化に関するもう1つの講演を行った。タイトルは「ケーススタディ:複数のディストリビューションに対するバイナリテストへの仮想化GNU/Linuxの利用」というものだ。

McFadden氏が取り組んだ基本的な問題とは、複数のプラットフォーム上の複数のディストリビューションに対して、やはり複数のLinux Standard Base(LSB)テストを実施しなければならないが、この作業を実行するために追加のハードウェアは用意できないという状況だった。

McFadden氏の説明によると、LSBテストは時間こそかかるものの(1回に最大8時間)、CPU負荷はそれほど大きくないということだった。そこで思いついたのが、仮想マシンを利用して複数のLSBテストを同時に実行するという方法だ。1台の実マシン上の1つの仮想マシンでテストを開始し、テストの完了まで数時間から丸一日ただ待っている代わりに、同じマシン上の別の仮想マシンで別のテストを開始すればいいのではないか、というアイデアだ。McFadden氏がこのプロジェクトのために選んだ仮想マシンは、User-Mode Linux(UML)である。

McFadden氏とそのチームが使用したセットアップは、カーネル2.6.11とXFSファイルシステムの上にGentoo Linuxディストリビューションを乗せたものである。McFadden氏によると、Gentooを使用したことに深い意味はなく、それまでに使ったことがないので試してみたかっただけだそうだ。この仮想マシンのファイルシステムはext2またはext3だったが、ホストシステム側には、XFSファイルシステム上のフラットファイルに見えた。

このケーススタディでは、1GBのRAMを搭載した4GHzのハイパースレッドシステムを使用し、Novell Linux Desktop 10、Red Hat Enterprise Linux 3および4、Red Flag Linuxに対してテストを行った。それぞれのテストケースは8GBの仮想ファイルシステム上で動作し、384MBまたは512MBのRAMが割り当てられた。

各システムのセットアップでは、それぞれを通常どおりにインストールし、UMLカーネルによってマウントされるフラットファイルへとddを行った。

ゲストカーネルがインスタンス化され、ロードされ、管理用のX-termが表示されたところで、X-termにログインし、ゲストシステム上のNFSを開始し、テストを実行した。

このプロセス全体は簡単に再使用できるハードウェア・プラットフォームであり、費用という点でも空間という点でも経済的だが、McFadden氏はLSBテスト自体の結果については語らなかった。

McFadden氏は、仮想マシンを使ったテストには制限もあると述べた。具体的には、ハードウェアのテストには使用できないこと、そしてリソース共有が問題になる場合があることだ。たとえば2つのカーネルがネットワーク・インタフェースの制御を争っている場合は、双方でパフォーマンスが低下する。

McFadden氏は、自分でテストを実行するときは仮想化以外の方法も使用しているが、ブートローダを繰り返し使用して別のOSをロードする方法では、複数のタスクを同時に実行できないときは非常に時間がかかると述べた。VMwareを使用するという方法もあるが、VMwareは既によく知っていたので、今回は新しいものを学ぶためにあえてVMwareを使用しなかったそうだ。

Debian-Women

夕食のための30分休憩の後、その晩のBOFセッションが始まった。私が参加したのは、「Debian Women:女性を隔離せず奨励しよう」というタイトルのFelipe Augusto van de Wiel氏のセッションだ(ついでながら、同氏は女性ではない)。

Debian-Womenプロジェクトは、Debian Project Leader(DPL)選挙の際に行われた「Debianプロジェクトにもっと女性を惹きつけるにはどんな策を打つか」というディベートを受けて、DebConf 4の頃に発足した。このテーマはメーリングリストでの活発なディベートを呼び起こし、Debian界のご多分に漏れず、最終的にはDebian-Womenと呼ばれる新しいグループが生まれることになった。このグループは同名のWebサイトを公開している。

オープンソース・プロジェクトに関するいくつかの調査では、主要なプロジェクトにおける女性の割合は最大でも約1.6%であると報告されている。Debian-Womenプロジェクトの発足当時はDebianの女性開発者は3人しかいなかったが、それ以来、New Maintainer Queue(NMQ)には10人の女性開発者が加わっている。

Van de Wiel氏がセッション中に繰り返し指摘したのは、Debian-Womenプロジェクトは男性も含むものであり、排他的な集まりではないということだ。このプロジェクトに興味を持っている人は、性別に関係なく、同プロジェクトのリストやIRCチャンネルから有益な情報を得ることができる。

Debian-Womenプロジェクトの目的は、Debianコミュニティにおける男女平等の意識を喚起し、女性にもっと積極的にフリーソフトウェア・コミュニティに参加してもらうようにすることだ。

同プロジェクトのサイトでは、メンバの実績をProfilesページで紹介し、プロジェクトへの参加方法をInvolvementページで案内している。

Van de Wiel氏は、なぜこのセッションを女性メンバではなく自分が行っているのかについて触れ、女性メンバの多くは現在フィンランドのヘルシンキで開催中のDebConf 5に参加しており、今年のOLSには参加できないからだと述べた。

話は最近のhotbabeというDebianパッケージに関する騒動にも及んだ。このhotbabeというパッケージはシステムのCPUの活動状況に応じて洋服を脱いでいく女性のアニメーションを売りにしていて、活動状況が100%になるとアニメーションの女性も全裸になるというものだった。このアニメーションを男性ストリッパーにするためのオプションがないことに抗議する人が現れ、Debianメーリングリストで喧々轟々の議論になった末に、このプロジェクトはDebianプロジェクトに必要とされる新しい要素を何も提供していないという理由で中止されることになった。

この話の要点は、コミュニティの男性は周辺の女性の気持ちに無神経であるということだ。このような態度では、女性開発者の奨励には到底つながらない。

これと同根の問題として、Debianのドキュメントの多くは性的に中立な表現を使用せず、開発者を暗黙的に男性と見なした表現を使っているという問題を挙げることができる。これも、開発コミュニティに見られる暗黙的な偏見を助長している。

さらにVan de Wiel氏は、Debianコミュニティの女性が現在進めている活動をいくつか紹介した。その中には、同プロジェクトのWebサイトを8種類の言語に翻訳する活動や、Debian Weekly Newsへの協力などがある。

IT従事者の70%が女性であるというマレーシアの例を除いては、一般的には、この分野では男性の方が好まれるという文化的な偏見がある。ある参加者の話によると、アメリカの最近の調査では、アメリカの一般家庭が男の子に対して費やすIT関連の出費は、女の子に対するものの4倍であるという結果が出たそうだ。

もう1つ話があったのは、男性は空いた時間にLinuxを楽しみながら(おそらく宿題代わりに)勉強する傾向にあるのに対して、女性はしっかりカリキュラムに従って勉強する傾向にあり、それゆえメジャーなプラットフォームに集まりがちであるということだ。

要するに、女性開発者にもっとコミュニティに参加してもらうために、いろいろやっていこうではないかという話だ。

GOSLING/カナダの著作権

金曜日に私が最後に参加したセッションは、Russell McOrmond氏がカナダの著作権法について語った「GOSLING/カナダの著作権の最新動向」というBOFセッションだ。

GOSLINGとは、「Get Open Source Logic Into Governments」(政府にオープンソース・ロジックを)の略である。

McOrmond氏は最初に、セッション参加者の中のカナダ人に対して、カナダの著作権法に関する嘆願書への署名を呼びかけた。これは、現在提出中の法案によって著作権を損なわないようカナダ政府に求める嘆願書である。このような嘆願書の署名を見れば、国会議員たちも、この問題に関心があるのは利害関係を持つ実業家だけでなく、他の一般のカナダ人も関心を持っているのだということを認識してくれるだろう、とMcOrmond氏は語った。

現在国会に提出されているBill C-60という法案は、ソフトウェアの作者が、そのソフトウェアを使って行われた著作権違反行為について法的責任を持つことを定めるものである。この法案では、写真の著作権を、その写真を撮った人に与えることになる。その際、写真を撮った状況はいっさい考慮されないので、旅行者が親切な通りすがりの人にカメラを渡して撮ってもらった写真であっても、その写真の著作権は通りすがりの人に与えられる。契約の下で撮影された写真は、引き続き、それを撮影した写真家の著作権下に置かれる。30ページの文面から成るこの法案は、80ページから成る現行のカナダ著作権法に対する修正法案である。

McOrmond氏の指摘では、IBMは、カナダのソフトウェア特許についてカナダ政府とたびたび争っているPeter K. Wangという弁護士を雇っているそうだ。McOrmond氏は、IBMは同社がソフトウェア特許を本当に支持しているのかどうかについて社内で討論を行うべきだと述べた。なぜなら、カンファレンスに参加した一部のIBM従業員は、以前にこの考え方への不満を表明していたからだ。

McOrmond氏は、カナダの著作権問題に関心を持っている人に見てもらいたいページとして、flora.ca/A246goslingcommunity.orgwww.cippic.ca、www.creativecommons.ca、www.forumonpublicdomain.cawww.efc.ca、www.digitalsecurity.ca、www.softwareinnovation.caを紹介した。さらに、同様の問題を扱っているアメリカのサイトとして、www.eff.orgwww.ffii.org、www.centerpd.org、www.pubpat.orgを挙げた。

McOrmond氏が繰り返し指摘したのは、カナダの著作権法は、著作権について利害関係を持つコミュニティの、インターネットなどなければいいと望んでいる一部の実業家の影響を受けているということだ。しかし、今やインターネットは我々の生活に浸透しているものなので、我々は、一部の人々だけでなく、できるだけ多くのカナダ人にとって利益になるような方法で著作権を取り扱うよう働きかけねばならない。

ケベック州はカナダの他のどの地域よりも自らの文化を大切にするところであり、もしもケベック州とカナダ国会のBloc Quebecois党議員が、現在彼らが直面している選択は彼らのよく知っている著作権システムかアメリカの著作権システムかの選択であることを認識してくれれば、今回の「打倒Bill C-60」にはプラスになるのではないかとMcOrmond氏は述べた。この種の問題ではまずケベック州が行動を起こすのが通例になっており、他の地域が事態の重要性を理解する前に、ぜひそうしてもらう必要があるだろう。

McOrmond氏は、カナダの図書館コミュニティに対しても警告を発した。その警告とは、特定の状況における著作権の免除を要求することは、図書館にとっての利益以上に、万人の害になるということだ。たとえば、著作権のある情報を、それが一定期間を経て自然消滅するものに限り図書館が電子的に交換できるようにするには、その自然消滅を実施するプラットフォーム上で行わなければならない。したがって、図書館システムはそのタスクを実行できるバージョンのWindowsに限定されてしまうのだ。

原文