SNIA Swordfish™ Mockups Site

Welcome to the SNIA Swordfish Mockup site.

 

You can use this site to "test drive" a set of static, example Swordfish systems and learn how Swordfish is constructed. Note that the Swordfish mockups are not designed to be an interactive system; they simply provide an overview of the overall Swordfish model, and an example static view of possible configurations.

 

If you want to use these mockups interactively, you can download the same configurations in emulated services from the SNIA docker hub. 

 

The Swordfish mockups show the types of information that can be modeled by a storage system in different configurations. They show the types of information that may be returned in these configurations, but do not represent an actual implementation. There are Swordfish mockups that show four different block storage system instances, as well as one file system.

There are two ways to navigate to each storage system; from Swordfish v1.2.0 forward, you can now find storage systems in a Swordfish service directly from the ServiceRoot in the /Storage collection (/redfish/v1/Storage). If the system has instrumented the value-add StorageServices feature, there will also be a /StorageServices collection at the ServiceRoot.

Note: Mockups conform to Swordfish v1.2.6

Available Mockups

The Swordfish mockups show the types of information that can be modeled by a storage system in different configurations. They show the types of information that may be returned in these configurations, but do not represent an actual implementation. There are Swordfish mockups that show four different block storage system instances, as well as one file system.

The following list provides an index to the various set of mockups. Click on each mockup link to get a description and link to the mockup.
Midrange External Array Mockup

This mockup shows an example of a midrange, iSCSI, external storage system. It shows a small number of instantiated volumes, storage pools, and demonstrates the use of storage groups for mapping and masking. It shows the system directly instantiated in the Storage Collection at the Service Root.

Midrange External Mockups
Midrange External Array with Replication Mockup

This mockup shows an example of a midrange, iSCSI, external storage system with replication.

In addition to the configuration shown in the "Midrange External Mockup", it adds replication in the form of snapshots, and demonstrates the use of consistency groups, and the additional use of storage groups specifically related to replica sets.
Midrange Replication Mockups
Direct-Attach Storage Mockup

This mockup shows an example of a small direct attach configuration, where the storage is attached to a computer system, such as a RAID controller plugged into a server. It shows a small number of instantiated volumes, storage pools, demonstrating a minimal Swordfish configuration in this configuration.
Direct-Attach Storage Mockup
Implementing Telemetry (capacity, performance metrics)

Telemetry (samples on a direct-attach model) mockup

This mockup shows an example of a small direct attach configuration where the telemetry service is enabled, and showing instrumentation of the Swordfish Capacity Metrics templates.
Telemetry Mockups
Service-Based Configuration:
Hosted Service Configuration Mockups

SNIA Swordfish™ Mockups Site
This mockup contains several different systems with different configurations. These are all reflected under the /StorageServices collection.
This mockup set represents a view of what properties are expected to be to be available to vendors to implement, including class of service implemented through underlying lines of service. Note: The mockups do not include accurate representations of the physical components of this system that would normally be represented under the “chassis” hierarchy.

The "Simple1" mockup (./redfish/v1/StorageServices/Simple1/), referred to as the “small mockup”, reflects a small storage system that, while instrumenting class of service, does not have the capability to present the user with class of service controls. It is likely a small external RAID array. This service also demonstrates local replication.

The second mockup, (./redfish/v1/StorageServices/1/), reflects a large enterprise block storage system that presents the user with customized class of service controls as the primary way to configure new block storage. It is likely a large external RAID array, set up in a multi-site DR configuration, with thin-provisioning and other advanced storage configuration features enabled.

The ISC mockup, (./redfish/v1/StorageServices/ISC/), demonstrates a server-attached configuration that instantiates a Storage Service.

The FileService mockup (./redfish/v1/StorageServices/FileService) represents a file server instantiated on top of a block storage system implemented using class of service. Information about the overall file system configuration is in the FileSystem, and individual File Share information is in the FileShare collection.
Service Based Mockups
Implementing Capabilities

NVMe Namespace Creation Capabilities Mockup

This mockup demonstrates usage of Capabilities, showing how capabilities can / should be advertised by implementations.

This example shows some NVMe namespace creation options.
Capabilities Mockups

NVMe and NVMe-oF Configurations

