SMS Developer Components

December 2008

1.0 Introduction

Storage Management Services™ (SMS) is an API framework that applications consume in order to provide a complete backup solution on OES NetWare® and OES Linux. Some important properties of this framework include:

  • SMS exposes a single consistent interface across all file systems and applications on OES NetWare and OES Linux.

  • SMS ensures backward compatibility at all times even while adding new features or interfaces.

  • Backup applications developed using the SMS framework that successfully meet the Novell Labs testing criteria, qualify to use the YES, Tested & Approved™ certification mark.

The SMS framework is implemented by two main components - Storage Management Data Requestor (SMDR) and Target Service Agent (TSA). SMDR defines the API framework and the TSA provides an implementation of the API for a particular target.

2.0 Technical Notes

  • On OES Linux, SMS backs up all POSIX-compliant filesystem attributes supported by the stat structure through the VFS interface.

  • SMS is also capable of backing up rich NSS meta data and data streams (that are not available through the VFS interfaces).

  • The SMS API framework is consistent for NetWare 4.x, 5.x, and 6.x and OES Linux.Thus, a backup application can use the same API set to backup targets on any platform.

  • All binaries in this release are included for convenience of development. They are not meant for deployment in production environments.

3.0 Setting Up the Developer Kit on Linux

The SMS NDK package comprises of:

  • DE and TSATEST sample code: Located at /opt/novell/samples/sms/de and /opt/novell/samples/sms/tsatest respectively.

  • SMS API and recommendation documents: Located at /opt/novell/doc/sms

  • SMS include files: Located at /opt/novell/include/sms.

  • Licence and Readme : Located at /opt/novell/sms.

3.1 Starting SMS

SMS NDK has a dependency on the SMS product rpm.

  1. Download the novell-sms rpm from SMS Developer Components and install it.

    # rpm -ivh novell-sms-1.1.4-13.i586.rpm

    Installing the rpm copies the binaries into /opt/novell/sms/bin, the libraries into /opt/novell/lib and the scripts into /etc/init.d.

  2. Start the SMDR daemon by giving the following command:

    # /etc/init.d/novell-smdrd start

    The file system target service tsafs is autoloaded by smdrd, to load other TSAs or configure TSAs use options provided by smsconfig.

Any backup application that uses SMS can now be run.


  • Root privileges will be necessary to install the novell-sms rpm.

  • Refer smdrd, smsconfig and tsafs manpages for detailed information

  • To uninstall the earlier release NDK, use the sms-config script provided in that release.

  • All binaries in this release are included for convenience of development. They are not meant for deployment in production environments.

4.0 Setting Up the Developer Kit on NetWare

In order to build the Demonstration Engine sample on NetWare, NLM and NetWare Libraries for C (including CLIB and XPlat) has to be downloaded and installed.

To build backup applications with Libraries for C (LibC), download it from NDK download site.

4.1 Starting SMS

To start SMS on NetWare 5.1, execute the following commands:

load smdr

load tsa500

To start SMS on NetWare 6.5, execute the following commands:

load smdr

load tsafs

5.0 Documentation

For more information about SMS you can access the following documentation resources:

5.1 Viewable and Downloadable Documentation

5.2 News Groups

For a discussion on SMS, a newsgroup is available at: news://

6.0 Sample Programs

The following sample programs display some of the features of SMS:

6.1 Demonstration Engine (DE)

The Demonstration Engine (DE) is a sample that demonstrates the uses SMS API to perform simple backup and restore operations. The sample provides a very primitive implementation of a backup application with a view to present concepts and familiarize the developer on usage of SMS API. It also provides an implementation of new features discussed in this developer release to supplement the documentation.

For more information, refer demoengine.html, (for NetWare) and demoengine_linux.html (for Linux) that ships in this developer release.


TSATEST is a utility that reads data sets from a target, and then discards them. This, in effect, is equivalent to a backup system that has an infinite capacity, high performing tape sub-system. TSATEST can thus be used to benchmark backup application performance. TSATEST can also be used to troubleshoot hardware and software bottlenecks.

TSATEST is available as part of the developer kit along with its source which can be treated as the recommended implementation for achieving high performance. For more information, refer tsatest.html (for NetWare) and tsatest_linux.html (for Linux) that ships in this developer release.

7.0 Documentation Conventions

In this documentation, a greater-than symbol (>) is used to separate actions within a step and items in a cross-reference path.

A trademark symbol (®, TM, etc.) denotes a Novell trademark; an asterisk (*) denotes a third-party trademark