SNIA Swordfish™

The SNIA Swordfish™ specification helps to provide a unified approach for the management of storage and servers in hyperscale and cloud infrastructure environments, making it easier for IT administrators to integrate scalable solutions into their data centers. SNIA Swordfish is an extension of the DMTF Redfish specification, so the same easy-to-use RESTful interface is used, along with JavaScript Object Notation (JSON) and Open Data Protocol (OData), to seamlessly manage storage equipment and storage services in addition to servers.

SNIA Swordfish is designed to integrate with the technologies used in cloud data center environments and can be used to accomplish a broad range of storage management tasks from the simple to the advanced.

SNIA Swordfish has been designed around management use cases that focus on what IT administrators need to do with storage equipment and storage services in a data center. As a result, the API provides functionality that simplifies the way storage can be allocated, monitored, and managed.

 

Release Date: 
22 March 2021
Version: 
1.2.2

v1.2.2 adds NVMe drive profiles and corresponding details in the NVMe mapping document. It also includes the new Swordfish Property Guide. See included manifest (in the release bundle) for additional change details.

Bundle Component
Files
Swordfish Release Bundle
The Swordfish Release Bundle contains all of the components that comprise the versioned Swordfish Release. Included documents are: the Swordfish Specification, User’s Guide, Error Handling Guide, and NVMe Model Overview and Mapping Guide. Included technical content: Swordfish schema bundle and Swordfish profiles bundle.
ZIP
Swordfish Scalable Storage Management API Specification
Swordfish extends the Redfish Scalable Platforms Management API Specification to define a comprehensive, RESTful API for storage management that addresses block storage, file systems, object storage, and storage network infrastructure.
Swordfish Schema and Registries Bundle
This bundle contains the schemas defined for JSON resources conforming to the Redfish Specification. Each schema definition is available in CSDL (XML), json, and yaml formats. This bundle also contains the standard dictionary files to support Redfish Device Enablement (RDE), as well as the Swordfish registry files.
ZIP
Swordfish Profile Bundle
This bundle contains all the Swordfish profiles. The Swordfish Core Profiles define the set of features and the corresponding detailed profiles define the required functionality to implement Swordfish.
ZIP
Swordfish Scalable Storage Management API User’s Guide
This guide is intended to provide a common repository of best practices, common tasks and education for the users of the Swordfish API.
Swordfish Scalable Storage Management Error Handling Guide
The Swordfish Scalable Storage Management Error Handling Guide provides a summary of the preferred handling of errors and error messages in a Swordfish implementation.
Swordfish NVMe Model Overview and Mapping Guide
The Swordfish NVMe Model Overview and Mapping Guide defines the model to manage NVMe and NVMe-oF storage systems with Redfish and Swordfish. It provides the detailed mapping information between the NVMe, NVMe-oF specifications and the Redfish and Swordfish specifications.
Swordfish Property Guide
The Property Guide provides a listing of the properties used in the Swordfish schema. It is intended primarily for end users and other consumers of Swordfish data to look up property definitions, without requiring a detailed knowledge of the schema as a whole.
Release Date: 
31 October 2020
Version: 
1.2.1c

Specification updates include additional Redfish URI annotations.

