Oracle® Solaris Cluster 参考手册

退出打印视图

更新时间: 2014 年 7 月,E51743-01
 
 

cldevice(1CL)

名称

cldevice, cldev - 管理 Oracle Solaris Cluster 设备

用法概要

/usr/cluster/bin/cldevice -V
/usr/cluster/bin/cldevice [subcommand] -?
/usr/cluster/bin/cldevice subcommand [options] -v [+ | device …]
/usr/cluster/bin/cldevice check [-n node[,…]] [+]
/usr/cluster/bin/cldevice clear [-n node[,…]] [+]
/usr/cluster/bin/cldevice combine -t replication-type -g 
     replication-device-group -d destination-device device
/usr/cluster/bin/cldevice export [-o {- | configfile}] [-n node[,…]] 
     [+ | device…]
/usr/cluster/bin/cldevice list [-n node[,…]] [+ | device …]
/usr/cluster/bin/cldevice monitor [-i {- | clconfigfile}] [-n 
     node[,…]] {+ | disk-device …}
/usr/cluster/bin/cldevice populate 
/usr/cluster/bin/cldevice refresh [-n node[,…]] [+]
/usr/cluster/bin/cldevice rename -d destination-device device
/usr/cluster/bin/cldevice repair [-n node[,…]] 
     {+ | device …}
/usr/cluster/bin/cldevice replicate -t replication-type [-S 
     source-node] -D destination-node [+]
/usr/cluster/bin/cldevice set 
     -p default_fencing={global | pathcount | scsi3 | nofencing | nofencing-noscrub} 
     [-n node[,…]] device
/usr/cluster/bin/cldevice show [-n node[,…]] [+ | device …]
/usr/cluster/bin/cldevice status [-s state] [-n node[,…]] [+ | 
     [disk-device ]]
/usr/cluster/bin/cldevice unmonitor [-i {- | clconfigfile}] 
     [-n node[,…]] {+ | disk-device …}

描述

cldevice 命令管理 Oracle Solaris Cluster 环境中的设备。使用此命令可管理 Oracle Solaris Cluster 设备标识符 (device identifier, DID) 伪设备驱动程序,以及监视磁盘设备路径。

  • DID 驱动程序为设备提供唯一设备 ID,即使有多个设备路径可用也是如此。有关更多信息,请参见 did(7) 手册页。

  • 磁盘路径是群集节点和物理磁盘或 LUN 存储设备之间的连接。磁盘路径包括 Oracle Solaris 内核驱动程序栈、主机总线适配器和任何介入电缆、交换机或网络连接。

cldev 命令是 cldevice 命令的简短格式。您可以使用此命令的任一种格式。

listshow 子命令以外,必须从联机并处于群集模式的群集节点运行 cldevice 命令。

此命令的一般格式如下所示:

cldevice [subcommand] [options] [operands]

仅当 options 指定 –? 选项或 –V 选项时,才可以省略 subcommand

此命令的每个选项都有长格式和简短格式两种格式。在本手册页的“选项”部分给出了每个选项的两种格式,以及对该选项的描述。

有关更多信息,请参见 Intro(1CL) 手册页。

仅可以在全局区域中使用此命令。

子命令

支持以下子命令:

check

执行一致性检查,将设备的内核表示与物理设备相比较。一致性检查失败时,会显示错误消息。此过程将继续,直到检查完所有设备。

默认情况下,该子命令只影响当前节点。使用 –n 选项为连接到其他节点的设备执行检查操作。

超级用户以外的用户需要具有 solaris.cluster.read RBAC 授权才能使用该子命令。

clear

删除所有已从当前节点断开的底层设备的 DID 引用。

默认情况下,该子命令只影响当前节点。使用 –n 选项可指定将对其执行清除操作的其他群集节点。

超级用户以外的用户需要具有 solaris.cluster.modify RBAC 授权才能使用该子命令。

combine

组合指定的设备与指定的目标设备。

combine 子命令用于组合源设备的路径与目标设备的路径。该组合的路径会导致产生与目标设备的 DID 实例编号相同的单个 DID 实例编号。使用此子命令可组合与使用 SRDF 复制的 EMC LUN 对应的 DID 实例。

可以使用 combine 子命令手动配置 DID 设备以执行基于存储的复制。

