Centralized fine-grained enhancements for distributed table driven I/O mapping
First Claim
1. A virtual storage system for mapping virtual storage segments of differing sizes to storage locations, comprising:
- an agent coupled to the host, the agent having volatile memory for storing a first table, the table having entries to map the virtual storage segments to the storage locations; and
a controller coupled to the agent, the controller having non-volatile memory for storing a second table, the controller intermittently causing contents of the first table to be replaced by contents of the second table, whereby during an input/output (I/O) operation, the host accesses one of the entries in the first table to determine one of the storage locations.
3 Assignments
0 Petitions
Accused Products
Abstract
In response to these and other needs, the present invention provides a virtual storage system that generally uses larger segmentations, but has the ability to divide the large segments into smaller sub-segments during data movement operations. The mapping has large segments except for those segments undergoing data movement. For those segments being moved, the mapping uses the smallest segment size possible, namely, a single disk block. The present invention provides a method and system having this hierarchy of segment sizes, a large segment for normal uses and breaking the large segment into single disk blocks during data movement. In this way, the administration costs are generally low, but latencies caused by the movement of large data blocks are avoided. The hierarchy of segment sizes is accomplished through a distributed virtual storage system having a controller that manages a mapping table and multiple agents that present the mapping to devices on the network. The present invention adapts the mapping table to include a first and a second storage locations and a bit map of the actual storage segments. When the first storage location is occupied during a move operation, the controller causes other I/O operations to occur at the second location. The bitmap stores, on a block by block basis, the blocks at the second location affected by the I/O operations. During future operations, the mapping table maps to first the storage location, except for the block indicated in the bitmap. The bitmap is stored only by the controller and is sent out to the agents as part of an instruction to read from parts of first storage location not contained in the bitmap and parts of the second storage location contained in the bitmap.
178 Citations
16 Claims
-
1. A virtual storage system for mapping virtual storage segments of differing sizes to storage locations, comprising:
-
an agent coupled to the host, the agent having volatile memory for storing a first table, the table having entries to map the virtual storage segments to the storage locations; and
a controller coupled to the agent, the controller having non-volatile memory for storing a second table, the controller intermittently causing contents of the first table to be replaced by contents of the second table, whereby during an input/output (I/O) operation, the host accesses one of the entries in the first table to determine one of the storage locations. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for mapping a virtual disk segment to a storage location within a storage device, such that a host queries said system to determine said storage location for input/output operations, said system comprising:
-
a first table having a first table entry mapping the virtual disk segment to the storage location;
a second table having a second table entry corresponding to said storage location and to an alternate storage location, and block bitmap information identifying blocks of data having differing sizes within the alternate storage location;
a plurality of variables indicating states of the entry;
an offset for the entry, wherein the offset includes a logic unit number identifier and a block identifier;
a first memory to store the first table and a second memory to store the second table. - View Dependent Claims (8, 9, 10, 11, 13, 14, 15, 16)
-
-
12. A method for performing an input/output operation on a virtual storage segment defined by a first table that maps the storage segment to a first storage location, the method comprising:
-
turning off input/output operations at the first storage location;
identifying portions of the virtual storage segment to be effected during the write operation;
storing a record of the identified portions at a second table and not at the first table; and
writing to a second storage location, whereby the writing operation occurs at portions of the second storage location associated with the identified portions.
-
Specification