|
|
オープンソースで64 ビットコンピューティングを体験【Linux 編】 64 ビットCPU の時代へ 最近はAMD の64 ビットプロセッサである Opteron やAthlon 64 が何かと話題に上がりますが, Intel にもLinux 対応の64 ビットプラットフォームがあることをお忘れではないでしょうか? たしかに,2001 年にデビューしたIntel の64 ビットプロセッサItanium は,企業での導入が予想以上に進まず,Itanium2 のIA-64 アーキテクチャもいまだ大きなシェアを獲得してはいません.しかも, IA-64 のコンピュータはとても高価です.しかし, AMD がx86-64 アーキテクチャのOpteron プロセッサを発表したこともあり,64 ビットプロセッサの世界でも値下げ競争の歴史が繰り返されようとしています.IA-32 の遺産を引き継いだOpteron がエンタープライズサーバの分野で受け入れられるかどうかは非常に興味深いところですが,まさに64 ビットプロセッサの幕開けと言える状況です. Itanium 版 Turbolinux Enterprise Server ターボリナックスでは,x86-64 アーキテクチャに対応したTurbolinux 8 for AMD64 をすでに提供していますが,IA-64 上で動作するTurbolinux Enterprise Server 8 for Intel Itanium Processor Family powered by UnitedLinux (以下,TLES8 for IPF )の販売も行っています(写真1 ). ▼写真1 Turbolinux Enterprise Server 8 for Intel Itanium Processor Family powered by UnitedLinux ![]() TLES8 (x86 版も含む)は世界主要Linux ベンダであるConectiva ,SCO ,SuSE ,Turbolinux の4 社により共同開発された大規模エンタープライズサーバ向けのLinux ディストリビューションである「UnitedLinux 1.0 」をベースに開発されており,ターボリナックスが従来から提供してきたTurbo linux Server/Workstation ,そして先ごろ発売された Turbolinux 10 Desktop の流れを汲むディストリビューションとは異なります 注1.ここでは,TLES8 for IPF の製品概要と,64 ビット環境が活きる用途/環境について紹介します. 注1 :UnitedLinux の詳細については,UnitedLinux のWeb サイト(http://www.unitedlinux.com/)やターボリナックスWeb サイト(http://www.turbolinux.co.jp/)を参照してください. ■TLES8 for IPF 製品概要 TLES8 for IPF のパッケージは,2CPU ライセンスで9 万8,000 円です.製品の推奨動作環境と製品パッケージの内容は表1 ,2 のとおりです. ▼表1 TLES8 for IPF の推奨動作環境
▼表2 TLES8 for IPF の製品パッケージ内容
製品には,1 年間のメンテナンスサービス(アップデートパッケージ,セキュリティアップデートなどのダウンロードサービス)が付属しています.次年度以降のメンテナンスサービスや製品のご購入につきましては,ターボリナックスまでお問い合わせください. TLES8 for IPF が活きる環境/用途 さて,実際に私たちが64 ビット環境を使う段階になって,その恩恵はどのようなところにあるのでしょう.ここで,本当にユーザが求めているのは,単なる64 ビットのコンピュータとOS だけではなく,アプリケーションをサポートする実際に運用可能なシステムであるということを忘れてはいけません.つまり,TLES8 for IPF のようなハイエンドサーバ向けのLinux OS のみならず,ほかの重要なソフトウェアコンポーネントが整備されなければ,新しいシステムへの本格的な移行は始まらないと言えます.64 ビットへの移行がもたらすメリットは,各所で取り上げられていますので,ここで詳しくは触れませんが,
●演算速度の高速化 巨大な整数が扱える.つまり,一度に処理できる単位を増すことで,大きな桁数の計算の高速化が期待できます.扱う単位がとくに巨大な国家予算や高度な科学技術演算,銀行や航空会社などのオンラインシステムなどの多くには,実はすでに 32 ビットCPU は使用されていません.UnitedLinux も全米科学財団(NSF)が運営するTeraGrid と呼ばれる科学データを処理する分散コンピューティングシステムに採用されるなど,その成果をすでに上げています. ●広大なメモリ空間の確保 多くの企業ユーザにとって,64 ビット環境における最大の恩恵は,やはり広大なメモリ空間の確保でしょう.とりわけ,企業における重要な業務アプリケーションは,データベースが基盤となっています.大企業のデータベースなどではデータそのものがテラバイトやペタバイトの領域へ達することもあり,すでにオンメモリで処理することが不可能になっていることも珍しいことではありません.アドレス空間が64 ビットへ拡張されれば, 4G バイト以上のアドレス空間を扱うことができるため,64 ビット対応のメリットはほかのソフトウェアと比較しても大きいことは明らかです. そのためOracle やIBM といった企業は,自社データベース製品の64 ビット対応を早期に表明し,すでにOracle9i DB やIBM DB2 のItanium 対応版を提供しています.そしてTLES8 for IPF は,これらのデータベースを動作させる正式なプラットフォームとしての認定をすでに取得しています.そのほか,TLES8 for IPF が認定を取得,もしくは予定しているおもなミドルウェアには表3 のものがあります. ▼表3 TLES8 for IPF が認定を取得,もしくは予定しているおもな製品
※Weblogic 自体の対応は2004 年1 月を予定しています. このように,ターボリナックスでは,データベースに代表される主要なミドルウェアを含むソリューションをすでに開始しています.TLES8 for IPF がIA-64 プラットフォームにとって不可欠な存在になるであろうことをご理解いただけるでしょう.今後は,64 ビットプロセッサに対する潜在的な需要 - とくにエンタープライズ分野での需要 - は一気に開花し,製品の検討,もしくは導入に踏み切る企業が増えていくと思われます.64 ビットサーバとLinux の組み合わせが数年後には,標準的なサーバプラットフォームの主流となっていることでしょう. 今後もターボリナックスは,パートナー各社との協業を推進し,基幹系システムでのTLES8 for IPF の導入に不可欠なサポート,コンサルティングを強化していきます.これによって,ターボリナックスのエンタープライズ戦略,ならびに UnitedLinux のアジア市場向け製品であるTLES8 for IPF の日本での採用がますます加速されるのではないかと期待しています. ■TLES8 for IPF のインストール ここでは,実際にTLES8 for IPF のインストール手順を見ていきたいと思います.とは言うものの, IPF 版のインストーラはx86 版のそれとまったくと言って良いほど同じです.インストーラさえ起動してしまえば,あとはグラフィカルなインストーラでインストール作業を進めることができます. ただし,PC/AT 互換機への一般的なインストール設定と異なる部分もあるので注意は必要です. Itanium システムにTLES8 for IPF をインストールするには,EFI (Extensible Firmware Interface )に関する最低限の知識が必要不可欠となります. EFI とELILO ご存知のとおり,PC/AT 互換機では,BIOS がハードディスクのMBR に書き込まれたLILO (LInux LOader )やGRUB (Grand Unified Bootloader )などのブートローダを読み込むことでLinux が起動します. それに対しItanium システムでは,Linux の起動にELILO と呼ばれるブートローダが使用されます.そしてELILO は,EFI Boot Manager によって読み込まれます.EFI は,従来のPC/AT 互換機が装備していたBIOS インターフェースの代わりとなるもので,ファームウェアとOS 間の新しいインターフェースを定義しています(図1 ).これにより,OS を起動するための標準的な環境を提供しています. EFI の詳細な情報はIntel のWeb サイト(参考文献1)から得ることができます. ▼図1 EFI ![]() 詳細には触れませんが,Itanium システムへ Linux をインストールする際に知っていなければならない事項は,ELILO がVFAT ファイルシステムのパーティションに配置されなければならないという制限があることです.このパーティションは, EFI System Partition と呼ばれ,EFI Boot Manager がOS を起動するために必要なプログラム,および設定ファイルの格納に使われます. TLES8 for IPF では,/boot ディレクトリにELILO , Linux カーネル,および設定ファイルなどが格納されるため,/boot パーティションがEFI System Partition となります.つまり,インストールした TLES8 for IPF を起動するには,/boot をマウントポイントとするパーティションを別に作成し,ファイルシステムのタイプに「FAT (vfat )」を指定しておく必要があります.さもないと,EFI Boot Manager はELILO のブートイメージを読み込むことができず,Itanium システム上にインストールしたTLES8 for IPF が起動できないというトラブルに遭遇してしまうことになります. インストーラの起動 TLES8 for IPF のインストールも,EFI Boot Manager から「インストールCD 」上のブートイメージを読み込むことで開始します.ほとんどすべてのItanium システムはCD-ROM ドライブを搭載しており,インストールCD からインストーラを起動できますので,これが問題となることはないでしょう.インストーラの起動は,以下の手順に従います.
インストール手順 インストールはおおまかに以下の手順で進みます.ここでは,インストーラの画面遷移を簡単に紹介しましょう.
■TLES8 for IPF の起動 ブートマネージャからの手動起動 TLES8 for IPF のインストール完了後にシステムの再起動を行うと,EFI Boot Manager の先頭には,図11 のようにTLES8 for IPF を起動するためのブートメニュー「Turbolinux Enterprise Server 」が自動的に登録されています. ▼図11 EFI Boot Manager にTurbolinux Enterprise Server が登録された
「Turbolinux Enterprise Server 」が選択された状態で[Enter]キーを押します.インストールされたELILO のブートイメージを読み込み,ELILO boot:プロンプトが表示されます.ブートイメージは/boot/efi/ SuSE/elilo.efi にインストールされています.
そのまま[Enter]キーを押します(数秒後には自動的に起動します). EFI シェルを使用した手動起動 EFI シェルを使用して手動でTLES8 for IPF を起動することもできます.EFI シェルは,bash のような非常にシンプルな対話型環境で,ブートローダであるELILO を起動するためにも使用されます. また,EFI シェルは認識したハードウェアの表示や EFI System Partition 上のファイルを操作するさまざまなコマンド(edit ,type ,cp ,rm ,mkdir など)も含まれています注2. 注2 :EFI シェルで利用できるコマンドのリストは,EFI シェルでhelp と実行することで確認できます.
■ELILO の設定 ELILO は設定ファイルである/boot/efi/SuSE/ elilo.conf の最初に定義されたカーネルをデフォルトとして読み込みます.設定ファイルの書式は,従来からLinux のブートローダとして使用されているLILO とよく似ています.ただし,LILO とは異なり,設定ファイルの変更のみで,次回起動時に設定は有効になります. リスト1 は,標準的なelilo.conf の記述です.EFI シェルからtype コマンドを実行してファイルの内容を確認することができます. ▼リスト1 標準的なelilo.conf の内容
LILO と同じように異なるカーネルイメージや ELILO ブートローダへ渡すカーネルパラメータを指定するために,ユーザ自身がelilo.conf へ新規エントリを追加したり,elilo のコマンドラインから直接カーネルイメージやカーネルパラメータを指定することも可能です.なお,指定可能なオプションの一覧は,-h オプションで確認することができます.
TLES8 for IPF のインストール後であれば, /usr/share/doc/packages/elilo/ディレクトリに詳細なドキュメントが存在します. ■インストール後の設定 最初にインストール後の見た目ですが,x86 上の TLES8 と大きな違いはありません.そのユーザインターフェースは図14 のように見慣れたKDE デスクトップです. ▼図14 KDE デスクトップ ![]() そして,TLES8 for IPF には,x86 で標準的に使用されている主要なサーバアプリケーションも同じように収録されています.新しいプラットフォームを評価,または移行を検討する際に重要な事項の1 つに,今まで使用してきたプラットフォームと同じ方法で作業が行えるシステムかどうかということが挙げられます.ただし,必要とあらばそれ以上の作業が行えるシステムであることも要求されます.したがって,TLES8 が64 ビット環境においてもx86 上のTLES8 と同じルック&フィールを持つという事実は,異なるハードウェアアーキテクチャが混在している環境や32 ビットから64 ビットへの移行途中にある組織にとって歓迎されることでしょう. TLES8 を使用しているユーザであれば,今まで使い慣れた環境と同じ操作でシステム管理やサーバ構築が行えます.システム管理者がアーキテクチャの違いを意識し,苦労するということはほとんどありません.逆に,「何も変化がないということのすばらしさ」に驚かれるかもしれません. ■パフォーマンスとIA-32 との互換性 unixbench によるベンチマーク ベンチマークに関しては,現状では単一のプログラムについてIA-32 プロセッサと比較した場合において,Itanium プロセッサの優位性が現れるケースは残念ながら多くはないようです. 以下に参考として,今回利用した900MHz の Itanium2 4CPU /RAM 1G バイトシステムでの unixbench-4.1 (http://www.tux.org/pub/tux/benchmarks/System/unixbench/)の実行結果を表4 に示しますが,機材の関係から最新のクロック周波数でのテストではないため,ほかのプラットフォームとの比較は行っていません.なお,今回のテストでは,Intel 製の最適化C コンパイラ(ECC )の評価ライセンスを使用してのパフォーマンスの差についても比較してみました(Intel 製C コンパイラについては,コラム「Intel 製コンパイラ」を参照してください). このベンチマークについては,Intel ECC コンパイラによる測定も行いました.一部のデータにばらつきはありましたが,結果に大きな差は見られなかったためGCC による結果のみ記載しています. ▼表4 unixbench-4.1 によるベンチマークの結果
※Double-Precision Whetstone とPipe-based Context Switching のINDEX 値が1/10 の値で表示されていると考えられますが,ログどおりに示してます. linpackc によるベンチマーク 数値演算を主体としたベンチマークでは大きな差が見られます.たとえばLINPACK のC 言語版であるlinpackc (http://www.netlib.org/benchmark/linpackc)を実行した結果としては表5 のようなデータが得られています.このことから判断して,数値演算処理に関してはコンパイラの最適化性能が結果に大きく影響することがわかります. ▼表5 linpackc によるベンチマークの結果(最適化オプションは-O3 のみ指定)
IA-32 アプリケーションとの互換性と実行速度 IA-64 ではIA-32 の命令を実行することが可能です.たとえば,TLES8 (x86 版)の/bin/gzip コマンドをTLES8 for IPF のシステムにコピーするとそのまま使用可能なことがわかります. ただし,命令セットの大幅な変更により,IA-64 システムではIA-32 の命令セットの実行にはオーバーヘッドが生じます.たとえば,前述のlinpackc のソースをx86 版のTLES8 の環境のgcc-3.2.2 でコンパイルしたバイナリをIA-64 のTLES 上で実行すると表6 のように2 倍以上のスコア差が生じます. ▼表6 IA-32 バイナリとの比較
このようなパフォーマンスの問題を解決するため,インテルでは「IA32 Execution Layer 」(IA32- EL )と呼ばれるソフトウェアを開発しています. これはIA-32 の命令をIA-64 の命令に置き換えて実行することで処理の高速化を実現します.まだ開発中のものなので実際のパフォーマンスがどの程度になるかは不明ですが,Itanium2/1.5GHz 上で Xeon/1.4GHz 並の速度が実現可能のようです. IA32-EL はLinux とWindows Server 2003 用に開発が進められており,これがLinux ディストリビューションベースで採用されれば,IA-32 アプリケーションの実行速度の問題は大きく前進すると考えられます.SuSE Linux は2004 年第2 四半期にSLES9 にてIA-32-EL を搭載することを予定しており,同じUnitedLinux ベースのTLES の次期バージョンでも同等の機能が実現されるでしょう. ■IA-64 の動向と問題点 IA-64 Linux システムの現状 現状でのIA-64 Linux システムの利用分野はHPC (High Performance Computing )が中心となっています.これは,64 ビット化による計算能力や利用可能なメモリ空間の向上により32 ビットシステムより高速かつ大量データ処理が可能であること,あるいは大規模なマルチプロセッシングシステムに対応しているというメリットが活かせることが挙げられます.とくにHPC の分野では,特定アプリケーションや専用に開発されたアプリケーションが動作すれば問題ないため,移植性の問題さえ回避できればプラットフォームを問わないということが大きな理由でしょう. 問題点 これは逆にIA-64 システムの問題点も浮き上がらせています.すなわち科学技術計算やトランザクション処理の潜在能力が高いと言われるにも関わらず,動作するアプリケーションの少なさから用途が限定されていることです.Linux 上で動作する商用アプリケーションは近年非常に増加していますが,基本的にはIA-32 Linux のもので,これらはたとえIA-64 上で動作可能でも処理速度が遅いという問題を抱えます.もちろん,IA-32 アプリケーションの動作速度に関しては,前述のIA32-EL が実現されることでパフォーマンスが大幅に改善される可能性はありますが,やはりIA-64 ネイティブに作成されたアプリケーションがどれだけ普及してくるかが1 つの鍵になるでしょう. そのほかにも,現状ではシステム価格が高い, CPU クロックがIA-32 よりも遅い,消費電力や発熱が同一クロッククラスのIA-32 システムより大きいなどの問題もあります.これらの問題が1 つずつ解決されていけば,より高いポテンシャルを秘めた IA-64 ベースのシステムは今後もっと普及していくと考えられます. ■Intel 製コンパイラ Intel 製コンパイラとは Linux では,標準のコンパイラとしてGCC を使用しています.これは,IA-64 でも同じです.GCC でも64 ビットのネイティブコードへコンパイルすることができます.しかし,とくにパフォーマンスが重視されるプログラムであれば,Intel 製のコンパイラを使うのも1 つの選択肢として挙げられます. Itanium2 に実装されている機能をフルに利用するには,ソースコードだけでなく,コンパイラの能力に大きく依存します.Intel 製コンパイラはオープンソースではないため,個別に購入する必要はありますが, Itanium2 プロセッサ向けにコードを最適化できるという特徴と技術サポートがある点は,企業ユーザに買われる要因となるかもしれません. 評価版は,Intel のWeb サイトからダウンロードすることができます.また,マニュアルやIntel 製コンパイラとGCC を比較したベンチマーク情報などへたどることもできます.詳細は参考文献2 を参照してください. なお,使用するには,下記のWeb サイトから30 日間無料評価版のライセンスキーを取得する必要があります. http://developer.intel.com/software/products/compilers/clin/eval.htm Intel 製コンパイラのインストール インストール手順は次のようになります.
■参考文献
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copyright © Turbolinux, Inc..All Right Reserved.