超级用户以外的用户需要具有 solaris.cluster.modify RBAC 授权才能使用该子命令。

export

导出群集设备的配置信息。

如果使用 –o 选项指定一个文件名,则会将配置信息写入该新文件。如果未提供 –o 选项,则会将配置信息写入标准输出。

超级用户以外的用户需要具有 solaris.cluster.read RBAC 授权才能使用该子命令。

list

显示所有设备路径。

如果不提供操作数,或者如果提供加号 (+) 操作数,报告将包含所有设备。

超级用户以外的用户需要具有 solaris.cluster.read RBAC 授权才能使用该子命令。

monitor

打开对指定磁盘路径的监视。

monitor 子命令只用于磁盘设备。磁带或其他设备不受该子命令影响。

可以使用 monitor 子命令调整磁盘路径监视守护进程 scdpmd。有关配置文件的更多信息,请参见 scdpmd.conf(4) 手册页。

默认情况下,该子命令打开对所有节点的路径的监视。

使用 –i 选项可指定群集配置文件,从该文件中可设置磁盘路径的监视属性。–i 选项启动对在指定文件中标记为已监视的那些磁盘路径的磁盘路径监视。不会对其他磁盘路径进行任何更改。有关群集配置文件的更多信息,请参见 clconfiguration(5CL) 手册页。

超级用户以外的用户需要具有 solaris.cluster.modify RBAC 授权才能使用该子命令。

populate

填充全局设备名称空间。

全局设备名称空间挂载在 /global 目录下。名称空间由指向物理设备的一组逻辑链接组成。由于 /dev/global 目录对群集的每个节点都可见,因此每个物理设备在整个群集中均可见。该可见性意味着,可从群集中的任何节点访问添加到全局设备名称空间的任何磁盘、磁带或 CD-ROM。

populate 子命令使管理员能够将新的全局设备附加到全局设备名称空间,而不需要系统重新引导。这些设备可以是磁带驱动器、CD-ROM 驱动器或磁盘驱动器。

在运行 populate 子命令之前,必须执行 devfsadm(1M) 命令。或者,可以执行重新配置重新引导来重新生成全局设备名称空间,并附加新的全局设备。有关重新配置重新引导的更多信息,请参见 boot(1M) 手册页。

必须从作为当前群集成员的节点运行 populate 子命令。

populate 子命令在远程节点上以异步方式执行其工作。因此,在您发出命令的节点上完成命令并不表示命令已在所有群集节点上完成操作。

超级用户以外的用户需要具有 solaris.cluster.modify RBAC 授权才能使用该子命令。

refresh

在群集节点上更新基于当前设备树的设备配置信息。该命令对 rdskrmt 设备树执行完全搜索。对于之前未识别的每个设备标识符,该命令将分配一个新的 DID 实例编号。此外,还会为每个新识别的设备添加新路径。

默认情况下,该子命令只影响当前节点。结合使用 – n 选项和 refresh 子命令可指定要对其执行刷新操作的群集节点。

超级用户以外的用户需要具有 solaris.cluster.modify RBAC 授权才能使用该子命令。

rename

将指定的设备移动到新的 DID 实例编号。

该命令删除与源设备的 DID 实例编号对应的 DID 设备路径,并重新创建具有指定的目标 DID 实例编号的设备路径。可以使用该子命令来恢复意外更改的 DID 实例编号。

在连接到共享存储的所有群集节点上运行 rename 子命令后,请运行 devfsadmcldevice populate 命令来使用配置更改更新全局设备名称空间。

超级用户以外的用户需要具有 solaris.cluster.modify RBAC 授权才能使用该子命令。

repair

在指定设备上执行修复过程。

默认情况下,该子命令只影响当前节点。使用 –n 选项可指定将对其执行修复操作的群集节点。

如果不提供操作数,或者如果提供加号 (+) 操作数,该命令将更新与当前节点连接的所有设备上的配置信息。

超级用户以外的用户需要具有 solaris.cluster.modify RBAC 授权才能使用该子命令。

replicate

配置要用于基于存储的复制的 DID 设备。


注 - replicate 子命令不支持组合 DID 实例与 EMC SRDF。 使用 cldevice combine 可组合 DID 实例与 SRDF。

