系统管理指南:设备和文件系统

使用 cfgadm 命令执行 SCSI 热插拔

本节介绍可使用 cfgadm 命令执行的各种 SCSI 热插拔过程。


注 –

一般情况下,SCSI 框架支持 SCSI 设备的热插拔。但是,您应该查询硬件文档,以确认 SCSI 设备是否支持热插拔。


这些过程以特定设备为例,说明如何使用 cfgadm 命令来热插拔 SCSI 组件。您提供的以及 cfgadm 命令显示的设备信息取决于系统配置。

Procedure如何显示有关 SCSI 设备的信息

以下过程在使用 cfgadm 命令显示设备类型配置信息的示例中使用 SCSI 控制器 c0c1 以及与其连接的设备。


注 –

如果 cfgadm 命令不支持 SCSI 设备,则该设备不会显示在 cfgadm 命令输出中。


  1. 成为超级用户。

  2. 显示有关系统上的附加点的信息。


    # cfgadm -l
    
    Ap_Id                Type         Receptacle   Occupant     Condition
    
    c0                   scsi-bus     connected    configured   unknown
    
    c1                   scsi-bus     connected    configured   unknown

    在本示例中,c0c1 表示两个 SCSI 控制器。

  3. 显示有关系统的 SCSI 控制器及其连接设备的信息。


    # cfgadm -al 
    
    Ap_Id                Type         Receptacle   Occupant     Condition
    
    c0                   scsi-bus     connected    configured   unknown
    
    c0::dsk/c0t0d0       disk         connected    configured   unknown
    
    c0::rmt/0            tape         connected    configured   unknown
    
    c1                   scsi-bus     connected    configured   unknown
    
    c1::dsk/c1t3d0       disk         connected    configured   unknown
    
    c1::dsk/c1t4d0       unavailable  connected    unconfigured unknown

    注 –

    cfgadm -l 命令显示有关 SCSI HBA 而不是 SCSI 设备的信息。使用 cfgadm -al 命令可显示有关 SCSI 设备(如磁盘和磁带)的信息。


Procedure如何取消配置 SCSI 控制器

以下过程在取消配置 SCSI 控制器的示例中使用 SCSI 控制器 c1

  1. 成为超级用户。

  2. 取消配置 SCSI 控制器。


    # cfgadm -c unconfigure c1
    
  3. 验证是否已取消配置 SCSI 控制器。


    # cfgadm -al
    
    Ap_Id                 Type         Receptacle   Occupant     Condition
    
    c0                    scsi-bus     connected    configured   unknown
    
    c0::dsk/c0t0d0        disk         connected    configured   unknown
    
    c0::rmt/0             tape         connected    configured   unknown
    
    c1                    scsi-bus     connected    unconfigured unknown

    请注意,c1Occupant 列指定 unconfigured,表明 SCSI 总线没有已配置的插卡。

    如果取消配置操作失败,请参见如何解析失败的 SCSI 取消配置操作

Procedure如何配置 SCSI 控制器

以下过程在配置 SCSI 控制器的示例中使用 SCSI 控制器 c1

  1. 成为超级用户。

  2. 配置 SCSI 控制器。


    # cfgadm -c configure c1
    
  3. 验证 SCSI 控制器是否已配置。


    # cfgadm -al
    
    Ap_Id                Type         Receptacle   Occupant     Condition
    
    c0                   scsi-bus     connected    configured   unknown
    
    c0::dsk/c0t0d0       disk         connected    configured   unknown
    
    c0::rmt/0            tape         connected    configured   unknown
    
    c1                   scsi-bus     connected    configured   unknown
    
    c1::dsk/c1t3d0       disk         connected    configured   unknown
    
    c1::dsk/c1t4d0       unavailable  connected    unconfigured unknown

    前面的取消配置过程移除了 SCSI 总线上的所有设备。现在,所有设备都已配置回系统中。

Procedure如何配置 SCSI 设备

