nvme to rf/sf model mapping - snia · 2020-03-04 · power management functionality . curtis: this...
TRANSCRIPT
Working Draft: NVMe to RF/SF Model Mapping
2/26/2020
Richelle Ahlvers, BroadcomSSM TWG Chair
© 2020 Storage Networking Industry Association. All Rights Reserved.
Working Draft Disclaimer
The information contained in this publication is subject to change without notice. The SNIA makes no warranty of any kind with regard to this specification, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The SNIA shall not be liable for errors contained herein or for incidental or consequential damages in connection with the furnishing, performance, or use of this specification.
2
© 2020 Storage Networking Industry Association. All Rights Reserved.
Feedback
Suggestions for revisions should be directed to http://www.snia.org/feedback/.
3
© 2020 Storage Networking Industry Association. All Rights Reserved.
TWG Status Disclaimer
This proposal is a snapshot of work in progress by the NVMe Task Force of the SNIA Scalable Storage Management TWG, and does not represent the work of the SSM TWG at this point.Contents are subject to change at any time.
4
© 2020 Storage Networking Industry Association. All Rights Reserved.
Mapped Models and Documented Permutations
Device Model – NVMeSimple SSD
Default Endurance Group / Default SetSingle Endurance Group / Single Set
JBOFModeFabric Attach Array
Subsystem (Fabric) Model – NVMe-oFFabric-attached subsystem presenting logical subsystem, controller, namespace, port and allowed hostSimple SSD with NVMe-oF Attach
Default Endurance Group / Default Set
Add NVMe Domains concept
5
Yellow – TBD Mockups
© 2020 Storage Networking Industry Association. All Rights Reserved.
Aggregate Device Model
6
StorageControllerStorageController
Namespace(NVMe)
Storage Subsystem(NVMe)
I/O Controller(NVMe)
CapacityCapacity Source
SetDefault Set (0)
Default Endurance
Group
Set
or
Namespace(NVMe)Namespace
(NVMe)
Endurance Group
Endurance GroupStoragePool
StoragePool
StoragePoolStoragePool
VolumeVolume
Predictive Storage Failure / SMART Sensors
I/O Controller(NVMe)
NVMe Chassis:Physical Device
Information
1..1
Chassis
M..1
Temperature Sensors
Redfish/Swordfish NVMe
© 2020 Storage Networking Industry Association. All Rights Reserved.
Simple SSD Implementation: Default Endurance Group and Set (Not Implemented)
7
Redfish/Swordfish NVMe
ComputerSystem:(Host Connection)
StorageController
Namespace(NVMe)
Storage Subsystem(NVMe)
I/O Controller(NVMe)
Connected to: (e.g.) Host PCIe Root Complex
Default Set (0)
Default Endurance Group (0)
StoragePool
CapacitySource:StoragePool
Volume
Temperature Sensors
Predictive Storage Failure / SMART Sensors
Physical Element Representation Info
1..1
Chassis:Physical Element Representation
1..1
© 2020 Storage Networking Industry Association. All Rights Reserved.
Simple SSD Implementation: Simple Endurance Group and Set
8
Redfish/Swordfish NVMe
StorageController
Namespace(NVMe)
Storage Subsystem(NVMe)
I/O Controller(NVMe)
Single Set
Single Endurance
GroupStoragePool
CapacitySource:StoragePool
Volume
Temperature Sensors
Predictive Storage Failure / SMART Sensors
I/O Controller(NVMe)
Physical Element Representation Info
1..1
Physical Element Representation
M..1
ComputerSystem:(Host Connection)
Connected to: (e.g.) Host PCIe Root Complex
© 2020 Storage Networking Industry Association. All Rights Reserved.
JBOF
StorageController
Storage Subsystem(NVMe)
I/O Controller(NVMe)
NVMMemory
Set
or
Namespace(NVMe)
Endurance Group
StoragePool
CapacitySource:StoragePool
Volume
Predictive Storage Failure / SMART Sensors
I/O Controller(NVMe)
NVMe Chassis
1..1
Redfish Chassis with NVMe Subsystem
M..1
Temperature Sensors
ComputerSystem:(Host Connection)
Connected to: (e.g.) Host PCIe Root Complex
9
Redfish/Swordfish NVMe
© 2020 Storage Networking Industry Association. All Rights Reserved.
Potential/Proposed New Properties
Storage (Subsystem)Identifiers – used for NQN / NGUID / etc. (unique ids)NVMe-oFANACharacteristics
AccessState: Optimized, NonOptimized, Inacessible, PersistentLoss
StorageController (I/O Controller)"RecommendedArbitrationBurstSize": "0",
ComplexType: "ControllerMultiPathIOandNamespaceSharingCapabilities":"PortCount:" (enum values) "SinglePort", "MultiplePort","ControllerCount": (enum values) "SingleController","MultipleController""ControllerAssociation": (enum values) "SRIOV" "PCIeOrFabric"
"MaximumDataTransferSizeMPSMIN": "5","NVMeVersion": "1.3","OptionalAsynchEventSupported":enums:EnduranceGroupEventAggregateLogLBAStatusInformationNotices,PredictableLatencyEventAggregateLogChangeNoticesAsymmetricNamespaceAccessFirmwareActivationNoticesNamespaceAttributeNoticesChangedNamespaceListLogPage
ComplexType "NVMeControllerAttributes":"ReportsUUIDList""SupportsSQAssociations""ReportsNamespaceGranularity""SupportsKeepAliveTimer"
"SupportsPredictableLatencyMode""SupportsEnduranceGroups""SupportsReadRecoveryLevels""SupportsNVMSets""SupportsExceedingPowerOfNonOperationalState""Supports128BitHostId"
StoragePool (for Endurance Group)StoragePool (for Set)Volume (Namespace)
Map LogicalUnitNumber to NSIdComplexType "NamespaceFeatures"
"SupportsThinProvisioning""SupportsAtomicTransactionSize == Supports
NAWUNandNAWUPFandNACWU""SupportsDeallocatedOrUnwrittenLBError""SupportsNGUIDFieldValue""SupportsIOPerformanceHints == Supports
NPWGandNPWAandNPDGandNPDAandNOWS""NumberLBAFormats"
"MetadataTransferredAtEndOfDataLBA" (bool)
"NVMeVersion": "1.3",
"Identifiers" - Add NGUID, IEEE OUI (subset of EUI) and additional formats for Namespace
10
© 2020 Storage Networking Industry Association. All Rights Reserved.
Ports
StorageControllerStorageController
Storage Subsystem(NVMe)
I/O Controller(NVMe)
CapacityCapacity Source
SetDefault Set (0)
Default Endurance
Group
Set
or Endurance Group
Endurance GroupStoragePool
StoragePool
StoragePoolStoragePool
I/O Controller(NVMe)
NVMe Chassis:Physical Device
Information
1..1
Chassis
Temperature Sensors
Logical Namespace(NVMe-oF)
Logical Port(NVMe-oF)
Allowed Hosts(NVMe-oF)
Logical I/O Controller(NVMe-oF)
1..N
Namespace(NVMe)
Namespace(NVMe)Namespace
(NVMe)Volume
Volume
StorageControllerStorageController
(Controller)
Storage(Subsystem)
VolumeVolume
(Namespace)
StorageGroups(Part / AllowedHosts)
Logical NVM Subsystem(NVMe-oF)
Ports
Endpoint Groups(Used for
AllowedHosts)
1..N
NVMe-oF Model: Subsystem Target View
Endpoints(Used for Ports / Allowed Hosts)
Volume -> capacity source is a storage pool from volumes
or a set of capacity
1..N
NVMe-oF: Subsystem Model
11
Redfish/Swordfish NVMe
© 2020 Storage Networking Industry Association. All Rights Reserved.
Potential/Proposed New Properties
Storage (Subsystem)NQNsAllowedToCreate
DurableNameFormatDurableName
12
© 2020 Storage Networking Industry Association. All Rights Reserved.
New Objects / Schema: Domain
Domains live off ServiceRootDomain
DomainType == NVMe, Fault, Power, Cooling, DomainMembersLinks -> AssociatedDomains
NVMe Specific PropertiesTotalDomainCapacityBytesUnallocatedDomainCapacityBytesMaximumCapacityPerEnduranceGroupBytesAvailableFirmwareImages: []
Version, Vendor, NVMeDeviceType (sample properties, still TBD)
13
© 2020 Storage Networking Industry Association. All Rights Reserved.
Work in progress – potential properties still to be added
14
© 2020 Storage Networking Industry Association. All Rights Reserved.
Additional Properties to Add: SMART
Predictive Storage Failure / SMART Sensors to StorageControllers
Drive uses: <Property Name="FailurePredicted" Type="Edm.Boolean">StatusIndicator set to PredictiveFailureAnalysis
(other values OK/Fail/Rebuild/HotSpare)
In NVMe: Multiple SMART triggers in different objects
Additional SMART triggersPMR UnreliablePower Backup failedMedia in Read onlyOverall subsystem degradedSpare capacity worn outTemperature over critical warning threshold (not a permanent trigger?)
Q: Do these go at the controller or namespace level? How to bundle vs distribute the info? ToDo: Offline investigation / proposal needed
15
© 2020 Storage Networking Industry Association. All Rights Reserved.
Additional Properties to Add
Predictive:<Property Name="PredictedMediaLifeLeftPercent" Type="Edm.Decimal">
In NVMe: Has values at both EnduranceGroup and Subsystem Level
16
Subsystem
Endurance Group
© 2020 Storage Networking Industry Association. All Rights Reserved.
Additional Properties to Add
Look at NVMe power statesRF Power is actual current power state: On/Off/PoweringOn/PoweringOff
NVMe is selecting a profile for acceptable performance ranges supported – needs characterization as advanced power management functionality
Curtis: This is an internal set of properties, don’t see a reason to expose via RF/SF at this point.
Use Redfish Basic Power State info for devices;ToDo: Add a new NVMe Power Profile equivalent model
17
© 2020 Storage Networking Industry Association. All Rights Reserved.
Additional Properties to Add
Deferred to client input:Additional properties for hot plug (since not using drive model)
Q: What properties already exist, and what objects are they in?Properties exist at the PCIe level.Only NVMe level – no properties.
– Request to shutdown may be used to anticipate or prep for a hot plug.– “Surprise removal” – shutdown notification.– Plug-in after surprise – dealt with differently than after a different kind of removal.
Reporting write-cache discarded (due to re-insertion after surprise removal?). Others?
Ask clients more details about what use cases, what properties they are looking for. Hot add / hot remove / prepare for hot plug?
18
© 2020 Storage Networking Industry Association. All Rights Reserved.
Additional Properties to Add
Queue depth reporting -- add to controllerQ: Queue size vs Queue depth?Queue depth not defined in the specQueue size can be reported; negotiated value between host and target. Max value.
19
© 2020 Storage Networking Industry Association. All Rights Reserved.
Additional Properties to Add
LED managementComparison with SES LED mgmt / model
Review RF enhanced LED management proposal (Slawek)
20
© 2020 Storage Networking Industry Association. All Rights Reserved.
Additional Properties to Add
Telemetry / log Data Mapped to RF/SF schema / properties
SMART mapped propertiesVPD Data (partial)
Binary blob pass-throughVendor-unique (pure blob)
– Mapped into OEM ExtensionsBinary blob with NVMe standard defined header VPD Data (partial)
ToDo: Look at standard NVMe telemetry definition to see if / how it can be mapped to RF/SF
21