replicate 子命令用于组合源节点上的每个 DID 实例编号与目标节点上相应的 DID 实例编号。每对复制的设备会合并到单个逻辑 DID 设备中。

默认情况下,当前节点就是源节点。使用 –S 选项指定其他源节点。

超级用户以外的用户需要具有 solaris.cluster.modify RBAC 授权才能使用该子命令。

set

修改指定设备的属性。

使用 –p 选项可指定要修改的属性。

超级用户以外的用户需要具有 solaris.cluster.modify RBAC 授权才能使用该子命令。

show

显示所有指定设备路径的配置报告。

该报告显示设备的路径,以及路径是否受监视。

默认情况下,该子命令显示所有设备的配置信息。

超级用户以外的用户需要具有 solaris.cluster.read RBAC 授权才能使用该子命令。

status

显示所有指定磁盘设备路径的状态。

默认情况下,该子命令显示所有节点的所有磁盘路径的状态。

status 子命令只用于磁盘设备。报告不包含磁带或其他设备。

超级用户以外的用户需要具有 solaris.cluster.read RBAC 授权才能使用该子命令。

unmonitor

关闭对作为命令操作数指定的磁盘路径的监视。

默认情况下,该子命令关闭对所有节点的所有路径的监视。

unmonitor 子命令只用于磁盘设备。磁带或其他设备不受该子命令影响。

使用 –i 选项可指定从中关闭对磁盘路径的监视的群集配置文件。将会关闭对在指定文件中标记为未监视的那些磁盘路径的磁盘路径监视。不会对其他磁盘路径进行任何更改。有关更多信息,请参见 clconfiguration(5CL) 手册页。

超级用户以外的用户需要具有 solaris.cluster.modify RBAC 授权才能使用该子命令。

选项

支持以下选项:

–?
–-help

显示帮助信息。

此选项可以单独使用,也可以与子命令结合使用。

  • 如果单独使用该选项,则显示可用子命令的列表。

  • 如果将该选项与子命令结合使用,将会显示该子命令的用法选项。

使用该选项时,不会执行任何其他处理。

–-D destination-node
–destinationnode=destination-node
–destinationnode destination-node

指定要在其上复制设备的目标节点。您可以通过节点名称或节点 ID 来指定一个节点。

–D 选项仅与 replicate 子命令一起使用时才有效。

–d destination-device
–-device=destination-device
–-device destination-device

指定目标设备(用于基于存储的复制)的 DID 实例编号。

请仅将 DID 实例编号和 –d 选项结合使用。请勿使用 DID 名称的其他格式或完整的 UNIX 路径名称来指定目标设备。

–d 选项仅与 renamecombine 子命令一起使用时才有效。

–g replication-device-group

指定复制设备组。该选项只能与 combine 子命令结合使用。

–i {- | clconfigfile}
–-input={- | clconfigfile}
–-input {- | clconfigfile}

指定用于监视或取消监视磁盘路径的配置信息。此信息必须符合 clconfiguration(5CL) 手册页中定义的格式。此信息可包含在文件中或者通过标准输入提供。要指定标准输入,请指定减号 (-) 而不是文件名。

–i 选项仅与 monitorunmonitor 子命令一起使用时才有效。

在命令中指定的选项将覆盖在配置文件中设置的任何选项。如果群集配置文件中缺少配置参数,则必须在命令行中指定这些参数。

–n node[,…]
–-node=node[,…]
–-node node[,…]

指定子命令只包含使用 –n 选项指定的节点的磁盘路径。您可以通过节点名称或节点 ID 来指定一个节点。

–o {- | configfile}
–-output={- | configfile}
–-output {- | configfile}

使用 clconfiguration(5CL) 手册页中定义的格式写入磁盘路径配置信息。可以将此信息写入文件或标准输出中。

–o 选项仅与 export 子命令一起使用时才有效。

如果将文件名作为参数提供给该选项,此命令将创建新的文件,配置会显示在该文件中。如果已经存在同名的文件,此命令将退出,并显示一个错误。不会对现有文件进行任何更改。

如果将减号 (-) 作为参数提供给该选项,命令会将配置信息显示到标准输出。命令的所有其他标准输出将受到抑制。

