第2回:エンタープライズLinuxに求められる機能エンタープライズLinuxの実力(3/4 ページ)

» 2006年07月19日 09時00分 公開
[松井一朗,ITmedia]

カーネル2.6により強化された機能

 カーネル2.6は、エンタープライズ向け、とりわけ業務アプリケーションが稼働する基幹システム向けに求められる拡張性を大幅に向上させた最新のLinuxカーネルだ。2001年に登場したカーネル2.5(開発版)を改良し、2003年に正式版の2.6.0をリリースした。現在の最新版は2006年6月にリリースされたカーネル2.6.17である。

 カーネル2.6は、従来のカーネル2.4に比べて非常に多くの機能が強化されている。まず挙げられるのが、マルチプロセッサ対応の大幅な拡張だ。カーネル2.4にあった制限が完全に撤廃され、プロセッサのアーキテクチャがサポートする最大数に対応した。例えば、32bitのx86サーバでは128ウェイ、64bitのIPFなら512ウェイまでサポートしている。カーネル2.4では、マルチプロセッサの制限により、Linuxサーバの拡張は複数のノードをクラスタリングにしたスケールアウト構成が主流だった。それが、カーネル2.6では、UNIXサーバと同等のスケールアップにも対応するようになったわけである。

 マルチプロセッサ対応数が増えたことで、大きく変更されたのがスケジューラである。カーネル2.4では、プロセスがシステム全体で1つにまとめられて処理され、キューの優先順位の高いものからプロセッサに割り振っていた。つまり、キューに溜まっているプロセスの優先順位をその都度調べるので、プロセス数が増えるとスケジューラの処理時間がかかってしまうという欠点があった。それがカーネル2.6のスケジューラでは、あらかじめ処理の優先順位が高いものからキューに並べる機能を実装した。この機能は、プロセッサのオーバーヘッドを大幅に削減することになる。

カーネル2.4とカーネル2.6のスケジューラの違い

 さらに改善された機能として、I/O処理が挙げられる。カーネル2.4では、ブロックI/Oを実行するキューは1つだけであり、ブロックデバイスでI/O処理が行われているとキューがロックされ、他のブロックデバイスのI/O処理は一切できなかった。カーネル2.6では、複数のブロックデバイスに対して同時にI/O処理が行えるように改善されている。

 サーバ向け商用ディストリビューションがカーネル2.6に移行したのは、2004年にノベルが発売した「SUSE LINUX Enterprise Server 9」が最初である。その後、「Red Hat Enterprise Server 4」「MIRACLE LINUX V4.0」「Turbolinux 10 Server」などが続々とカーネル2.6を採用。カーネル2.6が主流になろうとしている。

Copyright© 2010 ITmedia, Inc. All Rights Reserved.

注目のテーマ