×

Method and apparatus for expanding a virtual storage device

  • US 8,656,131 B2
  • Filed: 02/02/2009
  • Issued: 02/18/2014
  • Est. Priority Date: 10/31/2008
  • Status: Active Grant
First Claim
Patent Images

1. A method for expanding a virtual storage device, comprising:

  • expanding the virtual storage device that includes N storage device units by adding M storage device units, wherein each of the N storage device units and the M storage device units have B strips available for data storage, wherein each of the B strips in the N storage device units are assigned a logical address according to an initial mapping function, wherein data in the M storage device units is not required to be initialized, wherein data stored in the B strips in the N storage device units have an original physical location corresponding to the initial mapping function, and wherein each of the B strips in the initial mapping function are arranged in the same order as the B strips in the M storage device units;

    assigning a logical address to each of the B strips in the M storage device units according to a new storage device mapping function, wherein the logical addresses assigned to the B strips in the M storage device units are sequentially concatenated to the highest logical address in the initial mapping function;

    identifying by logical address in the initial mapping function each strip in each of the (N+M)×

    B strips available for data storage;

    assigning a new logical address to each of the B strips in the combined N+M storage device units according to a final mapping function;

    assigning a first status value to each strip that has a location in the virtual storage device that does not conform to the final mapping function, wherein all strips except the first N strips of the initial mapping function and the last strip of the new storage device mapping function have the first status value;

    assigning a second status value to each strip that has a location in the virtual storage device that conforms to the final mapping function, wherein the first N strips of the initial mapping function and the last strip of the new storage device mapping function have the second status value, wherein data in strips having the second status value are not copied elsewhere while expanding the virtual storage device, wherein strips having the second status value always maintain the second status value while expanding the virtual storage device;

    after assigning first and second status values, selecting a first strip associated with the first status value, wherein the first strip associated with the first status value is the first strip in the new storage device mapping function;

    identifying the logical address of the selected first strip, wherein the logical address of the selected first strip is the address of the first strip in the new storage device mapping function;

    determining a destination location for the selected first strip, wherein the destination location for the selected first strip is determined by applying the logical address of the selected first strip to the final mapping function;

    writing data in a second strip occupying the destination location for the selected first strip to a first temporary storage buffer, wherein the data in the second strip is associated with a second logical address, wherein the first temporary storage buffer is separate from the virtual storage device; and

    writing data stored in the original location of the selected first strip to the destination location for the selected first strip, wherein the destination location for the selected first strip conforms to the final mapping function.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×