# US 12,216,910 B1 · Resilient software raid/management communication system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,216,910 B1
- Document ID: US12216910B1
- Status: Granted
- Kind: B1
- Application number: 18/228,240
- Filed: 2023-07-31
- Published: 2025-02-06
- Granted: 2025-02-04
- Earliest claimed: 2023-07-31
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Nikhith Ganigarakoppal Kantharaju; Sumalatha Pagadala; Sushmitha Naik; Dharma Bhushan Ramaiah; Vineeth Radhakrishnan; Shinose Abdul Rahiman; Rama Rao Bisa
- Web page: https://patentgrep.com/patent/US12216910B1

## CPC

- G06F 3/0617: {in relation to availability}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A resilient software Redundant Array of Independent Disk (RAID)/management communication system includes a chassis housing a software RAID subsystem coupled to a plurality of storage devices that are also coupled to a management subsystem. The software RAID subsystem designates a first storage device in the plurality of storage devices as a primary storage device and a second storage device in the plurality of storage devices as a secondary storage device, and uses the respective storage device memory subsystem in the first storage device to transmit first management communications with the management subsystem. If the software RAID subsystem determines that the first storage device is unavailable, it uses the respective storage device memory subsystem in the second storage device to transmit second management communications with the management subsystem.

## Claims

### Claim 1

A resilient software Redundant Array of Independent Disk (RAID)/management communication system, comprising:
a chassis;
a management subsystem that is housed in the chassis;
a plurality of storage devices that are housed in the chassis, that are coupled to the management subsystem, and that each include a respective storage device memory subsystem; and
a software Redundant Array of Independent Disk (RAID) subsystem that is housed in the chassis and that is coupled to the plurality of storage devices, wherein the software RAID subsystem is configured to:
designate a first storage device in the plurality of storage devices as a primary storage device and a second storage device in the plurality of storage devices as a secondary storage device;
provide, in the respective storage device memory subsystem in the first storage device, a software RAID information request that requests the management subsystem provide software RAID information associated with the operation of a software RAID provided by the software RAID subsystem;
determine that a software RAID information response to the software RAID information request is not received in a threshold time period following the provisioning of the software RAID information request in the respective storage device memory subsystem in the first storage device;
provide, in the respective storage device memory subsystem in the second storage device in response to determining that the software RAID information response is not received in the threshold time period, the software RAID information request that requests the management subsystem provide the software RAID information associated with the operation of the software RAID provided by the software RAID subsystem;
determine that the management subsystem has provided a software RAID information response in the storage device memory subsystem of the second storage device; and
retrieve, from the storage device memory subsystem of the second storage device, the software RAID information response.

### Claim 2 (depends on 1)

The system of claim 1, wherein the software RAID subsystem is configured to:
periodically access the respective storage device memory subsystem of the first storage device and, in response, determine that the software RAID information response to the software RAID information request is not received in the threshold time period following the provisioning of the software RAID information request in the respective storage device memory subsystem in the first storage device.

### Claim 3 (depends on 1)

The system of claim 1, wherein the software RAID subsystem is configured to:
periodically access the respective storage device memory subsystem of the second storage device and, in response, determine that the management subsystem has provided the software RAID information response in the storage device memory subsystem of the second storage device.

### Claim 4 (depends on 1)

The system of claim 1, wherein the respective storage device memory subsystems in each of the first storage device and the second storage device are provided by respective Controller Memory Buffer (CMB) devices.

### Claim 5

A resilient software Redundant Array of Independent Disk (RAID)/management communication system, comprising:
a chassis;
a management subsystem that is housed in the chassis;
a plurality of storage devices that are housed in the chassis, that are coupled to the management subsystem, and that each include a respective storage device memory subsystem; and
a software Redundant Array of Independent Disk (RAID) subsystem that is housed in the chassis and that is coupled to the plurality of storage devices, wherein the software RAID subsystem is configured to:
designate a first storage device in the plurality of storage devices as a primary storage device and a second storage device in the plurality of storage devices as a secondary storage device;
generate, in response to designating the first storage device as the primary storage device and the second storage device as the secondary storage device, a primary/secondary storage device list that identifies the first storage device as the primary storage device and the second storage device as the secondary storage device;
provide the primary/secondary storage device list in each of the respective storage device memory subsystem in the first storage device and the respective storage device memory subsystem in the second storage device, wherein the management subsystem is configured to retrieve the primary/secondary storage device list from either of the respective storage device memory subsystem in the first storage device and the respective storage device memory subsystem in the second storage device;
transmit, using the respective storage device memory subsystem in the first storage device, first management communications with the management subsystem;
determine that the first storage device is unavailable; and
transmit, in response to determining that the first storage device is unavailable and using the respective storage device memory subsystem in the second storage device, second management communications with the management subsystem.

