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.
Swordfish 1.2.7 contains the new Swordfish Interoperability Guide, a comprehensive reference guide to the Swordfish-specific extensions to the profile syntax, and a detailed usage guide for Swordfish features and profiles. The Swordfish Features Registry has also been enhanced to support resource-level features. The release also contains new NVMe functionality for NVMe, expanding to include support for Command and Feature Lockdown via a trio of commands: ConfigurationLock, TargetConfigurationLockLevel and ConfigurationLockState.
Swordfish 1.2.7 contains the new Swordfish Interoperability Guide, a comprehensive reference guide to the Swordfish-specific extensions to the profile syntax, and a detailed usage guide for Swordfish features and profiles. The Swordfish Features Registry has also been enhanced to support resource-level features. The release also contains new NVMe functionality for NVMe, expanding to include support for Command and Feature Lockdown via a trio of commands: ConfigurationLock, TargetConfigurationLockLevel and ConfigurationLockState.
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.
Swordfish Containers available on Docker Hub
This site contains downloadable instances of each of the Swordfish mockup configurations, each instantiated in an independent instance of the Swordfish emulator.
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). |
Gofish |
Gofish is a Golang client library for DMTF Redfish and SNIA Swordfish interaction. For an overview of the Golang client, watch this video Golang Support for SNIA Swordfish™ from SDC 2019. |
More Information
- Swordfish School of Videos on YouTube
- Swordfish presentations, webcasts, white papers and more in our Educational Library
- Redfish Developer Hub
- Redfish API Information
- Storage Management Blog
Contact the SNIA Swordfish Development Team at storagemanagement@snia.org
Videos