twitter icon   twitter icon   rss icon

Linux.com Japan

Home 特集 仕掛け人に聞く 資源管理機能cgroup開発の仕掛け人 亀澤 寛之氏

仕掛け人に聞く 亀澤寛之氏

最新パッケージでサポートされたControl Group(以下cgroup)。今回は、その開発でメモリ管理部分のメンテナとして活躍し、ユーザにとって有用な機能の実現を仕掛けている、富士通株式会社の亀澤さんにお話を伺いました。cgroupの開発の動機や現在の状況、コミュニティ開発の様子などをお聞きしました。
(インタビュア:杉田 由美子 The Linux Foundation)

 


杉田:  最初に自己紹介をお願いします。


亀澤:  富士通の亀澤寛之といいます。ソフトウェア事業本部のLinux開発統括部で仕事をしています。この部署は、Red Hat 2.1の頃からLinuxビジネスを行っていて、僕が入社する時にLinuxの経験があることを言ったこともあり、この部署で仕事をすることになりました。


 

コミュニティ開発との関わり


杉田:  今の亀澤さんの活躍を考えると、富士通への就職は、まさに千載一遇の出会いだったのですね。最初のコミュニティ開発は何ですか?


亀澤:  僕が入社した時、富士通はメモリホットプラグの開発をやろうとしていました。面接でその話を聞いて、「本当にメモリを抜くことができるのか? それをやろうとする富士通ってすごいなぁ、どうやるんだろう」と思いましたね。でも、入社したら、担当は君だよと言われて。このホットプラグが最初ですね。


杉田:  これも絶妙のタイミングだったのですね。すぐに開発コミュニティに参加したのですか? 


亀澤:  いいえ。最初は試行錯誤の毎日で、半年くらいはVA Linux Japanさんに協力してもらいながら社内で開発を進めていました。コミュニティにパッチを僕自身が送るようになったのは、その後です。最初に開発したのは、ページアロケータのビットマップを廃止するパッチです。昔のLinuxのページアロケータは、ビットマップでメモリブロックを管理(バディシステム)していたのですが、そのビットマップを完全に取り去るというパッチを投げて、マージされました。投稿した当初はあまり反応がなくて、このまま開発を進めて良いのかと悩んだのですが、Andrew Mortonからプライベートにメールが来まして。「Go ahead」という単語2つだけのメールでしたけど、うれしかったです。俄然やる気が出ましたね。


杉田:  Andrew Mortonから? それはすごい! テンションあがりますね! 


亀澤:  そうなんですよ。なので、がんばってやりました。それから、メモリホットプラグに向けた開発に着手しました。通常構成だけでなくNUMA構成のホットプラグのパッチをガリガリ書いていたので、いつのまにかコミュニティの中で、メモリ管理のコードをみている人だと思われるようになりました。


 

cgroupの開発について


杉田:  亀澤さんは、今、メモリcgroupのメンテナですが、そもそもcgroupの開発に参加した理由は何ですか? また、いつ開発に参加したのでしょう?


仕掛け人に聞く 亀澤氏 亀澤:   開発を考えたのは、メモリホットプラグがRed Hat Enterprise Linuxに入った後ですね。以前から、お客さまから「Linuxでも資源管理機能を使いたい」という話を聞いていて、SolarisやMainframeではサポートしていましたから、Linuxでもいるだろうと思って。資源を使い切ったり確保できないことで起きる障害には、自分たちも苦労していたので、資源管理機能を開発すれば、そういう障害を解消し、快適で効率の良いシステム運用を実現できるのでは、と思いました。資源と言ってもいろいろな種類がありますが、僕はメモリホットプラグの経験があるので、メモリ管理部分をやろうと思いました。障害が起きると原因がつかみにくい機能の1つで、それが改善できればユーザにとって有益ですし、ぶっちゃけ、スケジューラとかCPUは怖くって(笑)。

杉田:  やろうと思って、どうしました?


亀澤:  Linuxで資源管理機能を組み込もうとしては失敗してきた歴史を知っているので、どうアプローチしようかとしばらく悩みました。メーリングリストでもいろいろ議論されていたのですが、ちょうどその頃、Googleの開発者がcgroup機能のコアとなるパッチを投稿して、それがメインラインに入ったんですよ。続けて、メモリcgroupの最初のインプリメンテーションになるものが、IBMとOpenVZの開発者達によって、Andrew Mortonのツリーに入った。それを見て、これを改造していけば自分が考えているメモリ管理ができると考えて、開発に参加しました。パッチをいろいろ投げていたら、お前もメモリcgroupの部分のメンテナをやれよと言われて、現在はメンテナの一人になっています。


杉田:  cgroupパッチもメモリcgroupパッチも、絶妙なタイミングで出会ったわけですね。


杉田:  ところで、cgroupの前にコンテナという機能がありませんでしたか?


亀澤:  同じ機能です。最初はコンテナという名前だったのですが、cgroupという名前に途中から変わったんです。今でもコンテナという名前だった時の名残りが、カーネルのソースコードの中に残っていますよ。変数名で判りますので、ぜひ探してみて下さい。


