この記事には、以下の手順が記載されています。
注:SCSI 予約の原因の詳細については、「Analyzing SCSI Reservation conflicts on VMware Infrastructure 3.x and vSphere 4.x (1005009)」を参照してください。
ESX/ESXi 4.x および 5.x
SCSI 予約競合が LUN へのアクセスを妨げているのかどうかを特定するには、次の手順を実行します。
-
次のコマンドを実行し、起動時に ESX ホストで LUN が検出されていることを確認します。
# esxcfg-scsidevs -c
出力は次のようになります。
Device UID Device Type Console Device Size Plugin Display Name
eui.00000e1100b81bfc Direct-Access /dev/sda 70007MB NMP Local FUJITSU Disk (eui.00000e1100b81bfc)
mpx.vmhba0:C0:T0:L0 CD-ROM /dev/sr0 0MB NMP Local HL-DT-ST CD-ROM (mpx.vmhba0:C0:T0:L0)
mpx.vmhba3:C0:T0:L0 Direct-Access /dev/cciss/c0d0 34727MB NMP Local VMware Disk (mpx.vmhba3:C0:T0:L0)
-
-
SCSI 予約競合エラーの兆候がないかどうか、システム ログを確認します。LUN に問題があることを示す行を探します。
ESX 4.x: # cat /var/log/dmesg
ESXi 4.x: # cat /var/log/messages
ESXi 5.x: # cat /var/log/vmkernel.log
Vendor:EMC Model:SYMMETRIX Rev:5771
Type:Direct-Access ANSI SCSI revision:03
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
sdh :READ CAPACITY failed.
status = c, message = 00, host = 0, driver = 00
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
VMWARE:Device that would have been attached as scsi disk sdh at scsi0,
channel 0, id 0, lun 52
Has not been attached because this path could not complete a READ
command eventhough a TUR worked.
result = 0x18 key = 0x0, asc = 0x0, ascq = 0x0
VMWARE:Device that would have been attached as scsi disk sdh at scsi0,
channel 0, id 0, lun 52
Has not been attached because it is a duplicate path or on a passive
path
scan_scsis starting finish
scan_scsis done with finish
注:この例で、LUN 52 はホスト クラスタでアクセスできなくなっています。これは手順 1 の出力のリストにあるため、ある時点においてはアクセスできる状態でした(おそらく、予約操作の途中の SAN スイッチ再起動が原因で、ホストが LUN を予約して解放しませんでした)。
これを解決するには、次の手順を実行します。
-
次のコマンドを実行し、すべてのホストを調べます(保留となっている予約があるホストにも適用します)。
# esxcfg-info | egrep -B5 "s Reserved|Pending"
出力は次のようになります。
注:出力がすべて示されているわけではありません。
----Console Device....................../dev/sdd
|----DevfsPath........................../vmfs/devices/disks/vml.
02000000006001c230d8abfe000ff76c51486715db504552432035
|----SCSI Level..........................6
|----Queue Depth.........................128
|----Is Pseudo...........................false
|----Is Reserved.........................false
|----Pending Reservations................0
--
|----Console Device....................../dev/sda
|----DevfsPath........................../vmfs/devices/disks/vml.
02000000006001c230d8abfe000ff76c198ddbc13e504552432035
|----SCSI Level..........................6
|----Queue Depth.........................128
|----Is Pseudo...........................false
|----Is Reserved.........................false
|----Pending Reservations................1
注:0 よりも大きい値を持つ保留中の予約があるホストは、ロックし続けています。
-
次のコマンドを実行し、LUN のリセットを実行して、ロックをクリアします。
# vmkfstools --lock lunreset /vmfs/devices/disks/vml.02000000006001c230d8abfe000ff76c198ddbc13e504552432035
-
次のコマンドを実行し、LUN に保留中の予約がなくなったことを確認します。
# esxcfg-info -s | egrep -B16 "s Reserved|Pending"
注:保留中の予約が 0 でないか、予約済みが false でない場合、LUN のリセットは成功しませんでした。
-
各 ESXi/ESX ホストでストレージ ウィンドウの更新を実行してください。
-
注:LUN をリセットするときは、LUN 上の仮想マシンでサービスの中断がないようにします。
ESX/ESXi 3.5.x
SCSI 予約競合が LUN へのアクセスを妨げているのかどうかを特定するには、次の手順を実行します。
-
次のコマンドを実行し、起動時にホストで LUN が検出されていることを確認します。
# cd /vmfs/devices/disks
# ls vmh*
出力は次のようになります。
vmhba0:0:0:0
vmhba0:0:43:0
vmhba0:0:52:0
-
-
dmesg を確認します。LUN に問題があることを示す可能性のある行を探します。
# cd /var/log
# cat dmesg
Vendor:EMC Model:SYMMETRIX Rev:5771
Type:Direct-Access ANSI SCSI revision:03
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
sdh :READ CAPACITY failed.
status = c, message = 00, host = 0, driver = 00
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
VMWARE:Device that would have been attached as scsi disk sdh at scsi0,
channel 0, id 0, lun 52
Has not been attached because this path could not complete a READ
command eventhough a TUR worked.
result = 0x18 key = 0x0, asc = 0x0, ascq = 0x0
VMWARE:Device that would have been attached as scsi disk sdh at scsi0,
channel 0, id 0, lun 52
Has not been attached because it is a duplicate path or on a passive
path
scan_scsis starting finish
scan_scsis done with finish
注:この例で、LUN 52 はホスト クラスタでアクセスできなくなっています。これは手順 1 の出力のリストにあるため、ある時点においてはアクセスできる状態でした(おそらく、予約操作の途中の SAN スイッチ再起動が原因で、ホストが LUN を予約して解放しませんでした)。
これを解決するには、次の手順を実行します。
-
次のコマンドを実行し、すべてのホストを調べます(保留となっている予約があるホストにも適用します)。
# esxcfg-info | egrep -B5 "s Reserved|Pending"
出力は次のようになります。
注:出力がすべて示されているわけではありません。
|----Console Device....................../dev/sdd
|----DevfsPath........................../vmfs/devices/disks/vml.
02000000006001c230d8abfe000ff76c51486715db504552432035
|----SCSI Level..........................6
|----Queue Depth.........................128
|----Is Pseudo...........................false
|----Is Reserved.........................false
|----Pending Reservations................0
--
|----Console Device....................../dev/sda
|----DevfsPath........................../vmfs/devices/disks/vml.
02000000006001c230d8abfe000ff76c198ddbc13e504552432035
|----SCSI Level..........................6
|----Queue Depth.........................128
|----Is Pseudo...........................false
|----Is Reserved.........................false
|----Pending Reservations................1
注:0 よりも大きい値を持つ保留中の予約があるホストは、ロックし続けています。
-
次のコマンドを実行し、LUN のリセットを実行して、ロックをクリアします。
# vmkfstools --lock lunreset /vmfs/devices/disks/vml.02000000006001c230d8abfe000ff76c198ddbc13e504552432035
-
次のコマンドを実行し、LUN に保留中の予約がなくなったことを確認します。
# esxcfg-info -s | egrep -B5 "s Reserved|Pending"
注:保留中の予約が 0 でないか、予約済みが false でない場合、LUN のリセットは成功しませんでした。
-
各 ESXi/ESX ホストでストレージ ウィンドウの更新を実行してください。
-
ESX 3.0.x
SCSI 予約競合が LUN へのアクセスを妨げているのかどうかを特定するには、次の手順を実行します。
-
次のコマンドを実行し、起動時に ESX ホストで LUN が検出されていることを確認します。
# cd /vmfs/devices/disks
# ls vmh*
出力は次のようになります。
vmhba0:0:0:0
vmhba0:0:43:0
vmhba0:0:52:0
-
-
dmesg を確認します。LUN に問題があることを示す可能性のある行を探します。
# cd /var/log
# cat dmesg
Vendor:EMC Model:SYMMETRIX Rev:5771
Type:Direct-Access ANSI SCSI revision:03
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
sdh :READ CAPACITY failed.
status = c, message = 00, host = 0, driver = 00
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
scsi0 (0,0,52) :RESERVATION CONFLICT
VMWARE:Device that would have been attached as scsi disk sdh at scsi0,
channel 0, id 0, lun 52
Has not been attached because this path could not complete a READ
command eventhough a TUR worked.
result = 0x18 key = 0x0, asc = 0x0, ascq = 0x0
VMWARE:Device that would have been attached as scsi disk sdh at scsi0,
channel 0, id 0, lun 52
Has not been attached because it is a duplicate path or on a passive
path
scan_scsis starting finish
scan_scsis done with finish
注:この例で、LUN 52 は ESX ホスト クラスタでアクセスできなくなっています。これは手順 1 の出力のリストにあるため、ある時点においてはアクセスできる状態でした(おそらく、予約操作の途中の SAN スイッチ再起動が原因で、ホストが LUN を予約して解放しませんでした)。
これを解決するには、次の手順を実行します。
-
次のコマンドを実行し、保留中の予約がないかどうか、すべてのホストを調べます。
# tail -1 /proc/vmware/scsi/vmhba[0-9]/[0-9]:*
出力は次のようになります。
==> /proc/vmware/scsi/vmhba0/0:0 <==
Active:0 Queued:0 Reserved:N Pending Reserves:0
==> /proc/vmware/scsi/vmhba0/0:43 <==
Active:0 Queued:0 Reserved:N Pending Reserves:0
==> /proc/vmware/scsi/vmhba0/0:44 <==
Active:0 Queued:0 Reserved:N Pending Reserves:0
==> /proc/vmware/scsi/vmhba0/0:45 <==
Active:0 Queued:0 Reserved:N Pending Reserves:0
==> /proc/vmware/scsi/vmhba0/0:46 <==
Active:0 Queued:0 Reserved:N Pending Reserves:0
==> /proc/vmware/scsi/vmhba1/0:50 <==
Active:0 Queued:0 Reserved:N Pending Reserves:0
==> /proc/vmware/scsi/vmhba1/0:51 <==
Active:0 Queued:0 Reserved:N Pending Reserves:0
==> /proc/vmware/scsi/vmhba1/0:52 <==
Active:0 Queued:0 Reserved:N Pending Reserves:1
==> /proc/vmware/scsi/vmhba1/0:53 <==
Active:0 Queued:0 Reserved:N Pending Reserves:0
==> /proc/vmware/scsi/vmhba1/0:54 <==
Active:0 Queued:0 Reserved:N Pending Reserves:0
==> /proc/vmware/scsi/vmhba2/0:0 <==
Active:0 Queued:0 Reserved:N Pending Reserves:0
注:0 よりも大きい値を持つ保留中の予約があるホストは、ロックし続けています。
-
次のコマンドを実行し、LUN のリセットを実行して、ロックをクリアします。
# vmkfstools --lock lunreset /vmfs/devices/disks/vmhba1\:0\:52\:0
-
次のコマンドを実行し、LUN に保留中の予約がなくなったことを確認します。
# tail -1 /proc/vmware/scsi/vmhba1/0\:52
出力は次のようになります。
Active:0 Queued:0 Reserved:N Pending Reserves:0
注:保留中の予約が 0 でないか、予約済みが false でない場合、LUN のリセットは成功しませんでした。
-
各 ESXi/ESX ホストでストレージ ウィンドウの更新を実行してください。
-