Part 9 – Configuring CES Protocol Nodes and Failover

For anyone coming from NetApp, CES nodes are the filer heads, and the VIP is like a LIF (the floating data IP).

I’ve stood up 2 VM; s at each site which is going to act as as our ces nodes., each VM has 3 NIC; s on it. mgmt, Scale daemon, and CES, NFS,SMB traffic on it and we need the CES nodes to run on the daemon network 172.16.13.X

In this blog we add the CES nodes (protocol nodes) with the Spectrum Scale install toolkit and we will attempt to do a failover/failback of the LIF interface

vmmgmtdaemonces
sitea-ces01172.16.11.15172.16.13.15172.16.15.15
sitea-ces02172.16.11.16172.16.13.16172.16.15.16
siteb-ces01172.16.12.25172.16.14.25172.16.16.25
siteb-ces02172.16.12.26172.16.14.26172.16.16.26

Deploy all the VM’s and attach 3 NIC’s on it as per above VLAN

Still as root on sitea-mgmt01, check that root can SSH to the CES nodes without a password. The key should already be there from the template

ssh -o BatchMode=yes -o StrictHostKeyChecking=accept-new root@sitea-ces01 hostname
ssh -o BatchMode=yes -o StrictHostKeyChecking=accept-new root@sitea-ces02 hostname

Each CES node must also know the host key of every node so login to sitea-ces01.

ssh root@sitea-ces01
ssh -o StrictHostKeyChecking=accept-new sitea-mgmt01.lab.internal hostname
ssh -o StrictHostKeyChecking=accept-new sitea-nsd01.lab.internal hostname
ssh -o StrictHostKeyChecking=accept-new sitea-nsd02.lab.internal hostname
ssh -o StrictHostKeyChecking=accept-new sitea-ces01.lab.internal hostname
ssh -o StrictHostKeyChecking=accept-new sitea-ces02.lab.internal hostname

Each CES node must also know the host key of every node so login to sitea-ces02 a well.

ssh root@sitea-ces02
ssh -o StrictHostKeyChecking=accept-new sitea-mgmt01.lab.internal hostname
ssh -o StrictHostKeyChecking=accept-new sitea-nsd01.lab.internal hostname
ssh -o StrictHostKeyChecking=accept-new sitea-nsd02.lab.internal hostname
ssh -o StrictHostKeyChecking=accept-new sitea-ces01.lab.internal hostname
ssh -o StrictHostKeyChecking=accept-new sitea-ces02.lab.internal hostname

Adding protocol nodes

For adding protocol nodes via spectrum scale took kit we use -p option

  • -p = Protocol node (CES: NFS, SMB, S3, floating IPs)
  • -q = Quorum node
  • -m =Manager node
  • -n =NSD server
  • -q = admin node
  • -g -gui server

Run ./spectrumscale node list to check current status of all nodes.

For adding protocol nodes via spectrum scale took kit we use -p option and add both our nodes

./spectrumscale node add sitea-ces01.lab.internal -p
./spectrumscale node add sitea-ces02.lab.internal -p

Configure CES

Now we will use our cesSharedroot filesystem we created earlier. This small partition holds the info about protocol node mounts, export definitions etc and without the ces nodes can’t do a failover so CES keeps its cluster-wide state in a small Scale file system that every protocol node mounts

./spectrumscale config protocols -f cesSharedRoot -m /ibm/cesSharedRoot

We will now use two floating IP’s known as CES pool so this acts as a load balancer and just the VIP Is exposed out so NFS clients can be served

./spectrumscale config protocols -e 172.16.15.100,172.16.15.101

Set the shared root to our cesSharedroot FS

./spectrumscale config protocols -f cesSharedRoot -m /gpfs/cesSharedRoot

Enable NFS

./spectrumscale config protocols -e 172.16.15.100,172.16.15.101

Check the result

./spectrumscale node list

Install

Let’s now run a precheck and commit the changes in our toolkit to live configuration

./spectrumscale install --precheck

Run the install

./spectrumscale install

Check the result

./spectrumscale node list

To check whether the install landed well we just run

 mmgetstate -a

Check stats of cluster

mmclscluster

This shows the CES1 and CES2 are now running in our management network 172.16.11.X however we should be running it on the deamon network 172.16.13.X so lets change it

Stop GPFS on the CES nodes only

mmshutdown -N sitea-ces01.lab.internal,sitea-ces02.lab.internal

Shutdown Cluster

mmshutdown -a

Move them to the daemon network using mmchnode

mmchnode --daemon-interface=sitea-ces01-d.lab.internal -N sitea-ces01.lab.internal
mmchnode --daemon-interface=sitea-ces02-d.lab.internal -N sitea-ces02.lab.internal

Start them again

mmstartup -a

Check the cluster status

mmgetstate -a & mmlscluster

The above output shows that we have switched to daemon network 172.16.13.X

Deploy it via toolkit

./spectrumscale deploy --precheck
./spectrumscale deploy 

Verification

Check service status of CES

mmces state show -a

Check the CES nodes

mmces node list

To check ces addresses

mmces address list

Check services on ces

mmces service list -a

CES Failover test

mmces service list -a

Suspend CES01

mmces node suspend -N sitea-ces01.lab.internal

Check CES failover

mmces address list

This shows our CES01 is now in a suspended state and CES02 has taken over

CES Resume test

So, let’s bring back the node to CES

mmces node resume -N sitea-ces01.lab.internal

Check CES failover

So this now shows back CES nodes are back

mmces address list

Setting CES coverage

mmces address policy even-coverage

We can also run a rebalance on CES to ensure nodes get equal traffic

mmces address move --rebalance

Run mmlsconfig to see the whole cluster configuration

mmlsconfig 

Run a health check

mmgetstate -a; mmhealth cluster show; mmces address list; mmces state show -a

That’s it about configuring CES nodes and the procedure to failover CES

(Visited 6 times, 1 visits today)

By Ash Thomas

Ash Thomas is a seasoned IT professional with extensive experience as a technical expert, complemented by a keen interest in blockchain technology.