Abstract:
A system and method for providing a layout of equipment in a data center, the equipment including a plurality of equipment racks, and at least one rack-based cooling provider. In one aspect, the method includes receiving data regarding airflow consumption for each of the plurality of equipment racks and cooling capacity of the at least one cooling provider, storing the received data, determining a layout of the data center, and displaying the layout of the data center.

Description:
BACKGROUND 
     1. Field of the Invention 
     At least one embodiment in accordance with the present invention relates generally to systems and methods for data center management and design, and more specifically, to systems and methods for managing data center air flow and energy usage and for arranging equipment in a data center based on air flow and energy usage. 
     2. Discussion of Related Art 
     In response to the increasing demands of information-based economies, information technology networks continue to proliferate across the globe. One manifestation of this growth is the centralized network data center. A centralized network data center typically consists of various information technology equipment, collocated in a structure that provides network connectivity, electrical power and cooling capacity. Often the equipment is housed in specialized enclosures termed “racks” which integrate connectivity, power and cooling elements. In some data center configurations, rows of racks are organized into hot and cold aisles to decrease the cost associated with cooling the information technology equipment. These characteristics make data centers a cost effective way to deliver the computing power required by many software applications. 
     Various processes and software applications, such as the InfrastruXure® Central product available from American Power Conversion Corporation of West Kingston, R.I., have been developed to aid data center personnel in designing and maintaining efficient and effective data centers configurations. These tools often guide data center personnel through activities such as designing the data center structure, positioning equipment within the data center prior to installation and repositioning, removing, and adding equipment after construction and installation are complete. Thus, conventional tool sets provide data center personnel with a standardized and predictable design methodology. 
     SUMMARY OF THE INVENTION 
     A first aspect of the invention is directed to a computer-implemented method for providing a layout of equipment in a data center, the equipment including a plurality of equipment racks, and at least one cooling provider. The method includes receiving data regarding airflow consumption for each of the plurality of equipment racks and cooling capacity of the at least one cooling provider, storing the received data determining a layout of the data center, and displaying the layout of the data center. Determining a layout may include pairing each equipment rack of the plurality of equipment racks with another equipment rack of the plurality of equipment racks based on airflow consumption of each of the plurality of equipment racks to create a plurality of pairs of equipment racks, determining a combined airflow consumption value for each of the pairs of equipment racks, arranging the pairs of equipment racks to form a two-row cluster of equipment racks based on the combined power consumption value of the equipment racks, wherein each pair includes an equipment rack in a first row of the cluster and an equipment rack in a second row of the cluster, and determining a location of the at least one cooling provider in the cluster. 
     In the method, pairing each equipment rack may include pairing a greatest airflow consuming equipment rack with a least airflow consuming equipment rack, and pairing a second greatest airflow consuming equipment rack with a second least airflow consuming rack. Arranging the pairs of equipment racks may include identifying a rack pair having a greatest combined airflow consumption value, a rack pair having a least combined airflow consumption value, and a rack pair having a second least combined airflow consumption value, and positioning the rack pair having the greatest combined airflow consumption value in a middle position of the cluster, arranging the rack pair having the least combined airflow consumption value at a first end of the cluster, and arranging the rack pair having the second least combined power consumption value at a second end of the cluster. 
     In the method, determining a location for the at least one cooling provider may include determining an interior position for the at least one cooling provider adjacent two equipment racks. The method may further include receiving information related to a desired cooling redundancy for at least one of the equipment racks, and determining a layout may include determining a layout based at least in part on the information related to a desired cooling redundancy. After determining the layout, the method may include providing an optimized layout using an optimization routine. The method may also include positioning the equipment in the data center in accordance with the determined layout. 
     Another aspect of the invention is directed to a system for providing a layout of equipment in a data center, the equipment including a plurality of equipment racks, and at least one cooling provider. The system includes a display, a storage device, an interface, and a controller coupled to the display, the storage device and the interface and configured to receive through the interface data regarding airflow consumption for each of the plurality of equipment racks and cooling capacity of the at least one cooling provider, store the received data in the storage device, determine a layout of the data center, and display the layout of the data center on the display. Determining a layout may include pairing each equipment rack of the plurality of equipment racks with another equipment rack of the plurality of equipment racks based on airflow consumption of each of the plurality of equipment racks to create a plurality of pairs of equipment racks, determining a combined airflow consumption value for each of the pairs of equipment racks, arranging the pairs of equipment racks to form a two-row cluster of equipment racks based on the combined airflow consumption value of the equipment racks, wherein each pair includes an equipment rack in a first row of the cluster and an equipment rack in a second row of the cluster, and determining a location of the at least one cooling provider in the cluster. 
     In the system, pairing each equipment rack may include pairing a greatest airflow consuming equipment rack with a least airflow consuming equipment rack, and pairing a second greatest airflow consuming equipment rack with a second least airflow consuming rack. In the system, arranging the pairs of equipment racks may includes identifying a rack pair having a greatest combined airflow consumption value, a rack pair having a least combined airflow consumption value, and a rack pair having a second least combined airflow consumption value, and positioning the rack pair having the greatest combined airflow consumption value in a middle position of the cluster, arranging the rack pair having the least combined airflow consumption value at a first end of the cluster, and arranging the rack pair having the second least combined airflow consumption value at a second end of the cluster. 
     In the system, determining a location for the at least one cooling provider may include determining an interior position for the at least one cooling provider adjacent two equipment racks. Further, the controller may be configured to receive information related to a desired cooling redundancy for at least one of the equipment racks, and may be configured to determine a layout based at least in part on the information related to a desired cooling redundancy. The controller may be further configured to determine an optimized layout using an optimization routine having the determined layout as an input. 
     Another aspect of the invention is directed to a computer readable medium having stored thereon sequences of instruction including instructions that will cause a processor to receive data regarding airflow consumption for each of a plurality of equipment racks and cooling capacity of at least one cooling provider contained in a data center, store the received data in a storage device, determine a layout of the data center, and display the layout of the data center on a display. The instructions for determining a layout may include pairing each equipment rack of the plurality of equipment racks with another equipment rack of the plurality of equipment racks based on airflow consumption of each of the plurality of equipment racks to create a plurality of pairs of equipment racks, determining a combined airflow consumption value for each of the pairs of equipment racks, arranging the pairs of equipment racks to form a two-row cluster of equipment racks based on the combined airflow consumption value of the equipment racks, wherein each pair includes an equipment rack in a first row of the cluster and an equipment rack in a second row of the cluster, and determining a location of the at least one cooling provider in the cluster. 
     In the instructions, pairing each equipment rack may include pairing a greatest airflow consuming equipment rack with a least airflow consuming equipment rack, and pairing a second greatest airflow consuming equipment racks with a second least airflow consuming rack. Further, arranging the pairs of equipment rack may include identifying a rack pair having a greatest combined airflow consumption value, a rack pair having a least combined airflow consumption value, and a rack pair having a second least combined airflow consumption value, and positioning the rack pair having the greatest combined airflow consumption value in a middle position of the cluster, arranging the rack pair having the least combined airflow consumption value at a first end of the cluster, and arranging the rack pair having the second least combined airflow consumption value at a second end of the cluster. Still further, determining a location for the at least one cooling provider may include determining an interior position for the at least one cooling provider adjacent two equipment racks. The computer readable medium may further include instructions that will cause the processor to receive information related to a desired cooling redundancy for at least one of the equipment racks, and determine a layout may include determining a layout based at least in part on the information related to a desired cooling redundancy. The medium may also include instructions that will cause the processor to determine an optimized layout using an optimization routine having the determined layout as an input. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       The accompanying drawings are not intended to be drawn to scale. In the drawings, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every drawing. In the drawings: 
         FIG. 1  shows an example computer system with which various aspects in accord with the present invention may be implemented; 
         FIG. 2  illustrates an example distributed system including an embodiment; 
         FIG. 3  shows an example layout of equipment racks and coolers in a data center; 
         FIG. 4  shows a process for determining a layout of equipment in a data center in accordance with one embodiment; and 
         FIG. 5  shows a preferred layout of a cluster of equipment determined using a tool in accordance with one embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     At least some embodiments in accordance with the present invention relate to systems and processes through which a user may design data center configurations. These systems may facilitate this design activity by allowing the user to create models of data center configurations from which performance metrics may be determined. Both the systems and the user may employ these performance metrics to determine alternative data center configurations that meet various design objectives. Further, in at least one embodiment, a system will provide an initial layout of data center equipment and conduct a cooling analysis on the layout in real time. 
     As described in U.S. patent application Ser. No. 12/019,109, titled “System and Method for Evaluating Equipment Rack Cooling”, filed Jan. 24, 2008, and in U.S. patent application Ser. No. 11/342,300, titled “Methods and Systems for Managing Facility Power and Cooling” filed Jan. 27, 2006 both of which are assigned to the assignee of the present application, and both of which are hereby incorporated herein by reference in their entirety, typical equipment racks in modern data centers draw cooling air in the front of the rack and exhaust air out the rear of the rack. The equipment racks, and in-row coolers are typically arranged in rows in an alternating front/back arrangement creating alternating hot and cool aisles in a data center with the front of each row of racks facing the cool aisle and the rear of each row of racks facing the hot aisle. Adjacent rows of equipment racks separated by a cool aisle may be referred to as a cool or cold aisle cluster, and adjacent rows of equipment racks separated by a hot aisle may be referred to as a hot aisle cluster. As readily apparent to one of ordinary skill in the art, a row of equipment racks may be part of one hot aisle cluster and one cool aisle cluster. In descriptions and claims herein, equipment in racks, or the racks themselves, may be referred to as cooling consumers, and in-row cooling units and/or computer room air conditioners (CRACs) may be referred to as cooling providers. In the referenced applications, tools are provided for analyzing the cooling performance of a cluster of racks in a data center. In these tools, multiple analyses may be performed on different layouts to attempt to optimize the cooling performance of the data center. 
     In embodiments, of the invention, different cooling performance metrics may be used to evaluate the cooling performance of a cluster. These metrics include capture index (CI) and recirculation index (RI) both of which are described in further detail in the applications, incorporated by reference above. In general, for a hot aisle cluster, the capture index indicates for each rack the percentage of the rack exhaust air that is captured by all of the coolers in the cluster. For a cool aisle cluster, the capture index indicates for each rack the percentage of rack airflow that is supplied directly by local cooling providers. 
     In at least one embodiment, a model of a data center is generated and displayed and a cooling analysis is provided of the data center. In creating a model, in at least one embodiment, a user may define a set of equipment racks and cooling providers to be included in a cluster, and the system will automatically arrange the equipment racks and the cooling providers in the cluster in a manner that will satisfy cooling requirements of the equipment racks. 
     The aspects disclosed herein in accordance with the present invention, are not limited in their application to the details of construction and the arrangement of components set forth in the following description or illustrated in the drawings. These aspects are capable of assuming other embodiments and of being practiced or of being carried out in various ways. Examples of specific implementations are provided herein for illustrative purposes only and are not intended to be limiting. In particular, acts, elements and features discussed in connection with any one or more embodiments are not intended to be excluded from a similar role in any other embodiments. 
     For example, according to one embodiment of the present invention, a computer system is configured to perform any of the functions described herein, including but not limited to, configuring, modeling and presenting information regarding specific data center configurations. Further, computer systems in embodiments of the data center may be used to automatically measure environmental parameters in a data center, and control equipment, such as chillers or coolers to optimize performance. Moreover, the systems described herein may be configured to include or exclude any of the functions discussed herein. Thus the invention is not limited to a specific function or set of functions. Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use herein of “including,” “comprising,” “having,” “containing,” “involving,” and variations thereof is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. 
     Computer System 
     Various aspects and functions described herein in accordance with the present invention may be implemented as hardware or software on one or more computer systems. There are many examples of computer systems currently in use. These examples include, among others, network appliances, personal computers, workstations, mainframes, networked clients, servers, media servers, application servers, database servers and web servers. Other examples of computer systems may include mobile computing devices, such as cellular phones and personal digital assistants, and network equipment, such as load balancers, routers and switches. Further, aspects in accordance with the present invention may be located on a single computer system or may be distributed among a plurality of computer systems connected to one or more communications networks. 
     For example, various aspects and functions may be distributed among one or more computer systems configured to provide a service to one or more client computers, or to perform an overall task as part of a distributed system. Additionally, aspects may be performed on a client-server or multi-tier system that includes components distributed among one or more server systems that perform various functions. Thus, the invention is not limited to executing on any particular system or group of systems. Further, aspects may be implemented in software, hardware or firmware, or any combination thereof. Thus, aspects in accordance with the present invention may be implemented within methods, acts, systems, system elements and components using a variety of hardware and software configurations, and the invention is not limited to any particular distributed architecture, network, or communication protocol. 
       FIG. 1  shows a block diagram of a distributed computer system  100 , in which various aspects and functions in accord with the present invention may be practiced. Distributed computer system  100  may include one more computer systems. For example, as illustrated, distributed computer system  100  includes computer systems  102 ,  104  and  106 . As shown, computer systems  102 ,  104  and  106  are interconnected by, and may exchange data through, communication network  108 . Network  108  may include any communication network through which computer systems may exchange data. To exchange data using network  108 , computer systems  102 ,  104  and  106  and network  108  may use various methods, protocols and standards, including, among others, token ring, ethernet, wireless ethernet, Bluetooth, TCP/IP, UDP, Http, FTP, SNMP, SMS, MMS, SS7, Json, Soap, and Corba. To ensure data transfer is secure, computer systems  102 ,  104  and  106  may transmit data via network  108  using a variety of security measures including TSL, SSL or VPN among other security techniques. While distributed computer system  100  illustrates three networked computer systems, distributed computer system  100  may include any number of computer systems and computing devices, networked using any medium and communication protocol. 
     Various aspects and functions in accordance with the present invention may be implemented as specialized hardware or software executing in one or more computer systems including computer system  102  shown in  FIG. 1 . As depicted, computer system  102  includes processor  110 , memory  112 , bus  114 , interface  116  and storage  118 . Processor  110  may perform a series of instructions that result in manipulated data. Processor  110  may be a commercially available processor such as an Intel Pentium, Motorola PowerPC, SGI MIPS, Sun UltraSPARC, or Hewlett-Packard PA-RISC processor, but may be any type of processor or controller as many other processors and controllers are available. Processor  110  is connected to other system elements, including one or more memory devices  112 , by bus  114 . 
     Memory  112  may be used for storing programs and data during operation of computer system  102 . Thus, memory  112  may be a relatively high performance, volatile, random access memory such as a dynamic random access memory (DRAM) or static memory (SRAM). However, memory  112  may include any device for storing data, such as a disk drive or other non-volatile storage device. Various embodiments in accordance with the present invention may organize memory  112  into particularized and, in some cases, unique structures to perform the aspects and functions disclosed herein. 
     Components of computer system  102  may be coupled by an interconnection element such as bus  114 . Bus  114  may include one or more physical busses, for example, busses between components that are integrated within a same machine, but may include any communication coupling between system elements including specialized or standard computing bus technologies such as IDE, SCSI, PCI and InfiniBand. Thus, bus  114  enables communications, for example, data and instructions, to be exchanged between system components of computer system  102 . 
     Computer system  102  also includes one or more interface devices  116  such as input devices, output devices and combination input/output devices. Interface devices may receive input or provide output. More particularly, output devices may render information for external presentation. Input devices may accept information from external sources. Examples of interface devices include keyboards, mouse devices, trackballs, microphones, touch screens, printing devices, display screens, speakers, network interface cards, etc. Interface devices allow computer system  102  to exchange information and communicate with external entities, such as users and other systems. 
     Storage system  118  may include a computer readable and writeable nonvolatile storage medium in which instructions are stored that define a program to be executed by the processor. Storage system  118  also may include information that is recorded, on or in, the medium, and this information may be processed by the program. More specifically, the information may be stored in one or more data structures specifically configured to conserve storage space or increase data exchange performance. The instructions may be persistently stored as encoded signals, and the instructions may cause a processor to perform any of the functions described herein. The medium may, for example, be optical disk, magnetic disk or flash memory, among others. In operation, the processor or some other controller may cause data to be read from the nonvolatile recording medium into another memory, such as memory  112 , that allows for faster access to the information by the processor than does the storage medium included in storage system  118 . The memory may be located in storage system  118  or in memory  112 , however, processor  110  may manipulate the data within the memory  112 , and then copies the data to the medium associated with storage system  118  after processing is completed. A variety of components may manage data movement between the medium and integrated circuit memory element and the invention is not limited thereto. Further, the invention is not limited to a particular memory system or storage system. 
     Although computer system  102  is shown by way of example as one type of computer system upon which various aspects and functions in accordance with the present invention may be practiced, aspects of the invention are not limited to being implemented on the computer system as shown in  FIG. 1 . Various aspects and functions in accord with the present invention may be practiced on one or more computers having a different architectures or components than that shown in  FIG. 1 . For instance, computer system  102  may include specially-programmed, special-purpose hardware, such as for example, an application-specific integrated circuit (ASIC) tailored to perform a particular operation disclosed herein. While another embodiment may perform the same function using several general-purpose computing devices running MAC OS System X with Motorola PowerPC processors and several specialized computing devices running proprietary hardware and operating systems. 
     Computer system  102  may be a computer system including an operating system that manages at least a portion of the hardware elements included in computer system  102 . Usually, a processor or controller, such as processor  110 , executes an operating system which may be, for example, a Windows-based operating system, such as, Windows NT, Windows 2000 (Windows ME), Windows XP or Windows Vista operating systems, available from the Microsoft Corporation, a MAC OS System X operating system available from Apple Computer, one of many Linux-based operating system distributions, for example, the Enterprise Linux operating system available from Red Hat Inc., a Solaris operating system available from Sun Microsystems, or a UNIX operating system available from various sources. Many other operating systems may be used, and embodiments are not limited to any particular implementation. 
     The processor and operating system together define a computer platform for which application programs in high-level programming languages may be written. These component applications may be executable, intermediate, for example, C−, bytecode or interpreted code which communicates over a communication network, for example, the Internet, using a communication protocol, for example, TCP/IP. Similarly, aspects in accord with the present invention may be implemented using an object-oriented programming language, such as .Net, SmallTalk, Java, C++, Ada, or C# (C-Sharp). Other object-oriented programming languages may also be used. Alternatively, functional, scripting, or logical programming languages may be used. 
     Additionally, various aspects and functions in accordance with the present invention may be implemented in a non-programmed environment, for example, documents created in HTML, XML or other format that, when viewed in a window of a browser program, render aspects of a graphical-user interface or perform other functions. Further, various embodiments in accord with the present invention may be implemented as programmed or non-programmed elements, or any combination thereof. For example, a web page may be implemented using HTML while a data object called from within the web page may be written in C++. Thus, the invention is not limited to a specific programming language and any suitable programming language could also be used. Further, in at least one embodiment, the tool may be implemented using VBA Excel. 
     A computer system included within an embodiment may perform additional functions outside the scope of the invention. For instance, aspects of the system may be implemented using an existing commercial product, such as, for example, Database Management Systems such as SQL Server available from Microsoft of Seattle Wash., Oracle Database from Oracle of Redwood Shores, Calif., and MySQL from MySQL AB of Uppsala, Sweden or integration software such as Web Sphere middleware from IBM of Armonk, N.Y. However, a computer system running, for example, SQL Server may be able to support both aspects in accord with the present invention and databases for sundry applications not within the scope of the invention. 
     Example System Architecture 
       FIG. 2  presents a context diagram including physical and logical elements of distributed system  200 . As shown, distributed system  200  is specially configured in accordance with the present invention. The system structure and content recited with regard to  FIG. 2  is for exemplary purposes only and is not intended to limit the invention to the specific structure shown in  FIG. 2 . As will be apparent to one of ordinary skill in the art, many variant system structures can be architected without deviating from the scope of the present invention. The particular arrangement presented in  FIG. 2  was chosen to promote clarity. 
     Information may flow between the elements, components and subsystems depicted in  FIG. 2  using any technique. Such techniques include, for example, passing the information over the network via TCP/IP, passing the information between modules in memory and passing the information by writing to a file, database, or some other non-volatile storage device. Other techniques and protocols may be used without departing from the scope of the invention. 
     Referring to  FIG. 2 , system  200  includes user  202 , interface  204 , data center design and management system  206 , communications network  208  and data center database  210 . System  200  may allow user  202 , such as a data center architect or other data center personnel, to interact with interface  204  to create or modify a model of one or more data center configurations. According to one embodiment, interface  204  may include aspects of the floor editor and the rack editor as disclosed in Patent Cooperation Treaty Application No. PCT/US08/63675, entitled METHODS AND SYSTEMS FOR MANAGING FACILITY POWER AND COOLING, filed on May 15, 2008, which is incorporated herein by reference in its entirety and is hereinafter referred to as PCT/US08/63675. In other embodiments, interface  204  may be implemented with specialized facilities that enable user  202  to design, in a drag and drop fashion, a model that includes a representation of the physical layout of a data center or any subset thereof. This layout may include representations of data center structural components as well as data center equipment. The features of interface  204 , as may be found in various embodiments in accordance with the present invention, are discussed further below. In at least one embodiment, information regarding a data center is entered into system  200  through the interface, and assessments and recommendations for the data center are provided to the user. Further, in at least one embodiment, optimization processes may be performed to optimize cooling performance and energy usage of the data center. 
     As shown in  FIG. 2 , data center design and management system  206  presents data design interface  204  to user  202 . According to one embodiment, data center design and management system  206  may include the data center design and management system as disclosed in PCT/US08/63675. In this embodiment, design interface  204  may incorporate functionality of the input module, the display module and the builder module included in PCT/US08/63675 and may use the database module to store and retrieve data. 
     As illustrated, data center design and management system  206  may exchange information with data center database  210  via network  208 . This information may include any information required to support the features and functions of data center design and management system  206 . For example, in one embodiment, data center database  210  may include at least some portion of the data stored in the data center equipment database described in PCT/US08/63675. In another embodiment, this information may include any information required to support interface  204 , such as, among other data, the physical layout of one or more data center model configurations, the production and distribution characteristics of the cooling providers included in the model configurations, the consumption characteristics of the cooling consumers in the model configurations, and a listing of equipment racks and cooling providers to be included in a cluster. 
     In one embodiment, data center database  210  may store types of cooling providers, the amount of cool air provided by each type of cooling provider, and a temperature of cool air provided by the cooling provider. Thus, for example, data center database  210  includes records of a particular type of CRAC unit that is rated to deliver airflow at the rate of 5,600 cfm at a temperature of 68 degrees Fahrenheit. In addition, the data center database  210  may store one or more cooling metrics, such as inlet and outlet temperatures of the CRACs and inlet and outlet temperatures of one or more equipment racks. The temperatures may be periodically measured and input into the system, or in other embodiments, the temperatures may be continuously monitored using devices coupled to the system  200 . 
     Data center database  210  may take the form of any logical construction capable of storing information on a computer readable medium including, among other structures, flat files, indexed files, hierarchical databases, relational databases or object oriented databases. The data may be modeled using unique and foreign key relationships and indexes. The unique and foreign key relationships and indexes may be established between the various fields and tables to ensure both data integrity and data interchange performance. 
     The computer systems shown in  FIG. 2 , which include data center design and management system  206 , network  208  and data center equipment database  210 , each may include one or more computer systems. As discussed above with regard to  FIG. 1 , computer systems may have one or more processors or controllers, memory and interface devices. The particular configuration of system  200  depicted in  FIG. 2  is used for illustration purposes only and embodiments of the invention may be practiced in other contexts. Thus, embodiments of the invention are not limited to a specific number of users or systems. 
     Data Center Assessment and Optimization Embodiments 
     In at least one embodiment, which will now be described, a tool is provided that arranges a list of equipment (racks, coolers, UPS&#39;s, PDU&#39;s, etc.) in real time and displays the equipment in a cluster layout model, such that the rack airflows and the cooling airflows get evenly distributed in the cluster layout.  FIG. 3  shows an example of a cluster  300  of racks and coolers arranged in two rows A and B about a hot aisle in a data center. In at least one embodiment, the layout shown in  FIG. 3  may be provided as an output of the tool, or the layout may be provided as an input, and the tool can arrange the equipment and coolers to meet specified cooling criteria. 
     The cluster  300  includes 12 racks  302 ( a )- 302 ( l ), and four in-row coolers  304 . The racks in one example are industry standard 19-inch equipment racks and the coolers are half-rack-width in-row coolers having a width that is approximately half that of a standard equipment rack such as coolers available from American Power Conversion Corporation of West Kingston, R.I., including In Row RC (IRRC), model ACRC100. However, embodiments of the invention may be used with other coolers and equipment racks as well. Further, the cluster shown in  FIG. 3  is a hot-aisle cluster configured with the backs of the racks in Row A facing the backs of the racks in Row B. In other embodiments, systems and tools of embodiments of the invention may be configured for analysis and layout of equipment racks in a cold-aisle cluster as well. 
     In one example, which will now be described, input data for a cluster is provided by a user. In one embodiment, the input data is manually entered into the system, however, in other embodiments, the data may be provided electronically from another system. The input data includes a list of racks with rack powers and airflow rates (cfm/kW), type of coolers with cooling airflow (cfm), power zone configurations and the desired cooling redundancy or target air ratio (discussed in detail below). The power zone configurations describe the connectivity of racks or coolers to PDU and UPS power sources; this information is relevant to the arrangement algorithm because there may be preferred equipment locations based on minimizing power cabling or other considerations. Using the input data, the tool calculates the required number of coolers based on the total rack airflow and the desired cooling redundancy, and provides a layout for the racks and coolers and any in-row PDU&#39;s and UPS&#39;s. 
     Table 1 provides a list of rack power and rack airflow for one example with the racks arranged in ascending order based on rack power. 
     
       
         
               
             
               
               
               
             
               
               
               
             
           
               
                 TABLE 1 
               
             
             
               
                   
               
               
                 List of Rack Powers and Rack Airflow 
               
               
                 Sorted Rack Airflow 
               
             
          
           
               
                   
                 Rack Power 
                 Rack Airflow 
               
               
                   
                 (kW) 
                 (cfm) 
               
               
                   
                   
               
             
          
           
               
                   
                 1 
                 160 
               
               
                   
                 2 
                 320 
               
               
                   
                 3 
                 480 
               
               
                   
                 4 
                 640 
               
               
                   
                 5 
                 800 
               
               
                   
                 6 
                 960 
               
               
                   
                 7 
                 1120 
               
               
                   
                 8 
                 1280 
               
               
                   
                   
               
             
          
         
       
     
     In one embodiment, the tool automatically arranges the racks using a process that involves two major steps; first, racks are arranged in the cluster, and second coolers are positioned in the cluster. In laying out the racks, the racks are first paired and arranged in two rows A and B such that the sum of airflow for each rack pair and total rack airflow of Row A and Row B are equal or near equal. In pairing the racks, the rack having the smallest rack airflow is paired with the rack having the largest rack airflow pair, the rack having the second smallest rack airflow is paired with the rack having the second largest rack airflow, and so on, until all racks are paired up. The racks of each pair are arranged with one of the racks in Row A and the other rack in Row B with the backs of the racks facing each other (in a cold aisle implementation, the fronts of the racks would face each other). For scenarios with an odd number of racks, the rack having the highest airflow is paired with a fictitious rack having no airflow. 
     The rack pairs are then arranged in Row A and Row B by first selecting the first pair (smallest airflow rack and largest airflow rack) and then placing the other rack pairs alternatively on either side of the first pair such that the smaller airflow rack of a pair gets the larger airflow rack of other pairs as its neighbors. Table 2 shows the racks of Table 1 arranged according to the above-described process. 
     
       
         
               
             
               
               
               
               
               
               
             
           
               
                 TABLE 2 
               
               
                   
               
               
                 Rack Pairs Arranged in Row A and Row B 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                   
                 RowA, Rack airflow 
                 480 
                 1280 
                 320 
                 800 
               
               
                   
                 (cfm) 
               
               
                   
                 RowB, Rack airflow 
                 960 
                 160 
                 1120 
                 640 
               
               
                   
                 (cfm) 
               
               
                   
                 Rack Slice Airflow 
                 1440 
                 1440 
                 1440 
                 1440 
               
               
                   
                 (cfm) 
               
               
                   
                   
               
             
          
         
       
     
     Next in the process, the total rack airflow for each rack pair (referred to herein as “rack slice”) is calculated. This total is shown in Table 2. In the example, the airflow at each rack slice is 1440 cfm with total rack airflow for each row equal to 2880 cfm, making a uniform distribution of heating airflow in the cluster layout. The example described above is somewhat of an ideal situation, and in other examples, the airflows may not be equal, but the process works towards balancing the airflows across each slice and for each row. 
     More coolers may be needed in the cluster to capture the rack exhaust air if large rack airflow is located at the row ends. Therefore, in one embodiment for cases when a rack at a row end has a larger airflow than that of a rack adjacent to it in the same row; the position of these two racks is interchanged. 
     Table 3 shows the racks of Table 2 rearranged to move high airflow racks from the ends of the cluster. In Table 3, the position of the rack with 800 cfm airflow is switched with that of the rack with 320 cfm at the right side of Row A and the position of the rack with 960 cfm airflow is switched with that of the rack having 160 cfm airflow at the left side of Row B. 
     
       
         
               
             
               
               
               
               
               
               
             
           
               
                 TABLE 3 
               
               
                   
               
               
                 Rearrangement of Racks in Table 2 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                   
                 RowA 
                 480 
                 1280 
                 800 
                 320 
               
               
                   
                 (airflow cfm) 
               
               
                   
                 RowB 
                 160 
                 960 
                 1120 
                 640 
               
               
                   
                 (airflow, cfm) 
               
               
                   
                   
               
             
          
         
       
     
     After positioning the racks in the cluster, in one embodiment, the process performed by the tool determines the number and placement of coolers in the cluster. The number of coolers needed can be determined based on the total rack airflow and the target air ratio, and the number of coolers needed is directly related to the desired cooling redundancy. A large value of target air ratio corresponds to high cooling redundancy and vice versa. For example, a larger value of target air ratio would be used to achieve an “n+2” cooling redundancy than would be required to achieve “n+1”. The number of coolers required in a cluster is calculated using Equation 1 below:
 
No. of coolers=(Total Rack Airflow)*(AR Target )/(Single cooler airflow)  Equation (1)
 
     In Equation 1, since, the number of coolers cannot be a fraction; the result is rounded up to the next integer. Applying Equation (1) to the example discussed above with reference to Table 3, using coolers having 2900 cfm, and an AR Target  value of 1.2, results in a value of 2.38, rounded up to 3 coolers. The AR Target  is the target air ratio. The air ratio is defined as the ratio of total cooling airflow to total rack airflow. The AR should be greater than 1 and in one embodiment, the value of AR Target  is 1.2. The three coolers are divided between Rows A and B based on the total rack airflow of the rows. In the example of Table 3, the total airflow of the racks of Row A and that of Row B are equal, two coolers are arbitrarily assigned to Row A, and one cooler is assigned to Row B. If the rows were not of equal length, then the coolers could be placed to make the rows of more equal length. 
     Next, the location of the cooler in the rows must be determined. In one embodiment, since the coolers have less ability to capture exhaust air from the racks if they are located at the ends of the cluster, the ends are not considered as a possible location for the coolers, and accordingly, the coolers are placed between racks. For the example of Table 3, there are three possible cooler locations in each row between racks. These locations are generally referred to as cooler slices herein, and in general for a number r of rack pairs or slices in a cluster, there are r−1 cooler slices. Also, more than one cooler may be included at each cooler slice. Table 4 shows the total combined airflow for each rack slice for the example of Table 3, three possible cooler locations j1, j2 and j3, and four rack slices i1, i2, i3 and i4. 
     
       
         
               
             
               
               
               
               
               
               
               
               
             
           
               
                 TABLE 4 
               
             
             
               
                   
               
               
                 Rack Slice Airflow and Possible Cooler Locations 
               
             
          
           
               
                 Com- 
                   
                   
                   
                   
                   
                   
                   
               
               
                 bined 
                   
                   
                   
                   
                   
                   
                   
               
               
                 Airflow 
                 640 
                 Cooler(s) 
                 2240 
                 Cooler(s) 
                 1920 
                 Cooler(s) 
                 960 
               
               
                   
               
               
                   
                 i1 
                 j1 
                 i2 
                 j2 
                 i3 
                 j3 
                 i4 
               
               
                   
               
             
          
         
       
     
     The cooler(s) at each cooler slice location have a potential to capture hot exhaust air from each rack slice location. This potential decreases with the increase in distance between the cooler slice location and the rack slice location and it increases with the increase in magnitude of rack slice airflow or cooler slice airflow. The total airflow that can be captured from a rack slice by coolers from all cooler slices can be determined using Equation 2. 
     for i=1, 2, . . . r (number of rack slices) 
     
       
         
           
             
               
                 
                   
                     S 
                     i 
                     * 
                   
                   = 
                   
                     
                       ∑ 
                       
                         j 
                         = 
                         1 
                       
                       
                         r 
                         - 
                         1 
                       
                     
                     ⁢ 
                     
                       
                         A 
                         ij 
                       
                       ⁢ 
                       
                         n 
                         j 
                         c 
                       
                     
                   
                 
               
               
                 
                   Equation 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   
                     ( 
                     2 
                     ) 
                   
                 
               
             
           
         
       
     
     where, 
     for j=1, 2, . . . (r−1) or number of cooler slices 
     
       
         
           
             
               
                 
                   
                     
                       A 
                       ij 
                     
                     = 
                     
                       
                         
                           y 
                           i 
                         
                         ⁢ 
                         
                           Q 
                           j 
                           c 
                         
                       
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             1 
                           
                           r 
                         
                         ⁢ 
                         
                           y 
                           i 
                         
                       
                     
                   
                   , 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       y 
                       i 
                     
                     = 
                     
                       { 
                       
                         
                           
                             
                               
                                 S 
                                 i 
                               
                               , 
                               
                                 
                                   for 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   
                                     ( 
                                     
                                       i 
                                       - 
                                       j 
                                     
                                     ) 
                                   
                                 
                                 = 
                                 
                                   0 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   or 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   1 
                                 
                               
                             
                           
                         
                         
                           
                             
                               
                                 
                                   S 
                                   i 
                                 
                                 
                                   p 
                                   
                                     ( 
                                     
                                       j 
                                       - 
                                       i 
                                     
                                     ) 
                                   
                                 
                               
                               , 
                               
                                 
                                   for 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   
                                     ( 
                                     
                                       i 
                                       - 
                                       j 
                                     
                                     ) 
                                   
                                 
                                 &lt; 
                                 0 
                               
                             
                           
                         
                         
                           
                             
                               
                                 
                                   S 
                                   i 
                                 
                                 
                                   p 
                                   
                                     ( 
                                     
                                       i 
                                       - 
                                       j 
                                       - 
                                       1 
                                     
                                     ) 
                                   
                                 
                               
                               , 
                               
                                 
                                   for 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   
                                     ( 
                                     
                                       i 
                                       - 
                                       j 
                                     
                                     ) 
                                   
                                 
                                 &gt; 
                                 1 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   Equation 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   
                     ( 
                     3 
                     ) 
                   
                 
               
             
           
         
       
     
     where, 
     AR is the Air Ratio, defined as the ratio of total cooling airflow and the total rack airflow. 
     S i  is the rack slice airflow at i th  rack slice location. 
     S i * is the amount of airflow that can be captured from i th  rack slice by coolers at all cooler slices. 
     p is a constant (e.g. 2, 10 etc.). A large value for this constant implies a drastic decrease in a cooler&#39;s capturing effect with increasing distance between cooler and rack slices. The value of p=0 is observed to be a reasonable choice for practical cases and is used in at least some embodiments of the invention. 
     n j   c  is the number of coolers at j th  cooler slice location. 
     Q j   c  is the airflow rate of a cooler (e.g. 2900 cfm for IRRC or “c” type coolers) at j th  cooler slice. 
     A ij  can be considered a “capture coefficient” as it relates the number of coolers at any cooler slice to the amount of rack airflow that can be captured at any rack slice. 
     In at least one embodiment, the tool provides a layout that distributes the rack airflow and cooling airflow substantially evenly in the cluster layout. With rack slice airflows evenly placed, the next step is to position the coolers. This can be achieved by placing coolers such that the product of Air Ratio (AR) and rack slice airflow matches the airflow that can be captured by coolers from a rack slice (calculated using Equation (2)). Mathematically, it is a minimization problem with the following cost function: 
     
       
         
           
             
               ∑ 
               
                 i 
                 = 
                 1 
               
               r 
             
             ⁢ 
             
               
                 ( 
                 
                   
                     AR 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     X 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       S 
                       i 
                     
                   
                   - 
                   
                     S 
                     i 
                     * 
                   
                 
                 ) 
               
               2 
             
           
         
       
     
     With the constraints 
     
       
         
           
             
               
                 ∑ 
                 
                   j 
                   = 
                   1 
                 
                 
                   r 
                   - 
                   1 
                 
               
               ⁢ 
               
                 n 
                 j 
                 c 
               
             
             = 
             
               
                 
                   No 
                   . 
                   
                       
                   
                   ⁢ 
                   of 
                 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 coolers 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 and 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 0 
               
               ≤ 
               
                 n 
                 j 
                 c 
               
               ≤ 
               
                 
                   No 
                   . 
                   
                       
                   
                   ⁢ 
                   of 
                 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 coolers 
               
             
           
         
       
     
     This problem is solved in some embodiments using standard optimization algorithms (e.g. by branch and bound method etc.). In another embodiment, a simple approach that is fast and computationally inexpensive is used to solve the minimization problem. This approach will now be described with reference to  FIG. 4  which shows a flow chart for a process  500  for determining the number of coolers at all cooler slices. In a first stage  502  of the process  500 , a determination is made as to whether there is only one cooler. If there is only one cooler, then at stage  504 , the cooler is placed at a center cooler slice location, and at stage  542 , the process  500  ends. 
     If there is more than one cooler at stage  502 , then process  500  proceeds to stage  506  where a cooler is placed at the first slice location j=1. At  508 , a determination is then made as to whether the amount of airflow that can be captured from the 1 st  rack slice by all of the placed coolers (only one cooler at this point in the process) is greater than the product of the airflow from the first rack slice and the air ratio AR. If the outcome of determination block  508  is YES, then the optimum position of the first cooler may not be at j=1, and at block  510 , the first cooler is moved to the next cooler slice location and at  512 , a determination is again made as to whether the amount of airflow that can be captured from the 1 st  rack slice by all of the placed coolers (only one cooler at this point in the process) is greater than the product of the airflow from the first rack slice and the air ratio AR. Stages  510  and  512  are repeated until the outcome of stage  512  is NO, and then at stage  514  the first cooler is placed at the current j slice. Also, if the outcome of stage  508  is NO, then the process proceeds to stage  514 . At stage  515 , a determination is made as to whether all coolers have been placed. If the outcome of stage  515  is YES, then the process proceeds to stage  536  and continues as described further below. 
     If the outcome of stage  515  is NO, then the process  500  proceeds to stage  516 , where the second cooler is placed at the last cooler slice location on the right at location j=r−1 (where r is equal to the total number of rack slices). At stage  518  a determination is then made as to whether the amount of airflow that can be captured from the r rack slice by all of the placed coolers is greater than the product of the airflow from the r rack slice and the air ratio AR. If the outcome of determination block  518  is YES, then the optimum position of the second cooler may not be at j=r−1, and at block  520 , the second cooler is moved to the next cooler slice location to the left (j=j−1) and at stage  522 , a determination is again made as to whether the amount of airflow that can be captured from the r rack slice by all of the placed coolers is greater than the product of the airflow from the r rack slice and the air ratio AR. Stages  520  and  522  are repeated until the outcome of stage  522  is NO, and then at stage  524  the second cooler is placed at the current j slice. Also, if the outcome of stage  518  is NO, the process proceeds to stage  524 . 
     The process  500  then proceeds to stage  526  where a determination is made as to whether all coolers have been placed. If the outcome of stage  526  is NO, then the process moves to stages  528  and  530  where the next cooler is placed at a cooler slice location which is adjacent to the last used cooler slice location from the left side. At stage  532  a determination is then made as to whether the amount of airflow that can be captured from the j rack slice by all of the placed coolers is greater than the product of the airflow from the j rack slice and the air ratio AR. If the outcome of determination block  532  is YES, then the optimum position of the current cooler may not be at the current location, and at block  530 , the current cooler is moved to the next cooler slice location to the right (j=j+1). Stages  530  and  532  are repeated until the outcome of stage  532  is NO, and then at stage  534  the second cooler is placed at the current j slice. Stages  526  to  532  are repeated until all coolers have been placed. 
     Once all coolers have been placed, then the process  500  proceeds to stage  536  where it is determined whether more than one cooler exists at each cooler slice. If the outcome of stage  536  is YES, then the process moves to stage  538 , where a determination is made as to whether the rack airflows adjacent each cooler slice is greater than the combined airflow of multiple coolers at the cooler slice. This step helps to distribute the cooling airflow more evenly throughout the cluster by moving cooler(s) towards the middle of the cluster. If the outcome of stage  538  is YES, then at stage  540  one of the coolers is moved to the next cooler location to the left, unless the current slice is the last slice. If the outcome of stage  538  or  536  is NO, or after stage  540 , then the process ends at stage  542 . 
     Table 5 shows the distribution of coolers between rack slices. 
     
       
         
               
             
               
               
               
               
               
               
               
               
             
           
               
                 TABLE 5 
               
               
                   
               
               
                 Shows the Distribution of Coolers in Between Rack Slices 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 Rack 
                 640 
                 1 
                 2240 
                 1 
                 1920 
                 1 
                 960 
               
               
                 slice airflow 
                   
                 IRRC 
                   
                 IRRC 
                   
                 IRRC 
               
               
                 (cfm) or 
               
               
                 “IRRC” 
               
               
                 coolers 
               
               
                   
               
             
          
         
       
     
     Once the number of coolers required at all cooler slices is determined, the last step is to place the racks and coolers in a cluster layout. The cooler(s) required at different cooler slices are divided between Row A and Row B such that both rows are as close as possible to equal length.  FIG. 5  shows the final layout for the example considered here. As can be seen, the racks and coolers are evenly distributed with all racks having 100% capture index. Once the layout is determined, it can be displayed and the racks and coolers may be installed in the data center in accordance with the layout. 
     In embodiments described above, tools are described for evaluating data centers that contain CRACs and equipment racks. As readily understood by one of ordinary skill in the art, in other embodiments, processes and systems may be used with cooling providers other than CRACs and with cooling consumers other than equipment racks. 
     In embodiments described herein, cluster layouts of coolers and equipment racks meeting cooling criteria are determined and presented to a user. In other embodiments, the layout determined may be used as an input into an optimization algorithm to provide further optimization of the cooling performance of the cluster. The optimization algorithms used may be based on, for example, genetic algorithms or branch and bound methods. Within the optimization algorithm, the cooling performance of each candidate layout may be determined from computational fluid dynamics, or real-time algorithms based on CVA, Superposition, Neural Networks, algebraic, PDA-CFD, etc. models. Embodiments of the invention are useful with these more complex techniques as they can greatly reduce the time to perform an optimization, since the input to the algorithms are solutions that meet the cooling criteria. 
     In certain examples discussed herein, solutions provided by tools may provide layouts described as optimized layouts or near-optimized layouts. While complete optimized layouts are not guaranteed, solutions provided by such tools are generated quickly and satisfy specified criteria. 
     In embodiments of the invention, a specified cooling redundancy may be used as part of the cooling criteria, and the cluster layout may be designed to meet the cooling redundancy. 
     As readily understood by one of ordinary skill in the art given the benefit of this disclosure, tools described herein may be used for cold aisle applications and for application that use raised floors with perforated tiles acting as the cooling providers. The perforated tiles may be the sole cooling providers in the application or may be used in conjunction with in-row coolers. Further, the tools may be used with a variety of rack widths, including a cold aisle having a six foot aisle covered with three rows of perforated tiles. 
     In at least some embodiments of the invention discussed herein, the performance of assessments and calculations in real-time refers to processes that are completed in a matter of a few seconds or less rather than several minutes or longer as can happen with complex calculations, such as those involving typical computational fluid dynamics calculations. 
     Having thus described several aspects of at least one embodiment of this invention, it is to be appreciated various alterations, modifications, and improvements will readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to be part of this disclosure, and are intended to be within the spirit and scope of the invention. Accordingly, the foregoing description and drawings are by way of example only.