Method and system for hardware accelerated online capacity expansion
AssigneeAvago Technologies International Sales Pte. Limited
InventorArun Prakash Jana
Life of this patent
Estimating the term…
Abstract
Solutions for managing RAID logical devices. Some solutions provide enhanced online capacity expansion for virtual disks on RAID drives, for example by taking advantage of the hardware capabilities to expand a virtual disk stripe by stripe. Some solutions provide increase hardware automation, which can reduce firmware load and/or provide more efficient input-output operations (IO) for the online capacity expansion operation.
Claims20
A redundant array of independent disks (RAID) controller to manage a virtual disk comprising one or more spans, each span comprising one or more arms, each arm corresponding a physical disk, the virtual disk further comprising a plurality of stripes, each stripe comprising a row from each of the one or more spans, each row of a span comprising a strip from each of the one or more arms of the span, each strip comprising one or more logical blocks, the RAID controller comprising a plurality of components, the plurality of components comprising:
- a buffer;
- hardware circuitry to receive a message to expand one or more stripes of the virtual disk to include one or more additional arms, the message comprising a parent accelerated input/output operation (IO), the parent accelerated IO identifying a ghost stripe to be expanded;
- hardware circuitry to determine a number of arms in a source virtual disk representing the virtual disk prior to expansion;
- hardware circuitry to determine a number of arms in a ghost virtual disk representing the virtual disk after expansion, the ghost virtual disk comprising a plurality of ghost stripes each having a ghost stripe size;
- hardware circuitry to identify, in the buffer, a plurality of buffer segments sufficient to store sufficient logical blocks (LBA) to write an entire ghost stripe;
- hardware circuitry to generate a first plurality of child accelerated IOs from the parent accelerated IO to read enough LBA from the source virtual disk to fill the plurality of allocated buffer segments;
- hardware circuitry to execute the first plurality of child accelerated IOs;
- hardware circuitry to provide notification after completion of the first plurality of child accelerated IOs;
- hardware circuitry to receive a second message comprising a second parent accelerated IO;
- hardware circuitry to generate a second plurality of child accelerated IOs from the second parent accelerated IO;
- hardware circuitry to execute the second plurality of child accelerated IOs to write the LBA from the plurality of buffer segments to the entire identified ghost stripe;
- and
- hardware circuitry to provide notification after completion of the second plurality of child accelerated IOs.
A device, comprising:
- hardware circuitry to manage a virtual disk comprising one or more spans, each span comprising one or more arms, each arm comprising a physical disk, the virtual disk further comprising a plurality of stripes, each stripe comprising a row from each of the one or more spans, each row of a span comprising a strip from each of the one or more arms of the span, each strip comprising one or more logical blocks (LBA);
- hardware circuitry to receive a first message to expand one or more stripes of the virtual disk to include one or more additional arms, the message comprising a first parent accelerated IO;
- hardware circuitry to determine a number of arms in a source virtual disk representing the virtual disk prior to expansion;
- hardware circuitry to determine a number of arms in a ghost virtual disk representing the virtual disk after expansion, the ghost virtual disk comprising a plurality of ghost stripes each having a ghost stripe size;
- hardware circuitry perform a first plurality of child accelerated IOs to read the plurality of LBAs from the source virtual disk, based on the first parent accelerated IO, and based at least in part on the ghost stripe size;
- hardware circuitry to receive a second message after completion of the one or more first plurality of child accelerated IOs, the second message comprising a second accelerated IO;
- and
- hardware circuitry to perform a second plurality of child accelerated IOs to write the plurality of LBA to the ghost virtual disk, based on the second parent accelerated IO.
A method of expanding a virtual disk spanning one or more spans, each span comprising one or more arms, each arm comprising a physical disk, the virtual disk comprising a plurality of stripes, each stripe comprising a row from each of the one or more spans, each row of a span comprising a plurality of logical blocks, the plurality of logical blocks comprising one or more logical blocks from each of the arms of the span, the method comprising:
- receive a first message to expand one or more stripes of the virtual disk to include one or more additional arms, the message comprising a first parent accelerated IO;
- determining a number of arms in a source virtual disk representing the virtual disk prior to expansion;
- determining a number of arms in a ghost virtual disk representing the virtual disk after expansion, the ghost virtual disk comprising a plurality of ghost stripes each having a ghost stripe size;
- performing a first plurality of child accelerated IOs to read the plurality of LBAs from the source virtual disk, based on the first parent accelerated IO, and based at least in part on the ghost stripe size;
- receiving a second message after completion of the one or more first plurality of child accelerated IOs, the second message comprising a second accelerated IO;
- and
- performing a second plurality of child accelerated IOs to write the plurality of LBA to the ghost virtual disk, based on the second parent accelerated IO.
Dependencies are inferred from the claim text.