以下过程在配置 SCSI 设备的示例中使用 SCSI 磁盘 c1t4d0

  1. 成为超级用户。

  2. 确定要配置的设备。


    # cfgadm -al
    
    Ap_Id                Type          Receptacle   Occupant     Condition
    
    c0                   scsi-bus      connected    configured   unknown
    
    c0::dsk/c0t0d0       disk          connected    configured   unknown
    
    c0::rmt/0            tape          connected    configured   unknown
    
    c1                   scsi-bus      connected    configured   unknown
    
    c1::dsk/c1t3d0       disk          connected    configured   unknown
    
    c1::dsk/c1t4d0       unavailable   connected    unconfigured unknown
  3. 配置 SCSI 设备。


    # cfgadm -c configure c1::dsk/c1t4d0
    
  4. 验证 SCSI 设备是否已配置。


    # cfgadm -al
    
    Ap_Id                Type          Receptacle   Occupant     Condition
    
    c0                   scsi-bus      connected    configured   unknown
    
    c0::dsk/c0t0d0       disk          connected    configured   unknown
    
    c0::rmt/0            tape          connected    configured   unknown
    
    c1                   scsi-bus      connected    configured   unknown
    
    c1::dsk/c1t3d0       disk          connected    configured   unknown
    
    c1::dsk/c1t4d0       disk          connected    configured   unknown

Procedure如何断开 SCSI 控制器连接


注意 – 注意 –

断开 SCSI 设备连接时必须非常谨慎,特别是在处理包含关键文件系统(如根 (/)、usrvarswap 分区)的控制器任务时。动态重新配置软件无法检测到系统挂起可能导致的所有情况。使用此过程时应谨慎。


以下过程在断开 SCSI 设备连接的示例中使用 SCSI 控制器 c1

  1. 成为超级用户。

  2. 验证断开设备连接之前是否已连接该设备。


    # cfgadm -al
    
    Ap_Id                Type          Receptacle   Occupant     Condition
    
    c0                   scsi-bus      connected    configured   unknown
    
    c0::dsk/c0t0d0       disk          connected    configured   unknown
    
    c0::rmt/0            tape          connected    configured   unknown
    
    c1                   scsi-bus      connected    configured   unknown
    
    c1::dsk/c1t3d0       disk          connected    configured   unknown
    
    c1::dsk/c1t4d0       disk          connected    configured   unknown
  3. 断开 SCSI 控制器的连接。


    # cfgadm -c disconnect c1
    
    WARNING: Disconnecting critical partitions may cause system hang.
    
    Continue (yes/no)? y
    

    注意 – 注意 –

    此命令可以暂停 SCSI 总线上的所有 I/O 活动,直到使用 cfgadm -c connect 命令为止。cfgadm 命令可执行一些基本检查,以防止断开关键分区的连接,但不能检测到所有情况。如果此命令使用不当,则可能会导致系统挂起并且可能需要重新引导系统。


  4. 验证 SCSI 总线是否已断开连接。


    # cfgadm -al
    
    Ap_Id                Type          Receptacle   Occupant     Condition
    
    c0                   scsi-bus      connected    configured   unknown
    
    c0::dsk/c0t0d0       disk          connected    configured   unknown
    
    c0::rmt/0            tape          connected    configured   unknown
    
    c1                   unavailable   disconnected configured   unknown
    
    c1::dsk/c1t3d0       unavailable   disconnected configured   unknown
    
    c1::dsk/c1t4d0       unavailable   disconnected configured   unknown

    控制器及其连接的所有设备都将与系统断开连接。

ProcedureSPARC: 如何连接 SCSI 控制器

以下过程在连接 SCSI 控制器的示例中使用 SCSI 控制器 c1

  1. 成为超级用户。

  2. 验证连接设备之前该设备是否已断开连接。


    # cfgadm -al
    
    Ap_Id                Type          Receptacle   Occupant     Condition
    
    c0                   scsi-bus      connected    configured   unknown
    
    c0::dsk/c0t0d0       disk          connected    configured   unknown
    
    c0::rmt/0            tape          connected    configured   unknown
    
    c1                   unavailable   disconnected configured   unknown
    
    c1::dsk/c1t3d0       unavailable   disconnected configured   unknown
    
    c1::dsk/c1t4d0       unavailable   disconnected configured   unknown
  3. 连接 SCSI 控制器。


    # cfgadm -c connect c1
    
  4. 验证 SCSI 控制器是否已连接。


    # cfgadm -al 
    
    Ap_Id                Type          Receptacle   Occupant     Condition
    
    c0                   scsi-bus      connected    configured   unknown
    
    c0::dsk/c0t0d0       disk          connected    configured   unknown
    
    c0::rmt/0            tape          connected    configured   unknown
    
    c1                   scsi-bus      connected    configured   unknown
    
    c1::dsk/c1t3d0       disk          connected    configured   unknown
    
    c1::dsk/c1t4d0       disk          connected    configured   unknown