### Claim 6 (depends on 5)

The system of claim 5, wherein the software RAID subsystem is configured to:
update, in response to determining that the first storage device is unavailable, the primary/secondary storage device list to designate the second storage device as the primary storage device and a third storage device in the plurality of storage devices as the secondary storage device; and
update, subsequent to determining that the first storage device is unavailable, the primary/secondary storage device list in each of the respective storage device memory subsystem in the second storage device and the respective storage device memory subsystem in the third storage device, wherein the management subsystem is configured to retrieve the primary/secondary storage device list from either of the respective storage device memory subsystem in the second storage device and the respective storage device memory subsystem in the third storage device.

### Claim 7

An Information Handling System (IHS), comprising:
a processing system; and
a memory system that is coupled to the processing system and that includes instructions that, when executed by the processing system, cause the processing system to provide a software Redundant Array of Independent Disk (RAID) engine that is configured to:
designate a first storage device in a plurality of storage devices that are coupled to the processing system as a primary storage device, and a second storage device in the plurality of storage devices as a secondary storage device;
provide, in a respective storage device memory subsystem in the first storage device, a software RAID information request that requests the management subsystem provide software RAID information associated with the operation of a software RAID provided by the software RAID subsystem;
determine that a software RAID information response to the software RAID information request is not received in a threshold time period following the provisioning of the software RAID information request in the respective storage device memory subsystem in the first storage device;
provide, in a respective storage device memory subsystem in the second storage device in response to determining that the software RAID information response is not received in the threshold time period, the software RAID information request that requests the management subsystem provide the software RAID information associated with the operation of the software RAID provided by the software RAID subsystem;
determine that the management subsystem has provided a software RAID information response in the storage device memory subsystem of the second storage device; and
retrieve, from the storage device memory subsystem of the second storage device, the software RAID information response.

### Claim 8 (depends on 7)

The IHS of claim 7, wherein the software RAID subsystem is configured to:
periodically access the respective storage device memory subsystem of the first storage device and, in response, determine that the software RAID information response to the software RAID information request is not received in the threshold time period following the provisioning of the software RAID information request in the respective storage device memory subsystem in the first storage device.

### Claim 9 (depends on 7)

The IHS of claim 7, wherein the software RAID subsystem is configured to:
periodically access the respective storage device memory subsystem of the second storage device and, in response, determine that the management subsystem has provided the software RAID information response in the storage device memory subsystem of the second storage device.

### Claim 10 (depends on 7)

The IHS of claim 7, wherein the respective storage device memory subsystems in each of the first storage device and the second storage device are provided by respective Controller Memory Buffer (CMB) devices.

### Claim 11 (depends on 7)

The IHS of claim 7, wherein the software RAID subsystem is configured to determine that the first storage device is unavailable in response to at least one of:
determining that a software RAID information request cannot be submitted to the first storage device; or
determining that polling operations for the first storage device have been unsuccessful.

### Claim 12

An Information Handling System (IHS), comprising:
a processing system; and
a memory system that is coupled to the processing system and that includes instructions that, when executed by the processing system, cause the processing system to provide a software Redundant Array of Independent Disk (RAID) engine that is configured to:
designate a first storage device in a plurality of storage devices that are coupled to the processing system as a primary storage device, and a second storage device in the plurality of storage devices as a secondary storage device;
generate, in response to designating the first storage device as the primary storage device and the second storage device as the secondary storage device, a primary/secondary storage device list that identifies the first storage device as the primary storage device and the second storage device as the secondary storage device;
provide the primary/secondary storage device list in each of the respective storage device memory subsystem in the first storage device and the respective storage device memory subsystem in the second storage device, wherein the management subsystem is configured to retrieve the primary/secondary storage device list from either of the respective storage device memory subsystem in the first storage device and the respective storage device memory subsystem in the second storage device;
transmit, using the respective storage device memory subsystem in the first storage device, first management communications with the management subsystem;
determine that the first storage device is unavailable; and
transmit, in response to determining that the first storage device is unavailable and using the respective storage device memory subsystem in the second storage device, second management communications with the management subsystem.

### Claim 13 (depends on 12)

The IHS of claim 12, wherein the software RAID engine is configured to:
update, in response to determining that the first storage device is unavailable, the primary/secondary storage device list to designate the second storage device as the primary storage device and a third storage device in the plurality of storage devices as the secondary storage device; and
update, subsequent to determining that the first storage device is unavailable, the primary/secondary storage device list in each of the respective storage device memory subsystem in the second storage device and the respective storage device memory subsystem in the third storage device, wherein the management subsystem is configured to retrieve the primary/secondary storage device list from either of the respective storage device memory subsystem in the second storage device and the respective storage device memory subsystem in the third storage device.

