Volume Manager の設定デーモン (vxconfigd) を再起動すると、「VxVM vxconfigd ERROR V-5-1-8726 /dev/vx/info: そのようなファイルやディレクトリはありません」というエラーが返される

book

Article ID: 100040958

calendar_today

Updated On:

Description

説明:

特定の状況で、Volume Manager のコマンドが、Volume Manager の設定デーモン (vxconfigd) にアクセスできないと報告することがあります。次に例を示します。

# vxdisk list
VxVM vxdisk ERROR V-5-1-684 IPC 障害: 設定デーモンにアクセスできません。

vxconfigd はユーザーランドプロセスであるため、「ps -ef」のような出力内で確認されるはずです。デーモンが実行されていない場合 (この例のように)、通常は「vxconfigd -k」で再起動することができます。ただし、Volume Manager のカーネルモジュールがロードされていない場合、これは「/dev/vx/info」が存在しないことを示すエラーで失敗する場合があります。次に例を示します。

# vxconfigd -k
VxVM vxconfigd ERROR V-5-1-8726 /dev/vx/info: そのようなファイルやディレクトリはありません
# vxconfigd -r reset
VxVM vxconfigd ERROR V-5-1-7840 /dev/vx/config を開けません: そのようなファイルやディレクトリはありません

ソリューション:

この状況は、通常 1 つ以上の Volume Manager のカーネルモジュール (vxio、vxspec、vxdmp) がマシンにロードされていないことが原因で発生します。モジュールがロードされているかどうかを確認するには、modinfo コマンドを次のように使用する必要があります。

# modinfo | grep vx
161 fffffffff009b540    ca0 219   1  vxportal (VxFS 5.0_REV-5.0MP3A25_sol port)
162 fffffffff06e1000 1f49f0  21   1  vxfs (VxFS 5.0_REV-5.0MP3A25_sol SunO)

上記の出力からは vxdmp、vxio、および vxspec が欠落しており、これらがロードされていないことが分かります。

モジュールがロードされていない場合、マシンを検査して、以降の再ブートのブート時にモジュールを手動でロードできるように正しく設定されているかどうかを確認する必要があります。

1. 以下のようにして、ブート時にモジュールをロードできるように、/etc/system で必要なエントリを確認します。

Volume Manager のカーネルモジュールはブート時に /etc/system からロードされます。そのため、/etc/system ファイルに以下のエントリが含まれている必要があります。

...
forceload: drv/vxdmp
forceload: drv/vxio
forceload: drv/vxspec
...

上記のエントリが /etc/system に見つからないか、モジュールが「excluded」キーワードの使用によって「除外」されている場合、これらのエントリを手動で追加するか、上記に一致するように変更する必要があります。

2. /etc/name_to_major でメジャー番号へのバインディングに対して有効なドライバを確認します。

Solaris オペレーティングシステムは、/etc/name_to_major 内のエントリを使用して、Volume Manager のカーネルモジュールなどのデバイスドライバをメジャー番号にバインドします。したがって、Volume Manager のカーネルモジュールのエントリが /etc/name_to_major に見つからない場合、Volume Manager のカーネルモジュールがロードできない場合があります。そのため、/etc/name_to_major には各 Volume Manager のカーネルモジュールに対して有効なエントリが含まれている必要があります。次に例を示します。

# cat /etc/name_to_major | egrep "vxdmp|vxio|vxspec"
vxdmp 282
vxio 283
vxspec 284

これらのエントリが見つからない場合は、add_drv コマンドを使用して置き換える必要があります。このコマンドを使用して、未定義のデバイスドライバをシステムに追加することができます。

# add_drv vxdmp
# add_drv vxio
# add_drv vxspec

add_drv コマンドも、デバイスドライバの対応するカーネルモジュールのシステムへのロードを試行します。

3. モジュールをロードして vxconfigd を再起動します。

上記のポイントを確認した後に、Volume Manager のカーネルモジュールがまだロードされていない場合、マシンを再ブートして通常起動を許可するか、modload コマンドを使用して、これらのモジュールを手動でロードする必要があります。次に例を示します。

# modload drv/sparcv9/vxio
# modload drv/sparcv9/vxdmp
# modload drv/sparcv9/vxspec

完了すると、モジュールは以下のようにロードされます。

# modinfo | egrep "vxdmp|vxio|vxspec"
46 fffffffff02be000  44518 221   1  vxdmp (VxVM 5.0MP3: DMP Driver)
48 fffffffff0ba8000 2427b8 222   1  vxio (VxVM 5.0MP3 I/O driver)
50 fffffffff0188348    e50 223   1  vxspec (VxVM 5.0MP3 control/status driv)

この時点で vxconfigd は正常に再起動することができ、その後 Volume Manager コマンドは引き続き通常どおりに機能します。

# vxconfigd -k
# vxdisk list
デバイス       タイプ            ディスク名         グループ        状態
ams_wms0_0072 auto:cdsdisk    disk01       datadg       online
ams_wms0_0073 auto:cdsdisk    disk02       datadg       online
ams_wms0_0074 auto:cdsdisk    disk03       datadg       online
ams_wms0_0075 auto:cdsdisk    -            -            online
ams_wms0_0076 auto:none       -            -            online invalid
ams_wms0_0080 auto:cdsdisk    -            -            online
ams_wms0_0081 auto:cdsdisk    -            -            online
ams_wms0_0082 auto:cdsdisk    01           testdg       online
ams_wms0_0083 auto:cdsdisk    02           testdg       online
ams_wms0_0084 auto:cdsdisk    03           testdg       online
ams_wms0_0085 auto:cdsdisk    04           testdg       online
ams_wms0_0086 auto:cdsdisk    05           testdg       online
ams_wms0_0087 auto:none       -            -            online invalid
c1t0d0s2     auto:none       -            -            online invalid
c1t1d0s2     auto:none       -            -            online invalid
#
 

Issue/Introduction

Volume Manager の設定デーモン (vxconfigd) を再起動すると、「VxVM vxconfigd ERROR V-5-1-8726 /dev/vx/info: そのようなファイルやディレクトリはありません」というエラーが返される