–p default_fencing={global | pathcount| scsi3 | nofencing | nofencing-noscrub}
-–property=default_fencing={global|pathcount|scsi3|nofencing|nofencing-noscrub}
-–property default_fencing={global|pathcount|scsi3|nofencing|nofencing-noscrub}

指定要修改的属性。

将该选项与 set 子命令一起使用可修改以下属性:

default_fencing

覆盖指定设备的全局默认隔离算法。无法在配置为法定设备的设备上更改默认隔离算法。

可以将设备的默认隔离算法设置为下列值之一:

global

使用全局默认隔离设置。有关设置全局隔离默认值的信息,请参见 cluster(1CL) 手册页。

nofencing

检查并删除任何持久组保留 (Persistent Group Reservation, PGR) 密匙后,请关闭一个或多个指定设备的隔离。


Caution

注意  -  如果您使用的是不支持 SCSI 的磁盘(如串行高级技术附件 (Serial Advanced Technology Attachment, SATA) 磁盘),请关闭隔离。


nofencing-noscrub

关闭一个或多个指定设备的隔离,而首先检查或删除 PGR 密匙。


Caution

注意  -  如果您使用的是不支持 SCSI 的磁盘(如串行高级技术附件 (Serial Advanced Technology Attachment, SATA) 磁盘),请关闭隔离。


pathcount

根据连接到共享设备的 DID 路径的数目来确定隔离协议。

  • 对于使用少于 3 个 DID 路径的设备,该命令会设置 SCSI-2 协议。

  • 对于使用不少于 3 个 DID 路径的设备,该命令将设置 SCSI-3 协议。

scsi3

设置 SCSI-3 协议。如果设备不支持 SCSI-3 协议,则隔离协议设置将保持不变。

–S source-node
–-sourcenode=source-node
–-sourcenode source-node

指定将其中的设备复制到目标节点的源节点。您可以通过节点名称或节点 ID 来指定一个节点。

–S 选项仅与 replicate 子命令一起使用时才有效。

–s state[,…]
–-state=state[,…]
–-state state[,…]

显示处于指定状态的磁盘路径的状态信息。

–s 选项仅与 status 子命令一起使用时才有效。提供 –s 选项时,状态输出限制为处于指定 state 的磁盘路径。以下为 state 的可能值:

  • fail

  • ok

  • unknown

  • unmonitored

–t

指定复制设备类型。该选项可与 replicatecombine 子命令结合使用。

–V
–-version

显示该命令的版本。

指定此选项时,不要将其与子命令、操作数或其他选项结合使用。子命令、操作数或其他选项将被忽略。–V 选项只显示命令的版本。不会执行任何其他操作。

–v
–-verbose

将详细信息显示到标准输出。

可以在任何格式的此命令中指定该选项。

操作数

支持以下操作数:

device

指定设备的名称。设备可以为但不限于磁盘、磁带和 CD-ROM。

如果子命令接受多个设备,则可以使用加号 (+) 指定所有设备。

cldevice 命令的所有子命令( repair 子命令除外)接受设备路径作为操作数。repair 子命令只接受设备名称作为操作数。device 名称可以为完整的全局路径名称、设备名称或 DID 实例编号。设备名称的这些格式的示例分别为 /dev/did/dsk/d3 d33。有关更多信息,请参见 did(7) 手册页。

设备名称还可以是完整的 UNIX 路径名称,如 /dev/rdsk/c0t0d0s0

指定的设备可以具有多个将设备连接到节点的路径。如果未使用 –n 选项,则选择所有节点到指定设备的所有路径。

monitorunmonitor status 子命令只接受磁盘设备作为操作数。

退出状态

Intro(1CL) 手册页列出了该命令集中所有命令的一整套退出状态代码。

如果命令对于所有指定的操作数均成功执行,则返回零 (CL_NOERR)。如果某个操作数出错,命令会继续处理操作数列表中的下一个操作数。返回的退出代码始终反映最先发生的错误。

此命令返回下列退出状态代码:

0 CL_NOERR

没有错误

1 CL_ENOMEM

交换空间不足

3 CL_EINVAL

参数无效

6 CL_EACCESS

权限被拒绝

9 CL_ESTATE

对象处于错误状况

15CL_EPROP

属性无效

35 CL_EIO

I/O 错误

36 CL_ENOENT

