首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

从 IBM PowerHA 集群中的资源故障中恢复-2

从 IBM PowerHA 集群中的资源故障中恢复-2

Cluster Applications and Resource → Resource → Configure User                    Applications (Scripts and Monitors) → Application Controller Scripts →                    Add Application Controller Scripts。
图 2 显示了添加应用程序控制器脚本的屏幕。第一个字段                    是必填的,因为它询问控制器名称。应用程序控制器名称由用户定义。第二个字段 用于添加启动脚本,第三个字段                用于添加停止脚本。监视器脚本尚未添加,所以没有显示它。监视器脚本可在创建应用程序控制器之后或之前添加。
图 2. 添加应用程序控制器脚本的 SMIT 屏幕
  • 添加应用程序控制器的监视器脚本
使用 smit hacmp 命令打开 SMIT 界面,选择以下选项来打开 Add a Custom and                    Application Monitor 屏幕。
Cluster Applications and Resource → Resource → Configure User                    Applications (Scripts and Monitors) → Application Monitors → Configure                    Custom Application Monitors → Add a Custom Application                    Monitor。
图 3. 添加应用程序监视器的 SMIT 屏幕下一节将介绍如何输入图 3 中显示的参数,同时创建一个应用程序监视器。
  • Monitor Name – 此参数是用户定义的,添加的监视器可以监视应用程序控制器脚本。
  • Application Controller to Monitor – 添加图 1                    中创建的应用程序控制器。
  • Monitor Mode – 这是选中的模式,其中将执行应用程序控制器的监视。
  • Monitor Method – 您需要提供监视器脚本的完整路径。
  • Stabilization Interval – 用于设置用户定义的事件间隔,稳定间隔设置为 30                    秒。稳定间隔时间是如果应用程序正常启动,集群进入稳定状态和资源进入在线状态需要等待的时间,但如果由于任何故障导致应用程序未启动,则会重新启动应用程序。
  • Restart Count –                    将会重新启动应用程序控制器,如果未分配重新启动计数,则会故障转移到下一个节点。这里提到的重新启动计数为 3,所以如果应用程序未能在 3                    次重新启动后进入稳定状态,应用程序将会故障转移到下一个优先级节点。在这种情况下,资源组将进入这个特定节点上的 ERROR 状态,集群将进入                    UNSTABLE 状态,而且如果资源组处于 ERROR 状态,集群将进入 RP_FAILED 状态。
  • 将创建的应用程序添加到资源组中
使用 smit hacmp 命令打开 SMIT 界面,选择以下选项来打开 Change/Show                    Resources and Attributes for a Resource Group 屏幕。
Cluster Applications and Resources → Resource Groups → Change/Show                    Resources and Attributes for a Resource Group。
系统会询问选择将应用程序和文件系统添加到哪个资源组。
图 4. 集成到资源组的应用程序和文件系统的资源组选择在这里,应用程序和文件系统将被添加到资源组 RG1。
图 5. 向 RG1 添加资源和属性的 SMIT 屏幕所以要理解应用程序的集群恢复特性,需要将应用程序控制器 app1_test 添加到资源组                RG1 中。此应用程序位于文件系统 /fs1 和卷组 VG1                下。
  • 从故障中恢复集群
为了理解如何从应用程序故障中恢复,我们将在所有节点上的启动脚本中更改应用程序的路径。最初,启动脚本位于                    /home/scripts 中,现在将更改一个启动脚本的路径来引发应用程序故障。
实际启动脚本
1
2
3
4
(0) root @ SiteANode1: /home/scripts  ----------------- Start script
# cat app1_start
#!/usr/bin/ksh
/home/scripts/app1 /fs1/a /fs1/b /fs1/c /fs1/d /fs1/e > /dev/null &




更改启动脚本的应用程序脚本路径
1
2
3
4
0) root @ SiteANode1: /home/scripts  ----------------- Start script
# cat app1_start
#!/usr/bin/ksh
/home/test/app1 /fs1/a /fs1/b /fs1/c /fs1/d /fs1/e > /dev/null &




在启动集群服务后,由于脚本的错误输入和重新启动计数,系统将不断重新启动应用程序控制器。这可在                    /var/hacmp/log/hacmp.out                文件中看到,由于应用程序控制器的这个错误输入,集群不会进入稳定状态。在上述脚本中具有错误路径时,应用程序将无法进入稳定状态。
如果只有一个节点上的脚本中存在错误路径,资源组会尝试在这个特定节点上上线,但完成 3 次重新启动计数后,它会故障转移到下一个节点(依据图 3                中设置的重新启动计数),如果下一个节点的应用程序中的所有配置都是正确的,集群将会保持稳定,资源组将在该节点上上线。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
(0) root @ SiteANode1: /usr/es/sbin/cluster/utilities
# clRGinfo
-----------------------------------------------------------------------------
Group Name                   State            Node
-----------------------------------------------------------------------------
RG1_conc            ONLINE           SiteANode1
                    ONLINE           SiteANode2
                    ONLINE           SiteBNode1
                    ONLINE           SitebNode2

