Hi Jim, I assume the following, please confirm: - Service Units(SUs) running on Node-A and Node-B are in 2N redundancy models. - They are multiple Service Groups(SGs) of 2N redundancy, configured with one SU on Node-A and another SUs on Node-B. - SGs have only two SUs, that means there are no spare Service Units(SUs) configured on any other nodes. - SUs configured on Node-A has higher ranks than that of Node-B(Or at least this is what is primarily requirement for what you want to achieve).
There could be few ways to achieve that based on the following: Case 1: I assume that Node-A and Node-B are only two nodes in the Cluster i.e. it is only two nodes Cluster. They(Node-A and Node-B) can form either of the following Cluster topology: 1.1 Node-A and Node-B are both controllers Or 1.2 Node-A is controller and Node-B is payload(or vice-versa). In both of these cases, power cycle both nodes simultaneously will cause Cluster reset. In such cases, you can use the following options to achieve 'biasing the node' for Active assignments: - Cluster Startup Timer(saAmfClusterStartupTimeout) - Administrative states of Node-A and Node-B - Administrative states of SUs(hosted on Node-A and Node-B) You can configure saAmfClusterStartupTimeout as 10 seconds. You can use either of the following based on your convenience: - When Cluster has come up and running the timer of saAmfClusterStartupTimeout(10 seconds) i.e. before Cluster Timer expiry, then issue node lock command on Node-B. After Cluster Timer expires, Amf will only give assignments to SUs of Node-A(For automation, you can figure it out based on notifications or any other ways like imm walkthrough, etc.), you can then issue admin command on Node-B to unlock. [You can automate it in various ways.] OR - You can issue admin lock commands on all the SUs hosted on Node-B when Cluster timer is running i.e. before Cluster Timer expiry. After Cluster Timer expires, Amf will only give assignments to SUs of Node-A(For automation, you can figure it out based on notifications or any other ways like imm walkthrough, etc.), you can then issue admin commands on SUs hosted on Node-B to unlock. [You can automate it in various ways.] Case 2: I assume that Node-A and Node-B are two payload nodes in the Cluster i.e. Cluster have other controllers and payloads. In this case, Cluster is up and running even when Node-A and Node-B are power recycled. In such cases, you can use the following options to achieve 'biasing the node' for Active assignments: - Administrative states of Node-A and Node-B - Administrative states of SUs(hosted on Node-A and Node-B) You can use either of the following based on your convenience: - When you power cycle both nodes simultaneously, then issue node lock command on Node-B. After both nodes come up, Amf will only give assignments to SUs of Node-A(For automation, you can figure it out based on notifications or any other ways like imm walkthrough, etc.), you can then issue admin command on Node-B to unlock. [You can automate it in various ways.] OR - When you power cycle both nodes simultaneously, then you can issue SU lock commands on all the SUs hosted on Node-B. After both nodes come up, Amf will only give assignments to SUs of Node-A(For automation, you can figure it out based on notifications or any other ways like imm walkthrough, etc.), you can then issue admin commands on SUs hosted on Node-B to unlock. [You can automate it in various ways.] Case 3: In either of Case 1 and Case 2, you can use SG lock and unlock. - In case of Case 1(Cluster reset), when cluster comes up and running Cluster Timer, then before the timer expiry, you can issue SG lock. After timer expiry, you can issue admin unlock. Amf will give assignments of SUs of Node-A as Active and SUs of Node-B as Standby based on SUs ranks. - In case of Case 2, when nodes are power cycled, then issue SG lock. After then comes up, you can issue node unlock. Amf will give assignments of SUs of Node-A as Active and SUs of Node-B as Standby based on SUs ranks. Case 4: In case of Case 2, Case 2 and Case 3, you can implement a philosophy of 'delayed start' of SUs of Node-B. This is in assumption that you want to make Node-B as Standby during such cases of contention. This will not harm from High Availability perspective as there is always other Active and it is only when Node-B comes up. After it comes up, then HA is not disrupted because SUs are up and running. Please note that you are using delayed start of SUs instantiation and not the assignments. But, this has disadvantage, when Node-A doesn't comes up at all; because SUs at Node-B will come with delayed time and availability for that time is delayed. For strict node based assignments systems like in Safety Critical Systems or even in Fail Safe Systems(where it is desired for a particular node to be ideally be Standby and takes up Active role only when things are not working fine on the main Active node and then takes the measures for safety/fail-safety), there are few other ways that you can think of in implementing similar logics in your applications(not recommended though), when to declare SUs Instantiated to Amf at Node-B. Hope it helps! Thanks -Nagendra High Availability Solutions www.hasolutions.in cont...@hasolutions.in Hyderabad, India: +91-9866424860 | Delaware, USA: +1 508-422-7725 -----Original Message----- From: Carroll, James R [mailto:james.r.carr...@lmco.com] Sent: 31 January 2019 23:31 To: opensaf-users@lists.sourceforge.net Subject: [users] question on active assignments Hi all, We are using OpenSAF 5.2.0, and have the following situation: 1. Two redundant nodes, Node A, and Node B. 2. Both nodes are in the same cluster 3. Both nodes have identical components running on them. 4. When we power cycle both nodes simultaneously, some of the components on Node A are active, and some of the components on Node B are active. 5. We understand that this is in accordance with SAF spec Question: We would like to "bias" the Nodes, so that all the ACTIVES are assigned to Node A, and all the STANDBYS are assigned to Node B. Does anyone know a way to accomplish this, if it is even possible? We did review the OpenSAF documentation regarding AutoAdjust, but this feature is not implemented. Any suggestions would be greatly appreciated. Thanks. Jim _______________________________________________ Opensaf-users mailing list Opensaf-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-users _______________________________________________ Opensaf-users mailing list Opensaf-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-users