Hi Hung, Reviewed the patch. Ack with comments.
comments: If the PBE is configured when HEADLESS feature is enabled, then shared file system, for the sqlite database to be accessible for the cluster(both controllers and payloads). /Neel. On 2016/07/25 04:28 PM, Hung Nguyen wrote: > osaf/services/saf/immsv/README | 2 + > osaf/services/saf/immsv/README.HEADLESS | 72 > +++++++++++++++++++++++++++++++++ > 2 files changed, 74 insertions(+), 0 deletions(-) > > > Add readme for headless feature. > > diff --git a/osaf/services/saf/immsv/README b/osaf/services/saf/immsv/README > --- a/osaf/services/saf/immsv/README > +++ b/osaf/services/saf/immsv/README > @@ -2779,6 +2779,8 @@ provided during absent SC depends on the > of the IMM service, the service provided during SC absence is in essence > only the reading of config data. > > +See: osaf/services/saf/immsv/README.HEADLESS for details. > + > > Add attribute definition flag SA_IMM_ATTR_STRONG_DEFAULT (5.0) > =============================================================== > diff --git a/osaf/services/saf/immsv/README.HEADLESS > b/osaf/services/saf/immsv/README.HEADLESS > new file mode 100644 > --- /dev/null > +++ b/osaf/services/saf/immsv/README.HEADLESS > @@ -0,0 +1,72 @@ > +HEADLESS: Allow IMMNDs to survive SC absence (5.0) > +================================================= > +Prior to this enhancement, absence of both SCs will cause IMMNDs to restart, > +also the cluster will be reboot by AMF. With this feature, IMMNDs on payloads > +continue to provide limited service until an SC is back. > + > + > +CONFIGURATION > +============= > +To enable this feature, IMMSV_SC_ABSENCE_ALLOWED environment variable must be > +set for IMMD (immd.conf) > + > + export IMMSV_SC_ABSENCE_ALLOWED=900 > + > +The value indicates the number of seconds cluster will tolerate SC absence, > +value of zero indicates the feature is disabled. > +See immd.conf for more details. > + > + > +IMMND > +===== > +With headless feature enabled, IMMNDs on payloads now can be coordinator. > That > +can happen even when the cluster doesn't go headless. > + > +For example, the cluster only has one SC and IMMND on SC restarts, one of the > +IMMNDs on payloads will be elected as new coordinator. Without headless > enabled, > +the cluster will not tolerate that situation and a cluster reboot will occur. > + > +Upon receiving the IMMD down event, payload based IMMNDs unregister with MDS > +and then: > +- remove all local clients, > +- discard all implementers, > +- finalize all admin owners, > +- abort all non-critical CCBs. > + > +That means the IMMNDs only keep class definitions and object information in > +their memories during headless. > + > +After cleaning up those things, MDS will be registered again to allow > clients to > +read the objects but only config data can be read because there's currently > no > +OI attached for runtime data. > + > +Other operations with IMM service will get SA_AIS_ERR_TRY_AGAIN during > headless. > +If you retry the APIs on SA_AIS_ERR_TRY_AGAIN, you should retry at least the > +amount of time that you set for IMMSV_SC_ABSENCE_ALLOWED. > + > +If you get SA_AIS_ERR_BAD_HANDLE, you must re-initialize the handles. > + > + > +IMMD > +==== > +After coming back from headless, the active IMMD will wait for the veteran > +IMMNDs to introduce for 3 seconds. If there's no introduction from veteran > IMMND > +within 3 seconds, IMMD will start to load from repository. This is to avoid > the > +race condition where IMMD receives and processes introduce message from the > +local IMMND or a newly joined IMMND before the veteran IMMNDs. > + > +The veteran IMMNDs also include highest fevs, latest id of > implementer/admo/ccb > +in the introduce message to help IMMD restore these counters back to the > state > +right before SC absence. > + > +IMMD then elects one of the veteran IMMNDs as new coordinator and the data is > +sync'ed to the SC based IMMNDs. After that, IMM service becomes fully > functional > +again. > + > + > +HEADLESS and 2PBE > +================= > +Support for absent IMMD is incompatible with 2PBE. If both are configured > then > +2PBE will win and the absence of IMMD feature will be ignored. An error > message > +is printed in this case to the syslog at startup. > + ------------------------------------------------------------------------------ _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