ProcedureSPARC: 如何将 SCSI 设备添加到 SCSI 总线中

在如何将 SCSI 设备添加到 SCSI 总线的示例中使用的是 SCSI 控制器 c1


注 –

添加设备时,应指定与设备连接的 SCSI HBA(控制器)的 Ap_Id,而不是设备本身的 Ap_Id


  1. 成为超级用户。

  2. 确定当前的 SCSI 配置。


    # cfgadm -al
    
    Ap_Id                Type          Receptacle   Occupant     Condition
    
    c0                   scsi-bus      connected    configured   unknown
    
    c0::dsk/c0t0d0       disk          connected    configured   unknown
    
    c0::rmt/0            tape          connected    configured   unknown
    
    c1                   scsi-bus      connected    configured   unknown
    
    c1::dsk/c1t3d0       disk          connected    configured   unknown
  3. 将 SCSI 设备添加到 SCSI 总线。

    1. 键入以下 cfgadm 命令。

      例如:


      # cfgadm -x insert_device c1
      
      Adding device to SCSI HBA: /devices/sbus@1f,0/SUNW,fas@1,8800000
      
      This operation will suspend activity on SCSI bus: c1
    2. Continue (yes/no)? 提示符下键入 y 以继续操作。


      Continue (yes/no)? y
      
      SCSI bus quiesced successfully.
      
      It is now safe to proceed with hotplug operation.

      正在执行热插拔操作的同时,SCSI 总线上的 I/O 活动会暂停。

    3. 连接设备,然后打开设备电源。

    4. Enter y if operation is complete or n to abort (yes/no)? 提示符下键入 y


      Enter y if operation is complete or n to abort (yes/no)? y
      
  4. 验证是否已添加了设备。


    # cfgadm -al
    
    Ap_Id                Type          Receptacle   Occupant     Condition
    
    c0                   scsi-bus      connected    configured   unknown
    
    c0::dsk/c0t0d0       disk          connected    configured   unknown
    
    c0::rmt/0            tape          connected    configured   unknown
    
    c1                   scsi-bus      connected    configured   unknown
    
    c1::dsk/c1t3d0       disk          connected    configured   unknown
    
    c1::dsk/c1t4d0       disk          connected    configured   unknown

    新磁盘已添加到控制器 c1 中。

ProcedureSPARC: 如何更换 SCSI 控制器上的相同设备

以下过程在 SCSI 控制器上更换相同设备的示例中使用 SCSI 磁盘 c1t4d0

  1. 成为超级用户。

  2. 确定当前的 SCSI 配置。


    # cfgadm -al
    
    Ap_Id                Type          Receptacle   Occupant     Condition
    
    c0                   scsi-bus      connected    configured   unknown
    
    c0::dsk/c0t0d0       disk          connected    configured   unknown
    
    c0::rmt/0            tape          connected    configured   unknown
    
    c1                   scsi-bus      connected    configured   unknown
    
    c1::dsk/c1t3d0       disk          connected    configured   unknown
    
    c1::dsk/c1t4d0       disk          connected    configured   unknown
  3. 将 SCSI 总线上的设备更换为同一类型的其他设备。

    1. 键入以下 cfgadm 命令。

      例如:


      # cfgadm -x replace_device c1::dsk/c1t4d0
      
      Replacing SCSI device: /devices/sbus@1f,0/SUNW,fas@1,8800000/sd@4,0
      
      This operation will suspend activity on SCSI bus: c1
    2. Continue (yes/no)? 提示符下键入 y 以继续操作。

      正在执行热插拔操作的同时,SCSI 总线上的 I/O 活动会暂停。


      Continue (yes/no)? y
      
      SCSI bus quiesced successfully.
      
      It is now safe to proceed with hotplug operation.
    3. 关闭要移除的设备的电源,然后将其移除。

    4. 添加替换设备。然后,关闭该设备的电源。

      替换设备应该与要移除的设备类型相同并且具有同一地址(目标和 LUN)。

    5. Enter y if operation is complete or n to abort (yes/no)? 提示符下键入 y


      Enter y if operation is complete or n to abort (yes/no)? y
      
  4. 验证是否已更换了设备。


    # cfgadm -al
    
    Ap_Id                Type          Receptacle   Occupant     Condition
    
    c0                   scsi-bus      connected    configured   unknown
    
    c0::dsk/c0t0d0       disk          connected    configured   unknown
    
    c0::rmt/0            tape          connected    configured   unknown
    
    c1                   scsi-bus      connected    configured   unknown
    
    c1::dsk/c1t3d0       disk          connected    configured   unknown
    
    c1::dsk/c1t4d0       disk          connected    configured   unknown

