User Tools

Site Tools


opensaf

Project Name:

  • Proposed name for the project: OpenSAF
  • Proposed name for the repository: opensaf

Project description:

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:

  • The Hardware Platform Interface (HPI) abstracts away the differences between hardware implementations. It provides a uniform programmatic interface to hardware features.
  • The Application Interface Specification (AIS) specifies an interface for applications that require services from the service availability middleware such as availability management, messaging, and state replication services.

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:

  • Availability Management Framework (AMF) – High availability and workload management framework with robust support (in conjunction with other AIS services) for the full fault management lifecycle (detection, isolation, recovery, repair, and notification). Supports 2N, N+M, N-way, N-way Active and ‘No Redundancy’ redundancy models.
  • Cluster Membership Service (CLM) – Determines whether a node is healthy enough to be a part of the cluster. Provides mechanism to track the cluster nodes by interacting with PLM for tracking the status of underlying OS/hardware.
  • Checkpoint Service (CKPT) – For saving application states and incremental updates that can be used to restore a service during failover or switchover.
  • Event Service (EVT) – Provides a publish-subscribe messaging model that can be used for keeping applications and management entities in sync about events happening in the cluster.
  • Information Model Management Service (IMM) – Provides a means to define and manage middleware and application’s configuration and state information in the form of managed objects and their corresponding attributes. Configuration changes are handled as transactions to ensure consistency of configuration data. Supports persistence of configuration data.
  • Lock Service (LCK) – Supports a distributed lock service model with support for shared locks and exclusive locks.
  • Log Service (LOG) – Means for recording (in log files) the functional changes happening in the cluster, with support for logging in diverse log record formats. Not for debugging or error tracking. Supports logging of alarms and notifications occurring in the cluster.
  • Messaging Service (MSG) – Supports cluster wide messaging mechanism with multiple sender – single receiver as well as message-group mechanisms.
  • Notification Service (NTF) – Provides a producer/subscriber model for system management notifications to enable fault handling. Used for alarm and fault notifications with support for recording history for fault analysis. Supports notification formats of ITU-T X.730, X.731, X.733, X.736 recommendations.
  • Platform Management Service (PLM) – Provides a mechanism to configure a logical view of the underlying hardware (FRU) and the OS. Provides a mechanism to track the status of the OS, the hardware (FRU) and to perform administrative operations in coordination with the OpenSAF services and applications.
  • Software Management Framework (SMF) – Support for automated in-service upgrade of application, middleware and OS across the cluster.

OpenSAF Architecture:

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:

  • Core services – AMF, CLM, IMM, LOG, NTF
  • Optional services – EVT, CKPT, LCK, MSG, PLM, SMF

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:

  • C/C++
  • Java bindings (for AMF and CLM services)
  • Python bindings

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

Developer Infrastructure Tools

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 releases

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.

Scope:

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

Testability:

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.

Documentation:

The following are the relevant OpenSAF documentation:

  • For quick reference, READMEs exist in the source code for all OpenSAF services.

License:

The OpenSAF code is currently under LGPL v2.1 license, but is prepared to adopt the Apache 2.0 license.

Committers and Contributors:

  • Mathi.naickan@oracle.com
  • Jonas.arndt@hpe.com
  • Anders.widell@ericsson.com

Planned Deliverables:

All OpenSAF source code, test suites, and documentation shall be migrated to git and gerrit.

Proposed Release Schedule:

Can become a part of OPNFV C release.

References:

Key Project Facts

Project Name: OpenSAF (opensaf)
Repo name: opensaf
Lifecycle State: Proposal
Primary Contact: Mathi.naickan@oracle.com, Jonas.arndt@hpe.com, Anders.Widell@ericsson.com
Project Lead: TBD
Jira Project Name: OpenSAF
Jira Project Prefix: [OpenSAF]
mailing list tag [OpenSAF]
Committers:
Mathi.naickan@oracle.com
Jonas.arndt@hpe.com
Anders.widell@ericsson.com

Link to TSC approval: TBD
Link to approval of additional submitters: TBD

opensaf.txt · Last modified: 2016/03/07 21:19 by Jonas Arndt