### Claim 14

A method for providing resilient communication between a software Redundant Array of Independent Disk (RAID) subsystem and a management subsystem in a computing device, comprising:
designating, by a software Redundant Array of Independent Disk (RAID) subsystem, a first storage device in a plurality of storage devices that are coupled to the software RAID subsystem as a primary storage device, and a second storage device in the plurality of storage devices as a secondary storage device;
providing, by the software RAID subsystem in a respective storage device memory subsystem in the first storage device, a software RAID information request that requests the management subsystem provide software RAID information associated with the operation of a software RAID provided by the software RAID subsystem;
determining, by the software RAID subsystem, that a software RAID information response to the software RAID information request is not received in a threshold time period following the provisioning of the software RAID information request in the respective storage device memory subsystem in the first storage device;
providing, by the software RAID subsystem in a respective storage device memory subsystem in the second storage device in response to determining that the software RAID information response is not received in the threshold time period, the software RAID information request that requests the management subsystem provide the software RAID information associated with the operation of the software RAID provided by the software RAID subsystem;
determining, by the software RAID subsystem, that the management subsystem has provided a software RAID information response in the storage device memory subsystem of the second storage device; and
retrieving, by the software RAID subsystem from the storage device memory subsystem of the second storage device, the software RAID information response.

### Claim 15 (depends on 14)

The method of claim 14, wherein the method further comprises:
periodically accessing, by the software RAID subsystem, the respective storage device memory subsystem of the first storage device and, in response, determining that the software RAID information response to the software RAID information request is not received in the threshold time period following the provisioning of the software RAID information request in the respective storage device memory subsystem in the first storage device.

### Claim 16 (depends on 14)

The method of claim 14, wherein the method further comprises:
periodically accessing, by the software RAID subsystem, the respective storage device memory subsystem of the second storage device and, in response, determining that the management subsystem has provided a software RAID information response in the storage device memory subsystem of the second storage device; and.

### Claim 17 (depends on 14)

The method of claim 14, wherein the respective storage device memory subsystems in each of the first storage device and the second storage device are provided by respective Controller Memory Buffer (CMB) devices.

### Claim 18 (depends on 14)

The method of claim 14, wherein the first storage device is determined to be unavailable in response to at least one of:
determining, by the software RAID subsystem, that a software RAID information request cannot be submitted to the first storage device; or
determining, by the software RAID subsystem, that polling operations for the first storage device have been unsuccessful.

### Claim 19

A method for providing resilient communication between a software Redundant Array of Independent Disk (RAID) subsystem and a management subsystem in a computing device, comprising:
designating, by a software Redundant Array of Independent Disk (RAID) subsystem, a first storage device in a plurality of storage devices that are coupled to the software RAID subsystem as a primary storage device, and a second storage device in the plurality of storage devices as a secondary storage device;
generating, by the software RAID subsystem in response to designating the first storage device as the primary storage device and the second storage device as the secondary storage device, a primary/secondary storage device list that identifies the first storage device as the primary storage device and the second storage device as the secondary storage device;
providing, by the software RAID subsystem, the primary/secondary storage device list in each of the respective storage device memory subsystem in the first storage device and the respective storage device memory subsystem in the second storage device, wherein the management subsystem is configured to retrieve the primary/secondary storage device list from either of the respective storage device memory subsystem in the first storage device and the respective storage device memory subsystem in the second storage device;
transmitting, by the software RAID subsystem using the respective storage device memory subsystem in the first storage device, first management communications with the management subsystem;
determining, by the software RAID subsystem, that the first storage device is unavailable; and
transmitting, by the software RAID subsystem in response to determining that the first storage device is unavailable and using the respective storage device memory subsystem in the second storage device, second management communications with the management subsystem.

### Claim 20 (depends on 19)

The method of claim 19, further comprising:
updating, by the software RAID subsystem in response to determining that the first storage device is unavailable, the primary/secondary storage device list to designate the second storage device as the primary storage device and a third storage device in the plurality of storage devices as the secondary storage device; and
updating, by the software RAID subsystem subsequent to determining that the first storage device is unavailable, the primary/secondary storage device list in each of the respective storage device memory subsystem in the second storage device and the respective storage device memory subsystem in the third storage device, wherein the management subsystem is configured to retrieve the primary/secondary storage device list from either of the respective storage device memory subsystem in the second storage device and the respective storage device memory subsystem in the third storage device.
