NexentaStor provides Storage Appliance API (SA-API) and supporting software development kits (SDK) intended for different developer communities and target platforms. SA-API is universally used by all appliance's services to monitor and manage all aspects of functionality.
The more storage becomes a common good, the more storage must be integrated in organizational processes (new user joins the company, a home directory on a server share is created, a snapshot and backup service is scheduled). The idea behind the SA-API is seeing storage as a service, with ZFS as a strong backend. To meet those requirements, we are working on making the API as accessible, flexible and developer-friendly as possible. Your feedback is greatly appreciated!
Select from the links below to download the API, SDKs and related developer resources.
NexentaStor SDK for Unix
The NexentaStor Software Development Kit (SDK) for Unix Operating System is intended for software developers and users of the NexentaStor appliance.
The SDK can be used to take a full advantage of the NexentaStor capabilities, which include unlimited incremental backups or 'snapshots', snapshot mirroring (replication), block-level mirroring ('CDP'), integrated search, and the inherent virtualization, performance, thin provisioning and ease of use of the ZFS file system. The entire suite of the appliance's capabilities is available via Storage Appliance API (SA-API).
The appliance itself is available for download as a VMware pre-installed image as well as CD image that can be installed on a "bare-metal" x86/64 hardware platform. Please make sure to check the appliance's version: the SDK requires 1.0.5 or later.
To develop SA-API applications using this NexentaStor SDK, the following is additionally required:
For details and guidance on getting started, please consult the READ ME file included with the SDK.
NexentaStor Storage Appliance API (SA-API)
This API reference provides comprehensive information allowing to build new and extend existing management services, management clients and applications on top of NexentaStor.
Storage Appliance API (SA-API) uses RPC-like D-Bus protocol that employes TCP/IP transport. D-Bus is a powerful and flexible inter-process communication (IPC) mechanism that allows: for the service providers - to register the provided services, and for the clients - to lookup on the network and use the provided services in a location-independent way. NexentaStor leverages D-Bus to provide universal and comprehensive API to manage and monitor all aspects of the appliance's operation. For more information on dbus visit the D-Bus Project Homepage. There are many good introductions and tutorials available on the web, including for instance this D-Bus Tutorial.
Since SA-API provides a higher level abstraction on top of D-Bus, knowledge of these materials is, however, not a prerequisite. SA-API makes it easy to create new, or modify existing applications in C or C++, Perl, Python or Ruby. More language specific SA-API extensions may be added in the future.
The API provides access to the appliance's management objects and services. The appliance's management object hierarchy includes: lun, volume, folder, snapshot, network, network interface, network service, storage service, indexer, zvol, statistic collector, fault trigger, reporter, and others. Each object implements and publishes a part of the API, which makes the latter a by-product of two interrelated but still distinctly separate driving "forces": the appliance's object taxonomy and the required functionality of the 2nd tier NAS.
All client management applications use SA-API to monitor and administer the appliance. This ensures consistent view of the appliance from all clients, transactional behavior of all management administrative and monitoring operations, and easy third-party integrations. The currently existing management clients include: management console (NMC) and web GUI (Nexenta Management View a.k.a. NMV), fault triggers and storage services, statistic collectors and daily/weekly reporters. All of them execute management operations first by acquiring an object proxy, and second, by calling one of the object's APIs. The SA-API supports many-to-many operation, in the sense that it allows to communicate to multiple statically bound or dynamically discovered appliances on the Internet/Intranet, and at the same time supports multi-user access to any given appliance.
SA-API has bindings for C, C++, Perl, Python and Ruby:
The API can be used to take the full advantage of the NexentaStor capabilities, including unlimited incremental backups or 'snapshots', snapshot mirroring (replication), block level mirroring ('CDP'), integrated search, and the inherent virtualization, performance, thin provisioning and more. The following block diagram shows Nexenta Management Server - the sole provider of the API - and some of its clients.
NexentaStor SCSI Target API
View the NexentaStor SCSI Target API document.
If you agree to these terms, please proceed to download the NexentaStor SDKs above.