DB2 インスタンスが LifeKeeper で保護されるように、DB2 で RAW I/O デバイスを設定するにはいくつか要件があります。
要件
- Linux OS が RAW I/O デバイスをサポートしている必要があります。ほとんどのディストリビューションでは、カーネル 2.4 でサポートされましたが、カーネル 2.2 からサポートしているディストリビューションもあります。
- すべての RAW I/O デバイスを共有ディスク・パーティションにバインドする必要があります。共有 SCSI ディスク・パーティションの数が必要になります。正確な数は、 RAW I/O デバイスに置くテーブルスペースの数によって決まります(RAW デバイスにテーブルスペースを書き込む場合のガイドラインについては、DB2 のドキュメ ントを参照してください)。
- DB2 Version 7.1 Fix Pack 3 以降または DB2 Version 8 もしくはそれ以降が必要です。
命名規則
ロー・デバイスとコントローラの命名方法は Linux ディストリビューションごとに異なります。
- Red Hat の場合、デバイス名は/dev/raw/raw<数字>で コントローラは/dev/rawctl です。
- SuSE の場合、デバイス名は/dev/raw<数字>でコントローラは/dev/raw, /dev/rawctl,
dev/raw/rawctl などです。
RAW I/O の設定手順
以下の手順 1~4 は、『IBM Db2 Universal Database リリース・ノート バージョン 7.2/バー ジョン 7.1 フィックスパック 3』の第 7.3.1.1 節(「Linux でのロー I/O の使用法」)から抜き出したものです。 この例では、使用する RAW パーティションは/dev/sda5 です。ここ には重要なデータを置かないでください。
手順 4 または手順 5 は、複数論理ノードを使用しているかどうかで異なることに注意してください。
- このパーティションの 4096 バイト・ページの数を計算し、必要に応じて端数を切り捨てます。例:
例:
# fdisk /dev/sda
Command (m for help):p
Disk /dev/sda:255 heads, 63 sectors, 1106 cylinders
Units = cylinders of 16065 * 512 bytes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Command (m for help):q
#
/dev/sda5 のページ数:
num_pages = floor( ((1106-524+1)*16065*512)/4096 )
num_pages = 11170736
- このパーティションに、未使用の RAW デバイスをバインドします。これはマシンを再起動するたびに実行する必要があり、root アクセスを必要とするため、システム初期化ファイル(rc.local または boot.local)に RAW バインディングを追加することもできます。 このバインディングは、階層を LifeKeeper の保護下においたあと、削除する必要があります。LifeKeeper は、LifeKeeper が保護している RAW I/O デバイスの RAW バインディングを再確立します。
次のように、raw -qa を使用して、どのロー・デバイス・ノードが使用中か確認します。
raw /dev/raw/raw1 /dev/sda5
/dev/raw/raw1:bound to major 8, minor 5
- RAW デバイス・コントローラとディスク・パーティションにグローバル読み取りパーミッションを設定します。RAW デバイスにグローバル読み書きパーミッションを設定します。
# chmod a+r /dev/rawctl
# chmod a+r /dev/sdb1
# chmod a+rw /dev/raw/raw1
- 重要: この手順は、DB2 EE を使用している場合、または、DB2 EEE 構成でフェイルオーバ後も複数論理ノード(MLN)を決して実行しない場合にだけ、あてはまります。 ある時点で MLN を実行する可能性がある場合は、手順 5 に進みます。
ディスク・パーティションではなくロー・デバイスを指定して、DB2 にテーブルスペースを作成します。
例:
CREATE TABLESPACE dms1
MANAGED BY DATABASE
USING (DEVICE '/dev/raw/raw1' 11170736)
ロー・デバイスのテーブルスペースは、DB2 がサポートしている他のページ・サイズでもサポートされます。
- 重要: この手順は、MLN を実行している場合、またはフェイルオーバ後のある時点 で MLN を実行する場合に行う必要があります。
ディスク・パーティションではなくロー・デバイスを指定して、DB2 にテーブルスペースを作成し、各 DB2 インスタンス・パーティションに異なる RAW I/O デバイス を指定します。
例:
CREATE TABLESPACE dms1
MANAGED BY DATABASE
USING (DEVICE '/dev/raw/raw1' 11170736) on NODE (NODENUM)
USING (DEVICE '/dev/raw/<異なる RAW デバイス・ノード>' ####### ) on NODE (NODENUM)
注記: 各 DB2 ノード(データベース・パーティション・サーバ)が異なる RAW I/O デバイスを使用する必要があるため、ON NODE を使用する必要があります。 フェイルオーバが正しく動作するように、異なるマシンでノードが実行されている場合でもON NODE を指定する必要があります。
このトピックへフィードバック