OpenSAF Architecture & Status

tenchraceΛογισμικό & κατασκευή λογ/κού

14 Ιουλ 2012 (πριν από 5 χρόνια και 1 μήνα)

931 εμφανίσεις

OpenSAF Architecture & Status
Hans Feldt
Ericsson
OpenSAF TCC
4/11/11
Outline

Project and tools architecture

Architectural decisions

Logical architecture

Modular architecture

Deployment architecture

Management architecture

Status & improvements in release 4.1
Users
Developers
Maintainers
Release
Manager
Technical Leadership
Council
-
TLC
Project and Tools
4.0 Architectural Decisions

“The Architecture Release”

IMM used to store configuration data

Close major functional gaps

Use of POSIX APIs

Managed as specified by SAF

Public/external APIs

SAF specified

Modularity
4/11/11
Modular architecture

When
building
OpenSAF, SAF services can be
selected/deselected

Services packaged individually (rpm)

When
installing
OpenSAF, packages can be
selectively installed

OpenSAF’s IMM configuration created based on
installed services with OpenSAF provided tools
Logical Architecture
Management Architecture
Optional
CLM
NTF
LOG
IMM
Log&Trace
MDS
RDE, FM
OpenSAF Infrastructure Services
MBC
AMF
OpenSAF Core
SNMP / Netconf / SOAP / HTTP / RPC / CLI …
Management Systems
Management Daemons
Optional,
Modular,
Pluggable
CM, FM
IMM “CLI”
SMF
Deployment Architecture
Controller Node (Active)
Payload Node 1
Controller Node (Standby)
Payload Node N
State replication
2N
Director
Director
Director
Director
Director
Director
Node
Director
Node
Director
Node
Director
Node
Director
Node
Director
Node
Director
Server
Server
Server
Server
Server
Server
Lib
App
Lib
App
4/11/11
4.1 Status
OpenSAF 4.1

Released March 2011

4.1.1 released May 2011?

4.0 released July 2010 => ~8 months development

Major features:

IMM Improvements

SMF Rollback & API

Alternative transport protocol for internal messaging

AM4J/AMF Agent
Information Model Management
-
Overview

A configuration database for
both
system services
as well as applications

Supports runtime objects whose purpose is to reflect
the
current state

Supports execution of operations on objects, kind of
Remote Procedure Calls …

Classes define the schema for objects
4/11/11
IMM Service Interfaces
SA
-
Forum picture from the IMM specification
Runtime
Object
Configuration
Object
4/11/11
IMM Implementation Overview

A.02 API

RAM based “database” replicated to all nodes

Initially loaded from an XML file

Nodes joining the cluster are “synced”

By default no transactional persistency, dump state
to an XML file after configuration changes

Full transactional persistency implemented by the
“persistent backend”

PBE (disabled by default)
Information Model Management

Improvements in 4.1

Data capacity

400K objects average size 300 bytes

Sync improvements

Model iteration improvements

Schema upgrade

changing class definition

Update of runtime objects concurrently with sync

PBE hardening and adaption to large model, now
production ready
4/11/11
Software Management Framework
-
Overview

SMF orchestrates a
cluster wide
upgrade from one
configuration to another

SMF co
-
operates with AMF to maintain service
availability

Operates on AMF entities

Concepts: upgrade campaign, software bundle,
software repository, software catalog, …
Software Management Framework
-
API

Enables upgrade
-
aware processes

Use cases:

Backup

Process can stop/suspend the upgrade campaign

Functional overview

A process registers a “campaign callback“

A process registers “scope of interest” using a set of filters

Labels are specified in the campaign

When SMF finds a label during campaign execution that
matches a registered filter, it calls the callback
Software Management Framework
-
Rollback

Rollback is a recovery operation to gracefully restore system
state effective at the beginning of a campaign

The
upgrade history
is used to execute actions in reverse
order to undo them

Use cases:

Rollback a successfully executed or suspended campaign while
providing service

Rollback a failed campaign not possible to repair

If campaign takes too long time, suspend and rollback

The system was working ”better” before the upgrade
Java
-
AM4J/AMF Agent

JSR 319
-
Availability Management for Java (AM4J)

New in 4.1 is Java code that implements the
JSR319 specified interfaces …

and map them to the Java mapping for AMF

This means that AMF can be used to control
availability for Java entities

Sailfin is one Java Application server that supports
JSR319
4/11/11
AM4J/AMF Agent

JSR 319
MDS Alternate transport protocol
-
TCP

MDS is an internal communication service that by default
uses TIPC as transport protocol

MDS/TCP support added in 4.1

Opens for use on systems not supporting TIPC or when TIPC
is not preferred

Solaris, <net|free|open>BSD, Windows, RTOS, …

Characteristics:

A bit “slower” than TIPC (<1500B), improving with larger packets

Error detection uses tuned TCP keep alive messages

defaults 2s,
instant detection of process death

roughly the same as TIPC
General Hardening

IMM Persistent Back End, now production ready

Object implementer related

Startup

Restart


4/11/11
Questions?