RG2_conc            ONLINE           SiteANode1
                    ONLINE           SiteANode2
                    ONLINE           SiteBNode1
                    ONLINE           SiteBNode2

RG1                 ERROR           SiteANode1@siteA
                    OFFLINE         SiteANode2@siteA
                    OFFLINE         SiteBNode1@siteB
                    OFFLINE         SiteBNode2@siteB


(0) root @ SiteANode1: /usr/es/sbin/cluster/utilities
#  clcmd lssrc -ls clstrmgrES| grep state
Current state: ST_RP_RUNNING
Current state: ST_RP_RUNNING
Current state: ST_RP_RUNNING
Current state: ST_RP_RUNNING

(0) root @ SiteANode1: /usr/es/sbin/cluster/utilities
#  clcmd lssrc -ls clstrmgrES| grep state
Current state: ST_BARRIER
Current state: ST_BARRIER
Current state: ST_BARRIER
Current state: ST_BARRIER

(0) root @ SiteANode1: /usr/es/sbin/cluster/utilities
#  clcmd lssrc -ls clstrmgrES| grep state
Current state: ST_BARRIER
Current state: ST_BARRIER
Current state: ST_BARRIER
Current state: ST_BARRIER

(0) root @ SiteANode1: /usr/es/sbin/cluster/utilities
#  clcmd lssrc -ls clstrmgrES| grep state
Current state: ST_CBARRIER
Current state: ST_CBARRIER
Current state: ST_CBARRIER
Current state: ST_CBARRIER

(0) root @ SiteANode1: /usr/es/sbin/cluster/utilities
#  clcmd lssrc -ls clstrmgrES| grep state
Current state: ST_UNSTABLE
Current state: ST_UNSTABLE
Current state: ST_UNSTABLE
Current state: ST_UNSTABLE




该资源组下的应用程序也不会启动
1
2
3
(0) root @ SiteANode1: /usr/es/sbin/cluster/utilities
# ps -ef| grep app1
    root 16187668 15598018   0 10:13:36  pts/0  0:00 grep app1




因此,在这种情况下,应用程序 app1 启动失败,原因在于所提及的启动脚本中错误的应用程序路径。所以,Cluster                Manager 将在 /var/hacmp/log/hacmp.out 文件中报告事件故障,如图 6                所示。所以依据 hacmp.out 消息,需要手动干预。现在手动更改启动脚本中的路径,以便从 RG 恢复到 ERROR 状态,将集群恢复到                UNSTABLE 或 RP_FAILED 状态。
1
2
3
4
0) root @ SiteANode1: /home/scripts  ----------------- Start script
# cat app1_start
#!/usr/bin/ksh
/home/scripts/app1 /fs1/a /fs1/b /fs1/c /fs1/d /fs1/e > /dev/null & ---- >  correct path .




图 6. 可在 hacmp.out 日志中查看应用服务器故障消息点击查看大图
手动更改脚本后,HACMP 会提供从故障恢复的特性,该特性将在集群实用程序下运行一个 clruncmd 脚本。PowerHA 还为                SMIT 提供了脚本故障恢复选项。在命令提示符上运行 smit hacmp 命令,选择以下选项。
Problem Determination Tools → Recover From PowerHA SystemMirror                    Script Failure。
在这里,用户可以依次选择所需的节点。
图 7. 从 PowerHA 脚本故障恢复的 SMIT 屏幕从脚本故障恢复的选项将运行 /usr/es/sbin/cluster/utilities/clruncmd                命令,这会向所选节点上的 Cluster Manager Daemon                发送一条消息。这会使集群能够在该节点上进入稳定状态,如果脚本是正确的,资源组也将在该节点上上线。解决这个问题后,就可以在                    /var/hacmp/log/hacmp.out 文件中看到已完成的事件。如果所有节点上的资源组都进入                ERROR                状态,则意味着所有节点上都存在错误的输入。因此,在这种情况下,必须在纠正所有节点上的错误输入后,手动将资源组上线,就好像资源组在一个节点上处于                ERROR 状态,从集群脚本故障中恢复可在更正错误输入后让它进入正确状态。
如果某个脚本由于提供给 PowerHA 的输入错误而发生故障,Cluster Manager 将在                    hacmp.out 中报告故障。更正错误输入后,可重新使用 Cluster Manager 让集群进入                STABLE 状态。RECOVERY FROM SCRIPT FAILURE OPTION 将运行 PowerHA 的                clruncmd 实用程序,这会向一个选定集群上的 Cluster Manager Daemon                发送一条消息,从而让集群进入稳定状态,如果资源组由于提供给资源的输入错误而进入 ERROR 状态,也会让资源组进入正确状态。用户需要在                    hacmp.out                文件中看到错误后手动更改错误输入。因此,从脚本故障恢复集群,将让集群进入正确状态,事件将会在 hacmp.out                中完成。
返回列表