富士通はLinuxを搭載したメインフレーム・レベルの信頼性を目指すIA-64サーバー(開発コード名「プレアデス」)を開発しており,2005年度前半の出荷を予定している。その開発のため米Red Hatに技術者を派遣するなど,Linuxカーネルの改良に多くの技術者を振り向けている。開発はどのように行われているのか。Linuxカーネル開発の責任者であるサーバシステム事業本部 Linuxソフトウェア開発統括部長 泉水澄氏に聞いた(聞き手はIT Pro編集 高橋信頼)

――Linuxの開発はどのような体制で行っているのですか。

泉水澄氏
 富士通でLinuxカーネルの開発を行っているのが我々Linuxソフトウエア開発統括部です。Linux自体の改良と,開発中のIA基幹サーバーのデバイスやアーキテクチャに依存する部分の開発を行っています。

 デバイスに依存する部分の担当者を含めると,Linuxカーネルのコードを書く人間は約100名います。Linuxソフトウエア開発統括部以外の,ミドルウエア開発や検証を行う部隊まで含めると,Linuxのソフトウエア開発を行っている技術者は約1000名になります。

 ボストン近郊にある米Red Hatには,4名の開発者を送り込んでいます。米IBMや米HPなどもRed Hatに協力していますが,技術者を常駐させたのは富士通が最初です(編注:2004年12月から,NECも技術者2名を常駐させている)。

 最初はぎこちなかったんですが,フェイス・ツー・フェイスのコミュニケーションを取ることで,技術をお互いに認め合い,コミュニケーションがスムーズにいくようになりました。我々が開発したものをRed Hatの開発陣がレビューして,Red Hat Enterprise Linuxに組み込んだりといった形ですね。

 お金を出すよりも人を出すほうがずっと重要だと実感しています(編注:富士通はRed Hatと共同でプロモーションは実施するが,Red Hatへの出資は行っていないと見られる)。

――具体的に富士通はどのような部分を開発したのですか。

 カーネル・ダンプ・ツールdiskdumpの開発や,主要な関数のスレッド・セーフ化,I/Oデバイス数の拡大,IPv6サポートの改良などを行いました。

 カーネル・ダンプ・ツールというのは,障害が発生してOSがクラッシュした際に,その時点のメモリーの内容をディスクに記録するツールです。関数のスレッド・セーフ化というのは,Linuxディストリビューション内の主要な関数をマルチスレッド対応させるものです。対応していない関数をマルチスレッド環境下で使用すると,競合が起きてシステム障害を引き起こすことがあります。今回のバージョンでは,panicやexitなど,対応できる関数の対象を拡大させました。I/Oデバイスで256デバイス以上をサポートするための改良に参加しました。

 Red Hatと共同でではなく,富士通が直接Linuxコミュニティに貢献したLinuxの改良も多数あります。

 メモリー故障に対する耐故障性の改善や,取り扱えるPCIアダプタ数の強化,ディスク装置などに一貫した名前を付与する機能の強化,メモリーやI/Oの動的な構成変更などです。

――苦労された点は何ですか。

 Linuxコミュニティに,機能や改良の必要性を認めてもらうことです。Linuxのオフィシャルな開発の場はLinuxコミュニティです。Red Hatも,開発した成果はLinuxコミュニティに渡し,基本的にはそこで認められたものがディストリビューションに取り込まれます。

 議論はLinux-Kernel Mailing Listで行われるので,当然英語で議論しなければならない。実際にメールを書いているのは部下で,私はアドバイスしたり励ましたりしているわけですが。提案しても,なぜそんな機能が必要なのかと言われる。反論があるのはまだましで,一番困るのは提案しても反応がない場合ですね。米IntelやRed Hatの開発チームに援護射撃をしてもらったこともありました。

 他のOSには備わっているからとか,この大手ユーザーが必要としているからとかいう権威主義じゃ駄目なんです。自分たちの思いを,客観的な論理で示さなければならない。普遍的な価値というのを納得させられなければならない。Linus Torvaldsに論破されたこともありますし,Andrew Morton(カーネル2.6の責任者,関連記事)に認めてもらったりして,採用されたこともあります(富士通の技術者がLinux-Kernel Mailing Listに投稿したパッチの例)。

 文化の違いも感じますね。カーネル・ダンプ・ツールは,富士通がメインフレームやUNIXのミッションクリティカルでの経験を活かし提案,開発しました。メインフレームではOSが落ちたとき,ダンプを解析するのが当たり前です。しかしLinuxでは,サポート部門にダンプを渡しても読もうとしないんです。それより再現させるための条件を教えろという。そんなの,きわめて稀なタイミングでしか発生しない障害なので,再現できないんです。

 我々の提案に賛同してくれるのは,IBMやHPや,NEC,日立製作所とか,やはりメインフレームの経験を持つところですね。IBMがカーネルのエラー・メッセージの形式を統一しようという提案をしていたことがありました。メインフレームではエラー・メッセージのフォーマットが決まっていて,最初の何文字でどのモジュールからのものか分かるようになっています。重要なポイントなんですが,コミュニティの反応は芳しくなく,IBMが「賛同してくれるのは富士通くらいだ」と(笑)。

 でも,その説得の段階を乗り越えれば,OSの開発というのは我々がこれまでやってきたことですから,それほどの苦労はありません。

 むしろ,作る苦労というのは今までと同じですが,コミュニティの技術者が助けてくれる。我々もこれまでOSを作ってきましたが,Linuxコミュニティ機能拡張のスピードは速い。例えば,先にあげたメモリー故障に対する耐故障性の改善や,取り扱えるPCIアダプタ数の強化などは,富士通が最初に提案した小さな第一段階の改善をきっかけに,コミュニティ内で大きな開発の流れとなって,一気に実装が進みました。驚きました。

――2005年度の前半に出荷を予定している基幹IAサーバーとは。

 まだ正式発表前なので詳細はお話しできませんが,メインフレーム「GSシリーズ」やUNIXサーバー「PRIMEPOWER」並,いやそれ以上の可用性を目指します。そして,基幹IAサーバーで実現したシステム高信頼機能を,次のPRIMEPOWERにも取り入れていくことになります。

 メモリーやクロスバー・スイッチなど,サーバーの構成要素のすべてが冗長化されており,どの部分に障害が発生しても,切り離して動き続けることができるというものです。フレキシブルI/Oスイッチと呼ぶ機構により,CPU,メモリー,I/O装置を柔軟に構成できるパーティショニング機能を備えています。

 また,サーバー管理専用プロセッサによる,ハードウエアの状態監視,障害情報の収集/分析を行います。

 基幹IAサーバーでは,OSとしてLinuxのほか,Windows Server 2003もサポートします(編注:富士通は2003年5月にRed Hatと提携を発表,基幹IAサーバーのOSとしてLinuxの採用を決定した。2004年6月にはWindows Server 2003もサポートすることを発表している)

――Solarisがオープンソース・ソフトウエアになります。Linuxに比べ基幹システム向けの機能,実績も豊富で,また富士通はSolarisをPRIMEPOWERに採用しており熟知しています。基幹IAサーバーに搭載するOSの候補になるでしょうか。

 難しいと思います。SolarisはSPARCアーキテクチャでは実績がありますが,アーキテクチャが変わると,信頼性はまた一から作り直しになってしまう。簡単ではありません。SolarisはPRIMEPOWERが最適です。