# Verify Cluster Installation

## Verify Corosync Installation

Start Corosync on the first node

    [root@pcmk-1 ~]# /etc/init.d/corosync start
    Starting Corosync Cluster Engine (corosync): [ OK ]

Check the cluster started correctly and that an initial membership was able to form

    [root@pcmk-1 ~]# grep -e "corosync.*network interface" -e "Corosync Cluster Engine" \
    -e "Successfully read main configuration file" /var/log/messages
    Aug 27 09:05:34 pcmk-1 corosync[1540]: [MAIN  ] Corosync Cluster Engine ('1.1.0'): started and ready to provide service.
    Aug 27 09:05:34 pcmk-1 corosync[1540]: [MAIN  ] Successfully read main configuration file '/etc/corosync/corosync.conf'.
    [root@pcmk-1 ~]# grep TOTEM /var/log/messages
    Aug 27 09:05:34 pcmk-1 corosync[1540]: [TOTEM ] Initializing transport (UDP/IP).
    Aug 27 09:05:34 pcmk-1 corosync[1540]: [TOTEM ] Initializing transmit/receive security: libtomcrypt SOBER128/SHA1HMAC (mode 0).
    Aug 27 09:05:35 pcmk-1 corosync[1540]: [TOTEM ] The network interface [192.168.122.101] is now up.
    Aug 27 09:05:35 pcmk-1 corosync[1540]: [TOTEM ] A processor joined or left the membership and a new membership was formed.

With one node functional, its now safe to start Corosync on the second node as well.

    [root@pcmk-1 ~]# ssh pcmk-2 -- /etc/init.d/corosync start
    Starting Corosync Cluster Engine (corosync): [ OK ]
    [root@pcmk-1 ~]#

Check the cluster formed correctly

    [root@pcmk-1 ~]# grep TOTEM /var/log/messages
    Aug 27 09:05:34 pcmk-1 corosync[1540]: [TOTEM ] Initializing transport (UDP/IP).
    Aug 27 09:05:34 pcmk-1 corosync[1540]: [TOTEM ] Initializing transmit/receive security: libtomcrypt SOBER128/SHA1HMAC (mode 0).
    Aug 27 09:05:35 pcmk-1 corosync[1540]: [TOTEM ] The network interface [192.168.122.101] is now up.
    Aug 27 09:05:35 pcmk-1 corosync[1540]: [TOTEM ] A processor joined or left the membership and a new membership was formed.
    Aug 27 09:12:11 pcmk-1 corosync[1540]: [TOTEM ] A processor joined or left the membership and a new membership was formed.

## Verify Pacemaker Installation

Now that we have confirmed that Corosync is functional we can check the rest of the stack.

    [root@pcmk-1 ~]# grep pcmk_startup /var/log/messages
    Aug 27 09:05:35 pcmk-1 corosync[1540]:   [pcmk  ] info: pcmk_startup: CRM: Initialized
    Aug 27 09:05:35 pcmk-1 corosync[1540]:   [pcmk  ] Logging: Initialized pcmk_startup
    Aug 27 09:05:35 pcmk-1 corosync[1540]:   [pcmk  ] info: pcmk_startup: Maximum core file size is: 18446744073709551615
    Aug 27 09:05:35 pcmk-1 corosync[1540]:   [pcmk  ] info: pcmk_startup: Service: 9
    Aug 27 09:05:35 pcmk-1 corosync[1540]:   [pcmk  ] info: pcmk_startup: Local hostname: pcmk-1

Now try starting Pacemaker and check the necessary processes have been started

    [root@pcmk-1 ~]# /etc/init.d/pacemaker start
    Starting Pacemaker Cluster Manager:                        [  OK  ]

    [root@pcmk-1 ~]# grep -e pacemakerd.*get_config_opt -e pacemakerd.*start_child \
    -e "Starting Pacemaker" /var/log/messages
    Feb  8 13:31:24 pcmk-1 pacemakerd: [13155]: info: get_config_opt: Found 'pacemaker' for option: name
    Feb  8 13:31:24 pcmk-1 pacemakerd: [13155]: info: get_config_opt: Found '1' for option: ver
    Feb  8 13:31:24 pcmk-1 pacemakerd: [13155]: info: get_config_opt: Defaulting to 'no' for option: use_logd
    Feb  8 13:31:24 pcmk-1 pacemakerd: [13155]: info: get_config_opt: Defaulting to 'no' for option: use_mgmtd
    Feb  8 13:31:24 pcmk-1 pacemakerd: [13155]: info: get_config_opt: Found 'on' for option: debug
    Feb  8 13:31:24 pcmk-1 pacemakerd: [13155]: info: get_config_opt: Found 'yes' for option: to_logfile
    Feb  8 13:31:24 pcmk-1 pacemakerd: [13155]: info: get_config_opt: Found '/var/log/corosync.log' for option: logfile
    Feb  8 13:31:24 pcmk-1 pacemakerd: [13155]: info: get_config_opt: Found 'yes' for option: to_syslog
    Feb  8 13:31:24 pcmk-1 pacemakerd: [13155]: info: get_config_opt: Found 'daemon' for option: syslog_facility
    Feb  8 16:50:38 pcmk-1 pacemakerd: [13990]: info: main: Starting Pacemaker 1.1.5 (Build: 31f088949239+):  docbook-manpages publican ncurses trace-logging cman cs-quorum heartbeat corosync snmp libesmtp
    Feb  8 16:50:38 pcmk-1 pacemakerd: [13990]: info: start_child: Forked child 14022 for process stonith-ng
    Feb  8 16:50:38 pcmk-1 pacemakerd: [13990]: info: start_child: Forked child 14023 for process cib
    Feb  8 16:50:38 pcmk-1 pacemakerd: [13990]: info: start_child: Forked child 14024 for process lrmd
    Feb  8 16:50:38 pcmk-1 pacemakerd: [13990]: info: start_child: Forked child 14025 for process attrd
    Feb  8 16:50:38 pcmk-1 pacemakerd: [13990]: info: start_child: Forked child 14026 for process pengine
    Feb  8 16:50:38 pcmk-1 pacemakerd: [13990]: info: start_child: Forked child 14027 for process crmd

    [root@pcmk-1 ~]# ps axf
      PID TTY      STAT   TIME COMMAND
        2 ?        S<     0:00 [kthreadd]
        3 ?        S<     0:00  \_ [migration/0]
    ... lots of processes ...
     13990 ?    S       0:01 pacemakerd
     14022 ?    Sa      0:00  \_ /usr/lib64/heartbeat/stonithd
     14023 ?    Sa      0:00  \_ /usr/lib64/heartbeat/cib
     14024 ?    Sa      0:00  \_ /usr/lib64/heartbeat/lrmd
     14025 ?    Sa      0:00  \_ /usr/lib64/heartbeat/attrd
     14026 ?    Sa      0:00  \_ /usr/lib64/heartbeat/pengine
     14027 ?    Sa      0:00  \_ /usr/lib64/heartbeat/crmd

Next, check for any ERRORs during startup - there shouldn’t be any.

    [root@pcmk-1 ~]# grep ERROR: /var/log/messages | grep -v unpack_resources
    [root@pcmk-1 ~]#

Repeat on the other node and display the cluster's status.

    [root@pcmk-1 ~]# ssh pcmk-2 -- /etc/init.d/pacemaker start
    Starting Pacemaker Cluster Manager:                        [  OK  ]
    [root@pcmk-1 ~]# crm_mon
    ============
    Last updated: Thu Aug 27 16:54:55 2009
    Stack: openais
    Current DC: pcmk-1 - partition with quorum
    Version: 1.1.5-bdd89e69ba545404d02445be1f3d72e6a203ba2f
    2 Nodes configured, 2 expected votes
    0 Resources configured.
    ============

    Online: [ pcmk-1 pcmk-2 ]