使用 cmquerycl 命令指定要包括在群集中的节点集,并生成群集配置文件的
模板。 节点名称不能超过 31 个字节。下面是此命令的一个示例:
# cmquerycl -v -C /etc/cmcluster/clust1.config -n ftsys9 -n ftsys10
在包含多个节点、网络或与群集相连接的磁盘的较大、较复杂的配置中,
cmquerycl 命令可能需要几分钟的时间才能完成。为加快配置过程,可以使
用 -k 和 -w 选项,使命令直接返回所选择的信息:
-k 消除一些磁盘探测,并且不返回有关潜在群集锁卷组和锁物理卷的信息。
-w local 指定进行本地网络探测,这种情况下,只验证每个节点内部接口之
间的 LAN 连接。
-w full 指定进行整个网络探测,这种情况下,将验证群集中所有节点上所
有 LAN 接口之间的实际连接。这是缺省值。
-w none 跳过网络查询。如果最近检查过网络,该选项将节省时间。
有关详细信息,请参考 cmquerycl(1m) 的联机帮助页。
cmquerycl -v -C /etc/cmcluster/cmclconfi.ascii -n sgsimis -n sgsimis1
cmcheckconf -v -C /etc/cmcluster/cmclconfi.ascii
cmapplyconf -v -C /etc/cmcluster/cmclconfi.ascii
cmruncl -v
118 sgsbpkg1
50 sgsbpkg2
mkdir /etc/cmcluster/sgsbpkg1
cd /etc/cmcluster/sgsbpkg1
cmmakepkg -v -p pkg.conf
cmmakepkg -v -s sgsbpkg1.cntl
cmcheckconf -v –P sgsbpkg1.conf
cmapplyconf -v –P sgsbpkg1.conf
mkdir /etc/cmcluster/sgsbpkg2
cd /etc/cmcluster/sgsbpkg2
cmmakepkg -v -p sgsbpkg2.conf
cmmakepkg -v -s sgsbpkg2.cntl
cmcheckconf -v –P sgsbpkg2.conf
cmapplyconf -v –P sgsbpkg2.conf
执行下列步骤进行非滚动软件升级:
1. 暂停群集中的所有节点:
cmhaltcl -f
2. 如有必要,请将群集中的所有节点升级到 HP-UX 新发行版。(有关详细信息,请参阅“运行
滚动升级” (第 312 页)中的第 3 步)。
3. 将群集中的所有节点升级到 Serviceguard 新发行版(有关详细信息,请参阅“运行滚动升级”
(第 312 页)中的第 3 步)。
4. 重新启动群集:
cmruncl
要暂停其上正在运行程序包的节点,请使用 -f 选项。如果正在运行的程序包可以切换到代管节
点上,那么程序包将进行切换并在代管节点上启动。例如,以下命令将导致示例配置中在 ftsys9
节点上运行的Serviceguard 守护程序暂停,并将在 ftsys9 节点上运行的程序包移动到代管节
点。-v(详细)选项可输出下列消息:
cmhaltnode -f -v ftsys9
通过执行每个程序包控制脚本中的暂停指令,可以暂停运行在节点 ftsys9 上的任何程序包。节
点 ftsys9 将暂停,而程序包将在代管节点上启动。
cmrunnode -n ftsys9
测试群集:
? 建立客户端连接。
? 提供一个正常的系统负载。
? 在第一个节点上暂停程序包,将其转移到第二个节点上:
cmhaltpkg pkg1
cmrunpkg -n node2 pkg1
cmmodpkg -e pkg1
? 将程序包移回。
cmhaltpkg pkg1
cmrunpkg -n node1 pkg1
cmmodpkg -e pkg1
? 使其中一个系统失败。例如,关闭节点 1 的电源。确保程序包在节点 2 上启动。
? 重复上述步骤,由节点 2 故障切换回节点 1。
验证群集配置
在 ServiceguardManager 中,可以单击“检查”按钮来验证配置。
如果您通过命令行编辑了一个 ASCII群集配置文件,请使用下列命令验证该
文件的内容:
# cmcheckconf -k -v-C /etc/cmcluster/clust1.config
这两种方法都会检查下列内容:
? 网络地址和连接。
? 群集锁连接(如果正在配置锁磁盘)。
? 群集和程序包配置参数的有效性。
? 名称的唯一性。
? 命令行中指定的脚本是否存在及其权限。
? 指定的所有节点是否都在同一个心跳线子网中。
? 是否指定了错误的配置文件名。
? 是否可以访问所有节点。
? 是否指定了唯一的 CLUSTER_NAME、HEARTBEAT_INTERVAL 和
AUTO_START_TIMEOUT。
? 程序包运行和暂停脚本超时值是否小于 4294 秒。
? NODE_TIMEOUT 值至少是 HEARTBEAT_INTERVAL 值的两倍。
AUTO_START_TIMEOUT变量的值是否 >=0。
? 心跳线网络的最低要求。群集必须配置下列之一:一个心跳线 LAN 和一
个备用心跳线 LAN ;两个心跳线LAN ;一个心跳线 LAN 和一个 RS232
连接;或一个无本地 LAN切换的心跳线网络,并配有一个主 LAN(配置
为至少两个接口的链路聚合)。
? 至少指定了一个 NODE_NAME。
? 每个节点均连接到每个心跳线网络。
? 所有心跳线网络都是相同类型的 LAN。
? 指定的网络接口设备文件是有效的 LAN 设备文件。
? 如果配置了串行 (RS-232) 心跳线,群集中的节点将不会多于两个,每个节
点的串行 (RS232)端口连接将不会多于一个。
?VOLUME_GROUP 项当前未标记为“群集可识别的”。
? 如果使用的是 CVM 3.5 磁盘存储,则只有一个已配置的心跳线子网。
如果群集处于联机状态,则此检查过程还会验证是否满足配置中的特定更改
所需的所有条件。
注释使用 -k 选项意味着 cmcheckconf 只检查在ASCII 文件中标识的至 LVM 磁
盘的磁盘连接。忽略 -k选项(缺省行为)意味着 cmcheckconf 测试所有节
点上所有 LVM 磁盘的连接。使用 -k选项可以明显加快命令的执行速度。
各类参数
FAILOVER_POLICY。如果希望 Serviceguard 尝试按节点所列顺序启动(或
重新启动)程序包,请输入 CONFIGURED_NODE。如果希望 Serviceguard 在
当前所运行程序包数量最少的节点上重新启动失败的程序包,请输入
MIN_PACKAGE_NODE(仅限故障切换类型的程序包)。
? FAILBACK_POLICY。如果程序包的主节点发生故障,您希望 Serviceguard
能在主节点恢复运行时将程序包故障切换回主节点,请输入 AUTOMATIC。
如果不希望 Serviceguard 将程序包移回主节点,请输入 MANUAL(仅限故
障切换程序包)。
? NODE_NAME。输入群集中各个节点的名称,每个名称占一行。对于所有
群集节点,请使用“*”通配符(对于系统多节点程序包,必须指定
NODE_NAME *)。
? AUTO_RUN。对于故障切换程序包,输入 YES 以允许Serviceguard 在第一
个可用节点上启动程序包,并允许在其失败后稍后再自动重新启动它。输
入 NO 以禁止 Serviceguard 自动启动程序包(对于系统多节点程序包,必
须输入 YES)。
? LOCAL_LAN_FAILOVER_ALLOWED。输入 YES 以允许将程序包 IP 地址切换
到备用 LAN,输入 NO 以禁止程序包地址进行本地切换(对于多节点程序
包及系统多节点程序包,必须输入 NO)。
? NODE_FAIL_FAST_ENABLED。如果输入 YES,则当程序包在节点上发生失
败时,该节点将被暂时,并发生控制转移。这可防止 Serviceguard 重复尝
试在该节点上启动程序包,从而防止重复失败。对于系统多节点程序包,
必须将它设置为 YES。
RUN_SCRIPT 和 HALT_SCRIPT。指定程序包控制脚本的路径名(在下一
节介绍)。不提供缺省值。
TIMEOUT:对于运行和暂停脚本,输入在 Serviceguard 确认失败之前它应
该尝试完成脚本所用的秒数。如果为暂停脚本设置了超时值,则此值必须
大于所有暂停脚本超时值的总和。
SCRIPT_LOG_FILE(可选)可以为运行和暂停脚本指定放置日志消息的
位置。如果未指定路径, Serviceguard 将创建一个文件,并将“.log”附
加到每个脚本路径后面,然后在该文件中放置消息。
? STORAGE_GROUP。指定程序包将使用的 CVM 存储组的名称。每个存储组
(CVM 磁盘组)占一行。请注意勿将 CVM 存储组输入到群集 ASCII 配置
文件中。
锁盘
设置锁盘
可使用 cmquerycl -L 来创建定义锁 LUN 的群集配置文件。
? 如果所有节点上的锁 LUN 的路径名都是相同的,可使用如下命令:
cmquerycl -C $SGCONF/config.ascii -L /dev/dsk/c0t1d1 -n <节点1> -n
<节点2>
? 如果某些节点上的锁 LUN 的路径名不相同,则必须在每个节点上指定路径;例如(在一行
上指定所有路径):
cmquerycl -C $SGCONF/config.ascii -n <节点1> -L /dev/dsk/c0t1d1 -n
<节点2> -L /dev/dsk/c0t1d2
-
-
如果锁盘上没有锁盘的标志,可用以下命令将锁盘标志重新写到锁盘上(建议和客户另外约时间)。
-
# cd /etc/cmcluster
# cmcheckconf -C CONF -P pkg1/conf ...
确认原集群的配置文件还是可用的
# 备份原配置文件
# cmhaltcl -f
# cmdeleteconf -f
# vgchange -a y vglock (cluster lock VG)
# cmapplyconf -C CONF -P pkg1/conf ...
# vgcfgbackup vglock
# vgchange -a n vglock
# cmruncl
1. If the cluster lock disk path is still correct, and if a vgcfgbackup
was performed on the lock VG after the cluster was created (using
cmapplyconf), a vgcfgrestore command of this form will restore
the cluster lock structure:
# vgcfgrestore -n vglock /dev/rdsk/cxtxdx
2. 使用cminitlock工具(不影响cluster的up状态)
Command usage: cminitlock [-v] [-t] vg_name pv_name
-t Test the cluster lock only.
-v Verbose output.
3. 重新派发。
对于老版本,The cluster must be halted for cmapplyconf to install the cluster lock
structure.
4. 新版本的MC/SG,可以使用cmdisklock。
If you restore or recreate the volume group for the lock disk and you need
to re-create the cluster lock (for example if no vgcfgbackup is available),
you can run cmdisklock to re-create the lock.
cmdisklock reset /dev/rdsk/cxtxdx
cmdisklock checks that the specified device is not in use by LVM, VxVM,
ASM, or the file system, and will fail if the device has a label marking it
as in use by any of those subsystems.
cmdisklock -f overrides this check.
CAUTION You are responsible for determining that the device is not being used by
any subsystem on any node connected to the device before using
cmdisklock -f. If you use cmdisklock -f without taking this
precaution, you could lose data.
附录:
Determine if a disk has a cluster lock structure loaded.
Perform the command on a cluster lock disk. An example of this command follows:
# echo '0x2084?4D' | adb /dev/dsk/c0t2d0
2084: 1 4194145 1010590466 256
^ ^^^ ^^^ ^^^
(lock flag) (lock location) (clusterID) (activation/
1=initialized, configured mode)
0=uninitialized
The 1 in the second column indicates that this disk is a cluster lock disk.