Bundle Component
Files
Swordfish Release Bundle
The Swordfish Release Bundle contains all of the components that comprise the versioned Swordfish Release. Included documents are: the Swordfish Specification, User’s Guide, Error Handling Guide, and NVMe Model Overview and Mapping Guide. Included technical content: Swordfish schema bundle and Swordfish profiles bundle.
ZIP
Swordfish Scalable Storage Management API Specification
Swordfish extends the Redfish Scalable Platforms Management API Specification to define a comprehensive, RESTful API for storage management that addresses block storage, file systems, object storage, and storage network infrastructure.
Swordfish Schema and Registries Bundle
This bundle contains the schemas defined for JSON resources conforming to the Redfish Specification. Each schema definition is available in CSDL (XML), json, and yaml formats. This bundle also contains the standard dictionary files to support Redfish Device Enablement (RDE), as well as the Swordfish registry files.
ZIP
Swordfish Profile Bundle
This bundle contains all the Swordfish profiles. The Swordfish Core Profiles define the set of features and the corresponding detailed profiles define the required functionality to implement Swordfish.
ZIP
Swordfish Scalable Storage Management API User’s Guide
This guide is intended to provide a common repository of best practices, common tasks and education for the users of the Swordfish API.
Swordfish Scalable Storage Management Error Handling Guide
The Swordfish Scalable Storage Management Error Handling Guide provides a summary of the preferred handling of errors and error messages in a Swordfish implementation.
Swordfish NVMe Model Overview and Mapping Guide
The Swordfish NVMe Model Overview and Mapping Guide defines the model to manage NVMe and NVMe-oF storage systems with Redfish and Swordfish. It provides the detailed mapping information between the NVMe, NVMe-oF specifications and the Redfish and Swordfish specifications.

Developer Resources

Swordfish Forum
This site contains discussions about the SNIA Swordfish Specification, protocol, profiles and schema. Swordfish feature requests may be submitted here as well.

Swordfish Mockups
This site contains the latest public (static) mockups of SNIA Swordfish, a description of the contents, and pointers to client tools that may be helpful.

SNIA Swordfish Practical Guide
This guide provides a quick-start to implementers who are developing clients and providers for DMTF Redfish® and Swordfish.


Open Source Tools

SNIA’s Storage Management Initiative sponsored the initial development of open source software tools that can help developers start working with Swordfish. These tools are already available in open repositories that are managed by the SNIA SSM TWG on GitHub.

Brief descriptions of these open source software tools are given below. Installation instructions are provided within each tool’s repository, along with basic documentation for users and developers.

Development Tool Description
Swordfish API Emulator

The Swordfish API Emulator can emulate a Swordfish-based system that responds to create, read, update, and delete RESTful API operations to allow developers to model new Swordfish functionality, test clients, demonstrate Swordfish, and do other similar functions.

The Swordfish API Emulator extends the DMTF Redfish Interface Emulator, adding code that supports dynamic interactions with all of the Swordfish schema.

The Swordfish API Emulator code is maintained on GitHub by the SNIA, and the Redfish Interface Emulator code is maintained on GitHub by the DMTF.

Swordfish Basic Web Client

The Swordfish Basic Web Client can connect to one or more Swordfish services (including the Swordfish API Emulator), and present in a web UI frame the entire Redfish and Swordfish hierarchy.

The Swordfish Basic Web Client provides basic capabilities for managing multiple services simultaneously, modifying configurable Properties and adding or removing elements from the service through the web UI.

Swordfish Datadog Sample Dashboard Integration The Swordfish Datadog sample dashboard integration provides a dashboard for the Datadog monitoring service that can connect to a Swordfish service (including the Swordfish emulator), and provides an integration to the Datadog UI. It provides connectivity to a Swordfish service and displays system capacity information trending over time, configured capacity thresholds, and alert information based on crossing those thresholds.
Swordfish PowerBI Sample Dashboard Integration The Swordfish Power BI sample dashboard integration provides a dashboard for the Power BI data center monitoring system that can connect to a Swordfish service (including the Swordfish emulator), and provides an integration to the Power BI UI. It provides connectivity to a Swordfish service and displays system capacity information and configured capacity thresholds.
Swordfish Powershell Toolkit

The PowerShell Toolkit for Swordfish provides a basic framework for querying resources from the SNIA API Emulator.

The SNIASwordFish PowerShell Module can be used with Microsoft Windows, Windows Server, macOS or Linux. Below is an example of a connected SwordFish target being used with macOS and PowerShell for Linux (v6.1).


More Information

Contact the SNIA Swordfish Development Team at storagemanagement@snia.org


Videos