IO用ローパーティションの設定

IO用ローパーティションの設定

基礎

RAWはOSキャッシュと経由せずにブロックデバイス(ディスク)をアクセス方式。通常のファイルシステムより早い。

ASMは大規模なシステムに推奨されている。
非同期IO(AIO)、分散化、冗長化、停止せずにディスクの追加と削除、ディスクグループのロジカルストレージ管理などの機能を備えている。
ASMはASMLibかrawdevicesで構成できる。また、10gR2からブロックデバイス直接構成することもできるようになった。

NOTE:

RHEL4ではRAW仕組みは推奨しなくなった。また、10gR2にはO_DIRECTでブロックデバイスをオープンして、OSキャッシュを経由せずにアクセスすることで、RAWが必要なくなった。但し、10gR2のOUIのバグで、OUIで構成する場合はRAWが要求される。

注意:

Linuxのデバイス名はバススキャンの順番で決められてる。よって、再起動の後、デバイス名は保証されてない。/etc/modprobe.confに別名を設定することで、コントローラのスキャン順番を強制設定できる。
(Emulex adapter(s) for SAN storage)

alias scsi_hostadapter1 aic7xxx
alias scsi_hostadapter2 lpfc

幸い、RHEL4は必要なくなった。RHEL4ではlpfc (Emulex)とvarious qla (QLogic)をそのほかのSCSIデバイスの後にロードするように改良した。

デバイスの追加と削除もデバイス名へ影響を与えるから、気をつけるべき。デバイス名が正しくない場合、オラクルのデータファイルが損傷される恐れがあるから、注意してください。安定なLinuxデバイス名についてはOS Optimizing Linux I/O jp に参考して下さい。

RAWの基本

バインド

  1. raw /dev/raw/raw1 /dev/sdz

書き込み
(警告:データは上書きされる)

  1. dd if=/dev/zero of=/dev/sdz count=1

永続にバインドするため /etc/sysconfig/rawdevices に、下記のテキストを追加する

/dev/raw/raw1 /dev/sdz

/etc/init.d/rawdevices を実行して /etc/sysconfig/rawdevices に基いてrawを設定する

/etc/init.d/rawdevices start

OS起動時自動的に実行するように

chkconfig rawdevices on

バインドのサンプル

/dev/raw/raw3 /dev/sdz2
/dev/raw/raw100 /dev/sdz

オラクルDBでRAWを利用する

dev RPMアップグレードするとき/dev/rawのデバイスを再作成する。これで全ての権限はリセットされる。だから、私は全てのrawをoracleフォルダに作成することをお勧めする(※但し、ほとんどのオラクルマニュアルと違うから、運用を考えると、翻訳者は同意できない)

例:

  1. mknod /u02/orcl/system01.dbf c 162 1

RAWデバイス/u02/orcl/system01.dbf を マイナー1で作成する、つまり/dev/raw/raw1と同じデバイス。メージャー 162 はRAWの意味する。
続き:

  1. chown oracle.dba /u02/orcl/system01.dbf
  2. chown 660 /u02/orcl/system01.dbf

/etc/sysconfig/rawdevicesに追加:

/u02/orcl/system01.dbf /dev/sdb1

起動:

/etc/init.d/rawdevices start

ASMの場合:

# mknod /u02/oradata/asmdisks/disk01 c 162 1
# mknod /u02/oradata/asmdisks/disk02 c 162 2
# mknod /u02/oradata/asmdisks/disk03 c 162 3
# mknod /u02/oradata/asmdisks/disk03 c 162 4

# chown oracle.dba /u02/oradata/asmdisks/disk01
# chown oracle.dba /u02/oradata/asmdisks/disk02
# chown oracle.dba /u02/oradata/asmdisks/disk03
# chown oracle.dba /u02/oradata/asmdisks/disk04

# chmod 660 /u02/oradata/asmdisks/disk01
# chmod 660 /u02/oradata/asmdisks/disk02
# chmod 660 /u02/oradata/asmdisks/disk03
# chmod 660 /u02/oradata/asmdisks/disk04

EMC PowerPathの場合/etc/sysconfig/rawdevicesは下記のように:
/u02/oradata/asmdisks/disk01 /dev/emcpowera
/u02/oradata/asmdisks/disk02 /dev/emcpowerb
/u02/oradata/asmdisks/disk03 /dev/emcpowerc
/u02/oradata/asmdisks/disk04 /dev/emcpowerd

RHEL4で10gR2構成する場合

バグ 5021707 を参考して下さい。 http://www.oracle.com/technology/tech/linux/validated-configurations/html/vc_dell6850-rhel4-cx500-1_1.html.

ディスクディスカバリーパス(Disk Discovery Path)を"/dev/sdb, /dev/sdc"に設定することでASMのDG構成することができる。

例:

$ ln -s /dev/emcpowera /u02/oradata/asmdisks/disk01
$ ln -s /dev/emcpowerb /u02/oradata/asmdisks/disk02
$ ln -s /dev/emcpowerc /u02/oradata/asmdisks/disk03
$ ln -s /dev/emcpowerd /u02/oradata/asmdisks/disk04

但し再起動してから、全ての権限が元に戻るので、下記のコマンド都度の実行して、"brw-rw—— 1 root disk"のディスクをoracle:dba oracle:oinstallに維持することが必要だ。
# chown oracle.dba /u02/oradata/asmdisks/*

See Also configuring i/o for raw partitions