Oracle新人のRACインストール その5

投稿日: 2006年5月31日

<Oracle新人のRACインストール その5>
ペンネーム:world famous beagle

今週も引き続き、共有ディスクの設定です。

「よし、じゃあ早速共有ディスクの設定をやってみよう。まずは、手順を確認
しよう」

「印旛くん、パーティションの設定だけど、サイズとかは僕が考えておいたか
らとりあえずその通りにやっといてね」
「はい、わかりました」
■パーティションの作成
$ fdisk /dev/sdb

→「RAIDだから、1つのディスクのように見えているんだよね。ここで、パー
ティションを作成して、論理的にディスクの領域を作るんだな。なるほど」
(注:今回は、OCR用、Voting Disk用、ASM用DiskGroup×2の4つの領域が必要。
4つ目以降のパーティションは、拡張領域を指定して、その中を区切る必要が
あるので注意!詳しくは、次回以降説明予定)

■RAWデバイスへのパーティションのバインド

$ vi /etc/sysconfig/rawdevices
# raw device bindings
/dev/raw/raw1   /dev/sdb1     #OCR
/dev/raw/raw2   /dev/sdb2     #Voting Disk
/dev/raw/raw3   /dev/sdb3     #ASM Diskgroup1
/dev/raw/raw4   /dev/sdb4     #拡張領域用
/dev/raw/raw5   /dev/sdb5     #ASM Diskgroup2

→「RAWデバイス?バインド? “生のデバイス”ってこと?なんだそれ?
聞いたことない・・・。まだ手順1つしか進んでないのに、もう進めないのか・・・」

「岸田さん、RAWデバイスっていうのは何ですか?」
「RAWって何か知ってるの?」
「”raw fish”のRAWですか?」
「は?・・・・・」
「”raw material”の方ですか?原料みたいな?」
「・・・・・」
あ、岸田さんが怒り始める!!
「すいません。調べます!」

—–RAWデバイスとは—–
RAWデバイスとは、一般的に”ファイルシステムを使わないパーティション”と
定義されています。
ファイルシステムと何が違うかというと、キャッシュを使わない、ファイルシ
ステムの更新情報を管理しない、という2点になります。
この2点によって、通常は更新、追加処理がファイルシステムに比べ高速化さ
れます。

しかし、キャッシュに必要なデータが載っている場合は、当然、常にディスク
I/Oを伴うRAWデバイスの処理の方が遅くなります。

もう1つ違う点は、RAWパーティションは、OS側から認識されないため、ディス
クに紐付ける必要があります。このことをバインドするといいます。
これが、/etc/sysconfig/rawdevices ファイルを設定する理由です。

また、RAWデバイスを機能させるためには、ASYNC I/Oを使う必要があります。
ASYNC I/Oを使うことで、キャッシュを使わないRAWデバイスの処理をより高速化
させることができるようになります。
ASYNC I/Oとは、非同期書き込み機能のことをいいます。
書き込み処理をパラレル実行することで、ディスクへの転送速度を上げること
が出来ます。
物理ディスクへの書き込みは、通常、1つの物理ディスクへの書き込みが終了し
てから、次のディスクへの書き込みがなされます。
つまり、ASYNC I/Oを活用しても、ディスクが1本しかないような状況では、処
理がキューイングされるだけで、転送速度は上がりません。

「なるほど、いくら、RAWデバイスが更新情報を管理しなくていいといっても、
キャッシュにデータが載っていたら、当然ファイルシステムの方が高速に処理
できるもんね」

「印旛くん、RAWデバイスについて調べてるのはいいけど、今回はASMを使うの
はわかってるよね?」
「ASMとRAWデバイスって何か関係あるんですか?」
「今回は、OracleのStandard Editionをインストールするから、RAWデバイスは
使えないはずなんだけど」」
「調べます・・・」

—–RAWデバイスのデメリットとASM—–
RAWデバイスは、ファイルシステムを使わないため、管理が難しいといえます。
また、データベースに格納予定のデータファイル、制御ファイル、REDOファイ
ル、表領域などのパーティションをあらかじめ作成しておく必要があります。

■ASMとは
Automatic Storage Management(自動ストレージ管理)の略。
これは、Oracle10gからの機能でRAWデバイスの管理の難しさを補うために、
Oracleが提供するRAWデバイスの自動管理アプリケーションです。
Oracle Standard Editionを使用する場合の共有記憶域管理はASMのみ使用する
ことが出来ます。

「わかった!ASMとRAWデバイスっていうのは、別物ではなくて、RAWデバイス
を自動で管理してくれるのがASMなんだ」

—–先週からのまとめ—–
共有ディスクの設定について、RAIDやRAWデバイス、ASMなど様々な事柄が出て
きたので、少し整理すると・・・

→ 物理ディスクをRAID構成にする
→ 10本のディスクが、仮想的に1つのディスクとしてOSに認識される
→ 仮想的に1つのディスクにみえているディスクをRAWパーティションで区切る
→ RAWパーティションをASMが自動管理する

というようになります。
おわかり頂けたでしょうか?

では、本筋の共有ディスクの設定に戻って・・・

■RAWデバイスのサービスをスタートする

$ /etc/init.d/rawdevices start

→「これは、OS側のRAWデバイスのサービスを起動するってことだね」

■RAWデバイスへの書き込み確認

$ dd if=/dev/zero of=/dev/sda1
$ dd if=/dev/zero of=/dev/raw/raw1 bs=1024k count=100
100+0 records in
100+0 records out"

→「サービスを開始して、正常に書き込みができることを確認して、と。
わかるわかる」

■サービスの再起動

$ /etc/init.d/rawdevices restart

■RAWデバイスの所有者変更、権限変更

$ chown oracle:oinstall /dev/raw/raw1
$ chown oracle:oinstall /dev/raw/raw2
$ chown oracle:dba /dev/raw/raw3
$ chown oracle:dba /dev/raw/raw5

$ chmod 660 /dev/raw/raw*

→「所有者をOracleに変えないと、RAWデバイスへの書き込みができないもんね」

■RedHat Enterprise Linux4.0 固有のRAWデバイスの構成設定
RedHat Enterprise Linux4.0では、システムを再起動すると、RAWデバイスの
所有権と権限がデフォルトのrootに戻ります。
これでは、システムの再起動をするとASMが起動できなくなりOracleも起動で
きなくなってしまいます。
このため、以下のファイルで、このデフォルトの動作を無効にし、それぞれの
RAWパーティションの所有者、権限情報を入力する必要があります。

$ vi /etc/udev/permissions.d/oracle.permissions

#ASM
chown oracle:dba /dev/raw/raw3
chown oracle:dba /dev/raw/raw5
#OCR
chown oracle:oinstall /dev/raw/raw1
#Voting Disk
chown oracle:oinstall /dev/raw/raw2

$ vi /etc/udev/permissions.d/50-udev.permissions
rawdevicesの設定をコメントアウトする

「完璧だ!共有ディスクの設定終了!!」

迷走中の印旛くんですが・・・
Kupatea njia ndiko kujyua njia.(道に迷ってこそ、道を知ることができる)