~ディスクの所有者・権限を永続化し、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管理およびデプロイメント・ガイド




コメント