US2008140930A1PendingUtilityA1

Virtual drive mapping

Assignee: EMULEX DESIGN & MFG CORPPriority: Dec 8, 2006Filed: Dec 8, 2006Published: Jun 12, 2008
Est. expiryDec 8, 2026(~0.4 yrs left)· nominal 20-yr term from priority
G06F 3/0665G06F 3/0664G06F 3/0689G06F 3/0605G06F 3/0607G06F 3/067G06F 3/0683G06F 3/0631
48
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

The automatic mapping of a set of physical drives to virtual drives is disclosed. Given a maximum set of n physical servers, S 1 -S n , and a maximum set of m physical drives, D 1 -D m , a mapping of a set of virtual drives, V 1 -V n , to the physical drives D 1 -D m , is created, assuming n and m are fixed and known, and one virtual drive is created per server. Physical drives of size Dsize are organized into a maximum of p “Stripe Sets” SS 1 -SS p , each Stripe Set containing an equal number of physical drives. Each virtual drive will have a size, Vsize=(m*Dsize)/n (rounded down to the nearest integer). Virtual drives are mapped sequentially to Stripe Sets, starting with V 1 mapped to SS 1 . Successive virtual drives are mapped to Stripe Sets until all virtual drives have been mapped to a Stripe Set.

Claims

