Quorum server

QS introduces a new type of quorum device for Sun Cluster

Allows customers to set up a quorum server on a host external to a cluster, and then configure it as quorum device for that cluster

Available in Sun Cluster 3.2 FCS

Limitation in FCS and update 1 : no QS monitoring.

Overview

Runs on a host external to a cluster

Can act as a quorum device for multiple clusters

Quorum Server Host : A single host can run one or more quorum servers

Cluster : Can be configured with multiple quorum servers must be located on different physical hosts)

Clusters and quorum servers can be on different subnetworks


Installation

SUN Java Enterprise System

Availability Services

Sun Cluster Quorum Server

ok via pkgadd :

# ls
SUNWcscqsu    SUNWfscqsu    SUNWjscqsu    SUNWscqsr
SUNWdscqsu    SUNWhscqsu    SUNWkscqsu    SUNWscqsu
SUNWescqsu    SUNWjscqsman  SUNWscqsman
# pkgadd -d .

The following packages are available:
  1  SUNWcscqsu       Simplified Chinese Cluster Quorum Server (Usr)
                      (sparc) 3.2.0,REV=2007.11.26.17.27
  2  SUNWdscqsu       German Cluster Quorum Server (Usr)
                      (sparc) 3.2.0,REV=2007.11.26.17.23
  3  SUNWescqsu       Spanish Cluster Quorum Server (Usr)
                      (sparc) 3.2.0,REV=2007.11.26.17.25
  4  SUNWfscqsu       French Cluster Quorum Server (Usr)
                      (sparc) 3.2.0,REV=2007.11.26.17.22
  5  SUNWhscqsu       Traditional Chinese Cluster Quorum Server (Usr)
                      (sparc) 3.2.0,REV=2007.11.26.17.28
  6  SUNWjscqsman     Japanese Sun Cluster Quorum Server Manual Pages
                      (sparc) 3.2.0,REV=2007.11.26.18.16
  7  SUNWjscqsu       Japanese Cluster Quorum Server (Usr)
                      (sparc) 3.2.0,REV=2007.11.26.17.28
  8  SUNWkscqsu       Korean Cluster Quorum Server (Usr)
                      (sparc) 3.2.0,REV=2007.11.26.17.26
  9  SUNWscqsman      Sun Cluster Quorum Server Manual Pages
                      (sparc) 1.0,REV=2006.09.26.13.44
 10  SUNWscqsr        Sun Cluster Quorum Server (Root)
                      (sparc) 1.0.0,REV=2006.12.05.22.58

... 1 more menu choices to follow;
<RETURN> for more choices, <CTRL-D> to stop display:

 11  SUNWscqsu        Sun Cluster Quorum Server (Usr)
                      (sparc) 1.0.0,REV=2006.12.05.22.58

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: 10,11,9   

Management

Start and Stop

c-220ra-3-epar03# /usr/cluster/bin/clqs start -v +
Quorum server on port "9000" is started.


c-220ra-3-epar03#  /usr/cluster/bin/clqs stop -v +
Quorum server on port "9000" is stopped.



Show information

c-220ra-3-epar03# /usr/cluster/bin/clqs show
=== Quorum Server on port 9000 ===

  ---  Cluster cluster32u1 (id 0x4911CB91) Reservation ---

  Node ID:                      2
    Reservation key:            0x4911cb9100000002

  ---  Cluster cluster32u1 (id 0x4911CB91) Registrations ---

  Node ID:                      1
    Registration key:           0x4911cb9100000001

  Node ID:                      2
    Registration key:           0x4911cb9100000002



Configuration

Configuration file

/etc/scqsd/scqsd.conf

c-220ra-3-epar03# more /etc/scqsd/scqsd.conf
#
# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
#ident  "@(#)scqsd.conf 1.4     05/10/10 SMI"
#
# This is the startup file for Quorum Server daemons.
# Each line in the file starts up an instance of the Quorum Server
# daemon. The command must have the following format:
#
# full-path-to-quorum-server-binary [-i instancename] [-p port] \\
#  [-d quorumdirectory]
#
# The minimum requirement to start multiple quorum servers is to
# specify a unique port and a unique quorum directory for
# each quorum server instance.
#
# To configure more instances, add commands to this file.
# Lines beginning with # are treated as comments and ignored.
#
/usr/cluster/lib/sc/scqsd -d /var/scqsd -p 9000

Configure one or more quorum server

Minimal requirement

unique quorum directory

unique port

Syntax

/usr/cluster/lib/sc/scqsd [-i instance name] [-p port] [-d quorum directory]

Quorum Server typed Quorum Devices

Add

/usr/cluster/bin/scconf -a -q name=<name>,type=quorum_server,qshost=<host>,port=<port>

via scsetup :

 >>> Add a Quorum Server Quorum Device <<<

    A Quorum Server process runs on a machine outside Sun Cluster and 
    serves the cluster as a quorum device. Before configuring the quorum 
    server as a quorum device into the cluster, you will need to setup the
    quorum server machine and start the quorum server process. For 
    detailed information on setting up a quorum server, refer to Sun 
    Cluster system administration guide.

    You will need to specify a device name for the quorum server quorum 
    device, which must be unique across all quorum devices, the IP address
    of the quorum server machine, or hostname if the machine is added into
    /etc/hosts, and a port number on the quorum server machine used to 
    communicate with the cluster nodes. Please refer to the scconf(1M) man
    page and other Sun Cluster documentation for details.

    Is it okay to continue (yes/no) [yes]?  

    What name do you want to use for this quorum device?  qs

    What is the IP address of the quorum server machine?  10.16.80.92

    What is the port number on the quorum server machine?  9000

    Is it okay to proceed with the update (yes/no) [yes]?  



Or :



scconf -a -q name=qs,type=quorum_server,qshost=10.16.80.92,port=9000



Maintenance state set/reset

usr/cluster/bin/scconf -c -q name=<name>,maintstate

/usr/cluster/bin/scconf -c -q name=<name>,reset

Remove

/usr/cluster/bin/scconf -rq name=<name>

Stat

/usr/cluster/bin/scstat -q

[c-220ra-1-epar03][root(3)] scstat -q

-- Quorum Summary --

  Quorum votes possible:      4
  Quorum votes needed:        3
  Quorum votes present:       4


-- Quorum Votes by Node --

                    Node Name           Present Possible Status
                    ---------           ------- -------- ------
  Node votes:       c-220ra-1-epar03    1        1       Online
  Node votes:       c-220ra-2-epar03    1        1       Online


-- Quorum Votes by Device --

                    Device Name         Present Possible Status
                    -----------         ------- -------- ------
  Device votes:     /dev/did/rdsk/d11s2 1        1       Online
  Device votes:     qs                  1        1       Online



Debug Information

Quorum Directory

/var/scqsd (default)

Quorum Data Files

One per cluster for which this quorum server is configured as a quorum device Syntax is <cluster_name>.0x<cluster_id>

c-220ra-3-epar03# pwd
/var/scqsd
c-220ra-3-epar03# ls -l
total 6
-rw-------   1 root     root        2136 Dec  1 10:31 cluster32u1.0x4911CB91

( not human readable ;-) )



debug buffer :

in /var/scqsd :

c-220ra-3-epar03# pwd
/var/scqsd
c-220ra-3-epar03# ls -la
total 54
drwxr-xr-x   2 root     sys          512 Dec  1 10:31 .
drwxr-xr-x  45 root     sys         1024 Dec  1 10:26 ..
-rw-------   1 root     root       20121 Dec  1 10:40 .scqsd_dbg_buf
-rw-------   1 root     root         826 Dec  1 10:29 .scqsd_dbg_buf.1
-rw-------   1 root     root         826 Dec  1 10:28 .scqsd_dbg_buf.2
-rw-------   1 root     root        2136 Dec  1 10:31 cluster32u1.0x4911CB91

c-220ra-3-epar03# cat .scqsd_dbg_buf.2
th 1 tm 737509019: QSS: listening for IPv6 protocol on port 9000
th 1 tm 737509094: QSS: listening for IPv4 protocol on port 9000
th 1 tm 737509290: QS: startup_workers()
th 1 tm 737509326: QS: initialize_int() done.
th 1 tm 737509332: QS: Accepting connection... 
th 1 tm 738910124: QSS:accepting connection on port 9000 for socket 5
th 1 tm 738910134: QS:: accept_connection IPv4
th 1 tm 738910136: QS: Accepting connection... 
th 1 tm 738910138: QS: Waiting for initial messages... 
th 1 tm 738910140:      idx[3]socket[5]
th 1 tm 738910150:      cluster[cmd_clqs] t_str[QD_STOP] nid[0] clid[0x00000000]
th 1 tm 738910153:      msgnum[0] length[0] type[13] incn[0] error[0] v[1.0]
th 1 tm 738910158: QS: Processing Stop request...
th 1 tm 738910161: QSS: sending msg=4f338, datalen=0, socket =5...
th 1 tm 738910183: QS: exiting(0)...


