ASM構築時に必須!udev設定の理由と手順を完全解説

ASM

~ディスクの所有者・権限を永続化し、ASMインスタンス起動エラーを防ごう~

Oracle ASM(Automatic Storage Management)では、ASM用ディスク(/dev/sdXなど)にgridユーザーがアクセスできることが絶対条件です。
しかし、OS再起動後にディスクの所有者やパーミッションが初期状態(root:disk)に戻ってしまうことがあり、それによってASMが起動できなくなる致命的なエラーが発生します。

この問題を根本から防ぐには、udevルールによる永続設定が必要です。
本記事では「なぜudev設定が必要なのか?」を徹底的に解説し、実際の設定手順まで丁寧に紹介します。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?


■ 1. なぜudev設定が必要なのか?

● OSはデフォルトでディスクの権限を保持しない

Linuxでは、再起動時に /dev/sdX などのブロックデバイスが再作成されます。
そのため、次のような状態になるのはよくあることです:

$ ls -l /dev/sd*
brw-rw---- 1 root disk 8, 32 /dev/sdc

🛑 所有者が root:disk のまま → gridユーザーはアクセスできない → ASMが起動できない


● ASMはディスクの読み書き権限を必要とする

ASMインスタンスは、diskgroup に割り当てられたブロックデバイスに対し、物理的に読み書きできる必要があります。
所有者やグループが適切でないと、以下のようなエラーが出て起動に失敗します。

ORA-15032: not all alterations performed
ORA-15017: diskgroup "DATA" cannot be mounted
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DATA"

● chown/chmod では不十分!

一時的に以下のようにしても、再起動すれば元に戻ります。

# chown grid:asmadmin /dev/sdc
# chmod 660 /dev/sdc

⚠️ この方法は一時的。再起動後は root:disk に戻るため、本番運用には不向きです。


✅ 解決策 → 「udev」ルールでディスクに永続設定を付与!

udevルールを定義すれば、OSが起動するたびに自動でディスクの所有者・グループ・権限が設定されるようになります。


■ 2. 想定環境とディスク

  • Oracle Restart環境(1ノード)
  • ASM用ディスク:/dev/sdc, /dev/sdd
  • gridユーザーの属するグループ:asmadmin

■ 3. 現在のディスクの状態を確認

# ls -l /dev/sd*

出力例:

brw-rw---- 1 root disk 8, 32 /dev/sdc
brw-rw---- 1 root disk 8, 48 /dev/sdd

■ 4. 各ディスクの一意識別子(scsi_id)を取得

# /usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sdc
1ATA_VBOX_HARDDISK_VB2a326836-801a8f50

# /usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sdd
1ATA_VBOX_HARDDISK_VB61d1f9bc-9b2108a9

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?


■ 5. udevルールファイルを作成

# vi /etc/udev/rules.d/99-oracle-asm.rules

内容:

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/%k", RESULT=="1ATA_VBOX_HARDDISK_VB2a326836-801a8f50", OWNER="grid", GROUP="asmadmin", MODE="0660"

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/%k", RESULT=="1ATA_VBOX_HARDDISK_VB61d1f9bc-9b2108a9", OWNER="grid", GROUP="asmadmin", MODE="0660"

■ 6. udevルールの再読み込み

# udevadm control --reload
# udevadm trigger

■ 7. 設定が反映されたか確認

# ls -l /dev/sdc /dev/sdd

出力例:

brw-rw---- 1 grid asmadmin 8, 32 /dev/sdc
brw-rw---- 1 grid asmadmin 8, 48 /dev/sdd

✅ 所有者とグループが grid:asmadmin に変更されていれば成功です。


■ テキスト図:udev設定が必要な理由と流れ

[通常起動時]

/dev/sdX → root:disk → ASMアクセス不可 → 起動失敗(ORA-15032)


[udev設定あり起動時]

/dev/sdX → grid:asmadmin → ASMアクセス可能 → 正常起動

■ まとめ

内容解説
なぜ必要?OS再起動で/dev/sdXの所有者がリセットされるから
何が問題?ASMがアクセスできず、ディスクグループのMOUNTや作成に失敗する
解決策は?udevルールで所有者とグループを永続設定すること
成果は?ASMインスタンスが常に安定起動可能になる


[参考]
Clusterware管理およびデプロイメント・ガイド

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました