この問題は、3 つのすべてのサーバーに影響します。
サーバーが Ethernet または InfiniBand ネットワーク経由で iSCSI 論理ユニット (LUN) からブートするように構成されている場合、関数 vfs_mountroot でオペレーティングシステムのパニックが発生することがあります。
vfs_mountroot パニックが発生した場合は、システムコンソールに次のような出力が表示されます。
{0} ok boot net Boot device: /pci@300/pci@1/network@0 File and args: 1000 Mbps full duplex Link up 1000 Mbps full duplex Link up 1000 Mbps full duplex Link up SunOS Release 5.11 Version 11.3 64-bit Copyright (c) 1983, 2016, Oracle and/or its affiliates. All rights reserved. NOTICE: Configuring iSCSI boot session... NOTICE: iscsi connection(5) unable to connect to target iqn.1986-03.com.sun:02:118cb23b-920f-49ef-b7a1-b00767a60dfa, target address 192.168.1.1 NOTICE: iscsi connection(5) unable to connect to target iqn.1986-03.com.sun:02:118cb23b-920f-49ef-b7a1-b00767a60dfa, target address 192.168.1.1 WARNING: Failed to configure iSCSI boot session WARNING: Failed to get iscsi boot path panic[cpu0]/thread=20012000: vfs_mountroot: cannot mount root
この vfs_mountroot パニックはほとんどの場合、ブートプロセス中に発生します。ただし、システムが iSCSI 論理ユニットからすでにブートしていて、iSCSI 論理ユニットが一時的に使用不可になっている場合にも同様の問題が発生することがあります。たとえば、一時的なネットワークの輻輳またはネットワークのフェイルオーバーの結果として iSCSI 論理ユニットが使用不可になる可能性があります。
回避方法
このような vfs_mountroot パニックの問題は通常、iSCSI ターゲットデバイスまたはネットワーク接続の速度が遅いために発生します。ただし、Solaris 11.3 SRU 24 ではその iSCSI イニシエータのカーネルモジュールでのタイムラグのため、この問題が発生しやすくなります。iSCSI ターゲットデバイスまたはネットワークの速度が遅い場合は、次のいずれかの回避方法を使用してサーバーのブートを試みます。
サーバー構成に合った適切な回避方法を決定します。
サーバーのブート環境が 1 つだけの場合は、インストール済みのブート環境に回避方法を適用するに進みます。
サーバーに Solaris OS を新しくインストールした場合は、Oracle Solaris OS の新規インストールに回避方法を適用するに進みます。
SPARC M7 サーバーに SRU 19.5 より前の Solaris 11.3 のブート環境が含まれている場合は、「Oracle Solaris 11.3 SRU19.5 よりも前のブート環境を選択する」に移動します。
SPARC T8 および SPARC M8 サーバーでサポートされている最小の Oracle Solaris OS 11.3 は Oracle Solaris 11.3 SRU 24 です。これらのサーバーに、以前のバージョンの Oracle Solaris 11.3 のブート環境が含まれることはありません。インストール済みのブート環境に回避方法を適用するには、次のステップに従います。
Oracle Solaris 11.3 のインストール DVD からブートします。
boot コマンドで –s オプションを使用します。そうしない場合は、インストールプログラムを終了する必要があります。
{0} ok boot rcdrom -s
サーバーがブートされたら、ネットワークインタフェースを構成し、サーバーが iSCSI ターゲットの IP アドレスにアクセスできることを確認します。
# ping 192.168.1.1 192.168.1.1 is alive
iSCSI ブートに使用された iSCSI ターゲットの検出アドレスを指定することによって、iSCSI SendTargets 検出方法を構成します。
# iscsiadm add discovery-address 192.168.1.1 # iscsiadm modify discovery -t enable
format コマンドの出力に iSCSI ブートの論理ユニットが表示されることを確認します。
# format 1. c0t5000CCA02D104088d0 <HGST-H101812SFSUN1.2T-A770-1.09TB> /scsi_vhci/disk@g5000cca02d104088 /dev/chassis/SYS/DBP/HDD0/disk 2. c0t5000CCA02D1032D8d0 <HGST-H101812SFSUN1.2T-A770-1.09TB> solaris /scsi_vhci/disk@g5000cca02d1032d8 /dev/chassis/SYS/DBP/HDD1/disk 3. c0t5000CCA02D102FF8d0 <SUN1.2T cyl 48638 alt 2 hd 255 sec 189> /scsi_vhci/disk@g5000cca02d102ff8 /dev/chassis/SYS/DBP/HDD2/disk 4. c0t5000CCA02D103B20d0 <HGST-H101812SFSUN1.2T-A770-1.09TB> solaris /scsi_vhci/disk@g5000cca02d103b20 /dev/chassis/SYS/DBP/HDD3/disk 5. c0t60000000000000000000000000009999d0 <SUN-COMSTAR-1.0-60.00GB> /scsi_vhci/ssd@g60000000000000000000000000009999 Specify disk (enter its number): 5 selecting c0t60000000000000000000000000009999d0 [disk formatted]
ルートプールをインポートし、代替マウントポイントを指定します。
# zpool import -R /a -d /dev/dsk/c0t60000000000000000000000000009999d0s0 rpool
iscsi-rpool が正常にインポートされていることを確認します。
# zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 59.5G 48.9G 10.6G 82% 1.00x ONLINE /a
インポートされた rpool のブート環境を表示します。
# beadm list be_find_current_be: failed to find current BE name be_find_current_be: failed to find current BE name BE Flags Mountpoint Space Policy Created -- ----- ---------- ----- ------ ------- S11.3-SRU18.6 - - 32.82M static 2027-07-03 13:57 S11.3-SRU22.3 R - 6.42G static 2027-07-03 14:03 solaris - - 99.75M static 2027-07-03 13:40
一時マウントポイントを作成し、選択されたブート環境をマウントします。
# mkdir /a/mnt # zfs mount -o mountpoint=/a/mnt/ rpool/ROOT/S11.3-SRU22.3
回避方法を適用します。
# echo "set iscsi:iscsi_conn_first_login_max=20" >> /a/mnt/etc/system # echo "set iscsi:iscsi_conn_first_interval_max=10" >> /a/mnt/etc/system
次回リブート時に回避方法がアクティブ化されるように、マウントしたブート環境内のブートアーカイブを更新します。
# bootadm update-archive -v -R /a/mnt
システムをリブートして、iSCSI ブートデバイスからブートします。
# shutdown -y -i0 -g0 {0} ok boot net
新しくインストールしたブート環境に回避方法を適用するには、次のステップに従います。
システムをリブートする直前までインストールを繰り返し、インストールプログラムを終了します。
Installation Complete The installation of Oracle Solaris has completed successfully. Reboot to start the newly installed software or Quit if you wish to perform additional tasks before rebooting. The installation log is available at /system/volatile/install_log. After reboot it can be found at /var/log/install/install_log. Esc-4_View Log Esc-7_Halt Esc-8_Reboot Esc-9_Quit
Esc-9 キーシーケンスを押してインストールプログラムを終了してから、3 を押してシェルを入力します。
Welcome to the Oracle Solaris installation menu 1 Install Oracle Solaris 2 Install Additional Drivers 3 Shell 4 Terminal type (currently xterm) 5 Reboot Please enter a number [1]:3
ブート環境を表示します。
# beadm list be_find_current_be: failed to find current BE name be_find_current_be: failed to find current BE name BE Flags Mountpoint Space Policy Created -- ----- ---------- ----- ------ ------- solaris R - 2.29G static 2027-07-04 14:46
新しくインストールしたブート環境をマウントします。
# beadm mount solaris /a
回避方法を適用します。
# echo "set iscsi:iscsi_conn_first_login_max=20" >> /a/etc/system # echo "set iscsi:iscsi_conn_first_interval_max=10" >> /a/etc/system
次回リブート時に回避方法がアクティブ化されるように、マウントしたブート環境内のブートアーカイブを更新します。
# bootadm update-archive -v -R /a
回避方法を適用します。
# echo "set iscsi:iscsi_conn_first_login_max=20" >> /etc/system # echo "set iscsi:iscsi_conn_first_interval_max=10" >> /etc/system
ブート環境をアンマウントし、システムをリブートします。
# beadm umount solaris # reboot
SPARC T8 および SPARC M8-8 サーバーに、SRU 24 よりも前のバージョンの Oracle Solaris 11.3 のブート環境が含まれることはありません。以前のブート環境が含まれている SPARC M7 サーバーが存在する場合、次のステップに従って Oracle Solaris 11.3 SRU 19.5 よりも前のブート環境をブートすることで、この vfs_mountroot パニックの問題の影響を受ける Oracle Solaris OS のブート環境に回避方法を適用します。
Oracle Solaris 11.3 SRU 19.5 よりも古いブート環境を選択します。
{0} ok boot net -L Boot device: /pci@300/pci@1/network@0 File and args: -L 1000 Mbps full duplex Link up 1000 Mbps full duplex Link up 1000 Mbps full duplex Link up 1 Oracle Solaris 11.3 SPARC 2 S11.3-SRU18.6 3 S11.3-SRU22.3 Select environment to boot: [ 1 - 3 ]: 2 To boot the selected entry, invoke: boot [<root-device>] -Z rpool/ROOT/S11.3-SRU18.6 Program terminated
Oracle Solaris 11.3 SRU 19.5 よりも前のブート環境を選択してブートします。
{0} ok boot net -Z rpool/ROOT/S11.3-SRU18.6
既存のブート環境を一覧表示します。
# beadm list BE Flags Mountpoint Space Policy Created -- ----- ---------- ----- ------ ------- S11.3-SRU18.6 N / 33.32M static 2027-07-03 15:57 S11.3-SRU22.3 R - 6.40G static 2027-07-03 16:03 solaris - - 99.75M static 2027-07-03 15:40
パニックを示しているブート環境をマウントします。
# beadm mount S11.3-SRU22.3 /mnt
回避方法を適用します。
# echo "set iscsi:iscsi_conn_first_login_max=20" >> /mnt/etc/system # echo "set iscsi:iscsi_conn_first_interval_max=10" >> /mnt/etc/system
次回リブート時に回避方法がアクティブ化されるように、マウントしたブート環境内のブートアーカイブを更新します。
# bootadm update-archive -v -R /mnt
ブート環境をアンマウントします。
# beadm umount S11.3-SRU22.3
サーバーを新しいブート環境にリブートします。