c-220ra-3-epar03# cat .scqsd_dbg_buf
th 1 tm 744855556: QSS: listening for IPv6 protocol on port 9000
th 1 tm 744855629: QSS: listening for IPv4 protocol on port 9000
th 1 tm 744855827: QS: startup_workers()
th 1 tm 744855861: QS: initialize_int() done.
th 1 tm 744855867: QS: Accepting connection... 
th 1 tm 745156054: QSS:accepting connection on port 9000 for socket 5
th 1 tm 745156061: QS:: accept_connection IPv4
th 1 tm 745156063: QS: Accepting connection... 
th 1 tm 745156065: QS: Waiting for initial messages... 
th 1 tm 745156067:      idx[3]socket[5]
th 1 tm 745156078:      cluster[cmd_clqs] t_str[QD_STATUS] nid[0] clid[0x00000000]
th 1 tm 745156081:      msgnum[0] length[0] type[11] incn[0] error[0] v[1.0]
th 1 tm 745156089: QS: Accepting connection... 
th 2 tm 745156092: QS: Processing Get Status request...
th 2 tm 745156099: QSS: sending msg=4f338, datalen=0, socket =5...
th 1 tm 755933058: QSS:accepting connection on port 9000 for socket 5
th 1 tm 755933073: QS:: accept_connection IPv4
th 1 tm 755933075: QS: Accepting connection... 
th 1 tm 755933077: QS: Waiting for initial messages... 
th 1 tm 755933083:      idx[3]socket[5]
th 1 tm 755933092:      cluster[lib_scqd] t_str[QD_HOST] nid[0] clid[0x00000000]
th 1 tm 755933095:      msgnum[0] length[0] type[14] incn[0] error[0] v[1.0]
th 1 tm 755933104: QS: Processing Get Host Name request [c-220ra-3-epar03]...
th 1 tm 755933106: QSS: sending msg=4f338, datalen=257, socket =5...
th 1 tm 755933121: QS: Accepting connection... 
th 1 tm 755936395: QSS:accepting connection on port 9000 for socket 5
th 1 tm 755936398: QS:: accept_connection IPv4
th 1 tm 755936400: QS: Accepting connection... 
th 1 tm 755936402: QS: Waiting for initial messages... 
th 1 tm 755936403:      idx[3]socket[5]
th 1 tm 755936408:      cluster[cluster32u1] t_str[QD_OPEN] nid[1] clid[0x4911CB91]
th 1 tm 755936411:      msgnum[1] length[0] type[1] incn[1227607463] error[0] v[1.0]
th 1 tm 755936414: QS: No worker, creating one.
th 1 tm 755936418: CW(cluster32u1)::cluster_worker
th 1 tm 755936428: CW::Initialize(cluster32u1)... 
th 1 tm 755941217: CW::Initialize(cluster32u1) done 
th 4 tm 755941238: CW(cluster32u1): Waiting for incoming messages...
th 1 tm 755941325: QS: Accepting connection... 
th 4 tm 755941332: CW::quorum_open(cluster32u1) new_device=1 nid=1
th 4 tm 755945980: QSS: sending msg=4f338, datalen=0, socket =5...
th 4 tm 755945990: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 755945993:      nodeid[1] on socket[5]
th 4 tm 755946072: CW(cluster32u1): Receive on sock 5, client 1...
th 4 tm 755946080:      cluster[cluster32u1] t_str[QD_READ_RESERVATIONS] nid[1] clid[0x4911CB91]
th 4 tm 755946082:      msgnum[2] length[0] type[3] incn[1227607463] error[0] v[1.0]
th 4 tm 755946086:      CW::quorum_read_reservations(cluster32u1) nid=1
th 4 tm 755946089: QSS: sending msg=4f338, datalen=0, socket =5...
th 4 tm 755946095: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 755946097:      nodeid[1] on socket[5]
th 4 tm 755946181: CW(cluster32u1): Receive on sock 5, client 1...
th 4 tm 755946185:      cluster[cluster32u1] t_str[QD_READ_KEYS] nid[1] clid[0x4911CB91]
th 4 tm 755946187:      msgnum[3] length[0] type[5] incn[1227607463] error[0] v[1.0]
th 4 tm 755946194:      CW::quorum_read_keys(cluster32u1) nid=1
th 4 tm 755946196:      quorum_read_keys(cluster32u1) registration_number=0, reservation_number=0, req=64
th 4 tm 755946199:      cluster32u1: readKeysInternal: len=512, data_len = 0
th 4 tm 755946201: QSS: sending msg=4f338, datalen=512, socket =5...
th 4 tm 755946207: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 755946209:      nodeid[1] on socket[5]
th 4 tm 755946287: CW(cluster32u1): Receive on sock 5, client 1...
th 4 tm 755946291:      cluster[cluster32u1] t_str[QD_CLOSE] nid[1] clid[0x4911CB91]
th 4 tm 755946294:      msgnum[4] length[0] type[15] incn[1227607463] error[0] v[1.0]
th 4 tm 755946297: CW::quorum_Close(cluster32u1) called for nid=1.
th 4 tm 755946299: QSS: sending msg=4f338, datalen=0, socket =5...
th 4 tm 755946304: CW(cluster32u1): detach closes sock 5 for client 1...
th 4 tm 755946312: CW(cluster32u1): Waiting for incoming messages...
th 1 tm 755950414: QSS:accepting connection on port 9000 for socket 5
th 1 tm 755950420: QS:: accept_connection IPv4
th 1 tm 755950422: QS: Accepting connection... 
th 1 tm 755950424: QS: Waiting for initial messages... 
th 1 tm 755950426:      idx[3]socket[5]
th 1 tm 755950444:      cluster[cluster32u1] t_str[QD_OPEN] nid[2] clid[0x4911CB91]
th 1 tm 755950446:      msgnum[1] length[0] type[1] incn[1227541816] error[0] v[1.0]
th 1 tm 755950453: QS: Accepting connection... 
th 4 tm 755950458: CW::quorum_open(cluster32u1) new_device=1 nid=2
th 4 tm 755954340: QSS: sending msg=4f338, datalen=0, socket =5...
th 4 tm 755954347: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 755954350:      nodeid[2] on socket[5]
th 4 tm 755954472: CW(cluster32u1): Receive on sock 5, client 2...
th 4 tm 755954479:      cluster[cluster32u1] t_str[QD_READ_RESERVATIONS] nid[2] clid[0x4911CB91]
th 4 tm 755954481:      msgnum[2] length[0] type[3] incn[1227541816] error[0] v[1.0]
th 4 tm 755954485:      CW::quorum_read_reservations(cluster32u1) nid=2
th 4 tm 755954488: QSS: sending msg=4f338, datalen=0, socket =5...
th 4 tm 755954496: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 755954499:      nodeid[2] on socket[5]
th 4 tm 755954638: CW(cluster32u1): Receive on sock 5, client 2...
th 4 tm 755954642:      cluster[cluster32u1] t_str[QD_READ_KEYS] nid[2] clid[0x4911CB91]
th 4 tm 755954644:      msgnum[3] length[0] type[5] incn[1227541816] error[0] v[1.0]
th 4 tm 755954647:      CW::quorum_read_keys(cluster32u1) nid=2
th 4 tm 755954649:      quorum_read_keys(cluster32u1) registration_number=0, reservation_number=0, req=64
th 4 tm 755954652:      cluster32u1: readKeysInternal: len=512, data_len = 0
th 4 tm 755954654: QSS: sending msg=4f338, datalen=512, socket =5...
th 4 tm 755954659: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 755954661:      nodeid[2] on socket[5]
th 4 tm 755954786: CW(cluster32u1): Receive on sock 5, client 2...
th 4 tm 755954790:      cluster[cluster32u1] t_str[QD_CLOSE] nid[2] clid[0x4911CB91]
th 4 tm 755954793:      msgnum[4] length[0] type[15] incn[1227541816] error[0] v[1.0]
th 4 tm 755954797: CW::quorum_Close(cluster32u1) called for nid=2.
th 4 tm 755954800: QSS: sending msg=4f338, datalen=0, socket =5...
th 4 tm 755954804: CW(cluster32u1): detach closes sock 5 for client 2...
th 4 tm 755954812: CW(cluster32u1): Waiting for incoming messages...
th 1 tm 756238224: QSS:accepting connection on port 9000 for socket 5
th 1 tm 756238232: QS:: accept_connection IPv4
th 1 tm 756238234: QS: Accepting connection... 
th 1 tm 756238236: QS: Waiting for initial messages... 
th 1 tm 756238238:      idx[3]socket[5]
th 1 tm 756238248:      cluster[cluster32u1] t_str[QD_OPEN] nid[2] clid[0x4911CB91]
th 1 tm 756238251:      msgnum[1] length[0] type[1] incn[1227541816] error[0] v[1.0]
th 1 tm 756238257: QS: Accepting connection... 
th 4 tm 756238263: CW::quorum_open(cluster32u1) new_device=1 nid=2
th 4 tm 756242119: QSS: sending msg=4f338, datalen=0, socket =5...
th 4 tm 756242128: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756242131:      nodeid[2] on socket[5]
th 4 tm 756246468: CW(cluster32u1): Receive on sock 5, client 2...
th 4 tm 756246478:      cluster[cluster32u1] t_str[QD_READ_KEYS] nid[2] clid[0x4911CB91]
th 4 tm 756246480:      msgnum[2] length[0] type[5] incn[1227541816] error[0] v[1.0]
th 4 tm 756246484:      CW::quorum_read_keys(cluster32u1) nid=2
th 4 tm 756246486:      quorum_read_keys(cluster32u1) registration_number=0, reservation_number=0, req=2
th 4 tm 756246489:      cluster32u1: readKeysInternal: len=16, data_len = 0
th 4 tm 756246491: QSS: sending msg=4f338, datalen=16, socket =5...
th 4 tm 756246499: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756246501:      nodeid[2] on socket[5]
th 4 tm 756246552: CW(cluster32u1): Receive on sock 5, client 2...
th 4 tm 756246556:      cluster[cluster32u1] t_str[QD_REGISTER] nid[2] clid[0x4911CB91]
th 4 tm 756246558:      msgnum[3] length[0] type[8] incn[1227541816] error[0] v[1.0]
th 4 tm 756246562: CW::quorum_register(cluster32u1) nid=2
th 4 tm 756246564:      quorumRegister(cluster32u1) quorum_info->registered[2] = 0x4911cb9100000002
th 4 tm 756246566:              registered[2]=0x4911cb9100000002
th 4 tm 756246596:              registration_number=1 reservation_number=0, new_device=0, owner=0
th 4 tm 756250481: QSS: sending msg=4f338, datalen=0, socket =5...
th 4 tm 756250489: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756250492:      nodeid[2] on socket[5]
th 4 tm 756250536: CW(cluster32u1): Receive on sock 5, client 2...
th 4 tm 756250543:      cluster[cluster32u1] t_str[QD_READ_RESERVATIONS] nid[2] clid[0x4911CB91]
th 4 tm 756250545:      msgnum[4] length[0] type[3] incn[1227541816] error[0] v[1.0]
th 4 tm 756250549:      CW::quorum_read_reservations(cluster32u1) nid=2
th 4 tm 756250552:      cluster32u1: readKeysInternal: len=8, data_len = 0
th 4 tm 756250554: QSS: sending msg=4f338, datalen=8, socket =5...
th 4 tm 756250559: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756250562:      nodeid[2] on socket[5]
th 4 tm 756250612: CW(cluster32u1): Receive on sock 5, client 2...
th 4 tm 756250616:      cluster[cluster32u1] t_str[QD_RESERVE] nid[2] clid[0x4911CB91]
th 4 tm 756250618:      msgnum[5] length[0] type[2] incn[1227541816] error[0] v[1.0]
th 4 tm 756250627: CW::quorum_reserve(cluster32u1) nid=2
th 4 tm 756250630:              registered[2]=0x4911cb9100000002
th 4 tm 756250633:              reserved[2]=0x4911cb9100000002
th 4 tm 756250635:              registration_number=1 reservation_number=1, new_device=0, owner=2
th 4 tm 756254077: QSS: sending msg=4f338, datalen=0, socket =5...
th 4 tm 756254084: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756254087:      nodeid[2] on socket[5]
th 4 tm 756255783: CW(cluster32u1): Receive on sock 5, client 2...
th 4 tm 756255790:      cluster[cluster32u1] t_str[QD_READ_KEYS] nid[2] clid[0x4911CB91]
th 4 tm 756255793:      msgnum[6] length[0] type[5] incn[1227541816] error[0] v[1.0]
th 4 tm 756255796:      CW::quorum_read_keys(cluster32u1) nid=2
th 4 tm 756255798:      quorum_read_keys(cluster32u1) registration_number=1, reservation_number=1, req=2
th 4 tm 756255801:      cluster32u1: readKeysInternal: len=16, data_len = 1
th 4 tm 756255803: QSS: sending msg=4f338, datalen=16, socket =5...
th 4 tm 756255811: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756255813:      nodeid[2] on socket[5]
th 4 tm 756255891: CW(cluster32u1): Receive on sock 5, client 2...
th 4 tm 756255895:      cluster[cluster32u1] t_str[QD_READ_RESERVATIONS] nid[2] clid[0x4911CB91]
th 4 tm 756255898:      msgnum[7] length[0] type[3] incn[1227541816] error[0] v[1.0]
th 4 tm 756255901:      CW::quorum_read_reservations(cluster32u1) nid=2
th 4 tm 756255903:      cluster32u1: readKeysInternal: len=8, data_len = 1
th 4 tm 756255905: QSS: sending msg=4f338, datalen=8, socket =5...
th 4 tm 756255910: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756255912:      nodeid[2] on socket[5]
th 4 tm 756255955: CW(cluster32u1): Receive on sock 5, client 2...
th 4 tm 756255959:      cluster[cluster32u1] t_str[QD_PREEMPT] nid[2] clid[0x4911CB91]
th 4 tm 756255961:      msgnum[8] length[0] type[4] incn[1227541816] error[0] v[1.0]
th 4 tm 756255964: CW::quorum_preempt(cluster32u1) nid=2
th 4 tm 756255967: CW::quorum_register(cluster32u1) nid=2
th 4 tm 756255968:       Key exists
th 4 tm 756255972:              registered[2]=0x4911cb9100000002
th 4 tm 756255974:              reserved[2]=0x4911cb9100000002
th 4 tm 756255977:              registration_number=1 reservation_number=1, new_device=0, owner=2
th 4 tm 756259460: CW::quorum_reserve(cluster32u1) nid=2
th 4 tm 756259464:              ++ preempt: reserve returned 0
th 4 tm 756259466: QSS: sending msg=4f338, datalen=0, socket =5...
th 4 tm 756259472: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756259474:      nodeid[2] on socket[5]
th 1 tm 756267649: QSS:accepting connection on port 9000 for socket 11
th 1 tm 756267653: QS:: accept_connection IPv4
th 1 tm 756267655: QS: Accepting connection... 
th 1 tm 756267657: QS: Waiting for initial messages... 
th 1 tm 756267658:      idx[3]socket[11]
th 1 tm 756267677:      cluster[cluster32u1] t_str[QD_OPEN] nid[1] clid[0x4911CB91]
th 1 tm 756267680:      msgnum[1] length[0] type[1] incn[1227607463] error[0] v[1.0]
th 1 tm 756267685: QS: Accepting connection... 
th 4 tm 756267688: CW::quorum_open(cluster32u1) new_device=0 nid=1
th 4 tm 756267696: QSS: sending msg=4f338, datalen=0, socket =11...
th 4 tm 756267701: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756267704:      nodeid[1] on socket[11]
th 4 tm 756267706:      nodeid[2] on socket[5]
th 4 tm 756272738: CW(cluster32u1): Receive on sock 11, client 1...
th 4 tm 756272744:      cluster[cluster32u1] t_str[QD_READ_KEYS] nid[1] clid[0x4911CB91]
th 4 tm 756272746:      msgnum[2] length[0] type[5] incn[1227607463] error[0] v[1.0]
th 4 tm 756272750:      CW::quorum_read_keys(cluster32u1) nid=1
th 4 tm 756272752:      quorum_read_keys(cluster32u1) registration_number=1, reservation_number=1, req=2
th 4 tm 756272755:      cluster32u1: readKeysInternal: len=16, data_len = 1
th 4 tm 756272757: QSS: sending msg=4f338, datalen=16, socket =11...
th 4 tm 756272762: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756272764:      nodeid[1] on socket[11]
th 4 tm 756272766:      nodeid[2] on socket[5]
th 4 tm 756272817: CW(cluster32u1): Receive on sock 11, client 1...
th 4 tm 756272820:      cluster[cluster32u1] t_str[QD_REGISTER] nid[1] clid[0x4911CB91]
th 4 tm 756272825:      msgnum[3] length[0] type[8] incn[1227607463] error[0] v[1.0]
th 4 tm 756272828: CW::quorum_register(cluster32u1) nid=1
th 4 tm 756272830:      quorumRegister(cluster32u1) quorum_info->registered[1] = 0x4911cb9100000001
th 4 tm 756272832:              registered[1]=0x4911cb9100000001
th 4 tm 756272834:              registered[2]=0x4911cb9100000002
th 4 tm 756272836:              reserved[2]=0x4911cb9100000002
th 4 tm 756272839:              registration_number=2 reservation_number=1, new_device=0, owner=2
th 4 tm 756276168: QSS: sending msg=4f338, datalen=0, socket =11...
th 4 tm 756276176: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756276179:      nodeid[1] on socket[11]
th 4 tm 756276181:      nodeid[2] on socket[5]
th 4 tm 756276223: CW(cluster32u1): Receive on sock 11, client 1...
th 4 tm 756276229:      cluster[cluster32u1] t_str[QD_READ_RESERVATIONS] nid[1] clid[0x4911CB91]
th 4 tm 756276232:      msgnum[4] length[0] type[3] incn[1227607463] error[0] v[1.0]
th 4 tm 756276235:      CW::quorum_read_reservations(cluster32u1) nid=1
th 4 tm 756276240:      cluster32u1: readKeysInternal: len=8, data_len = 1
th 4 tm 756276242: QSS: sending msg=4f338, datalen=8, socket =11...
th 4 tm 756276248: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756276250:      nodeid[1] on socket[11]
th 4 tm 756276252:      nodeid[2] on socket[5]
th 4 tm 756277747: CW(cluster32u1): Receive on sock 11, client 1...
th 4 tm 756277752:      cluster[cluster32u1] t_str[QD_READ_KEYS] nid[1] clid[0x4911CB91]
th 4 tm 756277754:      msgnum[5] length[0] type[5] incn[1227607463] error[0] v[1.0]
th 4 tm 756277757:      CW::quorum_read_keys(cluster32u1) nid=1
th 4 tm 756277759:      quorum_read_keys(cluster32u1) registration_number=2, reservation_number=1, req=2
th 4 tm 756277761:      cluster32u1: readKeysInternal: len=16, data_len = 2
th 4 tm 756277763: QSS: sending msg=4f338, datalen=16, socket =11...
th 4 tm 756277768: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756277770:      nodeid[1] on socket[11]
th 4 tm 756277772:      nodeid[2] on socket[5]
th 4 tm 756277838: CW(cluster32u1): Receive on sock 11, client 1...
th 4 tm 756277842:      cluster[cluster32u1] t_str[QD_READ_RESERVATIONS] nid[1] clid[0x4911CB91]
th 4 tm 756277844:      msgnum[6] length[0] type[3] incn[1227607463] error[0] v[1.0]
th 4 tm 756277847:      CW::quorum_read_reservations(cluster32u1) nid=1
th 4 tm 756277849:      cluster32u1: readKeysInternal: len=8, data_len = 1
th 4 tm 756277851: QSS: sending msg=4f338, datalen=8, socket =11...
th 4 tm 756277856: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756277858:      nodeid[1] on socket[11]
th 4 tm 756277860:      nodeid[2] on socket[5]
th 4 tm 756283130: CW(cluster32u1): Receive on sock 5, client 2...
th 4 tm 756283134:      cluster[cluster32u1] t_str[QD_READ_KEYS] nid[2] clid[0x4911CB91]
th 4 tm 756283136:      msgnum[9] length[0] type[5] incn[1227541816] error[0] v[1.0]
th 4 tm 756283140:      CW::quorum_read_keys(cluster32u1) nid=2
th 4 tm 756283142:      quorum_read_keys(cluster32u1) registration_number=2, reservation_number=1, req=2
th 4 tm 756283144:      cluster32u1: readKeysInternal: len=16, data_len = 2
th 4 tm 756283160: QSS: sending msg=4f338, datalen=16, socket =5...
th 4 tm 756283166: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756283168:      nodeid[1] on socket[11]
th 4 tm 756283170:      nodeid[2] on socket[5]
th 4 tm 756283236: CW(cluster32u1): Receive on sock 5, client 2...
th 4 tm 756283240:      cluster[cluster32u1] t_str[QD_READ_RESERVATIONS] nid[2] clid[0x4911CB91]
th 4 tm 756283242:      msgnum[10] length[0] type[3] incn[1227541816] error[0] v[1.0]
th 4 tm 756283245:      CW::quorum_read_reservations(cluster32u1) nid=2
th 4 tm 756283247:      cluster32u1: readKeysInternal: len=8, data_len = 1
th 4 tm 756283249: QSS: sending msg=4f338, datalen=8, socket =5...
th 4 tm 756283254: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756283256:      nodeid[1] on socket[11]
th 4 tm 756283258:      nodeid[2] on socket[5]
th 4 tm 756283317: CW(cluster32u1): Receive on sock 5, client 2...
th 4 tm 756283321:      cluster[cluster32u1] t_str[QD_PREEMPT] nid[2] clid[0x4911CB91]
th 4 tm 756283327:      msgnum[11] length[0] type[4] incn[1227541816] error[0] v[1.0]
th 4 tm 756283331: CW::quorum_preempt(cluster32u1) nid=2
th 4 tm 756283333: CW::quorum_register(cluster32u1) nid=2
th 4 tm 756283335:       Key exists
th 4 tm 756283337:              registered[1]=0x4911cb9100000001
th 4 tm 756283338:              registered[2]=0x4911cb9100000002
th 4 tm 756283341:              reserved[2]=0x4911cb9100000002
th 4 tm 756283343:              registration_number=2 reservation_number=1, new_device=0, owner=2
th 4 tm 756286913: CW::quorum_reserve(cluster32u1) nid=2
th 4 tm 756286917:              ++ preempt: reserve returned 0
th 4 tm 756286920: QSS: sending msg=4f338, datalen=0, socket =5...
th 4 tm 756286926: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756286928:      nodeid[1] on socket[11]
th 4 tm 756286930:      nodeid[2] on socket[5]
th 4 tm 756290745: CW(cluster32u1): Receive on sock 11, client 1...
th 4 tm 756290751:      cluster[cluster32u1] t_str[QD_READ_KEYS] nid[1] clid[0x4911CB91]
th 4 tm 756290754:      msgnum[7] length[0] type[5] incn[1227607463] error[0] v[1.0]
th 4 tm 756290760:      CW::quorum_read_keys(cluster32u1) nid=1
th 4 tm 756290762:      quorum_read_keys(cluster32u1) registration_number=2, reservation_number=1, req=2
th 4 tm 756290764:      cluster32u1: readKeysInternal: len=16, data_len = 2
th 4 tm 756290766: QSS: sending msg=4f338, datalen=16, socket =11...
th 4 tm 756290772: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756290774:      nodeid[1] on socket[11]
th 4 tm 756290776:      nodeid[2] on socket[5]
th 4 tm 756290830: CW(cluster32u1): Receive on sock 11, client 1...
th 4 tm 756290834:      cluster[cluster32u1] t_str[QD_READ_RESERVATIONS] nid[1] clid[0x4911CB91]
th 4 tm 756290836:      msgnum[8] length[0] type[3] incn[1227607463] error[0] v[1.0]
th 4 tm 756290840:      CW::quorum_read_reservations(cluster32u1) nid=1
th 4 tm 756290842:      cluster32u1: readKeysInternal: len=8, data_len = 1
th 4 tm 756290844: QSS: sending msg=4f338, datalen=8, socket =11...
th 4 tm 756290848: CW(cluster32u1): Waiting for incoming messages...
th 4 tm 756290851:      nodeid[1] on socket[11]
th 4 tm 756290854:      nodeid[2] on socket[5]
th 1 tm 807983357: QSS:accepting connection on port 9000 for socket 12
th 1 tm 807983365: QS:: accept_connection IPv4
th 1 tm 807983368: QS: Accepting connection... 
th 1 tm 807983370: QS: Waiting for initial messages... 
th 1 tm 807983371:      idx[3]socket[12]
th 1 tm 807983380:      cluster[cmd_clqs] t_str[QD_STATUS] nid[0] clid[0x00000000]
th 1 tm 807983383:      msgnum[0] length[0] type[11] incn[0] error[0] v[1.0]
th 1 tm 807983389: QS: Accepting connection... 
th 2 tm 807983392: QS: Processing Get Status request...
th 2 tm 807983407: QSS: sending msg=4f338, datalen=876, socket =12...

