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 は、複数論理ノードを使用しているかどうかで異なることに注意してください。

  1. このパーティションの 4096 バイト・ページの数を計算し、必要に応じて端数を切り捨てます。例:

例:

# fdisk /dev/sda

Command (m for help):p

Disk /dev/sda:255 heads, 63 sectors, 1106 cylinders

Units = cylinders of 16065 * 512 bytes

Device Boot
Start
End
Blocks
ID
System
dev/sda1
1
23
4200997
83
Linux
/dev/sda2
524
1106
4682947+
5
Extended
/dev/sda5
524
1106
4682947
83
Linux

Command (m for help):q

#

/dev/sda5 のページ数:

num_pages = floor( ((1106-524+1)*16065*512)/4096 )

num_pages = 11170736

  1. このパーティションに、未使用の 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

  1. RAW デバイス・コントローラとディスク・パーティションにグローバル読み取りパーミッションを設定します。RAW デバイスにグローバル読み書きパーミッションを設定します。

# chmod a+r /dev/rawctl

# chmod a+r /dev/sdb1

# chmod a+rw /dev/raw/raw1

  1. 重要: この手順は、DB2 EE を使用している場合、または、DB2 EEE 構成でフェイルオーバ後も複数論理ノード(MLN)を決して実行しない場合にだけ、あてはまります。 ある時点で MLN を実行する可能性がある場合は、手順 5 に進みます。

ディスク・パーティションではなくロー・デバイスを指定して、DB2 にテーブルスペースを作成します。

例:

CREATE TABLESPACE dms1

MANAGED BY DATABASE

USING (DEVICE '/dev/raw/raw1' 11170736)

ロー・デバイスのテーブルスペースは、DB2 がサポートしている他のページ・サイズでもサポートされます。

  1. 重要: この手順は、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 を指定する必要があります。

フィードバック

お役に立ちましたか?

はい いいえ
お役に立ちましたか
理由をお聞かせください
フィードバックありがとうございました

このトピックへフィードバック

送信