Go to main content

SPARC T8 系列服务器产品说明

退出打印视图

更新时间: 2017 年 11 月
 
 

由于 iSCSI 目标过慢,导致 iSCSI 引导出现紧急情况 vfs_mountroot: cannot mount root (26178433)

此问题影响全部三种服务器。

如果服务器配置为通过以太网或 InfiniBand 网络从 iSCSI 逻辑单元 (logical unit, LUN) 进行引导,则操作系统在执行函数 vfs_mountroot 过程中可能会出现紧急情况。


注 -  运行 Oracle Solaris 11.3 SRU 24 的 SPARC M8-8 和运行 Oracle Solaris 11.3 SRU19 到 SRU 24 的 SPARC M7 服务器可能会遇到此 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 目标设备或网络过慢,请尝试采用下列解决方法之一来引导服务器。

确定适用于您的服务器配置的正确解决方法:

向已安装的引导环境应用解决方法

SPARC T8 和 SPARC M8 服务器上支持的最低 Oracle Solaris OS 11.3 版本是 Oracle Solaris 11.3 SRU 24。这些服务器不再包含 Oracle Solaris 11.3 早期版本的引导环境。请按照以下步骤向已安装的引导环境应用解决方法。

  1. 引导 Oracle Solaris 11.3 安装 DVD。

    使用 boot 命令及 –s 选项。否则,您需要退出安装程序。

    {0} ok boot rcdrom -s
  2. 在服务器引导后,配置网络接口并确认服务器可以访问 iSCSI 目标 IP 地址。

    # ping 192.168.1.1
    192.168.1.1 is alive
  3. 通过提供用于 iSCSI 引导的 iSCSI 目标的搜索地址来配置 iSCSI SendTargets 搜索方法。

    # iscsiadm add discovery-address 192.168.1.1
    # iscsiadm modify discovery -t enable
  4. 验证 iSCSI 引导逻辑单元在 format 命令输出中是否可见。

    # 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]
  5. 导入根池并指定备用挂载点。

    # zpool import -R /a -d /dev/dsk/c0t60000000000000000000000000009999d0s0 rpool
  6. 验证 iscsi-rpool 是否已成功导入。

    # zpool list
    NAME    SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
    rpool  59.5G  48.9G  10.6G  82%  1.00x  ONLINE  /a
  7. 显示导入的 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
  8. 创建临时挂载点并挂载所选的引导环境。

    # mkdir /a/mnt
    # zfs mount -o mountpoint=/a/mnt/ rpool/ROOT/S11.3-SRU22.3
  9. 应用解决方法。

    # 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
  10. 在挂载的引导环境中更新引导归档文件,以在下次重新引导期间激活解决方法。

    # bootadm update-archive -v -R /a/mnt
  11. 重新引导系统并从 iSCSI 引导设备进行引导。

    # shutdown -y -i0 -g0
    {0} ok boot net

向全新的 Oracle Solaris OS 安装应用解决方法

请按照以下步骤向全新安装的引导环境应用解决方法。

  1. 再次执行安装,但在系统重新引导前立即退出安装程序。

                              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
  2. 按 Esc-9 键序列退出安装程序,然后按 3 进入 shell。

    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
  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
  4. 挂载新安装的引导环境。

    # beadm mount solaris /a
  5. 应用解决方法。

    # echo "set iscsi:iscsi_conn_first_login_max=20" >> /a/etc/system
    # echo "set iscsi:iscsi_conn_first_interval_max=10" >> /a/etc/system
  6. 在挂载的引导环境中更新引导归档文件,以在下次重新引导期间激活解决方法。

    # bootadm update-archive -v -R /a
  7. 应用解决方法。

    # echo "set iscsi:iscsi_conn_first_login_max=20" >> /etc/system
    # echo "set iscsi:iscsi_conn_first_interval_max=10" >> /etc/system
  8. 卸载引导环境并重新引导系统。

    # beadm umount solaris
    # reboot

选择低于 Oracle Solaris 11.3 SRU 19.5 的引导环境

SPARC T8 和 SPARC M8-8 服务器不再包含 Oracle Solaris 11.3 SRU 24 以下版本的引导环境。如果您的 SPARC M7 服务器包含较早的引导环境,请按照以下步骤引导低于 Oracle Solaris 11.3 SRU 19.5 的引导环境,以向受此 vfs_mountroot 紧急情况影响的 Oracle Solaris OS 引导环境应用解决方法。

  1. 选择低于 S11.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
  2. 选择并引导到低于 Oracle Solaris 11.3 SRU 19.5 的引导环境。

    {0} ok boot net -Z rpool/ROOT/S11.3-SRU18.6
  3. 列出现有的引导环境。

    # 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
  4. 挂载出现了紧急情况的引导环境。

    # beadm mount S11.3-SRU22.3 /mnt
  5. 应用解决方法。

    # echo "set iscsi:iscsi_conn_first_login_max=20" >> /mnt/etc/system
    # echo "set iscsi:iscsi_conn_first_interval_max=10" >> /mnt/etc/system
  6. 在挂载的引导环境中更新引导归档文件,以在下次重新引导期间激活解决方法。

    # bootadm update-archive -v -R /mnt
  7. 卸载引导环境。

    # beadm umount S11.3-SRU22.3
  8. 将服务器重新引导至新引导环境。