There are multiple mockups for SSD Drives.  One shows the expectation for a typical NVMe drive, conforming to the existing NVMespecifications, which doesn't instrument endurance groups or sets (or instruments a default endurance group / NVM set).  This isreflected in the Redfish/Swordfish schema as "not instrumented" for simplicity, as the corresponding implementation in the drives is,effectively, no functionality as well.  The second mockup shows a drive *with* a single endurance group and a single set.

NVMe SSD Configurations

Simple NVMe SSD Mockup

This mockup follows the Swordfish Integrated Configuration model, as the NVM drive is modeled as a PCI attach, so the mockup shows the drive as a PCI-attached drive connected to a system. Note that the drive can also be found by looking in the /Storage collection to find it.
Simple SSD Mockups
NVMe SSD with Endurance Groups and NVM Sets Mockup

This mockup shares many similarities to the simpler device model, but adds the representation of NVMe Endurance Groups and NVM Sets using the Swordfish StoragePool schema, with additional NVMe specific properties.
SSD with Groups and Set Mockups
JBOF Mockup with NVMe SSDs

SNIA Swordfish™ Mockups Site
This mockup covers a representation of a JBOF ("just a bunch of flash") enclosure and contained drives.

This mockup reflects a PCIe front-end attach configuration with a set of drives.
JBOF Mockups

Configurations including Ethernet attached Drives

Ethernet attach Drive with NVMe-of Attach

This mockup reflects an IP-attached drive configuration, with a single ethernet port configured. It includes a drive configured with a default endurance group and NVM Set, and is instantiated in the Storage Collection off the Service Root.The network configuration is modeled in the Chassis.
Ethernet-Attached Drive Mockups
EBOF Mockup

This mockup covers a representation of a EBOF ("ethernet-attached bunch of flash") enclosure and contained drives. This mockup reflects an Ethernet front-end attach configuration with a set of ethernet-attached drives inside the chassis.
EBOF Mockups

NVMe Complex Devices (e.g., arrays)

Fabric Attach Array Mockup

The fabric attach array mockup shows a representation where the array exposes native NVMe resources for both front-end and internal components.
Fabric-Attach Array Mockups
Opaque Array (NVMe front end) Mockup

The "opaque" array reflects a system with an NVMe front end, but the internal implementation is vendor specific, and not necessarily presented by the vendor (aka "opaque").This mockup shows a system that presents an NVMe front-end but also exposes a SATA drive backend. This could be done to support both FRU management and volume/namespace creation.
Opaque Array / NVMe Front-end Mockups
NVMe/TCP Array Mockups

The NVMe/TCP array mockup shows a representation where the array exposes NVM/TCP resources for the front-end interface.
NVM/TCP Array Mockups

Subsystem (Fabric) Model – NVMe-oF

Fabric-attached subsystem Mockup - Ethernet


This mockup shows a logical/exported NVMe-oF connecting via Ethernet, using the Redfish Fabric model. The fabric model uses the Connection schema to characterize the allowed host information, and Endpoints and Zones to show the network connectivity from the device's perspective.

This mockup also includes NVMeDomains.
NVMeDomains contain a collection of domain members; these can be NVM controllers, endurance groups, NVM sets, or namespaces.
Fabric-attached subsystem Mockup - Ethernet
Fabric-attached subsystem - RDMA

This mockup shows a logical/exported NVMe-oF subsystem with connectivity via RDMA. Connectivity and access rights are represented using the Redfish Fabric model. The fabric model uses the Connection schema to characterize the allowed host information, and Endpoints and Zones to show the network connectivity from the device's perspective.

This mockup also includes NVMeDomains. NVMeDomains contain a collection of domain members; these can be NVM controllers, endurance groups, NVM sets, or namespaces.
Fabric-attached subsystem - RDMA Mockups
NVMe-oF Discovery Controller Mockups

This mockup presents multiple NVM Subsystems.

One subsystem contains a discovery subsystem, with discovery information about the others.

The other subsystems provide pointers to the subsystem containing the discovery controller.
NVMeoF Discovery Controller Mockups
NVMe Smart Metrics

This mockup shows NVMeSMARTMetrics (.../NVMeSMARTMetrics) on the NVMe IO Controller (/redfish/v1/Systems/Sys-1/Storage/SimplestNVMeSSD/Controllers/NVMeIOController).

The NVMeSMARTMetrics object mirrors the NVMeSMARTMetrics log page.

From an implementation perspective, this metric object can be collected and populated with a single log page call on the device.

NVMe SMART Metrics Mockups