OUT-OF-BAND SUPPORT FOR SOFTWARE REDUNDANT ARRAY OF INDEPENDENT DISKS

An information handling system provides configuration, monitoring, and inventory services between an application programming interface service hosted by the information handling system and a remote client. The system communicates using application program interfaces exposed by the application programming interface service with a device associated with the information handling system, and packages data received from the device via the application programming interface service before transmitting the data to the remote client.

FIELD OF THE DISCLOSURE

The present disclosure generally relates to information handling systems, and more particularly relates to out-of-band support for software redundant array of independent disks.

BACKGROUND

SUMMARY

An information handling system provides configuration, monitoring, and inventory services between an application programming interface service hosted by the information handling system and a remote client. The system communicates using application program interfaces exposed by the application programming interface service with a device associated with the information handling system, and packages data received from the device via the application programming interface service before transmitting the data to the remote client.

DETAILED DESCRIPTION OF THE DRAWINGS

FIG.1illustrates an embodiment of an information handling system100including processors102and104, a chipset110, a memory120, a graphics adapter130connected to a video display134, a non-volatile RAM (NV-RAM)140that includes a basic input and output system/extensible firmware interface (BIOS/EFI) module142, a disk controller150, a hard disk drive (HDD)154, an optical disk drive156, a disk emulator160connected to a solid-state drive (SSD)164, an input/output (I/O) interface170connected to an add-on resource174and a trusted platform module (TPM)176, a network interface180, and a baseboard management controller (BMC)190. Processor102is connected to chipset110via processor interface106, and processor104is connected to the chipset via processor interface108. In a particular embodiment, processors102and104are connected together via a high-capacity coherent fabric, such as a HyperTransport link, a QuickPath Interconnect, or the like. Chipset110represents an integrated circuit or group of integrated circuits that manage the data flow between processors102and104and the other elements of information handling system100. In a particular embodiment, chipset110represents a pair of integrated circuits, such as a northbridge component and a southbridge component. In another embodiment, some or all of the functions and features of chipset110are integrated with one or more of processors102and104.

Memory120is connected to chipset110via a memory interface122. An example of memory interface122includes a Double Data Rate (DDR) memory channel and memory120represents one or more DDR Dual In-Line Memory Modules (DIMMs). In a particular embodiment, memory interface122represents two or more DDR channels. In another embodiment, one or more of processors102and104include a memory interface that provides a dedicated memory for the processors. A DDR channel and the connected DDR DIMMs can be in accordance with a particular DDR standard, such as a DDR3 standard, a DDR4 standard, a DDR5 standard, or the like.

Memory120may further represent various combinations of memory types, such as Dynamic Random Access Memory (DRAM) DIMMs, Static Random Access Memory (SRAM) DIMMs, non-volatile DIMMs (NV-DIMMs), storage class memory devices, Read-Only Memory (ROM) devices, or the like. Graphics adapter130is connected to chipset110via a graphics interface132and provides a video display output136to a video display134. An example of a graphics interface132includes a Peripheral Component Interconnect-Express (PCIe) interface and graphics adapter130can include a four-lane (x4) PCIe adapter, an eight-lane (x8) PCIe adapter, a 16-lane (x16) PCIe adapter, or another configuration, as needed or desired. In a particular embodiment, graphics adapter130is provided down on a system printed circuit board (PCB). Video display output136can include a Digital Video Interface (DVI), a High-Definition Multimedia Interface (HDMI), a DisplayPort interface, or the like, and video display134can include a monitor, a smart television, an embedded display such as a laptop computer display, or the like.

NV-RAM140, disk controller150, and I/O interface170are connected to chipset110via an I/O channel112. An example of I/O channel112includes one or more point-to-point PCIe links between chipset110and each of NV-RAM140, disk controller150, and I/O interface170. Chipset110can also include one or more other I/O interfaces, including a PCIe interface, an Industry Standard Architecture (ISA) interface, a Small Computer Serial Interface (SCSI) interface, an Inter-Integrated Circuit (I2C) interface, a System Packet Interface (SPI), a Universal Serial Bus (USB), another interface, or a combination thereof. NV-RAM140includes BIOS/EFI module142that stores machine-executable code (BIOS/EFI code) that operates to detect the resources of information handling system100, to provide drivers for the resources, to initialize the resources, and to provide common access mechanisms for the resources. The functions and features of BIOS/EFI module142will be further described below.

