METHODS AND SYSTEMS FOR DATA STORAGE USING SOLID STATE DRIVES
Provided herein are methods and systems for improved storage strategies for use of collections of storage resources, such as solid state drives, including in connection with a converged networking and storage node that may be used for virtualization of a collection of physically attached and/or network-connected storage resources.
1 . A method for managing compliance by one or more applications with drive writes-per-day limits of solid-state drives, comprising:
determining a collective writes-per-day requirement of the one or more applications for execution on at least one processor having an interface through which two or more solid-state drives are configured to the at least one processor as a logical storage device;
determining a drive writes-per-day limit for each of the two or more solid-state drives; and
constructing a virtual cluster of the two or more solid-state drives as the logical storage device, wherein the virtual cluster has a cluster writes-per-day limit based, at least in part, on the determined drive writes-per-day limits and satisfies the collective writes-per-day requirement.
2 . The method of claim 1 , wherein determining the collective writes-per-day requirement of the one or more applications comprises:
determining a writes-per-day requirement for each application of the one or more applications; and
summing the determined writes-per-day requirements.
3 . The method of claim 2 , wherein determining the collective writes-per-day requirement of the one or more applications is based, at least in part, on a preconfigured level of over-capacity writes-per-day value.
4 . The method of claim 1 further comprising:
managing access by the at least one processor to the virtual cluster so that the drive writes-per-day limit of any one of the two or more solid-state drives is satisfied.
5 . The method of claim 4 , wherein managing access by the at least one processor comprises:
allocating a first application of the one or more applications to a first solid-state drive of the virtual cluster with a drive writes-per-day limit that is equal to or greater than a writes-per-day requirement of the first application.
6 . The method of claim 4 , wherein managing access by the at least one processor comprises:
distributing writes by the one or more applications across the two or more solid-state drives of the virtual cluster.
7 . The method of claim 4 , wherein managing access by the at least one processor comprises:
tracking writes-per-day activity of the one or more applications; and
adjusting the virtual cluster based, at least in part, on the tracked writes-per-day activity.
8 . The method of claim 7 , wherein adjusting the virtual cluster comprises:
adding a solid-state drive to the virtual cluster when the tracked writes-per-day activity exceeds the cluster writes-per-day limit.
9 . The method of claim 7 , wherein adjusting the virtual cluster comprises:
removing a solid-state drive from the virtual cluster when the tracked writes-per-day activity is less than the cluster writes-per-day limit.
10 . The method of claim 4 , wherein managing access by the at least one processor comprises:
allocating writes from at least one application of the one or more applications to at least two solid-state drives in the virtual cluster.
11 . The method of claim 10 , wherein the at least two solid-state drives in the virtual cluster have different drive writes-per-day limits.
12 . The method of claim 11 , wherein the cluster writes-per-day limit is at least equal to the collective writes-per-day requirement.
13 . The method of claim 1 , wherein the two or more solid-state drives comprise:
at least one physically attached solid-state drive and at least one network-distributed solid-state drive.
14 . The method of claim 13 , wherein the at least one network-distributed solid-state drive is accessed by the at least one processor through a first converged network and storage controller that is local to the at least one processor and communicates with a second converged network and storage controller to which the at least one network-distributed solid-state drive is locally attached.
15 . The method of claim 1 , wherein constructing the virtual cluster comprises:
reformatting at least one solid-state drive of the two or more solid-state drives to have a drive writes-per-day limit that is based, at least in part, on a drive writes-per-day limit of at least one other solid-state drive of the two or more solid-state drives.
16 . A system, comprising:
two or more solid-state drives;
at least one processor; and
an interface through which two or more solid-state drives are configured to the at least one processor as a logical storage device;
wherein the at least one processor is operative to:
determine a collective writes-per-day requirement of one or more applications for execution on the at least one processor;
determine a drive writes-per-day limit for each of the two or more solid-state drives; and
construct a virtual cluster of the two or more solid-state drives as the logical storage device, wherein the virtual cluster has a cluster writes-per-day limit based, at least in part, on the determined drive writes-per-day limits and satisfies the collective writes-per-day requirement.
17 . The system of claim 16 , wherein:
the at least one processor is further operative to determine a writes-per-day requirement for each application of the one or more applications; and
the collective writes-per-day requirement is based, at least in part, on a sum of the determined writes-per-day requirements.
18 . The system of claim 17 , wherein the at least one processor is further operative to:
track writes-per-day activity of the one or more applications; and
adjust the virtual cluster based, at least in part, on the tracked writes-per-day activity.
19 . A method comprising:
determining a writes-per-day limit of a logical storage device accessible by at least one processor, the writes-per-day limit of the logical storage device based, at least in part, on drive write-per-day limits for each of two or more solid-state drives of the logical storage device;
determining a collective writes-per-day requirement for one or more applications for execution on the at least one processor; and
allocating a portion of the logical storage device to at least one of the one or more applications based, at least in part, on the collective writes-per-day requirement and a writes-per-day limit of the allocated portion of the logical storage device.
20 . The method of claim 19 further comprising:
managing access by the at least one processor to the logical storage device so that the drive writes-per-day limit of any solid-state drive in the allocated portion is satisfied.
21 . The method of claim 20 , wherein managing access by the at least one processor to the logical storage device comprises:
reconfiguring the logical storage device to satisfy the collective write-per-day requirement.
22 . The method of claim 21 , wherein reconfiguring the logical storage device includes at least one procedure selected from a list of procedures consisting of:
adding a solid-state drive to the logical storage device; or removing a solid-state drive from the logical storage device.
23 . The method of claim 20 , wherein managing access by the at least one processor to the logical storage device comprises:
redirecting a write load of an application of the one or more applications from a first solid-state drive of the two or more solid state drives to a second solid-state drive of the two or more solid state drives.
24 . The method of claim 23 , wherein redirecting a write load of an application of the one or more applications is based, at least in part, on a writes-per-day requirement of the application.
25 . The method of claim 24 , wherein redirecting a write load of an application of the one or more applications is further based, at least in part, on a write-per-day requirement of the one or more applications to which the second solid-state drive is allocated and on the drive write-per-day limit of the second solid-state drive.