Within the field of computing, many scenarios involve a multi-blade computational unit architecture comprising a support structure configured to store a set of modular computing units. As a first example, a rack server may comprise a set of racks, each sized to hold a computational unit, such as a cased or caseless mainboard including a processor, memory, a power supply, and one or more storage devices, network adapters, and other expansion cards. The mainboard may include a power supply having a power inlet (usually positioned toward the back of the unit) that may be attached to a power outlet of the rack via a power cable, and a network port that may be attached to a network port of the rack using a network cable. As a second example, a blade server may comprise a set of slots, wherein a structural unit may comprise a set of parallel slots respectively configured to receive a computational unit of a “blade” form factor (e.g., a thin, substantially planar array of computational components). The enclosure may therefore store a horizontal or vertical stack of blades, each having an array of components, such as a processor, memory, a storage device, and a power supply, and may provide other services (such as power and network access) through cable attachments to various ports and outlets provided in the enclosure.
In these and other examples, the computational units comprising the server may be managed in various ways. For example, an individual computational unit may be removed from the rack or enclosure and attached to an external set of input and output devices to interact with an operating system and examine or alter the configuration of the computational unit. Alternatively, the individual computational units may enable external interaction; e.g., a terminal services solution may enable a user to interact with the operating system of a computational unit within a shell presented on a second device, and a remote management daemon may provide information about the configuration and status of a computational unit for presentation on a second device. In these and other scenarios, users may query and administer respective computational units of the multi-blade computational unit.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key factors or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Some architectural models and management interfaces for multi-blade computational units may present some or all of several disadvantages. As a first example, such systems often utilize cabling to connect the power, network, and other components of a computational unit to the respective sources of such services. While the use of standardized cabling may present broad compatibility for such connections, the cables depend on manual connection to the inlets of the unit; may represent a point of failure; and may clutter the confines of the rack or enclosure that interferes with airflow. As a second example, a rack or blade enclosure may provide slots or spaces for respective computational units, but may only permit a narrow and inflexible range of form factors (e.g., the slots of a blade server may only accommodate computational units of a 1 U size), and/or may not mitigate a misaligned addition of a computational unit that potentially damages nearby computational units and components in the rack or enclosure. As a third example, a rack or blade enclosure may store and provide supporting services for a set of individual computational units, but may provide little or no integration or synergy of the individual computational units; e.g., a rack may enable a set of computational units to operate independently, but may not particularly facilitate the interoperation or management of the array of computational units.
Presented herein are configurations of a multi-blade computational unit architecture involving a chassis comprising a number of slots respectively configured to support an insertable tray hosting one or more blades of the server comprising a set of blade components. The chassis and blade provides power and network connectors that are positioned to couple upon insertion of a tray into a slot of the chassis, thus avoiding the inclusion of cables and the manual manipulation thereof. Additionally, the chassis may accept blades of various types (e.g., a processing blade comprising data processing resources; a storage blade comprising nonvolatile storage components; a network switch blade providing network switching capabilities for other blades; and a mixed blade providing a combination of these types of components). Further, the chassis may enable the integration of the blades, e.g., by including interconnections between processing blades and storage blades, and/or by including a management interface that enables the addition, enumeration, exploration, and configuration of the blades. These and other features are achievable through the tray and chassis architecture provided herein.
To the accomplishment of the foregoing and related ends, the following description and annexed drawings set forth certain illustrative aspects and implementations. These are indicative of but a few of the various ways in which one or more aspects may be employed. Other aspects, advantages, and novel features of the disclosure will become apparent from the following detailed description when considered in conjunction with the annexed drawings.
The claimed subject matter is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the claimed subject matter. It may be evident, however, that the claimed subject matter may be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to facilitate describing the claimed subject matter.
Within the field of computing, many scenarios involve a server comprising a plurality of computational units. As a first example, the server may comprise a set of independently operable computers configured to intercommunicate to achieve a task in a cooperative manner, such as a server farm or a peer-to-peer processing network. As a second example, the server may comprise a set of computational units, such as processors or storage arrays, that are coordinated by a coordinating module, such as in a symmetric multiprocessor (SMP) model. As a third example, the server may comprise a set of computational components that may autonomously process data, but that share resources such as input/output components, such as a rack server comprising a set of mainboards and a switch configured to enable user interaction with a single mainboard. In these scenarios, the server may comprise a set of resources to provide various functionality (e.g., power supplies that supply power to the computational units; climate components (e.g., fans, heatsinks, air conditioners, heaters, humidifiers, and dehumidifiers) that regulate the temperature, humidity, and/or airflow of the components; communication components, such as wired and/or wireless network adapters and network switches; user input components, such as keyboards, mice, microphones, and cameras; user output components, such as displays, speakers, and printers; and physical protection, such as enclosures and physical locks. In various scenarios, each unit may have a dedicated resource (e.g., each computer may have a separate enclosure and dedicated input/output devices), or a resource may be shared among two or more units (e.g., in a rack server, each computational unit may have a dedicated processor and volatile storage, and may provide a pool of nonvolatile storage, such as a redundant array of inexpensive disks (RAID) unit, that is shared by all of the units for nonvolatile storage). Additionally, in different server scenarios, the degree of interoperation of the units may vary from complete independence (e.g., units that provide independent functions and that seldom intercommunicate, or are even isolated from each other; units that operate independently but intercommunicate to achieve a particular task; or units that are incapable of independent operation without direction from a management module).
However, the rack 102 in the exemplary scenario 100 of
Presented herein are architectures for multi-blade computational units that enable various advantages with respect to other architectures, including the rack 102 in the exemplary scenario 100 of
The compatible architectures presented herein for a tray 202 and chassis 302, such as those respectively depicted in the exemplary scenarios 300, 400 of
The architecture presented herein for the tray 202 and the chassis 302 may be implemented with variations in many aspects, and some variations may present additional advantages and/or reduce disadvantages with respect to other variations of these and other architectures and implementations. Moreover, some variations may be implemented in combination, and some combinations may feature additional advantages and/or reduced disadvantages through synergistic cooperation.
C1. Scenarios
A first aspect that may vary among embodiments of these techniques relates to the scenarios wherein such techniques may be utilized. As a first example of this first aspect, the tray and chassis architecture may implement many types of multi-blade computational units, such as file servers, webservers, database servers, and distributive processing servers. As a second example of this first aspect, the blades 204 of the multi-blade computational units may present varying types and degrees of interoperability (e.g., a mutually isolated set of blades 206; an intercommunicating set of independent blades 206 interacting in a peer-to-peer or server-client model; and a tightly coupled set of computational units, such as a symmetric multiprocessing (SMP) server). As a third example of this first aspect, the chassis 304 and trays 202 may be provided together, separately by the same supplier, or separately by different suppliers that confer to provide compatibility thereamong. These and other scenarios may advantageously utilize the tray and chassis architectures presented herein.
C2. Chassis and Tray Design
A second aspect that may vary among embodiments of the techniques presented herein involves the design of the chassis 302 and tray 202.
As a first example of this second aspect, the trays 202 may contain many types of blade components 208. As a first such example, the trays 202 may be user-serviceable, and may permit the addition and removal of blade components 208, e.g., through a snap-type model that enables blade components 208 to be manually “snapped” or depressed onto and/or manually detached from respective portions of a mainboard. Alternatively, respective blades 206 may comprise a distinct unit comprising the blade components 208 (e.g., in a separate sealed or user-serviceable enclosure) that may be included the tray 202 by sliding the distinct blade unit into a blade region of the tray 202. As a second such example, the tray 202 may be manufactured and provided within a fixed enclosure, such that the blade 206 is protected from physical shock and physical intrusion or manipulation. As a third such example, the tray 202 may include two or more blades 206, each comprising a discrete set of blade components 208. On one such embodiment, a tray 202 may be apportioned into at least two tray blade regions, each storing the blade components 208 of a blade 206, and may provide a tray power connector 210 and a tray network connector 212 for each blade 206 within the tray 202. In this manner, multiple blades 206 may be provided in a single tray 202 to increase the number of blades 206 of the multi-blade server stored in the chassis 302.
As a third example of this second aspect, the trays 202 and chassis 302 may utilize many types of directly connecting power and network connectors. For example, a “blind mate” connector design enables the coupling of the connectors on the back of a tray 206 with the corresponding connectors at the back of a slot 304 of the chassis 302 without manual intervention. As an example of such a connector, the respective connectors may comprise magnetic plates of opposing polarity that establish and maintain contact through weak magnetic attraction, and thus pair to transmit an electric signal. Additionally, in some embodiments, the power connectors and network connectors may be combined into a unified connector that provides both power 124 and network connectivity 126 to the blade 206. To this end, a chassis unified connector may be positioned within the slot 304 to be connected with a tray unified connector of the tray 202 in order to provide both power 124 and network connectivity 126 to a blade 206. The connector may also include any other type of communication data (e.g., a Universal Serial Bus (USB) connection, or a Serial Attached SCSI (SAS) bus).
As a fourth example of this second aspect, the trays 202 may be insertable into and removable from the slots 304 of the chassis 302 in many ways. Additionally, many types of tray guides 214 and/or chassis guides 318 may be selected to achieve the guidance of the insertion of the tray 202. As a first such example, the trays 202 may slide into a slot 304, and the tray guide 214 and chassis guide 318 may comprise (respectively or vice versa) a rail and a groove. As a second such example, the tray guide 214 and chassis guide 318 may comprise halves of an interlocking structure, such that, when the tray 202 is properly (manually) positioned within the slot 304, a small amount of physical force causes the tray 202 to snap into place for the power connectors and network connectors to couple, but that resists physical force during a misalignment of the tray 202 to avoid physical damage to the power and network connectors. As a third such example, the slot 304 may comprise a motorized bracket that, upon detecting the presence of a tray 202 in the bracket, moves the tray 202 into the correct position to connect the power connectors and the network connectors.
C3. Blade Components
A third aspect that may vary among embodiments of these techniques relates to the types of blade components 208 comprising a blade 206 stored in the tray 202.
As a first example of this third aspect, many types of computational units may be included as blade components 208, such as processors, volatile and nonvolatile memory components, display and sound adapters, communications devices such as network adapters, and communications buses. While the tray 202 may be designed to accommodate many types of blade components 208, in some embodiments, the blade components 208 may exceed the standard size of the tray 202. In such cases, the dimensions of the tray 202 may vary; e.g., a tray 202 may be designed having the height of two standard trays 202 to accommodate tall blade components 208, and may occupy two slots 304 of the chassis 302. Alternatively, the tray 202 may omit a top surface, or may include an expandable or removable top surface, to enable the inclusion of taller blade components 208. Similarly, the tray 202 may accommodate blade components 208 that utilize power 124 and/or network connectivity 126 exceeding the resources provided through one tray power connector 210 and/or one tray network connector 212. Accordingly, a tray 202 may enable a blade 206 to connect to and utilize the power 124 and/or network connectivity 126 provided by two or more connectors.
As a second example of this third aspect, a tray 202 may store blade components 208 that together comprise a blade type of a blade 206.
In view of the various types of blade types 502 of respective blades 206 that may be presented in respective trays 202, the trays 202 may be configured to communicate a blade type 502 of each stored blade 306 to the chassis 302, and the chassis 302 may be configured to enable an aggregation of blades 206 of different blade types 502 into a multi-blade computational unit. As a first such example, the chassis 302 may detect the different blade types 502 of respective blades 206, and may connect processing blades with storage blades to provide nonvolatile storage for the processing units. As a second such example, the chassis 302 may alternatively facilitate the intercommunication of processing blades to achieve a cooperative task, and/or may isolate intercommunication among processing blades to improve the security of discretely operating processors. As a third such example, the chassis 302 may route network communication for respective processing blades through a network switch provided in a different tray 202. These and other adjustments may be enabled by the interoperation of the trays 202 and the chassis 302 in accordance with the techniques presented herein.
C4. Additional Chassis Components
A fourth aspect that may vary among embodiments of these techniques relates to the inclusion of additional components in the chassis 302 that may facilitate the production of the multi-blade computational unit.
As a first example of this fourth aspect, a chassis 302 may include one or more power supplies 316 to provide power 124 to respective blades 206 within the trays 202. As a first such example, the chassis 302 may connect each blade 206 to one power supply 316. As a second such example, the chassis 302 may aggregate the power 124 provided by several power supplies 316, and may distribute the power 124 to all of the blades 206. This distribution may provide redundancy among the power supplies 316; e.g., the chassis 302 may include at least one extra power supply 316, and may provide failover power routing in the event of a failure of one or more power supplies 316.
As a second example of this fourth aspect, the chassis 302 may include one or more chassis climate regulating components, such as fans, heatsinks, air conditioning units, heaters, humidifiers, and dehumidifiers, that together regulate the climate within the chassis 302 on behalf of the blades 304.
As a third example of this fourth aspect, the chassis 302 may include one or more networking components that, in addition to conveying network connectivity from a network source connector 314 to the tray network connectors 212 through the chassis network connectors 308, provide additional network services. For example, a network switch may be integrated in the chassis 302 (i.e., not within a tray 202, but within the body of the chassis 302) that enables configurable routing of network connectivity 126 to the blades 206 of the trays 202.
As a fourth example of this fourth aspect, the chassis 302 may include a chassis management component that is configured to manage other blades 206 of the multi-blade computational unit, and optionally other components of the chassis 302. The chassis management component may be included within a tray 202 as a set of blade components 208 of a chassis management blade type. Alternatively, the chassis management component may be implemented as a processing component embedded in the chassis 306 and not supported by a tray 202.
As another variation of this fourth example of this fourth aspect, the chassis management component may provide management interactions with respective components through specialized connectors, which may provide a dedicated management channel among the chassis management component and the components of the trays 202 and chassis 302. As a first such example, the chassis management component may comprise a chassis management interface connector, and respective trays 202 may comprise a tray management interface connector, which is configured to couple with a blade management interface connector of at least one blade component 208 of the blade 206, and positioned to couple with the chassis management interface connector upon insertion of the tray 202 into the slot 304 of the chassis 302. As a second such example, respective chassis power supplies 316 may comprise a chassis power supply management interface connector that couples with a chassis power management component connector of the chassis management component. As a third such example, respective chassis climate regulating components may comprise a chassis climate regulating component management connector that couples with a chassis climate regulating component management interface connector of the chassis management component.
As a fifth example of this fourth aspect, the multi-blade computational unit may combine the blades 206 of the chassis 302 with the blades 206 of one or more additional chassis 302 (e.g., multiple chassis 302 stored in the same rack, or chassis 302 stored in other racks). As one such example, multiple chassis 302 may exchange information about the trays 202, blades 206, and blade types 502 presented therein. In order to enable such intercommunication, respective chassis 302 may include a chassis mount connector, which is configured to couple with a rack mount connector of a rack configured to store at least two chassis 302. These and other types of components may be added to extend the capabilities of the chassis 302 by those of ordinary skill in the art in accordance with the techniques presented herein.
In some embodiments, device 702 may include additional features and/or functionality. For example, device 702 may include one or more additional storage components 710, including, but not limited to, a hard disk drive, a solid-state storage device, and/or other removable or non-removable magnetic or optical media. In one embodiment, computer-readable and processor-executable instructions implementing one or more embodiments provided herein are stored in the storage component 710. The storage component 710 may also store other data objects, such as components of an operating system, executable binaries comprising one or more applications, programming libraries (e.g., application programming interfaces (APIs), media objects, and documentation. The computer-readable instructions may be loaded in the memory component 708 for execution by the processor 706.
The computing device 702 may also include one or more communication components 716 that allows the computing device 702 to communicate with other devices. The one or more communication components 716 may comprise (e.g.) a modem, a Network Interface Card (NIC), a radiofrequency transmitter/receiver, an infrared port, and a universal serial bus (USB) USB connection. Such communication components 716 may comprise a wired connection (connecting to a network through a physical cord, cable, or wire) or a wireless connection (communicating wirelessly with a networking device, such as through visible light, infrared, or one or more radiofrequencies.
The computing device 702 may include one or more input components 714, such as keyboard, mouse, pen, voice input device, touch input device, infrared cameras, or video input devices, and/or one or more output components 712, such as one or more displays, speakers, and printers. The input components 714 and/or output components 712 may be connected to the computing device 702 via a wired connection, a wireless connection, or any combination thereof. In one embodiment, an input component 714 or an output component 712 from another computing device may be used as input components 714 and/or output components 712 for the computing device 702.
The components of the computing device 702 may be connected by various interconnects, such as a bus. Such interconnects may include a Peripheral Component Interconnect (PCI), such as PCI Express, a Universal Serial Bus (USB), firewire (IEEE 794), an optical bus structure, and the like. In another embodiment, components of the computing device 702 may be interconnected by a network. For example, the memory component 708 may be comprised of multiple physical memory units located in different physical locations interconnected by a network.
Those skilled in the art will realize that storage devices utilized to store computer readable instructions may be distributed across a network. For example, a computing device 720 accessible via a network 718 may store computer readable instructions to implement one or more embodiments provided herein. The computing device 702 may access the computing device 720 and download a part or all of the computer readable instructions for execution. Alternatively, the computing device 702 may download pieces of the computer readable instructions, as needed, or some instructions may be executed at the computing device 702 and some at computing device 720.
As used in this application, the terms “component,” “module,” “system”, “interface”, and the like are generally intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a controller and the controller can be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers.
Furthermore, the claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed subject matter. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. Of course, those skilled in the art will recognize many modifications may be made to this configuration without departing from the scope or spirit of the claimed subject matter.
Various operations of embodiments are provided herein. In one embodiment, one or more of the operations described may constitute computer readable instructions stored on one or more computer readable media, which if executed by a computing device, will cause the computing device to perform the operations described. The order in which some or all of the operations are described should not be construed as to imply that these operations are necessarily order dependent. Alternative ordering will be appreciated by one skilled in the art having the benefit of this description. Further, it will be understood that not all operations are necessarily present in each embodiment provided herein.
Moreover, the word “exemplary” is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as advantageous over other aspects or designs. Rather, use of the word exemplary is intended to present concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from context, “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, if X employs A; X employs B; or X employs both A and B, then “X employs A or B” is satisfied under any of the foregoing instances. In addition, the articles “a” and “an” as used in this application and the appended claims may generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form.
Also, although the disclosure has been shown and described with respect to one or more implementations, equivalent alterations and modifications will occur to others skilled in the art based upon a reading and understanding of this specification and the annexed drawings. The disclosure includes all such modifications and alterations and is limited only by the scope of the following claims. In particular regard to the various functions performed by the above described components (e.g., elements, resources, etc.), the terms used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component (e.g., that is functionally equivalent), even though not structurally equivalent to the disclosed structure which performs the function in the herein illustrated exemplary implementations of the disclosure. In addition, while a particular feature of the disclosure may have been disclosed with respect to only one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application. Furthermore, to the extent that the terms “includes”, “having”, “has”, “with”, or variants thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising.”