ProcedureSPARC: 如何移除 SCSI 设备

以下过程在移除 SCSI 控制器上的设备示例中使用 SCSI 磁盘 c1t4d0

  1. 成为超级用户。

  2. 确定当前的 SCSI 配置。


    # cfgadm -al
    
    Ap_Id                Type          Receptacle   Occupant     Condition
    
    c0                   scsi-bus      connected    configured   unknown
    
    c0::dsk/c0t0d0       disk          connected    configured   unknown
    
    c0::rmt/0            tape          connected    configured   unknown
    
    c1                   scsi-bus      connected    configured   unknown
    
    c1::dsk/c1t3d0       disk          connected    configured   unknown
    
    c1::dsk/c1t4d0       disk          connected    configured   unknown
  3. 从系统中移除 SCSI 设备。

    1. 键入以下 cfgadm 命令。

      例如:


      # cfgadm -x remove_device c1::dsk/c1t4d0
      
      Removing SCSI device: /devices/sbus@1f,0/SUNW,fas@1,8800000/sd@4,0
      
      This operation will suspend activity on SCSI bus: c1
    2. Continue (yes/no)? 提示符下键入 y 以继续操作。


      Continue (yes/no)? y
      
      SCSI bus quiesced successfully.
      
      It is now safe to proceed with hotplug operation.

      正在执行热插拔操作的同时,SCSI 总线上的 I/O 活动会暂停。

    3. 关闭要移除的设备的电源,然后将其移除。

    4. Enter y if operation is complete or n to abort (yes/no)? 提示符下键入 y


      Enter y if operation is complete or n to abort (yes/no)? y
      
  4. 验证是否已从系统中移除了设备。


    # cfgadm -al
    
    Ap_Id                Type          Receptacle   Occupant     Condition
    
    c0                   scsi-bus      connected    configured   unknown
    
    c0::dsk/c0t0d0       disk          connected    configured   unknown
    
    c0::rmt/0            tape          connected    configured   unknown
    
    c1                   scsi-bus      connected    configured   unknown
    
    c1::dsk/c1t3d0       disk          connected    configured   unknown

对 SCSI 配置问题进行疑难解答

本节提供有关 SCSI 配置问题的错误消息和可能的解决方案。有关对 SCSI 配置问题进行疑难解答的更多信息,请参见 cfgadm(1M)

错误消息

cfgadm: Component system is busy, try again: failed to offline:

     device-path

          Resource              Information

     ------------------  --------------------------

     /dev/dsk/c1t0d0s0   mounted filesystem "/file-system"
原因

尝试移除或更换已挂载文件系统的设备。

解决方案

取消挂载错误消息中列出的文件系统,并重试 cfgadm 操作。

错误消息

cfgadm: Component system is busy, try again: failed to offline:

     device-path

          Resource              Information

     ------------------  --------------------------

     /dev/dsk/device-name   swap area
原因

如果使用 cfgadm 命令移除系统资源(如交换设备或专用转储设备),则在系统资源仍然处于活动状态时将显示一条类似的错误消息。

解决方案

取消配置指定设备上的交换区域,并重试 cfgadm 操作。

错误消息

cfgadm: Component system is busy, try again: failed to offline:

     device-path

          Resource              Information

     ------------------  --------------------------

     /dev/dsk/device-name   dump device (swap)
原因

尝试移除或更换在交换区域中配置的转储设备。

解决方案

取消配置在交换区域中配置的转储设备,并重试 cfgadm 操作。

错误消息

cfgadm: Component system is busy, try again: failed to offline:

     device-path

          Resource              Information

     ------------------  --------------------------

     /dev/dsk/device-name   dump device (dedicated)
原因

尝试移除或更换专用转储设备。

解决方案

取消配置该专用转储设备,并重试 cfgadm 操作。

Procedure如何解析失败的 SCSI 取消配置操作

如果一个或多个目标设备繁忙并且 SCSI 取消配置操作失败,请使用此过程。 否则,将来对此控制器和目标设备进行动态重新配置操作会失败,并会显示 dr in progress 消息。

  1. 成为超级用户。

  2. 重新配置控制器。


    # cfgadm -c configure device-name