ASMLibに関する検証 その2

投稿日: 2009年1月28日

<ASMLibに関する検証 その2>
ペンネーム: ソラ

今回も引き続き、ASMLib Kernel Driver(以下、ASMLib)に関する検証を行いま
す。

■前回のおさらい
前回は、マニュアルからASMLibの概要を確認しました。
今回は、前回確認したASMLibのメリットに関する検証を行います。

以下、ASMLibのメリットです。

[メリット]
(1) ASMディスクの管理・検出が簡単になる
(2) I/O処理の効率がよくなる

今回はメリット(1)に関する検証をします。

前回のメルマガより、ASMLibを使用することでASMディスクの管理がRAWデバ
イスで管理するより簡単になることがわかりましたが、構築後の管理性はも
ちろん、ASMを利用する際のOracleのインストール手順も簡単になるのでしょ
うか?

では、早速ASMLibとRAWデバイスを使用した際のインストール手順を比較しま
す。

検証スタート!!

■■■■■概要■■■■■
1.RAWデバイスを使用する場合のインストール手順
2.ASMLibを使用する場合のインストール手順
3.考察
4.結論

■環境
Red Hat Enterprise Linux AS release 4
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0

1.RAWデバイスを使用する場合のインストール手順
まず、RAWデバイスを使用した場合のインストール手順を確認します。
尚、今回はASMLibとRAWデバイスの比較ということで、ディスク・パーティ
ションをASMディスクとして使用する際に必要になる手順のみを記載します。

以下、必要な作業です。

[必要な作業]
1.RAWデバイスファイルの編集
2.RAWデバイスサービスの起動(再起動)
3.RAWデバイスの初期化
4.RAWデバイスのオーナー変更
5.RAWデバイスの権限変更
6.RAWデバイスの権限設定
7.RAWデバイスのパーティション権限設定
8.ASMディスク・グループの作成(ASMインスタンス作成時)

一目見ただけでは、何をどうすればいいのかよくわかりません。
では、順を追って確認します。

[RAWデバイスの場合]
1.RAWデバイスファイルの編集
まず、RAWデバイスとディスク・パーティションのマッピングを行います。
viを使用し、以下のようにファイルを編集することで「/dev/sdb1」を
「/dev/raw/raw1」にマッピングできます。

  # vi /etc/sysconfig/rawdevices
   /dev/raw/raw1   /dev/sdb1                                ##編集内容

2.RAWデバイスサービスの起動(再起動)
マッピングファイルを編集したら、次はRAWデバイスを起動します。

  # /etc/init.d/rawdevices start

RAWデバイスへのマッピングが正常に行われているか確認します。
major番号, minor番号を確認することで、バインドされているブロックデバ
イスを確認できます。

  # raw -qa
   /dev/raw/raw1:  bound to major 8, minor 17

以下のコマンドでmajor番号, minor番号を調べられます。

  # ls -l /dev/sdb*
   brw-r----- 1 root disk 8, 16 Dec 30 13:25 /dev/sdb
   brw-r----- 1 root disk 8, 17 Dec 30 13:29 /dev/sdb1

「/dev/sdb1」はmajor番号8, minor番号17なので、無事にマッピングは成功
しています。

3.RAWデバイスの初期化
RAWデバイスを使用できるように、ddコマンドで100MB分(1024KB * 100)の領
域に0を書き込んで初期化します。

   # dd if=/dev/zero of=/dev/raw/raw1 bs=1024k count=100

4.RAWデバイスのオーナー変更
ユーザを「oracle」に、グループを「dba」に変更します。

   # chown oracle:dba /dev/raw/raw1

5.RAWデバイスの権限変更
所有者を変更しても読み込みや書き込みの権限がなければ、Oracleからの読
み込みや書き込みも行えないため、権限を変更します。

また、セキュリティの観点からoracleユーザ以外からは利用できないように
します。

   # chmod 600 /dev/raw/raw1

6.RAWデバイスの権限設定
上記で行ったRAWデバイスの設定が再起動後も有効になるよう、viで以下の
ようにファイルを編集します。

   # vi /etc/udev/permissions.d/oracle.permissions
    raw/raw1:oracle:dba:0600                                ##編集内容

