THIN-PROVISIONING WITH SNAPSHOT TECHNOLOGY
First Claim
1. A method for writing to a virtual volume mapped to a logical disk, comprising:
- receiving a request to write a data to the virtual volume at an address;
traversing a first table representing the virtual volume to find a first pointer at a first offset based on a first portion of the address, the first pointer leading to one of a plurality of second tables (“
said one second table”
) also representing the virtual volume;
following the first pointer to said one second table;
traversing said one second table to find a second pointer at a second offset based on a second portion of the address, the second pointer leading to one of a plurality of third tables (“
said one third table”
);
if said one second table does not exist, determining if the number of available table pages in a first pool is less than a first threshold;
if the number of available table pages in the first pool is not less than the first threshold, allocating one table page from the first pool to form said one second table;
writing the first pointer at the first offset in the first table;
if the number of available table pages in the first pool is less than the first threshold, requesting additional table pages to be added to the first pool.
4 Assignments
0 Petitions
Accused Products
Abstract
A method is provided to allow a system administrator of a utility storage server to provision virtual volumes several times larger than the amount of physical storage within the storage server. A virtual volume is a virtual representation of multiple disks as a single large volume to a host or an application. In one embodiment, a virtual volume comprises an exception list containing the set of differences from dummy base volume consisting of all zeros. This exception list can be made up of address tables that map virtual volume pages to logical disk pages. As storage demand grows, additional storage is allocated for the address tables and the data pages from separate pools of storage. If any of the pools runs low, more logical disk regions are allocated to that pool.
72 Citations
18 Claims
-
1. A method for writing to a virtual volume mapped to a logical disk, comprising:
-
receiving a request to write a data to the virtual volume at an address;
traversing a first table representing the virtual volume to find a first pointer at a first offset based on a first portion of the address, the first pointer leading to one of a plurality of second tables (“
said one second table”
) also representing the virtual volume;
following the first pointer to said one second table;
traversing said one second table to find a second pointer at a second offset based on a second portion of the address, the second pointer leading to one of a plurality of third tables (“
said one third table”
);
if said one second table does not exist, determining if the number of available table pages in a first pool is less than a first threshold;
if the number of available table pages in the first pool is not less than the first threshold, allocating one table page from the first pool to form said one second table;
writing the first pointer at the first offset in the first table;
if the number of available table pages in the first pool is less than the first threshold, requesting additional table pages to be added to the first pool. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for provisioning a virtual volume mapped to a logical disk, comprising:
-
receiving a request to write a data to the virtual volume at an address;
traversing a table representing the virtual volume to find a pointer at an offset based on a portion of the address, the pointer leading to one of a plurality of data pages (“
said one data page”
);
if said one data page does not exist, determining if the number of available data pages in a pool is less than a threshold;
if the number of available data pages in the pool is less than the threshold, requesting additional data pages to be added to the pool;
determining if the logical disk has one storage unit (“
logical disk region”
) available;
if the logical disk has one logical disk region available, dividing said one logical disk region into data pages;
allocating the data pages to the pool. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
Specification