Network interface180represents a network communication device disposed within information handling system100, on a main circuit board of the information handling system, integrated onto another component such as chipset110, in another suitable location, or a combination thereof. Network interface180includes a network channel182that provides an interface to devices that are external to information handling system100. In a particular embodiment, network channel182is of a different type than peripheral interface172and network interface180translates information from a format suitable to the peripheral channel to a format suitable to external devices.

In a particular embodiment, network interface180includes a NIC or host bus adapter (HBA), and an example of network channel182includes an InfiniBand channel, a Fibre Channel, a Gigabit Ethernet channel, a proprietary channel architecture, or a combination thereof. In another embodiment, network interface180includes a wireless communication interface, and network channel182includes a Wi-Fi channel, a near-field communication (NFC) channel, a Bluetooth® or Bluetooth-Low-Energy (BLE) channel, a cellular based interface such as a Global System for Mobile (GSM) interface, a Code-Division Multiple Access (CDMA) interface, a Universal Mobile Telecommunications System (UMTS) interface, a Long-Term Evolution (LTE) interface, or another cellular based interface, or a combination thereof. Network channel182can be connected to an external network resource (not illustrated). The network resource can include another information handling system, a data storage system, another network, a grid management system, another suitable resource, or a combination thereof.

BMC190is connected to multiple elements of information handling system100via one or more management interface192to provide out of band monitoring, maintenance, and control of the elements of the information handling system. As such, BMC190represents a processing device different from processor102and processor104, which provides various management functions for information handling system100. For example, BMC190may be responsible for power management, cooling management, and the like. The term BMC is often used in the context of server systems, while in a consumer-level device, a BMC may be referred to as an embedded controller (EC). A BMC included in a data storage system can be referred to as a storage enclosure processor. A BMC included at a chassis of a blade server can be referred to as a chassis management controller and embedded controllers included at the blades of the blade server can be referred to as blade management controllers. Capabilities and functions provided by BMC190can vary considerably based on the type of information handling system. BMC190can operate in accordance with an Intelligent Platform Management Interface (IPMI). Examples of BMC190include an Integrated Dell® Remote Access Controller (iDRAC).

Management interface192represents one or more out-of-band communication interfaces between BMC190and the elements of information handling system100, and can include an Inter-Integrated Circuit (I2C) bus, a System Management Bus (SMBUS), a Power Management Bus (PMBUS), a Low Pin Count (LPC) interface, a serial bus such as a Universal Serial Bus (USB) or a Serial Peripheral Interface (SPI), a network interface such as an Ethernet interface, a high-speed serial data link such as a PCIe interface, a Network Controller Sideband Interface (NC-SI), or the like. As used herein, out-of-band access refers to operations performed apart from a BIOS/operating system execution environment on information handling system100, that is apart from the execution of code by processors102and104and procedures that are implemented on the information handling system in response to the executed code.

BMC190operates to monitor and maintain system firmware, such as code stored in BIOS/EFI module142, option ROMs for graphics adapter130, disk controller150, add-on resource174, network interface180, or other elements of information handling system100, as needed or desired. In particular, BMC190includes a network interface194that can be connected to a remote management system to receive firmware updates, as needed or desired. Here, BMC190receives the firmware updates, stores the updates to a data storage device associated with the BMC, transfers the firmware updates to NV-RAM of the device or system that is the subject of the firmware update, thereby replacing the currently operating firmware associated with the device or system, and reboots information handling system, whereupon the device or system utilizes the updated firmware image.

BMC190utilizes various protocols and application programming interfaces (APIs) to direct and control the processes for monitoring and maintaining the system firmware. An example of a protocol or API for monitoring and maintaining the system firmware includes a graphical user interface (GUI) associated with BMC190, an interface defined by the Distributed Management Taskforce (DMTF) (such as a Web Services Management (WSMan) interface, a Management Component Transport Protocol (MCTP) or, a Redfish® interface), various vendor defined interfaces (such as a Dell EMC Remote Access Controller Administrator (RACADM) utility, a Dell EMC OpenManage Enterprise, a Dell EMC OpenManage Server Administrator (OMSS) utility, a Dell EMC OpenManage Storage Services (OMSS) utility, or a Dell EMC OpenManage Deployment Toolkit (DTK) suite), a BIOS setup utility such as invoked by a “F2” boot option, or another protocol or API, as needed or desired.

