We're looking at Swordfish to see whether it suits our needs, it's quite big and we've only started scratching the surface.
One of our main requirements is to be able to support break/fix workflows, which means:
to report disk health information. We might not only want to report a binary status (healthy/non-healthy), but perhaps more information. Given that there are multiple tools depending on the vendor, how can we report such information. Worst case, is it possible to just pass the tool's stdout to some custom field?
To represent the hardware topology, mainly storage and storage controllers. Our end goal is to present the physical view so that one can physically replace a faulty disk.
To toggle LEDs for specific disks/controllers.
In addition, we'd like to support abstract aggregation and partitioning of storage, e.g. aggregate storage in storage pools and partition into nested units, e.g. like PVs/VGs/LVs in LVM(8).
I believe our questions can be answered by reading the spec and watching the videos, which we're currently going through, but it would be nice if we could get an expert's view whether it's fit for purpose. Also, specific pointers to our questions would be much appreciated.
In the Drive resource, "Status" does show "Health" for that initial green/yellow/red indication. You can also find "Conditions" inside that Status object, which lists out why a drive is not healthy.
Drive resources are very much in the physical view; as a client, you can traverse the ChassisCollection to find all of your containers, and each Chassis resource can have a DriveCollection to list the drives inside of the container. Further, the "PhysicalLocation" property inside the Drive resource shows slot and label information relevant to that particular drive to help a tech locate it in the real world.
Also in the Drive resource is the "LocationIndicatorActive" property, which lets you enable the location indicator function (typically putting the LED into a blinking state to mark the drive).
Other aspects above the physical view should be covered by Swordfish, and Richelle Ahlvers should be able to point you to other information regarding storage provisioning workflows.
Post by Richelle Ahlvers on Jan 25, 2023 15:49:35 GMT
tmakatos - I'd be happy to set up some time to work with you to help you understand the Swordfish materials. The goal of Swordfish is to extend the Redfish ecosystem exactly for the types of things you are looking for. And, of course, only use the parts you need.
For example, much of the break / fix is similar between Redfish and Swordfish, however as storage systems tend to have complex logical hierarchies intertwined with the physical hierarchies (e.g., Storage->Storage Controllers->Storage Pools->CapacitySources->Volumes/FileSystems created from some underlying physical capacity), Swordfish has added some additional considerations for the reporting of break / fix information, using standard properties (in Status - Health vs HealthRollup). However, we do work with Redfish to keep the basic behaviors in sync, simply adding additional guidance for storage systems.
For the LED usage - this is simply a passthrough from Redfish; at this time, we don't have any Swordfish-specific behaviors.