“Linus Torvaldsの右腕”と呼ばれるLinuxカーネル2.6のリード・メンテナ(開発責任者)Andrew Morton氏は,2006年8月,米Googleに移籍した。Googleはその数十万台とも言われるサーバーでLinuxをどのように使用しているのか。Morton氏はGoogleでどのような役割を果たしているのか。The Linux Foundation Japan Symposium(関連記事)のために来日した同氏に聞いた。(聞き手はITpro編集 高橋信頼)


[画像のクリックで拡大表示]

---Googleでの仕事と生活についてお聞きしてよろしいでしょうか。

 毎日オフィスに向かい,自分の部屋のドアを開け,椅子に座ります(笑)。普通の生活です。

---Googleではどのような仕事をされているのですか。

 私はGoogleのプラットフォーム・グループのメンバーです。プラットフォーム・グループはGoogleがサービスを提供するためのソフトウエア,ハードウエアなどに関わります。私は主にLinuxカーネルの担当です。

 具体的には,カーネルのバグがあった際にそれを調査し,修正し,アップストリームのカーネルに統合することです。

GoogleにおけるLinuxの改造

---GoogleはLinuxカーネルを自社のサービスのために改造して使用しているのでしょうか。

 手を入れてはいますが,それほど大きな変更ではありません。

 Googleでは,1台のサーバー内のリソースのサービスへの割り当てを管理するためにカーネルにちょっとした改造を行っています。1台のサーバーのメモリーを最大64に分割しています。コンテナライゼーションと呼ぶ方式ですが,これには,Linuxカーネルが備えているNUMA(Non-Uniform Memory Access)アーキテクチャ対応機能を利用しています(編注:NUMAは,大規模並列マシン向けのアーキテクチャで,CPUとメモリーを持つ複数のノードで構成されるが,全てのノードが同じメモリー空間を共有する)。

 つまり,Linuxカーネルに対し,普通の1台のサーバーを,あたかも多くのノードからなるNUMAアーキテクチャ・マシンであるかのように見せかけます。これにより1台のサーバーのメモリーを複数の区画に分け,それぞれを別々のサービスに割り当てることで,サービスへのコンピュータリソースの配分を管理しているのです。

 といっても,ちょっとしたトリック(cheat)でNUMAに見せかけているだけで,大がかりな変更というわけではありません。

---他に改造しているところは。

 その他には....カーネルに大きく手を入れているところはありませんね。

仕事の90%はLinuxカーネル・メンテナ,10%はGoogle

---Linuxカーネルのメンテナとしての仕事と,Googleのための仕事には,それぞれ何%の時間をあてていますか。

 90%はLinuxカーネルのパブリックな仕事にあてています。10%はGoogleの仕事にあてています。

---なぜGoogleはあなたを招いたのでしょう。