In a particular embodiment, BMC190is included on a main circuit board (such as a baseboard, a motherboard, or any combination thereof) of information handling system100or is integrated onto another element of the information handling system such as chipset110, or another suitable element, as needed or desired. As such, BMC190can be part of an integrated circuit or a chipset within information handling system100. An example of BMC190includes an iDRAC, or the like. BMC190may operate on a separate power plane from other resources in information handling system100. Thus BMC190can communicate with the management system via network interface194while the resources of information handling system100are powered off. Here, information can be sent from the management system to BMC190and the information can be stored in a RAM or NV-RAM associated with the BMC. Information stored in the RAM may be lost after power-down of the power plane for BMC190, while information stored in the NV-RAM may be saved through a power-down/power-up cycle of the power plane for the BMC.

Information handling system100can include additional components and additional busses, not shown for clarity. For example, information handling system100can include multiple processor cores, audio devices, and the like. While a particular arrangement of bus technologies and interconnections is illustrated for the purpose of example, one of skill will appreciate that the techniques disclosed herein are applicable to other system architectures. Information handling system100can include multiple central processing units (CPUs) and redundant bus controllers. One or more components can be integrated together. Information handling system100can include additional buses and bus protocols, for example, I2C and the like. Additional components of information handling system100can include one or more storage devices that can store machine-executable code, one or more communications ports for communicating with external devices, and various input and output (I/O) devices, such as a keyboard, a mouse, and a video display.

For purposes of this disclosure information handling system100can include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes. For example, information handling system100can be a personal computer, a laptop computer, a smartphone, a tablet device or other consumer electronic device, a network server, a network storage device, a switch, a router, or another network communication device, or any other suitable device and may vary in size, shape, performance, functionality, and price. Further, information handling system100can include processing resources for executing machine-executable code, such as processor102, a programmable logic array (PLA), an embedded device such as a System-on-a-Chip (SoC), or other control logic hardware. Information handling system100can also include one or more computer-readable media for storing machine-executable code, such as software or data.

Certain management and control capabilities, such as via an embedded software redundant array of independent disks (RAID) controller, are typically managed using in-band solutions, such as by running the software RAID solution at a host operating system. For large or critical networks, in-band management may not be enough. Providing an out-of-band ability to administer traditionally in-band management functionality, such as software RAID, provides a user with a secure and dedicated alternative that allows the user remote management and control of software RAID devices.

FIG.2shows an environment200for out-of-band support for a software RAID feature of a management controller. Environment200includes a remote client210, an information handling system205, and software RAID objects265. Information handling system205, which is similar to information handling system100ofFIG.1, includes a BMC240, an operating system260, and a software RAID object265. Remote client210may be in another information handling system that is located remotely from information handling system205. Remote client210is communicatively coupled with BMC240via a management network270. Further, remote client210may be configured to access one or more resources or functions of system management process235. BMC240is communicatively coupled to API server250via interface275. BMC240is similar to BMC190ofFIG.1and includes a system management process235.

Operating system260hosts a service module255which further hosts or runs API server250. Management network270may be configured separately from other network interfaces of information handling system205, such as interface275. Further, management network270may be configured to provide an out-of-band network interface that allows an information technology specialist to perform maintenance functions from a remote location, such as remote client210of an information handling system. For example, a user may set up one or more RAID arrays. Management network270may be configured separately from interface275which may be USB or network interface controller interface.

BMC240may be configured to provide enumeration, configuration, monitoring, and inventory services of RAID devices using remote client210via an API service, such as API server250. The API service may be hosted by operating system260of information handling system205. In one embodiment, BMC240may be configured to manage information handling systems and their RAID devices. The RAID devices may include storage devices, network controllers, storage controllers, processors, memory resources, and various other hardware or virtual devices. The hardware devices may be accessed via an in-band and/or an out-of-band management connection.

For example, software RAID inventory, configuration, and monitoring may be provided to remote client210via system management process235which is hosted by BMC240. System management process235may be configured to perform out-of-band systems management via APIs running on API server250. For example, system management process235may be configured to manage workstations, servers, storage devices, etc. Examples of system management process235include a RedfishR process, an IPMI process, or similar. In one embodiment, system management process235may expose the management functions using a representational state transfer (REST) architecture that defines a set of constraints and properties based on a hypertext transfer protocol (HTTP) and enables RESTful web services. As such, APIs exposed by API server250may be REST APIs. Thus, BMC240and/or system management process235may communicate with remote client210and software RAID objects265using application program interfaces exposed by an API service, such as API server250. Accordingly, the user may perform various management and control functions of RAID devices using remote client210

