IP Library Granted Patent US 7,269,631
Granted Patent B2
US 7,269,631 · App. 09/872,970 · Granted Sep 11, 2007

Architecture for parallel distributed table driven I/O mapping

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,269,631
App. No.
09/872,970
Granted
Sep 11, 2007
Kind
B2
Abstract

The present invention provides a system and method for creating virtualized storage in a storage area network using distributed table-driven input/output mapping. The present invention distributes the virtualization mapping in multiple parallel, mapping agents that are separate from a controller. This allows the performance-sensitive mapping process to be parallelized and distributed optimally for performance, while the control of the mapping may be located in a controller chosen for optimal cost, management, and other implementation practicalities. The mapping agents store the virtual mapping tables in volatile memory, substantially reducing the cost and complexity of implementing the mapping agents. The controller is responsible for persistent storage of mapping tables, thereby consolidating the costs and management for persistent mapping table storage in a single component. Distributed virtualization also allows the controller to manage multiple virtual disks used by multiple host systems, and allows a single virtual disk to be shared by multiple host systems. The mapping agents preferably do not interact only with other mapping agents, thereby improving the scalability of the virtual storage system and the virtual storage system's tolerance of component failures.

Claims (34)

1. A virtual storage system for linking a host to one or more storage devices over a network, the system comprising:

an agent connected to the host, the agent having volatile memory for storing a first copy of a table, the table having entries to map virtual disk positions, to locations on the storage devices; and

a controller coupled to the agent, the controller having non-volatile memory for storing a second copy of the table, the controller intermittently causing contents of the first copy of the table to be replaced by contents of the second copy of the table,

whereby during an input/output (I/O) operation, the host accesses one of the entries in the table stored on the agent to determine one of the storage device locations.

2. The system of claim 1 , wherein the table entries further include an indication of whether an invalid state is activated such that the invalid state for a table entry becomes activated when that table entry contains no useable mapping information.

3. The system of claim 2 , wherein the agent does not allow the host to complete the I/O operations with one of the entries if the invalid state for that entry is activated.

4. The system of claim 1 , wherein the table entries further include an indication of whether a no-write state is activated such that the no-write state for one of the entries becomes activated when data cannot be written to the storage location contained in that entry.

5. The system of claim 4 , wherein the agent does not allow the host to write data to the storage location in one of the entries if the no-write state for that entry is activated.

6. The system of claim 1 , further comprising a communication channel to couple the agent and the controller.

7. The system of claim 6 , wherein the communication channel employs a data transfer protocol to transport messages on the communication channel.

8. The system of claim 1 , wherein the entries include an offset.

9. The system of claim 8 , wherein the offset includes logic unit number identifier.

10. The system of claim 8 , wherein the offset includes a block identifier.

11. The system of claim 10 , wherein the entries further includes a segment of virtual disk positions.

12. A system for mapping a virtual disk segment to a storage location within a storage device, comprising:

a host computer to issue an I/O operation identifying a logical unit and a block identifier within the logical unit;

an agent connected to a host computer, the agent having a volatile memory module for storing a first copy of a table having entries to map a virtual disk position to a storage location on the storage devices and a plurality of variables indicating states of the respective entries; and

a controller coupled to the agent, the controller having non-volatile memory for storing a second copy of the table, the controller intermittently causing contents of the first copy of the table to be replaced by contents of the second copy of the table.

13. The system of claim 12 , wherein the memory is volatile.

14. The system of claim 12 , wherein said storage location comprises a block of data within the storage device.

15. The system of claim 14 , wherein the block of data is 1 MB.

16. The system of claim 12 , wherein the agent is coupled to the host.

17. The system of claim 12 , wherein the plurality of variables comprise Boolean variable.

18. The system of claim 12 , wherein the states include an invalid state.

19. The system of claim 18 , wherein the plurality of variables includes a variable for the invalid state.

20. The system of claim 12 , wherein the states include a no-write state.

21. The system of claim 20 , wherein the plurality of variables includes a variable for the no-write state.

22. The system of claim 12 , wherein the states include a zero state.

23. The system of claim 12 , wherein the states include an error state.

24. The system of claim 12 , wherein said storage location comprises a variable sized group of contiguous virtual disk blocks.

25. The system of claim 12 , wherein said table entry represents a variable sized group of contiguous virtual disk blocks.

26. The system of claim 25 , wherein said contiguous virtual disk blocks map to contiguous blocks on a storage container.

27. The system of claim 12 , wherein said table entry comprises a beginning block.

28. The system of claim 12 , wherein said table entry comprises an ending block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →