PRIMECLUSTERに関連するソフトウェアを運用する際には、環境に応じて、OSのカーネルパラメタを調整する必要があります。
本設定はPRIMECLUSTERインストール後の再起動を行う前に行ってください。
PRIMECLUSTERをインストールするすべてのノード
使用する製品/コンポーネントによって、必要とするカーネルパラメタが異なります。
PRIMECLUSTERデザインシートを確認し、カーネルパラメタの変更が必要な場合は設定し直してください。
注意
変更したカーネルパラメタを有効にするには、OSを再起動する必要があります。
下記の表の特性に従って以下のようにカーネルパラメタを設定してください。
加算
システムのデフォルト値と各ソフトウェアごとの推奨値や指定値を合計した値を指定します。
最大値
各ソフトウェアの推奨値や指定値の中の最大値を指定します。
ただし、システムのデフォルト値よりも小さい場合は、デフォルト値を使用してください。
なお、カーネルパラメタ値は以下の場合により異なります。
CF 構成の場合
カーネルパラメタ | 特性 | 値 | 備考(パラメタの意味) |
---|---|---|---|
SEMMNI値 | 加算 | 20 | システム全体で利用可能なセマフォ識別子の最大値 |
SEMMNS値 | 加算 | 30 | システム全体で利用可能なセマフォ最大個数 |
kernel.shmmax | 最大値 | 1048576 + リソースデータベースに必要な値 | 共有メモリセグメントの最大サイズ |
kernel.shmmni | 加算 | 30 | 共有メモリセグメントの最大数 |
(注1)
リソースデータベースに必要な値は、以下の方法に従って見積ります。
リソースデータベースで必要な値 = 2776 x リソース数
リソース数は、以下の方法に従って見積もります。
リソース数 = 共用ディスクデバイスのディスク数 x (共用ノード数+1) x 2
“共用ディスクデバイスのディスク数”には、以下を指定します。 - ディスクアレイユニットの場合は論理ユニット数 (LUN)。 - ディスクアレイユニット以外の場合は、物理ディスク数。 “共用ノード数”は、共用ディスクに接続されているノード数を指定します。
注意
設備増設のために論理ディスク数を増やす場合は、リソースの再見積りを行い、クラスタを構成する各ノードを再起動する必要があります。このために、導入後のクラスタシステムにディスクを増設する場合は、増設後の論理ディスク数を考慮してリソースを計算する必要があります。
RMS 構成の場合
RMSが確実に動作するにはカーネルパラメタの設定が必要です。そのため、RMS のインストール時に、これらのカーネルパラメタが /etc/sysctl.conf に定義されていない場合、または、定義されている場合でも、設定値が以下に示す値を満たしていない場合は、以下に示す値を設定するよう /etc/sysctl.conf の定義が自動で更新されます。
カーネルパラメタ | 特性 | 値 | 備考(パラメタの意味) |
---|---|---|---|
kernel.msgmnb | 最大値 | 4194304 | メッセージキューのバイトサイズ |
kernel.msgmax | 最大値 | 16384 | メッセージのテキストの最大サイズ |
kernel.msgmni | 加算 | 8192 | システム全体のメッセージキューの最大数 |
注意
PRIMECLUSTERでは、プロセス間通信でメッセージキューを使用します。
RMS起動時、0x4d2から2076個を予約します。
アプリケーションでメッセージキューを使用する場合は、上記の範囲(0x4d2~0xcee)以外を使用してください。
RMS のインストール時に/etc/sysctl.conf のパラメタ定義が自動で追加/更新された場合であっても、他のソフトウェア製品や利用者アプリケーションで使用する値について確認し、必要に応じて定義値を修正してください。
GFS を使用する場合
カーネルパラメタ | 特性 | 値 | 備考(パラメタの意味) |
---|---|---|---|
SEMMNI値 | 加算値 | 2 | システム全体で利用可能なセマフォ識別子の最大値。2を現在の値に加算します。 |
SEMMNS値 | 加算値 | 11 | システム全体で利用可能なセマフォ最大個数。11を現在の値に加算します。 |
注意
PRIMECLUSTERシステム上で動作させる製品や利用者アプリケーションで使用する値についても、カーネルパラメタの値に反映させる必要があります。
以下にカーネルパラメタの変更および新規設定の方法を説明します。
カーネルパラメタの現在値の確認
現在の有効なカーネルパラメタの値を確認するため、以下のコマンドを実行します。
# sysctl -a | grep sem
kernel.sem = 20 90 10 20
表示された各値は、以下のカーネルパラメタを表しています。
kernel.sem = SEMMSL値 SEMMNS値 SEMOPM値 SEMMNI値
# sysctl -a | grep shm kernel.shmmni = 4315 kernel.shmmax = 4000000000 # sysctl -a | grep msg kernel.msgmnb = 4194304 kernel.msgmni = 8199 kernel.msgmax = 32768
カーネルパラメタ値の決定
カーネルパラメタ値は、手順1. で確認した現在有効な値と上記の表の値を元に決定します。
手順1. の表示例がカーネルパラメタの現在有効な値である場合は、設定する値は以下となります。
SEMMSL値 : 20
SEMMNS値 :131
SEMOPM値 : 10
SEMMNI値 : 42
kernel.shmmni : 4345
kernel.shmmax : 4000000000
kernel.msgmnb : 4194304
kernel.msgmni : 16391
kernel.msgmax : 32768
カーネルパラメタの変更
設定ファイルの編集
カーネルパラメタを設定するため、ファイル /etc/sysctl.conf をエディタで編集します。
以下の行の各値を手順2. で決定した値に変更します。
手順1. の表示例がカーネルパラメタの現在有効な値である場合は、編集後の行は以下となります。
kernel.sem = 20 131 10 42
kernel.shmmni = 4345
kernel.shmmax = 4000000000
kernel.msgmnb = 4194304
kernel.msgmni = 16391
kernel.msgmax = 32768
設定の反映
各カーネルパラメタの値を設定ファイルの値に変更するため、以下のコマンドを実行します。
# sysctl -p
カーネルパラメタの設定変更の確認
カーネルパラメタの値が正しく変更されたか確認するため、以下のコマンドを実行し現在値を表示させます。
# sysctl -a | egrep sem
kernel.sem = 20 131 10 42
# sysctl -a | grep shm
kernel.shmmni = 4345
kernel.shmmax = 4000000000
# sysctl -a | grep msg
kernel.msgmnb = 4194304
kernel.msgmni = 16391
kernel.msgmax = 32768
表示された各値が、手順2.で決めた値であることを確認します。