c-220ra-3-epar03# pstack 5970
5970:   /usr/cluster/lib/sc/scqsd -d /var/scqsd -p 9000
-----------------  lwp# 1 / thread# 1  --------------------
 ff1465c4 pollsys  (4cf20, 3, 0, 0)
 ff0e1b34 poll     (4cf20, 3, ffffffff, 3571ba38, 3b9ac800, 2c400) + 7c
 00015ca8 __1cNquorum_serverRwait_for_requests6M_v_ (4ca60, 4cf20, 4cf20, 4f338, ffffffff, 1) + f8
 00014408 main     (2a400, ffbffdf4, 2c400, 2c400, 79, 3) + 124
 00013ea0 _start   (0, 0, 0, 0, 0, 0) + 108
-----------------  lwp# 2 / thread# 2  --------------------
 ff145898 lwp_park (0, 0, 0)
 ff13f850 cond_wait_queue (4ce98, 4ce80, 0, 0, 0, 0) + 28
 ff13fdd0 cond_wait (4ce98, 4ce80, 0, ff3a2400, ff171840, 0) + 10
 ff13fe0c pthread_cond_wait (4ce98, 4ce80, 0, 1000, 0, 0) + 8
 00016840 __1cNquorum_serverRget_quorum_status6M_v_ (0, 2c470, 2b400, 2c400, 2, 4cee8) + 5c
 000167d4 __1cNquorum_serverNstatus_thread6Fpv_1_ (4ca60, fed7c000, 0, 0, 167d0, 1) + 4
 ff1457f8 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 3 / thread# 3  --------------------
 ff145bd4 nanosleep (febfbf10, febfbf08)
 0001566c __1cNquorum_serverVsignal_handler_thread6Fpv_1_ (0, febfc000, 0, 0, 1563c, 278c00) + 30
 ff1457f8 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 4 / thread# 4  --------------------
 ff1465c4 pollsys  (4fbc0, 3, 0, 0)
 ff0e1b34 poll     (4fbc0, 3, ffffffff, fec50400, 4fb70, 0) + 7c
 00017710 __1cOcluster_workerQprocess_messages6M_v_ (4f440, 4f540, 4f450, 4fbc8, 3, 3) + f4
 00016ff0 __1cOcluster_workerDrun6Fpv_1_ (4f440, feafc000, 0, 0, 16fec, 1) + 4
 ff1457f8 _lwp_start (0, 0, 0, 0, 0, 0)

