Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Web History | Sign in

Patents

The present invention provides a method and apparatus for designing storage systems. Stores are clustered into workloads by using one clustering technique or a combination of two or more clustering techniques to reduce the number of constraint calculations that need to be performed. By reducing the number of constraint calculations that need to be performed, workload assignments can be generated in a reasonably short amount of time, thus enabling larger, more complex storage systems to be designed. The clustering techniques include one or more of the following: (1) clustering stores to reduce the overall number of stores, and (2) clustering stores into aggregates having storage capacity requirements and/or (3) bandwidth requirements that allow no more than a particular number of aggregates to be placed per logical unit (LU).

InventorsSusie Go, John Wilkes
Original AssigneeHewlett-Packard Development Company, L.P.
Primary Examiner: Albert W. Paladini
Current U.S. Classification703/22; 707/999.002; 707/999.102; 711/170
International Classification: G06F009/45

View patent at USPTO
Search USPTO Assignment Database

Citations

Cited PatentFiling dateIssue dateOriginal AssigneeTitle
US5475830Jan 31, 1992Dec 12, 1995Quickturn Design Systems, Inc.Structure and method for providing a reconfigurable emulation circuit without hold time violations
US5742814May 15, 1996Apr 21, 1998IMEC vzwBackground memory allocation for multi-dimensional signal processing
US6324678Aug 22, 1996Nov 27, 2001LSI Logic CorporationMethod and system for creating and validating low level description of electronic design
US6421809Jul 23, 1999Jul 16, 2002Interuniversitaire Micro-Elektronica Centrum (IMEC VZW)Method for determining a storage bandwidth optimized memory organization of an essentially digital device

Referenced by

Citing PatentFiling dateIssue dateOriginal AssigneeTitle
US7236915Aug 9, 2001Jun 26, 2007Hewlett-Packard Development Company, L.P.Technique and interface for computer system resource assignment
US7643983Mar 27, 2003Jan 5, 2010Hewlett-Packard Development Company, L.P.Data storage system emulation
US7814272Nov 4, 2005Oct 12, 2010Data Robotics, Inc.Dynamically upgradeable fault-tolerant storage system permitting variously sized storage devices and method
US7814273Nov 4, 2005Oct 12, 2010Data Robotics, Inc.Dynamically expandable and contractible fault-tolerant storage system permitting variously sized storage devices and method
US7818531Nov 4, 2005Oct 19, 2010Data Robotics, Inc.Storage system condition indicator and method
US7870241Nov 27, 2002Jan 11, 2011International Business Machines CorporationAutomated power control policies based on application-specific redundancy characteristics
US7873782May 3, 2007Jan 18, 2011Data Robotics, Inc.Filesystem-aware block storage system, apparatus, and method
US7991835May 18, 2009Aug 2, 2011Cisco Technology, Inc.Distributed client services based on execution of service attributes and data attributes by multiple nodes in resource groups
US8051170Feb 10, 2005Nov 1, 2011Cisco Technology, Inc.Distributed computing based on multiple nodes with determined capacity selectively joining resource groups having resource requirements
US8073671Mar 31, 2006Dec 6, 2011Microsoft CorporationDynamic software performance models
US8195742Jun 20, 2011Jun 5, 2012Cisco Technology, Inc.Distributed client services based on execution of service attributes and data attributes by multiple nodes in resource groups
US8239540Aug 30, 2011Aug 7, 2012Cisco Technology, Inc.Distributed computing based on multiple nodes with determined capacity selectively joining resource groups having resource requirements

Claims

1. A method for computing assignments of data stores to storage device logical units for a data storage system design comprising:

selecting a plurality of data stores for each of a plurality of data store clusters;

clustering the selected data stores thereby forming the data store clusters; and

assigning the data store clusters to the storage device logical units using a machine-implemented design algorithm by which constraint calculations are performed at the cluster level for each data store cluster.

2. The method according to claim 1, wherein said selecting a plurality of data stores for a particular one of the data store clusters comprises selecting the data stores according to an order in which the data stores are presented.

3. The method according to claim 1, wherein said selecting a plurality of data stores for a particular one of the data store clusters comprises selecting the data stores in random order.

4. The method according to claim 1, wherein said selecting a plurality of data stores for a particular one of the data store clusters comprises selecting the data stores according to an order in which the data stores are sorted based on characteristics of the data stores.

5. The method according to claim 4, wherein the characteristics include size of the stores.

6. The method according to claim 4, wherein the characteristics include aggregate stream demands.

7. The method according to claim 1, wherein said selecting a plurality of data stores for a particular one of the data store clusters comprises selecting the data stores according to an order in which the data stores are sorted based on similarity of characteristics.

8. The method according to claim 7, wherein the characteristics include reliability or storage class requirements.

9. The method according to claim 7, wherein the characteristics include layout requirements.

10. The method according to claim 7, wherein the characteristics include importance.

11. The method according to claims 1, wherein said selecting a plurality of data stores for a particular one of the data store clusters comprises selecting the data stores according to an order in which the data stores are sorted based on desired properties for a particular data store cluster.

12. The method according to claim 1, wherein said clustering the selected data stores for a particular one of the data store clusters comprises clustering a determined number of the data stores together.

13. The method according to claim 1, wherein said clustering the selected data stores is based on capacity.

14. The method according to claim 13, wherein aggregate capacity requirements of the data store clusters prevent more than a particular number, N, of the data store clusters from being assigned per logical unit.

15. The method according to claim 1, wherein said clustering the selected data stores is based on bandwidth.

16. The method according to claim 15, wherein aggregate bandwidth requirements of the data store clusters prevent more than a particular number, N, of the data store clusters from being assigned per logical unit.

17. The method according to claim 1, wherein said clustering the selected data stores is based on capacity and bandwidth wherein aggregate capacity and bandwidth requirements of the data store clusters prevent more than a particular number, N, of the data store clusters from being assigned per logical unit.

18. The method according to claim 17, wherein said selecting a plurality of data stores for a particular one of the data store clusters comprises selecting the data stores in random order.

19. The method according to claim 1, further comprising de-clustering the data stores.

20. The method according to claim 1, further comprising determining whether all of the data stores have been assigned and, if all of the data stores have been assigned, outputting a resulting assignment.

21. The method according to claim 1, further comprising determining whether all of the data stores have been assigned and, if not all of the data stores have been assigned, reducing a cluster size and repeating said steps of selecting, clustering and assigning.

22. A computer-readable medium having stored thereon a computer program for performing a method of designing storage systems, the method comprising steps of:

selecting a plurality of data stores for each of a plurality of data store clusters;

clustering the selected data stores thereby forming the data store clusters; and

assigning the data store clusters to the storage device logical units using a machine-implemented design algorithm by which constraint calculations are performed at the cluster level for each data store cluster.