没有这样的对象

37 CL_EOP

不允许操作

示例

示例 1 监视群集中的所有磁盘路径

以下示例显示如何启用对群集基础结构中的所有磁盘路径的监视。

# cldevice monitor +
示例 2 监视单个磁盘路径

以下示例显示如何在磁盘 /dev/did/dsk/d3 的路径有效的所有节点上启用对该路径的监视。

# cldevice monitor /dev/did/dsk/d3
示例 3 监视单个节点上的磁盘路径

以下示例显示如何在节点 phys-schost--2 上启用对磁盘 /dev/did/dsk/d4/dev/did/dsk/d5 的路径的监视。

第一个示例使用 –n 选项来限制对连接到节点 phys-schost-2 的磁盘路径的监视,然后进一步限制对指定设备 d4d5 的监视。

# cldevice monitor -n phys-schost-2 d4 d5

第二个示例通过 node:device 名称 phys-schost-2:d4 phys-schost-2:d5 来指定要监视的磁盘路径。

# cldevice monitor phys-schost-2:d4 phys-schost-2:d5
示例 4 显示所有磁盘路径及其状态

以下示例表明如何显示群集中的所有磁盘路径及其状态。

# cldevice status
Device Instance             Node                Status
---------------             ----                ------
/dev/did/rdsk/d1            phys-schost-2       Unmonitored

/dev/did/rdsk/d2            phys-schost-2       Unmonitored

/dev/did/rdsk/d3            phys-schost-1       Ok
                            phys-schost-2       Ok

/dev/did/rdsk/d4            phys-schost-1       Ok
                            phys-schost-2       Ok

/dev/did/rdsk/d5            phys-schost-1       Unmonitored
示例 5 显示状态为 fail 的所有磁盘路径

以下示例说明如何显示节点 phys-schost-2 上受监视且状态为 fail 的所有磁盘路径。

# cldevice status -s fail -n phys-schost-1
Device Instance             Node                Status
---------------             ----                ------
/dev/did/rdsk/d3            phys-schost-1       Fail

/dev/did/rdsk/d4            phys-schost-1       Fail
示例 6 显示单个节点上所有磁盘路径的状态

以下示例表明如何显示在节点 phys-schost-2 上联机的所有磁盘路径的路径及状态。

# cldevice status -n phys-schost-1
Device Instance             Node                Status
---------------             ----                ------
/dev/did/rdsk/d3            phys-schost-1       Ok

/dev/did/rdsk/d4            phys-schost-1       Ok

/dev/did/rdsk/d5            phys-schost-1       Unmonitored
示例 7 将新的设备添加到设备配置数据库

以下示例显示如何使用从中发出命令的节点 phys-schost-2 的当前设备配置来更新 CCR 数据库。此命令不更新与群集中任何其他节点连接的设备的数据库。

phys-schost-2# cldevice refresh
示例 8 组合单个 DID 下的设备

以下示例显示如何组合一个设备的路径与另一个设备的路径。该组合的路径会导致产生与目标设备的 DID 实例编号相同的单个 DID 实例编号。

# cldevice combine -t srdf -g devgrp1 -d 20 30
示例 9 列出设备实例的设备路径

以下示例显示如何列出与 DID 驱动程序的实例 3 对应的所有设备的路径。

# cldevice list 3
d3
示例 10 列出群集中的所有设备路径

以下示例显示如何列出与任何群集节点连接的所有设备的所有设备路径。

# cldevice list -v
DID Device          Full Device Path
----------          ----------------
d1                  phys-schost-1:/dev/rdsk/c0t0d0
d2                  phys-schost-1:/dev/rdsk/c0t1d0
d3                  phys-schost-1:/dev/rdsk/c1t8d0
d3                  phys-schost-2:/dev/rdsk/c1t8d0
d4                  phys-schost-1:/dev/rdsk/c1t9d0
d4                  phys-schost-2:/dev/rdsk/c1t9d0
d5                  phys-schost-1:/dev/rdsk/c1t10d0
d5                  phys-schost-2:/dev/rdsk/c1t10d0
d6                  phys-schost-1:/dev/rdsk/c1t11d0
d6                  phys-schost-2:/dev/rdsk/c1t11d0
d7                  phys-schost-2:/dev/rdsk/c0t0d0
d8                  phys-schost-2:/dev/rdsk/c0t1d0
示例 11 显示有关设备的配置信息