7.RAWデバイスのパーティション権限設定
以下のようにファイルをviで編集し、RAWデバイスの設定
(raw/*:root:disk:0660)をコメントアウトします。

  # vi /etc/udev/permissions.d/50-udev.permissions
   #raw/*:root:disk:0660                                    ##編集内容

8.ASMディスク・グループの作成(ASMインスタンス作成時)
ASMインスタンス作成時にASMディスク・グループを作成します。

以上でRAWデバイスを使用する場合のインストール手順は終了です。

2.ASMLibを使用する場合のインストール手順
次にASMLibを使用する場合はどのような手順が必要になるか確認します。
以下、必要な作業です。

[必要な作業]
1.パッケージのインストール
2.ASMLibの構成
3.ASMディスク・パーティションのマーキング
4.ASMディスク・グループの作成(ASMインスタンス作成時)

必要な作業数を見るとRAWデバイスの設定より少なくなっているようですが、
実際はどうでしょうか?
それでは、手順を見ていきます。

[ASMLibの場合]
1.パッケージのインストール
1-1.パッケージのダウンロード
まず、ASMLibの動作に必要なパッケージをOracleのHPからインストール環境
に合わせてダウンロードします。

必要なパッケージは以下3点です。

・ASMLib Support Tools
・ASMLib Kernel Driver
・ASMLib Library

以下、今回の検証で実際にインストールするパッケージです。

oracleasm-support-2.1.2-1.el4.i386.rpm
oracleasm-2.6.9-55.ELsmp-2.0.3-1.i686.rpm
oracleasmlib-2.0.2-1.i386.rpm

1-2.パッケージのインストール
ダウンロードしたファイルを以下のコマンドでインストールします。

# rpm -Uvh oracleasm-support-2.1.2-1.el4.i386.rpm
> oracleasm-2.6.9-55.ELsmp-2.0.3-1.i686.rpm
> oracleasmlib-2.0.2-1.i386.rpm
Preparing...             ################################### [100%]
1:oracleasm-support      ################################### [ 33%]
2:oracleasm-2.6.9-55.ELsm################################### [ 67%]
3:oracleasmlib           ################################### [100%]

rpmコマンドが正常に終了したら、確認を行います。

1-3.パッケージのインストール確認
以下のコマンドでパッケージのインストールが正常に行われているか確認
します。

# rpm -qa | grep oracleasm
oracleasm-support-2.1.2-1.el4
oracleasm-2.6.9-55.ELsmp-2.0.3-1
oracleasmlib-2.0.2-1

2.ASMLibの構成
パッケージをインストールしたら、次はASMLibの構成です。
ASMLibの構成は以下のスクリプトで実行できます。

# /etc/init.d/oracleasm configure

スクリプト実行後、聞かれた内容に従って入力を行います。
以下、出力メッセージと入力内容です。

2-1.ドライバーインターフェイスを所有するユーザを設定
ここではoracleユーザを指定します。

Default user to own the driver interface []:oracle

2-2.ドライバーインターフェイスを所有するグループを設定

Default group to own the driver interface []:dba

2-3.OS起動時の自動起動、ASMディスクの権限の設定

Start Oracle ASM library driver on boot (y/n) []:y
Fix permissions of Oracle ASM disks on boot (y/n) []:y

2-4.その他の処理が正常に実行されていることを確認

Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver:                    [  OK  ]
Scanning the system for Oracle ASMLib disks:              [  OK  ]

尚、上記部分で行われている処理は以下となります。
・/etc/sysconfig/oracleasm構成ファイルの作成
・/dev/oracleasmマウント・ポイントの作成
・oracleasmカーネル・モジュールのロード
・ASMLibドライバのファイル・システムのマウント

3.ASMディスク・パーティションのマーキング
3-1.ASMディスク・パーティションのマーキングを実行
以下のコマンドを実行することで、OracleがディスクをASM用のディスク
として使用できます。

/etc/init.d/oracleasm createdisk

以下、コマンドの実行例です。

# /etc/init.d/oracleasm createdisk DATA /dev/sdb1
Marking disk "DATA" as an ASM disk:                        [  OK  ]

コマンドが正常に終了したら、インストール後の確認をします。

3-2.現在、システムにロードされているモジュールを確認
ドライバがシステムにロードされているか確認します。

# lsmod | grep oracle
oracleasm              42032   1

3-3.ASMLibのステータスを確認
以下のコマンドでASMLibが正常に動作しているか確認します。

# /etc/init.d/oracleasm status
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes

statusは両方ともyesなので、正常に動作しています。

4.ASMディスク・グループの作成(ASMインスタンス作成時)
RAWデバイスの時と同様にASMインスタンス作成時にASMディスク・グループ
を作成します。

以上でASMLibを使用した場合のインストール手順は終了です。

3.考察
それでは、以下の3点について考察します。
1.手順数
2.正確性
3.管理性

1.手順数
単純に手順数だけを比べると、ASMLibのほうがやや少ない手順になります。
しかし、実際に作業をしてみるとそれほど違いはないのでは?と疑問に思っ
てしまうくらい微妙な差でした。
では、設定するディスク・パーティションが複数ある場合はどうでしょう?

複数ある場合、RAWデバイスの設定では「手順1~8」の手順がディスク・パ
ーティションの数だけ必要になります。

ASMLibの場合は、ディスク・パーティションの数だけ必要になるのは「手
順3,4」と非常に少ない手順で設定が済みます。

つまり、設定するディスク・パーティション数が増えれば増えるほどASMLib
のほうが短時間で設定できます。

2.正確性
次に正確性についてです。

上記のように、設定するディスク・パーティション数が増えると必要な手
順が多くなってしまいます。
必要な手順が増えると、手順の抜けが発生する可能性も高くなります。

ASMLibの場合は権限の変更からサーバ再起動時の設定までを一つのスクリ
プトで行っている分、手順の抜けが発生する可能性を低くできます。

3.管理性
最後に管理性についてです。
ASMディスク・グループの設定(RAWデバイス:手順8、ASMLib:手順)でその効
果を感じました。

RAWデバイスの場合、ASMディスク・グループ数、登録ディスク数が多い環
境では登録ディスクが「/dev/raw/raw1」、「/dev/raw/raw2」のように表
示されます。
そのため、DBCAを操作する作業者から見るとどのRAWパーティションをどの
ASMディスク・グループと関連付ければいいのか非常にわかりづらくなりま
す。

ASMLibの場合はディスク名を付けられるため、名前を工夫することで、
DBCAを操作する作業者にとっても非常にわかりやすくできます。

つまり、ASMLibを使用しているほうが、ディスク追加時の管理性も向上する
ということです。

4.結論
設定するディスク・パーティションが一つの場合、RAWデバイスとASMLibを使
用した場合の手順数、正確性、管理性に大差はありません。
しかし、設定するディスク・パーティションが多い場合はASMLibのほうが手順
数、正確性、管理性がよくなります。
ASMLibはディスク・パーティション数が多い環境でこそ、より効果を発揮しま
す。これは、運用中の管理性にも同じことが言えるかもしれません。

ASMLibのメリットが少しわかり始めたところで、今回はここまで!!
次回は、ASMLibを利用した際の管理性のメリットについて検証します。

ベッカム、ACミランへ移籍後初ゴール!! 恵比寿より