The OpenSAF project (launched in 2008) is an open source project that implements a high availability (HA) middleware solution based on Service Availability Forum specifications.
The Service Availability Forum has specified application programming interfaces for the base platform middleware primarily in two areas:
HPI isolates the specifics of the underlying hardware to make it possible to run the same software on different hardware. Similarly, the AIS interface provides a common high-availability interface to middleware implementations, to make it possible to change the middleware implementation without application impact. The AIS also provides industry standard functionality for building highly available systems.
The following is the list of SA Forum’s AIS services that have been implemented by OpenSAF:
The OpenSAF architecture is distributed and runs in a cluster of logical nodes. All of the OpenSAF services either have 3-Tier or 2-Tier architecture. In the 3-Tiered architecture an OpenSAF service is partitioned into a service Director, a service Node-Director and an Agent. The Director is the part of an OpenSAF service with central service intelligence. Typically it is a process on the controller node. The Node Directors co-ordinate node scoped service activities such as messaging with its central Director and its local Agents. The Agent provides service capabilities available to clients by way of a (shared) linkable library that exposes well defined service APIs to application processes. Agents typically talk to their service Node Directors or Servers.
The OpenSAF services are modularly classified as below:
The optional services can be enabled or disabled during build/packaging of OpenSAF.
OpenSAF can be configured to use TCP or TIPC as the underlying transport. Nodes can be dynamically added/deleted to/from the OpenSAF cluster at run time. OpenSAF cluster scales well up several hundred nodes.
OpenSAF supports the following language bindings for the AIS interface APIs:
OpenSAF provides command line tools and utilities for management of the OpenSAF cluster and applications.
The modular architecture enables addition of new services as well as the adaptation of the existing services. All OpenSAF services are designed to support in-service upgrades out of the box.
It is possible to add support for additional management interfaces on top of the existing modular architecture (For e.g.:- SNMP, NETCONF, REST, HTTP, RPC).
Detailed OpenSAF architecture information is available at http://sourceforge.net/p/opensaf/documentation/ci/default/tree/OpenSAF_Overview_PR.odt
The OpenSAF project is currently hosted on SourceForge - http://sourceforge.net/projects/opensaf/
The project uses mercurial for revision control. Developers and users interact using SourceForge’s tickets system and mailing lists (and whenever necessary, IRC channels for technical discussions).
OpenSAF has made 10 major releases and about twice as many maintenance releases to date with the total number of changesets contributed being ~ 7076 in those releases.
OpenSAF is generally proven to work on the following Linux distributions – CentOS, Debian, MontaVista, RHEL, SUSE, Wind River.
OpenSAF is also generally proven to work on the following hardware platforms – ATCA, HP-CLASS, HP-Proliant, xTCA and IBM Blade Centre using the OpenHPI service.
OpenSAF runs seamlessly in a virtualized environment and is generally proven to work on the following hypervisor technologies: Docker containers, KVM, Xen, VirtualBox, VMware.
While OpenSAF currently addresses the majority of the requirements identified by the HA Project (https://wiki.opnfv.org/_media/ha_requirement.pdf) we aim to continue to work in close collaboration with the HA project to further enhance OpenSAF to address any currently missing, and in the future identified, gaps. We will also look at the Doctor and Escalator projects for input to let it influence the OpenSAF Roadmap. OpenSAF is a mature project with many users in different industries and we intend to continue to address these more traditional HA segments in the project.
As the OpenSAF Foundation is looking at winding down, the OpenSAF project is also looking for a new Foundation to support the project as it continues to grow
The OpenSAF source code distribution includes test suites that are based on a mix of tetware (an open source test framework) based and Google unit test framework based.
The OpenSAF source code distribution also includes a simulated User Mode Linux (UML) cluster environment for OpenSAF. The UML cluster is by default configured to build and quick start a 5 node OpenSAF cluster. This environment is ideal for running API tests, function tests or for evaluation purposes.
The following are the relevant OpenSAF documentation:
The OpenSAF code is currently under LGPL v2.1 license, but is prepared to adopt the Apache 2.0 license.
All OpenSAF source code, test suites, and documentation shall be migrated to git and gerrit.
Can become a part of OPNFV C release.
Project Name: OpenSAF (opensaf)
Repo name: opensaf
Lifecycle State: Proposal
Primary Contact: Mathi.email@example.com, Jonas.firstname.lastname@example.org, Anders.Widell@ericsson.com
Project Lead: TBD
Jira Project Name: OpenSAF
Jira Project Prefix: [OpenSAF]
mailing list tag [OpenSAF]
Link to TSC approval: TBD
Link to approval of additional submitters: TBD