以下示例说明如何显示设备 c4t8d0 的相关配置信息。

# cldevice show /dev/rdsk/c4t8d0

=== DID Device Instances ===

DID Device Name:                                /dev/did/rdsk/d3
  Full Device Path:                               phys-schost1:/dev/rdsk/c4t8d0
  Full Device Path:                               phys-schost2:/dev/rdsk/c4t8d0
  Replication:                                    none
  default_fencing:                                nofencing
示例 12 设置单个设备的 SCSI 协议

以下示例为设备 11(由实例编号指定)设置 SCSI-3 协议。该设备不是配置的法定设备。

# cldevice set -p default_fencing=scsi3 11
示例 13 关闭设备的隔离,而不首先检查 PGR 密匙

以下示例关闭设备上磁盘 /dev/did/dsk/d5 的隔离。此命令关闭设备的隔离,而首先检查和删除任何持久组保留 (Persistent Group Reservation, PGR) 密匙。

# cldevice set -p default_fencing=nofencing-noscrub d5

如果您使用的是不支持 SCSI 的磁盘(如串行高级技术附件 (Serial Advanced Technology Attachment, SATA) 磁盘),请关闭 SCSI 隔离。

示例 14 为双节点群集 phys-schost 中的所有设备关闭隔离

以下示例关闭名为 phys-schost 的双节点群集中所有磁盘的隔离。

# cluster set -p global_fencing=nofencing
# cldevice set -p default_fencing=global -n phys-schost-1,phys-schost-2 d5

有关 cluster 命令和 global_fencing 属性的更多信息,请参见 cluster(1CL) 手册页。

如果您使用的是不支持 SCSI 的磁盘(如串行高级技术附件 (Serial Advanced Technology Attachment, SATA) 磁盘),请关闭 SCSI 隔离。

示例 15 通过使用设备名称执行修复过程

以下示例显示如何对与设备 /dev/dsk/c1t4d0 关联的设备标识符执行修复过程。此设备已替换为新的设备标识符现在与其关联的新设备。在数据库中,repair 子命令记录现在实例编号对应于新的设备标识符。

# cldevice repair c1t4d0
示例 16 通过使用实例编号执行修复过程

以下示例显示如何提供备用方法对设备标识符执行修复过程。该示例指定与替换设备的设备路径关联的实例编号。替换设备的实例编号为 2

# cldevice repair 2
示例 17 填充全局设备名称空间

以下示例说明在添加新的全局设备或将 DID 设备移动到新的实例编号之后如何填充全局设备名称空间。

# devfsadm
# cldevice populate
示例 18 移动 DID 设备

以下示例将源实例上的 DID 实例 15 移动到新的 DID 实例 10,然后使用配置更改更新全局设备名称空间。

# cldevice rename 15:10
# devfsadm
# cldevice populate

属性

有关以下属性的描述,请参见 attributes(5)

属性类型
属性值
可用性
ha-cluster/system/core
接口稳定性
Evolving(发展中)

另请参见

Intro(1CL)cluster(1CL)boot(1M)devfsadm(1M)clconfiguration(5CL)rbac(5)did(7)

附注

超级用户可以运行此命令的所有格式。

任何用户都可以运行带有以下选项的此命令:

  • –?(帮助)选项

  • –V(版本)选项

要运行带有其他子命令的此命令,超级用户以外的用户需要具有 RBAC 授权。请参见下表。

子命令
RBAC 授权
check
solaris.cluster.read
clear
solaris.cluster.modify
combine
solaris.cluster.modify
export
solaris.cluster.read
list
solaris.cluster.read
monitor
solaris.cluster.modify
populate
solaris.cluster.modify
refresh
solaris.cluster.modify
rename
solaris.cluster.modify
repair
solaris.cluster.modify
replicate
solaris.cluster.modify
set
solaris.cluster.modify
show
solaris.cluster.read
status
solaris.cluster.read
unmonitor
solaris.cluster.modify

磁盘路径状态更改是通过使用 syslogd 命令记录的。

每次进行物理连接时,每个多端口的磁带驱动器或 CD-ROM 驱动器在名称空间中显示一次。