The material I've been using is:
- Solaris 10 U5 (5/08).
- Sun Cluster 3.2 U1.
- Logical Domains Manager 1.0.2
- 2 x T2000
I've setup on each T2000:
- 1 Control Domain.
- 1 Guest Domain.
So in this case, the cluster is between two guest domains of different physical systems.
I've used a Quorum Server installed on a small Ultra 5 as the "quorum device".
There's no shared storage so I've setup an Scalable Apache with an external NFS.
Remember that we need two virtual switches inside the guest domains to create the internal network of the Cluster.
Here we go!:
FIRST T2000
root@t2000:~> ldm ls
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
primary active -n-cv SP 4 4G 0.9% 20m
delibes active -n--- 5000 16 2G 0.0% 7m
root@t2000:~> ldm ls -l delibes
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
delibes active -n--- 5000 16 2G 0.1% 8m
SOFTSTATE
Solaris running
VCPU
VID PID UTIL STRAND
0 4 0.6% 100%
1 5 0.0% 100%
2 6 0.0% 100%
3 7 0.0% 100%
4 8 0.0% 100%
5 9 0.0% 100%
6 10 0.0% 100%
7 11 0.0% 100%
8 12 0.1% 100%
9 13 0.0% 100%
10 14 0.0% 100%
11 15 0.0% 100%
12 16 0.1% 100%
13 17 0.0% 100%
14 18 0.0% 100%
15 19 0.0% 100%
MAU
CPUSET
(4, 5, 6, 7)
MEMORY
RA PA SIZE
0x8000000 0x108000000 2G
VARIABLES
auto-boot?=false
boot-device=/virtual-devices@100/channel-devices@200/disk@0:a disk net
keyboard-layout=US-English
NETWORK
NAME SERVICE DEVICE MAC
vnet0 primary-vsw0@primary network@0 00:14:4f:f8:7c:4b
vnet1 primary-vsw1@primary network@1 00:14:4f:f8:fb:f4
vnet2 primary-vsw2@primary network@2 00:14:4f:fb:89:9e
Three interfaces (it should be four):
- vnet0: public interface
- vnet1 and vnet2: cluster private network.
DISK
NAME VOLUME TOUT DEVICE SERVER
vdisk0 vol0@primary-vds0 disk@0 primary
globaldev globaldev@primary-vds0 disk@1 primary
Both disks are virtualized files. I used globaldev "disk" as the mountpoint for /globaldevices
VCONS
NAME SERVICE PORT
curso primary-vcc0@primary 5000
SECOND T2000:
root@t2000-2:~> ldm ls
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
primary active -n-cv SP 4 4G 0.6% 21m
melena active -n--- 5000 28 3G 0.0% 5m
root@t2000-2:~> ldm ls -l cardiologa
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
cardiologa active -n--- 5000 28 3G 0.0% 6m
SOFTSTATE
Solaris running
VCPU
VID PID UTIL STRAND
0 4 3.7% 100%
1 5 0.0% 100%
2 6 0.0% 100%
3 7 0.0% 100%
4 8 0.0% 100%
5 9 0.0% 100%
6 10 0.0% 100%
7 11 0.0% 100%
8 12 1.7% 100%
9 13 0.0% 100%
10 14 0.0% 100%
11 15 0.0% 100%
12 16 2.7% 100%
13 17 0.0% 100%
14 18 0.0% 100%
15 19 0.0% 100%
16 20 0.0% 100%
17 21 0.0% 100%
18 22 0.0% 100%
19 23 0.0% 100%
20 24 0.0% 100%
21 25 0.0% 100%
22 26 0.0% 100%
23 27 0.0% 100%
24 28 0.0% 100%
25 29 0.0% 100%
26 30 0.0% 100%
27 31 0.0% 100%
MEMORY
RA PA SIZE
0x8000000 0x108000000 3G
VARIABLES
auto-boot?=false
keyboard-layout=Spanish
NETWORK
NAME SERVICE DEVICE MAC
vnet0 primary-vsw0@primary network@0 00:14:4f:fa:28:88
vnet1 primary-vsw1@primary network@1 00:14:4f:f9:39:76
vnet2 primary-vsw2@primary network@2 00:14:4f:fa:8a:a8
DISK
NAME VOLUME TOUT DEVICE SERVER
vdisk0 vol0@primary-vds0 disk@0 primary
globaldev globaldev@primary-vds0 disk@3 primary
VCONS
NAME SERVICE PORT
cardiologa primary-vcc0@primary 5000
The first guest domain:
root@delibes:/> cat /etc/hosts
#
# Internet host table
#::1 localhost
127.0.0.1 localhost
10.164.17.25 delibes loghost
10.164.17.35 cardiologa
root@cardiologa:/> cat /etc/hosts
#
# Internet host table
#
::1 localhost
127.0.0.1 localhost
10.164.17.35 cardiologa loghost
10.164.17.25 delibes
root@delibes:/> dladm show-link
vnet0 type: non-vlan mtu: 1500 device: vnet0
vnet1 type: non-vlan mtu: 1500 device: vnet1
vnet2 type: non-vlan mtu: 1500 device: vnet2
root@cardiologa:/> dladm show-link
vnet0 type: non-vlan mtu: 1500 device: vnet0
vnet1 type: non-vlan mtu: 1500 device: vnet1
vnet2 type: non-vlan mtu: 1500 device: vnet2
root@delibes:/> scinstall
*** Main Menu ***
Please select from one of the following (*) options:
* 1) Create a new cluster or add a cluster node
2) Configure a cluster to be JumpStarted from this install server
3) Manage a dual-partition upgrade
4) Upgrade this cluster node
5) Print release information for this cluster node
* ?) Help with menu options
* q) Quit
Option: 1
*** New Cluster and Cluster Node Menu ***
Please select from any one of the following options:
1) Create a new cluster
2) Create just the first node of a new cluster on this machine
3) Add this machine as a node in an existing cluster
?) Help with menu options
q) Return to the Main Menu
Option: 1
*** Create a New Cluster ***
This option creates and configures a new cluster.
You must use the Java Enterprise System (JES) installer to install the
Sun Cluster framework software on each machine in the new cluster
before you select this option.
If the "remote configuration" option is unselected from the JES
installer when you install the Sun Cluster framework on any of the new
nodes, then you must configure either the remote shell (see rsh(1)) or
the secure shell (see ssh(1)) before you select this option. If rsh or
ssh is used, you must enable root access to all of the new member
nodes from this node.
Press Control-d at any time to return to the Main Menu.
Do you want to continue (yes/no) [yes]? yes
>>> Typical or Custom Mode <<<
This tool supports two modes of operation, Typical mode and Custom. For most clusters, you can use Typical mode. However, you might need to select the Custom mode option if not all of the Typical defaults can be applied to your cluster. For more information about the differences between Typical and Custom modes, select the Help option from the menu.
Please select from one of the following options:
1) Typical
2) Custom
?) Help
q) Return to the Main Menu
Option [1]: 1
>>> Cluster Name <<<
Each cluster has a name assigned to it. The name can be made up of any characters other than whitespace. Each cluster name should be unique within the namespace of your enterprise.
What is the name of the cluster you want to establish []? ldomcluster
>>> Cluster Nodes <<<
This Sun Cluster release supports a total of up to 16 nodes. Please list the names of the other nodes planned for the initial cluster configuration. List one node name per line.
When finished, type Control-D:
Node name: delibes
Node name: cardiologa
Node name (Control-D to finish): ^D
This is the complete list of nodes: delibes cardiologa
Is it correct (yes/no) [yes]? yes
Attempting to contact "cardiologa" ... done Searching for a remote configuration method ... done
The Sun Cluster framework is able to complete the configuration process without
remote shell access. Press Enter to continue:
>>> Cluster Transport Adapters and Cables <<<
You must identify the cluster transport adapters which attach this node to
the private cluster interconnect.
For node "delibes",
What is the name of the first cluster transport adapter (help) []? vnet1
Will this be a dedicated cluster transport adapter (yes/no) [yes]? yes
Searching for any unexpected network traffic on "vnet1" ... done
Verification completed. No traffic was detected over a 10 second sample period.
For node "delibes",
What is the name of the second cluster transport adapter (help) []? vnet2
Searching for any unexpected network traffic on "vnet2" ... done
Verification completed. No traffic was detected over a 10 second sample period.
>>> Quorum Configuration <<<
Every two-node cluster requires at least one quorum device. By default, scinstall will select and configure a shared SCSI quorum disk device for you. This screen allows you to disable the automatic selection and configuration of a quorum device. The only time that you must disable this feature is when ANY of the shared storage in your cluster is not qualified for use as a Sun Cluster quorum device. If your storage was purchased with your cluster, it is qualified. Otherwise, check with your storage vendor to determine whether your storage device is supported as Sun Cluster quorum device. If you disable automatic quorum device selection now, or if you intend to use a quorum device that is not a shared SCSI disk, you must instead use clsetup(1M) to manually configure quorum once both nodes have joined the cluster for the first time.
Do you want to disable automatic quorum device selection (yes/no) [no]? yes
I did not set automatic quorum device selection, as we'll use a quorum server as the "quorum device".
Is it okay to create the new cluster (yes/no) [yes]? yes
During the cluster creation process, sccheck is run on each of the new cluster nodes. If sccheck detects problems, you can either interrupt the process or check the log files after the cluster has been established.
Interrupt cluster creation for sccheck errors (yes/no) [no]? no
Cluster Creation Log file - /var/cluster/logs/install/scinstall.log.921
Testing for "/globaldevices" on "delibes" ... done
Testing for "/globaldevices" on "cardiologa" ... done
Starting discovery of the cluster transport configuration.
The following connections were discovered:
delibes:vnet1 switch1 cardiologa:vnet1 delibes:vnet2 switch2 cardiologa:vnet2
Completed discovery of the cluster transport configuration.
Started sccheck on "delibes".
Started sccheck on "cardiologa".
sccheck failed for "delibes".
sccheck failed for "cardiologa".
The sccheck command failed on both of the nodes.
Refer to the log file for details. The name of the log file is /var/cluster/logs/install/scinstall.log.921.
Configuring "cardiologa" ... done
Rebooting "cardiologa" ...
Now everything is setup but we still need to set the quorum server. After this I used the clsetup command to remove "install flag" mode to complete the installation.
root@delibes:/> clq add -t quorum_server -p qshost=node12 -p port=9000 node12
root@delibes:/> clq status
=== Cluster Quorum ===
--- Quorum Votes Summary ---
Needed Present Possible
------ ------- --------
2 3 3
--- Quorum Votes by Node ---
Node Name Present Possible Status
--------- ------- -------- ------
cardiologa 1 1 Online
delibes 1 1 Online
--- Quorum Votes by Device ---
Device Name Present Possible Status
----------- ------- -------- ------
node12 1 1 Online
root@delibes:/> scstat
------------------------------------------------------------------
-- Cluster Nodes --
Node name Status
--------- ------
Cluster node: cardiologa Online
Cluster node: delibes Online
------------------------------------------------------------------
-- Cluster Transport Paths --
Endpoint Endpoint Status
-------- -------- ------
Transport path: cardiologa:vnet2 delibes:vnet2 Path online
Transport path: cardiologa:vnet1 delibes:vnet1 Path online
------------------------------------------------------------------
-- Quorum Summary --
Quorum votes possible: 3
Quorum votes needed: 2
Quorum votes present: 3
-- Quorum Votes by Node --
Node Name Present Possible Status
--------- ------- -------- ------
Node votes: cardiologa 1 1 Online
Node votes: delibes 1 1 Online
-- Quorum Votes by Device --
Device Name Present Possible Status
----------- ------- -------- ------
Device votes: node12 1 1 Online
------------------------------------------------------------------
-- Device Group Servers --
Device Group Primary Secondary
------------ ------- ---------
-- Device Group Status --
Device Group Status
------------ ------
-- Multi-owner Device Groups --
Device Group Online Status
------------ -------------
------------------------------------------------------------------
------------------------------------------------------------------
-- IPMP Groups --
Node Name Group Status Adapter Status
--------- ----- ------ ------- ------
IPMP Group: cardiologa sc_ipmp0 Online vnet0 Online
IPMP Group: delibes sc_ipmp0 Online vnet0 Online
------------------------------------------------------------------
As a test, I've also set up an Apache service (a scalable one) using an external NFS server as the shared storage.
root@delibes:/> clrg status
=== Cluster Resource Groups ===
Group Name Node Name Suspended Status
---------- --------- --------- ------
sa-rg delibes No Online
cardiologa No Offline
web-rg delibes No Online
cardiologa No Online
Just to check that the network is properly configured:
root@delibes:/> ifconfig -a
lo0: flags=20010008c9
inet 127.0.0.1 netmask ff000000
vnet0: flags=9000843
inet 10.164.17.25 netmask ffffff00 broadcast 10.164.17.255
groupname sc_ipmp0
ether 0:14:4f:f8:7c:4b
vnet0:1: flags=1040843
inet 10.164.17.24 netmask ffffff00 broadcast 10.164.17.255
vnet1: flags=1008843
inet 172.16.0.130 netmask ffffff80 broadcast 172.16.0.255
ether 0:14:4f:f8:fb:f4
vnet2: flags=1008843
inet 172.16.1.2 netmask ffffff80 broadcast 172.16.1.127
ether 0:14:4f:fb:89:9e
clprivnet0: flags=1009843
mtu 1500 index 5
inet 172.16.4.2 netmask fffffe00 broadcast 172.16.5.255
ether 0:0:0:0:0:2
Everything seems to work properly, but there are some obscure messages when switching the network from one node to the other:
May 9 15:31:58 cardiologa arp: [ID 994748 kern.notice] ar_query_xmit: Could not find the ace
BTW, these new updates offer a lot of flexibility and security, and the chance to recover cluster environments very fast.