|
IBM Directorの最新版 (2005/08/08現在)であるIBM Director 4.22のServeRAIDマネージャー機能をRed Hat Enterprise Linux 3 Update4 (以降「RHEL3 Update4」)以上および SUSE Linux Enterprise Server 9 SP2 (以降「SLES9 SP2」)以上で使用する場合、cimserverというプロセスの起動スクリプトを一部修正する必要があります。
RHEL3 Update4以上およびSLES9 SP2以上において、スクリプトを修正せずにIBM Director 4.22を稼動させると、cimserverプロセスがCPUを100%使用し続ける現象が確認されています。本ガイドをご参照いただき、ご対応の程よろしくお願いいたします。
IBM Director 4.22 をRHEL3 Update4以上およびSLES9 SP2以上のOSで使用している際、cimserverというIBM Directorに関するプロセスがCPUを100%使用し続ける現象が発生する場合があります。結果として、該当サーバーはサービスを正常に提供することが困難な状態になります。構成によっては、しばらくの間CPUを100%使用し続けた後、cimserverプロセスがterminateされるケースも確認されています。
cimserverとは、IBM Director 4.20よりLinuxにおいても本格的に対応がなされたCIMのオブジェクトマネージャーに関するプロセスです。IBM Directorのバージョン4.20以降ではCIMの機能を利用して、ハードウェア状況やデバイス、リソースの情報を取り扱っているため、cimserverが停止している状態でIBM Directorの機能を正常に使用することはできなくなります。
この現象はglibcパッケージのバージョンに依存して発生します。この問題に対し、IBM Director 4.22ではcimserver起動時に環境変数を設定するようスクリプトに修正が加わりました。ただしこのスクリプトには、RHEL3 Update3(kernel-2.4.21-20.EL)と SLES9 SP1(kernel-2.6.5-7.139)で稼動する場合においてのみ、環境変数が設定されるよう記述されています。従って、これらのカーネルバージョン以外で稼動する場合には、ご使用の環境に合わせてスクリプトを編集する必要があります。
なお、IBM Director 5.x ではこの対応は必要ありません。
下記の3つ条件が全て当てはまる場合に、対応が必要となります。
1) IBM Director 4.22のServeRAIDマネージャーのコンポーネント(RAIDLxServerもしくはRAIDLxAg)を導入しているシステム
2) 下記のglibcのバージョンが導入されているシステム
<Red Hatの場合>
glibc-2.3.2-95.27以上 (glibc-2.3.2-95.27 はRHEL3 Update3 にデフォルト含まれているバージョン)
<SUSEの場合>
glibc-2.3.3-98.38以上 (glibc-2.3.3-98.38 はSLES9 SP1 にデフォルトで含まれているバージョン)
※RHEL3 Update2以前のカーネルやSLES9標準カーネルの場合でも、glibcを上記バージョンにアップデートしている場合には問題が発生しますので、対応が必要となります。
3) カーネル2.4.21-20.EL(RHEL3 Update3 相当)、2.6.5-7.139(SLES9 SP1相当)以外のカーネルで稼動しているシステム
(カーネル2.4.21-20.ELおよび2.6.5-7.139の場合は、cimserver起動スクリプトが既に修正されているため対応は不要です。)
なお、Itaniumおよびx86_64版OSの場合はこの限りではありません。
cimserverの起動スクリプト(/etc/DirAgent/startcim)の以下の部分を編集してください。
起動スクリプトの15行目付近にある"yourkernelhere"を、現在使用中のカーネルバージョンに置き換えてください。
以下、/etc/DirAgent/startcim 7行目以降の抜粋。
-----------------------------------------------------
# fix for RHEL3 Update 3 and SLES 9 Update 1 - 100% CPU usage
# in cimserver due to new threading model. If you are using
# a kernel that uses the NPTL threading model, add your kernel's
# uname -q output below.
if [ `uname -s` = "Linux" ] && \
[ `uname -m` != "ia64" ] && [ `uname -m` != "x86_64" ] && \
( uname -r | grep -q "2.4.21-20.EL" || \
uname -r | grep -q "2.6.5-7.139" || \
uname -r | grep -q "yourkernelhere" ) <-- ここにカーネルバージョンを記述
then
export LD_ASSUME_KERNEL=2.4.19
fi
-----------------------------------------------------
例) RHEL3 Update4 (kernel-2.4.21-27.EL) で起動するシステムの場合
1) 以下のコマンドを実行し、カーネルバージョンを確認します。
2) 前のステップで確認したカーネルバージョンを、/etc/DirAgent/startcim に記述します。
# fix for RHEL3 Update 3 and SLES 9 Update 1 - 100% CPU usage
# in cimserver due to new threading model. If you are using
# a kernel that uses the NPTL threading model, add your kernel's
# uname -q output below.
if [ `uname -s` = "Linux" ] && \
[ `uname -m` != "ia64" ] && [ `uname -m` != "x86_64" ] && \
( uname -r | grep -q "2.4.21-20.EL" || \
uname -r | grep -q "2.6.5-7.139" || \
uname -r | grep -q "2.4.21-27.EL" )
then
export LD_ASSUME_KERNEL=2.4.19
fi
3) 以下のスクリプトを実行してcimserverプロセスを再起動すると、上記の修正が適用されます。
# /etc/DirAgent/stopcim
# /etc/DirAgent/startcim
上記の設定を行うと、アプリケーションプロセスのスレッドモデルがNPTLではなくStandard LinuxThreadになります。
LinuxThreadの場合、プロセスもスレッドも両方ともPIDを持つようになるため、"ps -ef"コマンドを実行すると全ての子スレッドまで表示されます。時には、100〜200スレッドにおよぶマルチ・スレッド・プロセスが、100〜200の個別のプロセスであるかのように見えることもありますが、これはLinuxThreadの仕様でありシステムおよびアプリケーションの動きに問題はありません。
| 文書番号: SYJ0-0186A56 |
| 最終更新日: 2008-07-02 |
| Copyright © 2008 IBM Corporation |
|