Documentation

Man pages :

scqsd (1M)

scqsd.conf (4)

clquorumserver, clqs (1CL)

scconf_quorum_dev_quorum_server (1M)

clquorum, clq (1CL)

Miscellaneous - Configuration Information

Default server port 9000

Default quorum dir. /var/scqsd

Daemons startup file /etc/scqsd/scqsd.conf

Command location /usr/cluster/bin/{clqs|clquorumserver}

Server location /usr/cluster/lib/sc/scqsd

Miscellaneous - CCR Entries

cluster.quorum_devices.2.name   d11
cluster.quorum_devices.2.state  enabled
cluster.quorum_devices.2.properties.votecount   1
cluster.quorum_devices.2.properties.gdevname    /dev/did/rdsk/d11s2
cluster.quorum_devices.2.properties.path_1      enabled
cluster.quorum_devices.2.properties.path_2      enabled
cluster.quorum_devices.2.properties.access_mode scsi2
cluster.quorum_devices.2.properties.type        scsi2
cluster.quorum_devices.1.name   qs
cluster.quorum_devices.1.state  enabled
cluster.quorum_devices.1.properties.votecount   1
cluster.quorum_devices.1.properties.gdevname    qs
cluster.quorum_devices.1.properties.type        quorum_server
cluster.quorum_devices.1.properties.hostname    c-220ra-3-epar03
cluster.quorum_devices.1.properties.qshost      10.16.80.92
cluster.quorum_devices.1.properties.port        9000
cluster.quorum_devices.1.properties.path_1      enabled
cluster.quorum_devices.1.properties.path_2      enabled

New Features in 3.2U2 

The following feature have been added  :

- Software Quorum
- Quorum Monitoring
- Automated Online/Offline of Quorum Devices

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed
About

Jean-Christophe Lamoure

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
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
   
       
Today