exact text as granted — not AI-modified
1 . A processor programmed for automatically mapping a set of physical drives to a larger number of virtual drives in a storage system, given a maximum number of physical drives and virtual drives in the system, by performing the steps of:
 determining a common physical drive size for all physical drives;   determining a virtual drive size for all virtual drives;   determining a number of Stripe Sets, each Stripe Set having an integer number of physical drives; and   mapping each virtual drive to one or more Stripe Sets.   
   
   
       2 . The processor as recited in  claim 1 , wherein the step of determining a common physical drive size for all physical drives comprises discovering the size of all installed physical drives and utilizing the smallest discovered size as the common physical drive size. 
   
   
       3 . The processor as recited in  claim 2 , wherein the step of determining a common physical drive size for all physical drives comprises querying each installed physical drive for its capacity. 
   
   
       4 . The processor as recited in  claim 1 , wherein the step of determining a common virtual drive size for all virtual drives comprises multiplying the maximum number of physical drives by the common physical drive size and dividing by the maximum number of virtual drives. 
   
   
       5 . The processor as recited in  claim 1 , wherein the step of determining a number of Stripe Sets comprises selecting the number of Stripe Sets to yield the smallest number of physical drives per Stripe Set greater than one. 
   
   
       6 . The processor as recited in  claim 5 , the processor further programmed for computing a Stripe Set size for each Stripe Set by multiplying the common physical drive size by the integer number of physical drives in each Stripe Set. 
   
   
       7 . The processor as recited in  claim 1 , wherein the step of mapping each virtual drive to one or more Stripe Sets comprises:
 (1) mapping a first virtual drive to a Stripe Set;   (2) computing a remaining space in the Stripe Set;   (3) as long as the remaining space in the Stripe Set≧Vsize, mapping a next virtual drive to the Stripe Set, computing a new remaining space in Stripe Set, and repeating step (3);   (4) when the remaining space in the Stripe Set<Vsize, mapping the portion of the next virtual drive equal to the remaining space in the Stripe Set to the Stripe Set, and mapping a remaining portion of the next virtual drive to a next Stripe Set; and   (5) repeating steps (2) through (4) until a last virtual drive has been mapped to a last Stripe Set.   
   
   
       8 . The processor as recited in  claim 1 , the processor further programmed for performing the step of validating the mapping to determine if any configuration assumptions have been violated by:
 discovering a number of installed physical drives; and   verifying that the number of installed physical drives is a multiple of the number of physical drives in a Stripe Set.   
   
   
       9 . The processor as recited in  claim 1 , wherein the processor is further capable of automatically re-mapping the physical drives to the virtual drives when drives or servers are added or removed. 
   
   
       10 . The processor as recited in  claim 1 , wherein the storage system is a mirrored configuration. 
   
   
       11 . The processor as recited in  claim 1 , wherein when the storage system includes one or more servers, the processor is further programmed for performing the step of assigning one or more virtual drives per server. 
   
   
       12 . A storage array comprising the processor of  claim 1 . 
   
   
       13 . A blade server comprising the storage array of  claim 12 . 
   
   
       14 . A Storage Area Network (SAN) comprising the blade server of  claim 13 . 
   
   
       15 . The processor as recited in  claim 1 , wherein the processor is a component of a storage concentrator. 
   
   
       16 . The processor as recited in  claim 15 , wherein the storage concentrator is a component of a blade server. 
   
   
       17 . The processor as recited in  claim 16 , wherein the blade server is a component of a Storage Area Network (SAN). 
   
   
       18 . One or more storage media including a computer program which, when executed by one or more processors, automatically maps a set of physical drives to a larger number of virtual drives in a storage system, given a maximum number of physical drives and virtual drives in the system, by causing the one or more processors to perform the steps of:
 determining a common physical drive size for all physical drives;   determining a virtual drive size for all virtual drives;   determining a number of Stripe Sets, each Stripe Set having an integer number of physical drives; and   mapping each virtual drive to one or more Stripe Sets.   
   
   
       19 . The one or more storage media as recited in  claim 18 , wherein the step of determining a common physical drive size for all physical drives comprises discovering the size of all installed physical drives and utilizing the smallest discovered size as the common physical drive size. 
   
   
       20 . The one or more storage media as recited in  claim 19 , wherein the step of determining a common physical drive size for all physical drives comprises querying each installed physical drive for its capacity. 
   
   
       21 . The one or more storage media as recited in  claim 20 , wherein the step of determining a common virtual drive size for all virtual drives comprises multiplying the maximum number of physical drives by the common physical drive size and dividing by the maximum number of virtual drives. 
   
   
       22 . The one or more storage media as recited in  claim 18 , wherein the step of determining a number of Stripe Sets comprises selecting the number of Stripe Sets to yield the smallest number of physical drives per Stripe Set greater than one. 
   
   
       23 . The one or more storage media as recited in  claim 22 , wherein the computer program further causes the one or more processors to perform the step of computing a Stripe Set size for each Stripe Set by multiplying the common physical drive size by the integer number of physical drives in each Stripe Set. 
   
   
       24 . The processor as recited in  claim 18 , wherein the step of mapping each virtual drive to one or more Stripe Sets comprises:
 (1) mapping a first virtual drive to a Stripe Set;   (2) computing a remaining space in the Stripe Set;   (3) as long as the remaining space in the Stripe Set≧Vsize, mapping a next virtual drive to the Stripe Set, computing a new remaining space in Stripe Set, and repeating step (3);   (4) when the remaining space in the Stripe Set<Vsize, mapping the portion of the next virtual drive equal to the remaining space in the Stripe Set to the Stripe Set, and mapping a remaining portion of the next virtual drive to a next Stripe Set; and   (5) repeating steps (2) through (4) until a last virtual drive has been mapped to a last Stripe Set.   
   
   
       25 . The one or more storage media as recited in  claim 18 , wherein the computer program further causes the one or more processors to perform the step of validating the mapping to determine if any configuration assumptions have been violated by:
 discovering a number of installed physical drives; and   verifying that the number of installed physical drives is a multiple of the number of physical drives in a Stripe Set.   
   
   
       26 . The one or more storage media as recited in  claim 18 , wherein the computer program further causes the one or more processors to automatically re-map the physical drives to the virtual drives when drives or servers are added or removed. 
   
   
       27 . The one or more storage media as recited in  claim 18 , wherein the storage system is a mirrored configuration. 
   
   
       28 . The one or more storage media as recited in  claim 18 , wherein when the storage system includes one or more servers, the computer program further causes the one or more processors to perform the step of assigning one virtual drive per server. 
   
   
       29 . A method for automatically mapping a set of physical drives to a larger number of virtual drives in a storage system, given a maximum number of physical drives and virtual drives in the system, comprising:
 determining a common physical drive size for all physical drives;   determining a common virtual drive size for all virtual drives;   determining a number of Stripe Sets, each Stripe Set having an integer number of physical drives; and   mapping each virtual drive to one or more Stripe Sets.   
   
   
       30 . The method as recited in  claim 29 , wherein the step of determining a common physical drive size for all physical drives comprises discovering the size of all installed physical drives and utilizing the smallest discovered size as the common physical drive size. 
   
   
       31 . The method as recited in  claim 30 , wherein the step of determining a common physical drive size for all physical drives comprises querying each installed physical drive for its capacity. 
   
   
       32 . The method as recited in  claim 29 , wherein the step of determining a common virtual drive size for all virtual drives comprises multiplying the maximum number of physical drives by the common physical drive size and dividing by the maximum number of virtual drives. 
   
   
       33 . The method as recited in  claim 29 , wherein the step of determining a number of Stripe Sets comprises selecting the number of Stripe Sets to yield the smallest number of physical drives per Stripe Set greater than one. 
   
   
       34 . The method as recited in  claim 33 , further comprising computing a Stripe Set size for each Stripe Set by multiplying the common physical drive size by the integer number of physical drives in each Stripe Set. 
   
   
       35 . The method as recited in  claim 29 , wherein the step of mapping each virtual drive to one or more Stripe Sets comprises:
 (1) mapping a first virtual drive to a Stripe Set;   (2) computing a remaining space in the Stripe Set;   (3) as long as the remaining space in the Stripe Set≧Vsize, mapping a next virtual drive to the Stripe Set, computing a new remaining space in Stripe Set, and repeating step (3);   (4) when the remaining space in the Stripe Set<Vsize, mapping the portion of the next virtual drive equal to the remaining space in the Stripe Set to the Stripe Set, and mapping a remaining portion of the next virtual drive to a next Stripe Set; and   (5) repeating steps (2) through (4) until a last virtual drive has been mapped to a last Stripe Set.   
   
   
       36 . The method as recited in  claim 29 , further comprising performing the step of validating the mapping to determine if any configuration assumptions have been violated by:
 discovering a number of installed physical drives; and   verifying that the number of installed physical drives is a multiple of the number of physical drives in a Stripe Set.   
   
   
       37 . The method as recited in  claim 29 , further comprising automatically re-mapping the physical drives to the virtual drives when drives or servers are added or removed. 
   
   
       38 . The method as recited in  claim 29 , wherein the storage system is a mirrored configuration. 
   
   
       39 . The method as recited in  claim 28 , wherein when the storage system includes one or more servers, the method further comprises performing the step of assigning one virtual drive per server.

Join the waitlist — get patent alerts

Track US2008140930A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.