Storage virtualization system and methods
First Claim
1. A method of dynamically mapping addresses between a virtual disk address and one or more physical block addresses dynamically allocated from a storage system shared by one or more virtual disks in response to a write operation requested by a host system, the method comprising:
- receiving a write request from a host, said write request including a virtual memory address and one of more blocks of data;
determining whether memory space in the storage system has not been allocated for the one of more blocks of data based on the virtual memory address;
if so, automatically and dynamically allocating memory space from a pool of available memory space in the storage system for the one or more blocks of data;
wherein automatically and dynamically allocating memory space from the pool of available memory space in the storage system for the one or more blocks of data comprises;
based upon detecting that storage has not been allocated for a physical block address and in response to receiving the write request, automatically and dynamically allocating physical block addresses from a pool of available physical block addresses in the storage system for the one or more blocks of data;
wherein, upon detecting that storage has not been allocated for the physical block address;
comparing the one or more blocks of data with a default formatted block value indicating a predefined data size associated with the storage system;
when the one or more blocks of data matches the default formatted block, completing the write operation to the physical block addresses; and
when the one or more blocks of data does not match the default formatted block detecting a region of continuous blocks associated with the storage system, dynamically allocating region of continuous blocks associated with the storage system for the one or more blocks of data, and completing the write operation to the dynamically allocated physical block addresses; and
if the allocated memory space has been freed after the write operation, returning the memory space that has been freed to the pool of available memory space.
11 Assignments
0 Petitions
Accused Products
Abstract
Storage virtualization systems and methods that allow customers to manage storage as a utility rather than as islands of storage which are independent of each other. A demand mapped virtual disk image of up to an arbitrarily large size is presented to a host system. The virtualization system allocates physical storage from a storage pool dynamically in response to host I/O requests, e.g., SCSI I/O requests, allowing for the amortization of storage resources-through a disk subsystem while maintaining coherency amongst I/O RAID traffic. In one embodiment, the virtualization functionality is implemented in a controller device, such as a controller card residing in a switch device or other network device, coupled to a storage system on a storage area network (SAN). The resulting virtual disk image that is observed by the host computer is larger than the amount of physical storage actually consumed.
77 Citations
9 Claims
-
1. A method of dynamically mapping addresses between a virtual disk address and one or more physical block addresses dynamically allocated from a storage system shared by one or more virtual disks in response to a write operation requested by a host system, the method comprising:
-
receiving a write request from a host, said write request including a virtual memory address and one of more blocks of data; determining whether memory space in the storage system has not been allocated for the one of more blocks of data based on the virtual memory address; if so, automatically and dynamically allocating memory space from a pool of available memory space in the storage system for the one or more blocks of data; wherein automatically and dynamically allocating memory space from the pool of available memory space in the storage system for the one or more blocks of data comprises; based upon detecting that storage has not been allocated for a physical block address and in response to receiving the write request, automatically and dynamically allocating physical block addresses from a pool of available physical block addresses in the storage system for the one or more blocks of data; wherein, upon detecting that storage has not been allocated for the physical block address; comparing the one or more blocks of data with a default formatted block value indicating a predefined data size associated with the storage system; when the one or more blocks of data matches the default formatted block, completing the write operation to the physical block addresses; and when the one or more blocks of data does not match the default formatted block detecting a region of continuous blocks associated with the storage system, dynamically allocating region of continuous blocks associated with the storage system for the one or more blocks of data, and completing the write operation to the dynamically allocated physical block addresses; and if the allocated memory space has been freed after the write operation, returning the memory space that has been freed to the pool of available memory space. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
Specification