In particular, remote client210may communicate with BMC240via system management process235. BMC240may communicate to operating system260using APIs exposed by service module255. Then, the APIs may be used to enumerate, query, retrieve, and configure software RAID objects265. Software RAID objects265include an inventory of storage controllers, physical storage device inventory, virtual storage device inventory, etc. An example of service module255may include iDRAC service Module® (iSM). Service module255may be configured to expose APIs for a sub-system of environment200, such as BMC240, edge orchestrators, or similar. Data, such as software RAID objects265, returned by service module255may be packaged according to a schema of system management process235and transmitted to remote client210. For example, BMC240or system management process235may be configured to package the data received from API server250. In particular, the data may be packaged according to a Redfish schema before transmitting to remote client210. The packaged data may be returned to remote client210via one or more interfaces, such as those shown inFIG.3. A GUI may also be associated with system management process235and be used to render the data graphically for a user.

In one embodiment, system management process235may be configured to act as a REST API client and forward requests, such as an API request242, to API server250. System management process235may also be configured to process responses, such as a response245, from API request242and package them as compliant responses for remote client210. For example, system management process235may be configured to process an API request to enable an enumeration of RAID controllers through out-of-band interfaces. The enumeration may identify supported devices of the RAID controllers that are attached to the system. The enumeration may also list information about the RAID controllers, physical disks, and virtual disks.

In one particular example, an information technology specialist may request an inventory of RAID controllers using remote client210. Remote client210may transmit a request215to system management process235. System management process235may in turn forward request215as API request242to API server250which then may query software RAID objects265for the inventory of RAID controllers. API server250may submit response245with one or more software RAID inventory objects and associated information to system management process235. System management process235may process or package response245to be a RedfishR compliant response, such as a response220, wherein response220may include the inventory of the RAID controllers. The inventory and associated information may be displayed via a GUI on remote client210for the information technology specialist.

FIG.3shows information handling system205in greater detail. Information handling system205includes BMC240and operating system260. BMC240includes a GUI365, a GUI provider350, an interface370, system management process235, an interface375, a remote access provider360, a software RAID inventory cache345, and a populator service340. Operating system260includes service module255which hosts API server250. Populator service340may be communicatively coupled to GUI provider350, system management process235, and remote access provider360via an interface385. Interface385may be a desktop bus interface or a similar inter-process communication mechanism.

Populator service340, which may be a desktop bus-based service, can be communicatively coupled to operating system260, service module255, and/or API server250via an interface390. Populator service340may be configured to pool information associated with software RAID devices, such as performing an inventory of the devices. Interface390may be a USB or a network interface controller. The components of information handling system205may be implemented in hardware, software, firmware, or any combination thereof. The components shown are not drawn to scale and information handling system205may include additional or fewer components. In addition, connections between components may be omitted for descriptive clarity.

BMC240may be configured to perform out-of-band system management functions, such as software RAID control of a software RAID inventory cache345. The out-of-band system management function can be performed via an interface of one or more providers, such as remote access provider360, a system management process235, and a GUI provider350. The interfaces may allow a user to view information associated with software RAID objects, software RAID inventory cache345, or similar. The interfaces may also be used by the user to manage various configurations associated with software RAID objects, and software RAID inventory cache345.

Remote access provider360may be adapted to provide remote and/or local management of the information handling systems and their hardware components. Commands associated with remote access provider360can be run via a remote access interface, such as interface375. The commands can be run remotely from a remote client or management station. The commands can also be run locally on the managed information handling system. An example of remote access provider360may be a RACADM, WSMan, or similar. GUI provider350may be configured to provide a set of GUI elements to GUI365. API server250may be configured as a central management entity that receives API requests from baseboard management controller240and/or populator service340.

In various embodiments, information handling system205may not include each of the components shown inFIG.2andFIG.3. Additionally, or alternatively, information handling system205may include various additional components in addition to those that are shown inFIG.2andFIG.3. Furthermore, some components that are represented as separate components inFIG.2andFIG.3may in certain embodiments instead are integrated with other components. For example, in certain embodiments, all or a portion of the functionality provided by the illustrated components may instead be provided by components integrated into one or more processor(s) as a system-on-a-chip.

Those of ordinary skill in the art will appreciate the configuration, hardware, and/or software components of environment200depicted inFIG.2, and information handling system205depicted inFIG.3may vary. For example, the illustrative components within information handling system205are not intended to be exhaustive but rather are representative to highlight components that can be utilized to implement aspects of the present disclosure. For example, other devices and/or components may be used in addition to or in place of the devices/components depicted. The depicted example does not convey or imply any architectural or other limitations with respect to the presently described embodiments and/or the general disclosure. In the discussion of the figures, reference may also be made to components illustrated in other figures for continuity of the description.

