Standards-based storage management for Dell EMC PowerEdge servers using the iDRAC RESTful API and DMTF Redfish June 2018 Authors Texas Roemer, Test Principal Engineer (Dell EMC Enterprise System Test) Paul Rubin, Sr.
Revisions Date Description June 2018 Initial release The information in this publication is provided “as is.” Dell Inc. makes no representations or warranties of any kind with respect to the information in this publication, and specifically disclaims implied warranties of merchantability or fitness for a particular purpose. Use, copying, and distribution of any software described in this publication requires an applicable software license. Copyright © 2018 Dell Inc. or its subsidiaries.
Contents Revisions.............................................................................................................................................................................2 Executive summary.............................................................................................................................................................4 1 Introduction ...............................................................................................................................
Executive summary The growing scale of cloud- and web-based data center infrastructure is reshaping the requirements of IT administrators world-wide. New approaches to systems management are needed to keep up with the growing and changing market.
1 Introduction Since the inception of the x86 server in the late 1980s, IT administrators have sought the means to efficiently manage a growing number of distributed resources. Industry suppliers have responded by developing management interface standards to support common methods of monitoring and controlling heterogeneous systems.
2 iDRAC RESTful API and DMTF Redfish There are various Out-of-Band (OOB) systems management standards available in the industry today. However, there is no single standard that can be easily used within emerging programming standards, can be readily implemented within embedded systems, and can meet the demands of today’s evolving IT solution models.
2.
3 Redfish 2016 Storage Management APIs With the advent of the Redfish 2016 standards, APIs were established for server storage management.
Example output: @odata.context "/redfish/v1/$metadata#Storage.Storage" @odata.id "/redfish/v1/Systems/System.Embedded.1/Storage/RAID.Integrated.11" @odata.type "#Storage.v1_3_0.Storage" Description "PERC H330 Mini" Drives 0 @odata.id "/redfish/v1/Systems/System.Embedded.1/Storage/Drives/Disk.Bay.0:Enclosure.In ternal.0-1:RAID.Integrated.1-1" 1 @odata.id "/redfish/v1/Systems/System.Embedded.1/Storage/Drives/Disk.Bay.1:Enclosure.In ternal.0-1:RAID.Integrated.1-1" 2 @odata.id "/redfish/v1/Systems/System.
SupportedDeviceProtocols 0 "SAS" 1 "SATA" StorageControllers@odata.count 1 Volumes @odata.id "/redfish/v1/Systems/System.Embedded.1/Storage/RAID.Integrated.11/Volumes" 3.2 Creating a virtual drive (VD) by using Redfish 2016 To create a VD, run a POST command by using the target storage controller URI “redfish/v1/Systems/System.Embedded.1/Storage/{selected storage controller instance ID}/Volumes” with payload required parameters VolumeType and Drives.
2. View storage controller RAID.Slot.6-1 for the detected drives attached to the controller. C:\Python27>CreateVirtualDiskRedfish.py -ip 192.168.0.130 -u root -p calvin -d RAID.Slot.6-1 - Drive(s) detected for RAID.Slot.6-1 – Disk.Bay.7:Enclosure.Internal.0-1:RAID.Slot.6-1 Disk.Bay.9:Enclosure.Internal.0-1:RAID.Slot.6-1 Disk.Bay.0:Enclosure.Internal.0-1:RAID.Slot.6-1 Disk.Bay.1:Enclosure.Internal.0-1:RAID.Slot.6-1 Disk.Bay.2:Enclosure.Internal.0-1:RAID.Slot.6-1 Disk.Bay.3:Enclosure.Internal.0-1:RAID.Slot.
4. Validate that the RAID 0 VD was created and check the details. C:\Python27>CreateVirtualDiskRedfish.py -ip 192.168.0.130 -u root -p calvin -v RAID.Slot.6-1 - Volume(s) detected for RAID.Slot.6-1 controller Disk.Virtual.0:RAID.Slot.6-1, Volume type: NonRedundant C:\Python27>CreateVirtualDiskRedfish.py -ip 192.168.0.130 -u root -p calvin -vv RAID.Slot.6-1 - Volume(s) detected for RAID.Slot.6-1 controller Disk.Virtual.0:RAID.Slot.6-1 - Detailed Volume information for Disk.Virtual.0:RAID.Slot.6-1 @odata.
3.3 Deleting a virtual drive (VD) by using Redfish 2016 VDs can also be deleted by using Redfish 2016 standard storage API. By using a selected VD URI of form “redfish/v1/Systems/System.Embedded.1/Storage/Volumes/{virtual disk instance id}”, with no payload required, use a DELETE command to delete the VD. Here is an example, taken from the “DeleteVirtualDiskRedfish.py” script, of the form of the URI and DELETE command for deleting VD from Python GitHub script. url = 'https://%s/redfish/v1/Systems/System.
JobType: RealTimeNoRebootConfiguration Name: Config:RAID:RAID.Slot.6-1 3. Ensure that the VD no longer exists for the target controller. C:\Python27>DeleteVirtualDiskRedfish.py -ip 192.168.0.130 -u root -p calvin -v RAID.Slot.6-1 - WARNING, no volume(s) detected for RAID.Slot.6-1 3.4 Initialize virtual drive (VD) by using Redfish 2016 After a VD is created, the Redfish 2016 storage APIs are used to initialize the VD for usage.
JobState: Completed Description: Job Instance CompletionTime: 2018-05-16T16:01:15 PercentComplete: 100 StartTime: TIME_NOW MessageId: PR19 Message: Job completed successfully. EndTime: TIME_NA Id: JID_265044041574 JobType: RealTimeNoRebootConfiguration Name: Config:RAID:RAID.Slot.6-1 3. Check the VD details to ensure that the Operations property reports initialization is in progress. C:\Python27>InitializeVirtualDiskRedfish.py -ip 192.168.0.130 -u root -p calvin -vv RAID.Slot.
u'SupportedApplyTimes': [u'Immediate', u'OnReset', u'AtMaintenanceWindowStart', u'InMaintenanceWindowOnReset']} Name: Virtual Disk 0 3.5 Check virtual drive (VD) consistency by using Redfish 2016 After a VD is established, it can be checked for consistency with the Redfish 2016 storage APIs. Consistency checking is done by using a POST command on the VD URI “redfish/v1/Systems/System.Embedded.1/Storage/Volumes/{virtual disk instance ID}/Actions/Volume. CheckConsistency” with no payload dictionary.
MessageId: PR19 Message: Job completed successfully. EndTime: TIME_NA Id: JID_265050309108 JobType: RealTimeNoRebootConfiguration Name: Config:RAID:RAID.Slot.6-1 3. Check the VD details and ensure that the Operations property reports check consistency is in progress: C:\Python27>CheckConsistencyVirtualDiskRedfish.py -ip 192.168.0.130 -u root -p calvin -vv RAID.Slot.6-1 - Volume(s) detected for RAID.Slot.6-1 controller Disk.Virtual.0:RAID.Slot.6-1 - Detailed Volume information for Disk.Virtual.0:RAID.Slot.
3.6 Setting external storage enclosure asset tag by using Redfish 2016 The Redfish 2016 storage APIs also enable the detailed inventory and management of external storage enclosures. For example, the asset tag for an external storage enclosure can be set by using a PATCH command on the URI “redfish/v1/Chassis/{external enclosure instance ID}/Settings”. This example from the “SetEnclosureAssetTagRedfish.
4. Set the asset tag to a new value “ABC123”, which implies that the server does not require a reboot to apply the configuration changes. C:\Python27>SetEnclosureAssetTagRedfish.py -ip 192.168.0.130 -u root -p calvin x Enclosure.External.0-2:RAID.Slot.
Dell Lifecycle Controller, which supports erasure of all types of server storage. For details about using System Erase, see the whitepaper Securing 14th generation Dell EMC PowerEdge servers with System Erase. Note: The drive selected for erase by using Redfish 2016 must not be a member of a VD. Selecting such a drive for erase will return an error. Drives must be removed from a VD prior to attempting Redfish 2016 erase. Here is an example from the “SecureEraseRedfish.
JobState: Completed Description: Job Instance CompletionTime: 2018-05-23T12:50:16 PercentComplete: 100 StartTime: TIME_NOW MessageId: PR19 Message: Job completed successfully. EndTime: TIME_NA Id: JID_270977416565 JobType: RealTimeNoRebootConfiguration Name: Config:RAID:RAID.Slot.6-1 3.8 Limitations when using Redfish 2016 standard storage APIs for storage configuration There are several limitations on job workflows when using Redfish 2016 standard APIs for storage configurations: 3.
Creating a virtual disk with RAID levels 6 and 60 Advanced span levels Resetting the PERC controller Clearing and importing foreign configurations Setting controller / virtual disk properties such as Background Initialization and Consistency Check rates Creating multiple RAID volumes For more information about using SCP features for storage configuration, see the following technical white papers available on Dell Techcenter: RESTful Server Configuration with iDRAC REST API and Server cloning b
4 Summary The DMTF Redfish standard is emerging as a key new tool for efficient, scalable, and secure server management. Utilizing an industry-standard interface and data format, Redfish supports rapid development of automation for one-to-many server management. System administrators and IT developers will appreciate Redfish features that can increase efficiency, lower costs and boost productivity across their organizations.
5 Additional Information For more information on iDRAC9 and 14G BIOS, visit the BIOS section of the iDRAC9 white paper library on Dell Techcenter http://delltechcenter.com/idrac DMTF white papers, Redfish Schemas, specifications, webinars and work-in-progress documents o https://www.dmtf.org/standards/redfish The Redfish standard specification is available from the DMTF website o http://www.dmtf.org/sites/default/files/standards/documents/DSP0266_1.0.1.