# 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.

NOTE:

- 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

- Refer to SMS documentation for a detailed description of the API.

- Refer to SMS and Backup Application Development documentation for recommendations to developers and a description of recent changes done in SMS. This document has relevant references to the API documentation and samples.

- Refer to Demo Engine How To for details on the Demo Engine sample for NetWare.

  Refer to Demo Engine How To on Linux, for details on the Demo Engine sample for Linux.

- Refer to TSATEST readme for NetWare, for details on the TSATEST sample for NetWare.

  Refer to TSATEST readme for Linux, for details on the TSATEST sample for Linux.

- To read or print the documentation, Adobe Acrobat Reader 4.0 or later is required. For a free download, see the Adobe site.

### 5.2 News Groups

For a discussion on SMS, a newsgroup is available at: news://developer-forums.novell.com/novell.devsup.sms

## 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.

### 6.2 TSATEST

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

## 8.0 Legal Notices

Novell, Inc. makes no representations or warranties with respect to the contents or use of this documentation, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. Further, Novell, Inc. reserves the right to revise this publication and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes.

Further, Novell, Inc. makes no representations or warranties with respect to any software, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. Further, Novell, Inc. reserves the right to make changes to any and all parts of Novell software, at any time, without any obligation to notify any person or entity of such changes.

Any products or technical information provided under this Agreement may be subject to U.S. export controls and the trade laws of other countries. You agree to comply with all export control regulations and to obtain any required licenses or classification to export, re-export, or import deliverables. You agree not to export or re-export to entities on the current U.S. export exclusion lists or to any embargoed or terrorist countries as specified in the U.S. export laws. You agree to not use deliverables for prohibited nuclear, missile, or chemical biological weaponry end uses. Please refer to the Novell International Trade Services Web page for more information on exporting Novell software. Novell assumes no responsibility for your failure to obtain any necessary export approvals.

Copyright © 2008 Novell, Inc. All rights reserved. No part of this publication may be reproduced, photocopied, stored on a retrieval system, or transmitted without the express written consent of the publisher.

Novell, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual property rights may include one or more of the U.S. patents listed on the Novell Legal Patents Web page and one or more additional patents or pending patent applications in the U.S. and in other countries.

For Novell trademarks, see the Novell Trademark and Service Mark list.

All third-party trademarks are the property of their respective owners.