FIG.4shows a swim-lane400for the enumeration, discovery, and inventory of software RAID devices. Swim-lane400may be performed by one or more components of environment200ofFIG.2and/or information handling system205ofFIG.3. For example, swim-lane400includes remote client210, system management process235, a software RAID view405, service module255, and a software RAID device410. In one example, software RAID view405may be an application or software program hosted by BMC240that manages storage of the software RAID inventory, software RAID objects, or similar. Software RAID view405may also provide an interface for system management process235to query, update, and/or receive information associated with the software RAID inventory, software RAID objects, or similar. In one example, software RAID view405may be similar to populator service340ofFIG.3. However, while embodiments of the present disclosure are described in terms of environment200ofFIG.2and/or information handling system205orFIG.3, it should be recognized that other systems may be utilized to perform the described blocks. One of skill in the art will appreciate that this swim-lane explains a typical example, which can be extended to advanced applications or services in practice.

Swim-lane400typically starts at430, wherein service module255on a host information handling system may be initialized. At435, service module255may initialize software RAID device410and perform an inventory of software RAID devices and their components, wherein the software RAID devices are associated with the host information handling system. In one embodiment, software RAID device410may be a computer storage system that can spread or replicate data across multiple drives. In another embodiment, software RAID device410may be a specialized server such as a RAID information handling system, which may be configured in different types of RAID implementations. Software RAID device410may also include controllers, physical disks, and virtual disks which are attached to the RAID information handling system.

At440, service module255may collect an inventory of various software RAID devices, such as software RAID device410. At445, service module255may push or transmit the inventory and/or associated information to system management process235. The inventory transmitted may be in an inventory cache similar to inventory cache345ofFIG.3. At450, system management process235may store the inventory as software RAID objects that are similar to software RAID objects265, in an internal data store. For example, the software RAID objects may be stored in a software RAID configuration database and rendered at remote client210via an interface, such as GUI365and interfaces370and375. Thus, the enumeration, discovery, and inventory of the software RAID devices may be performed through coordination between system management process235, software RAID view405, software module255, and software RAID device410.

FIG.5shows a swim-lane500for an inventory collection process from a remote client. RAID information handling systems are generally configured in different types of RAID implementations that are each enabled with a variety of hardware and software component configurations. One or more blocks in swim-lane500may be performed by components, such as depicted in swim-lane400ofFIG.4. Similarly, one of skill in the art will appreciate that this swim-lane explains a typical example, which can be extended to advanced applications or services in practice.

Swim-lane500typically starts at510wherein a user at remote client210may send an inventory request to system management process235. At515, system management process235may accept the inventory request and then may query or read inventory information from the data store where the inventory was stored as software RAID objects at450ofFIG.4. System management process235may read the inventory information via software RAID view405which may be installed on BMC240ofFIG.2. At520, software RAID view405may transmit the inventory information to system management process235in response to the inventory request. At525, system management process235may then transmit a response with the inventory information to remote client210. Thus, inventory requests of software RAID devices may be performed through coordination between remote client210, system management process235, and software RAID view405.

FIG.6shows a swim-lane600for a software RAID configuration process from a remote client. One or more blocks in swim-lane600may be performed by components depicted in swim-lane400ofFIG.4. Similarly, one of skill in the art will appreciate that this swim-lane explains a typical example, which can be extended to advanced applications or services in practice.

Swim-lane600typically starts at620, wherein remote client210may send a configuration request620to system management process235. For example, a user may request a RAID configuration through a user interface at remote client210. At625, system management process235upon receiving the request may forward the configuration request to service module255. At630, service module255may configure software RAID device410based on the configuration request. For example, configuration commands and utilities may be dispatched from service module255to software RAID device410to configure it. At635, software RAID device410may transmit a configuration response to service module255. The configuration response includes status information of the configuration request. At640, service module255may transmit the configuration response to system management process235. At645, system management process235may store the received updated configuration information in the data store. At650, system management process235may transmit the status information of the configuration request to the remote client. Thus, management of software RAID device configurations may be performed through coordination between remote client210, system management process235, software RAID view405, software module255, and software RAID device410.

AlthoughFIG.4,FIG.5, andFIG.6show example blocks of swim-lanes400,500, and600. In some implementations, swim-lanes400,500, and600may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted inFIG.4,FIG.5, andFIG.6. Those skilled in the art will understand that the principles presented herein may be implemented in any suitably arranged processing system. Additionally, or alternatively, two or more of the blocks of swim-lanes400,500, and600may be performed in parallel.