杉田:  なるほど。現在のcgroupについて、簡単に説明をお願いします。


亀澤:  cgroupは、いくつかのプロセスを1つのグループとして定義し、その単位でリソース管理を行います。管理するリソースとしては、メモリ、CPU、ブロックI/Oなどがあります。グループが違うリソースには影響を与えないので、あるプロセスが暴走してCPUやメモリを使い切って困るようなことも防げます。 他にはグループ単位でフリーズしたり、デバイスを制限したりする機能が実装されていますね。昔からあったcpuset機能も今はcgroupの一部になってます。プロセス単位じゃなくて、アプリケーションやジョブ、ユーザ単位で様々なコントロールを可能にする機能ですね。


杉田:  なるほど、プロセス単位ではなく、アプリケーションやユーザ単位でのコントロールを提供してくれる機能なんですね。


亀澤:  そうです。これを上手く使うことでシステム設計をサポートし、アプリの集約率を上げたり、不安定な挙動を抑えたりという使い方を想定しています。どんどん使ってみて欲しいですね。ただ、上手く使う・・という課題が出てくるかもしれない。これはミドルウェアの出番でしょうね。


杉田:  障害を減らしたり、効率を上げたり。使い慣れるとユーザにとって強い味方になりそうですね。まさに亀澤さんが目指す「快適な運用」のために機能なんですね。ところで、今は何人でメモリcgroupを開発しているのですか?


亀澤:  メインに開発している人は、実は今までは3人でした。そのうち僕を入れて2名は日本人です。


杉田:  日本人密度の濃い開発者構成ですね。時々3人で会って打合せをするのですか?


亀澤:  cgroup全体も含めて、Face to Faceの打合せはほとんど無いですね。顔をあわせた時に、ちょっと話そうか、ということはありますけど。ほとんどの議論はLKMLやメモリのメーリングリストで行っています。ですので、これらのメーリングリストを見ていれば、開発に参加していなくてもすべてわかります。ここ数ヶ月でメモリcgroupの開発者が増えましたが、パッチを見て議論をする、というスタンスは変わっていません。


杉田:  なるほど。ところで、開発者が増えたんですか? それはグッドニュースですね。でも、なぜ?


亀澤:  いろいろなディストリビューションに入ったので、ディストリビューションを使っているユーザが開発に参加してきたようです。さらに、Googleが自社内のクラスタ管理にcgroupを使い始めたので、開発人員を割り当てているようです。例えばGoogle, SUSE, Red Hatの開発者ですね。
開発者が増えたので、自分の負担も減った気がします。ディストリビューションに入る以前は、cgroupのことはわからないからと僕にパッチが送られてくることも多かったのですが、今はいろいろな人が開発したりレビューしてくれる。そういえば、組込みの人からもパッチが来たりしますね。


杉田:  cgroupの利用者が増えたのですね。組込みでも使われているのでしょうか?


亀澤:  使っていると聞いたことがあります。リソース管理がシビアなら使う価値はありますね。アプリケーションが暴走したときもシステムに余力を残しておいてそのアプリケーション殺すような使い方もあるのかもしれません。そう思っています。


杉田:  アプリの障害の影響をシステムに与えたくないという思いなのでしょうか。組込みの人たちにcgroupの使い方を聞くと、今まで想定していなかった用途や機能が見えてくるかもしれませんね。


亀澤:  そうですね。異なるプラットフォームでは異なる要望があるでしょうし。そういうときに単一のソースで全部サポートするのがLinuxの面白いところです。





「仕掛け人に聞く」 バックナンバー

最新パッケージでサポートされたControl Group(以下cgroup)。今回は、その開発でメモリ管理部分のメンテナとして活躍し、ユーザにとって有用な機能の実現を仕掛けている、富士通株式会社の亀澤さんにお話を伺いました。cgroupの開発の動機や現在の状況、コミュニティ開発の様子などをお聞きしました... ...
第二回目は、2010年9月27日~29日に六本木ヒルズで開催されたLinuxCon Japan 2010 において、仮想化ミニサミットを仕掛けた、日本電信電話株式会社のフェルナンドさんにお話を伺いました... ...
第一回目は、2010年9月27日~29日に六本木ヒルズで開催されたLinuxCon Japan 2010 において、トレーシングミニサミットを仕掛けた、(株)日立製作所の平松さんにお話を伺いました... ...
Linux Foundationメンバーシップ

30人のカーネル開発者

人気コンテンツ


Linux Foundationについて

Linux Foundation はLinux の普及,保護,標準化を進めるためにオープンソース コミュニティに資源とサービスを提供しています

 

The Linux Foundation Japan

サイトマップ

問い合わせ先

サイトに関するお問い合わせはこちらまで

Linux Foundation Japan

Linux Foundation

Linux Training

提案、要望

Linux.com JAPANでは広く皆様の提案、要望、投稿を受け付ける予定です。

乞うご期待!