In order that the advantages of the invention will be readily understood, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments that are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to he limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings, in which:
a illustrates an example controller blade for operation in a computer system;
b illustrates an example storage blade for operation in a computer system;
Many of the functional units described in this specification have been labeled as modules in order to more particularly emphasize their implementation independence. For example, a module may be implemented as a hardware circuit comprising custom VLSI circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module may also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices, or the like.
Modules may also be implemented in software for execution by various types of processors. An identified module of executable code may, for instance, comprise one or more physical or logical blocks of computer instructions which may, for instance, be organized as an object, procedure, or function. Nevertheless, the executables of an identified module need not be physically located together, but may comprise disparate instructions stored in different locations which, when joined logically together, comprise the module and achieve the stated purpose for the module.
Indeed, a module of executable code may be a single instruction, or many instructions, and may even be distributed over several different code segments, among different programs, and across several memory devices. Similarly, operational data may be identified and illustrated herein within modules, and may be embodied in any suitable form and organized within any suitable type of data structure. The operational data may be collected as a single data set, or may be distributed over different locations including over different storage devices, and may exist, at least partially, merely as electronic signals on a system or network.
Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
Reference to a signal bearing medium may take any form capable of generating a signal, causing a signal to be generated, or causing execution of a program of machine-readable instructions on a digital processing apparatus. A signal bearing medium may be embodied by a transmission line, a compact disk, digital-video disk, a magnetic tape, a lernoulli drive, a magnetic disk, a punch card, flash memory, integrated circuits, or other digital processing apparatus memory device.
The schematic flow chart diagrams included are generally set forth as logical flow-chart diagrams. As such, the depicted order and labeled steps are indicative of one embodiment of the presented method. Other steps and methods may be conceived that are equivalent in function, logic, or effect to one or more steps, or portions thereof, of the illustrated method. Additionally, the format and symbols employed are provided to explain the logical steps of the method and are understood not to limit the scope of the method. Although various arrow types and line types may be employed in the flow-chart diagrams, they are understood not to limit the scope of the corresponding method. Indeed, some arrows or other connectors may be used to indicate only the logical flow of the method. For instance, an arrow may indicate a waiting or monitoring period of unspecified duration between enumerated steps of the depicted method. Additionally, the order in which a particular method occurs may or may not strictly adhere to the order of the corresponding steps shown.
Furthermore, the described features, structures, or characteristics of the invention may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided, such as examples of programming, software modules, user selections, network transactions, database queries, database structures, hardware modules, hardware circuits, hardware chips, etc., to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize, however, that the invention may be practiced without one or more of the specific details, or with other methods, components, materials, and so forth. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the invention.
Turning to
a illustrates an example RAID controller blade 35 which can be integrated into the chassis by coupling to midplanes 34. A generic high speed fabric or interface 36 can connect controller blade 35 to a switch 38. Switch fabrics 36 are integrated into the midplanes 34. Switch fabrics 36 can facilitate the transfer of a plurality of high speed signals routed from each of the blade slots in the rack mount enclosure to a set of switches 38 that are installed in the rear of the chassis. The midplane 34 wiring 36 is generic in the sense that a user can install different switch modules to personalize the fabric for a specific technology that the blades support, e.g. fiber channel switches, Ethernet switches or Infiniband switches. A Serial Attached SCSI (SAS) switch can be used to interconnect the blades to SAS storage which can be located on a separate blade in the system.
Referring again to
b illustrates an example storage blade 43 which can be integrated into the chassis by coupling to midplane 34. Again, high speed fabric 36 is shown coupling switch 38 to midplane 34. Additionally, storage blade 43 is coupled by interfaces 36 to midplane 34. Controller 44 and controller 46 are depicted as local to storage blade 43. Controllers 44 and 46 are coupled to a plurality of storage devices 48. Storage devices 48 can be an array of disk drives, such as a “Just-a-Bunch-Of-Drives” (JBOD) topology.
Modules 54, 56, 58 can include a logic control entity which can operate alternatively as software, hardware or a combination of software and hardware on the computer system. Modules 54, 56, 58 can include such software as a device driver routine or similar software which acts as an interface between applications and hardware devices. Modules 54, 56, 53 can be implemented in the computer system as hardware using Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL). Module 54, 56, 58 can be implemented in the computer system as software which is adapted to operate under a multitasking operating system such as UNIX, LIN, or an equivalent. Finally, modules 54, 56, 58 can be configured to be scalable to operate on an enterprise computer system or incorporate enterprise system communications technology such as ESCON or an equivalent.
The present invention expands the capabilities of current architectures which only allow a user to manage blades/modules within a single chassis 52. A user can manage multiple chassis 52 and external hardware by defining the relationship between each component. A user can centrally manage a server/storage environment with multiple chassis 52 and external hardware components using a master module and multiple slave module topology. Again, the present invention contemplates management of external components such as JBODs, controllers, or servers incorporating the described topology.
Slave modules 56, 58 can be responsible for gathering information from components with the specific domain of the slave module 56, 58 such as the status of the component and the location of the component in the domain. The slave modules 56, 58 can then send the information to the master module 54. The master module 54 uses the information to generate a graphical representation of the overall topology of the management pool. The master module 54 then becomes the central repository for the information gathered from the slave modules 56, 58 or slave modules located on external components of the computer system.
Having all the information stored on master module 54 works to minimize the amount of traffic on the communication path 50, which improves performance. Master module 54 can use the information in the repository to determine if a particular hardware component has a specific dependency when a requested function is received by the master module 54. Several situations such as a processor boot from a particular storage-area-network (SAN), various switch modules and storage expansions in the overall system can cause a hardware component dependency. The management pool can use several communication methods such as out-band (e.g., Ethernet VLAN) or in-band (e.g., SAS fabrics) which can all be funneled into a central management pool interface, again having a protocol such as Ethernet RS485 or similar.
Turning to
To illustrate method 68, consider the following example operation of a communication system for a multiple chassis computer system with external components. A user first connects to the master management module in chassis #2 and attempts a power-on operation of a blade in chassis #3, slot 5 in the computer system. The master management module then accesses its central repository of information to determine if the blade has any dependency on other blades or modules within the management pool (refer to
As a next step, chassis #5 responds to the master management module that the blade in slot #4 is powered off. The master management module then displays an error message to the user which indicates the details of why the blade cannot be powered on. For example, the message could read: “Error: Blade in Chassis #3, Slot #5 Cannot Be Powered On. . . . The Blade In Chassis #3, Slot #4 Must Be Powered On First”. The master management module then provides a list of options that a user can perform. The first option would be to ignore the dependency and continue to power on the blade in chassis #3. The second option would allow the user the option of powering on the blade in chassis #5 and then powering on the blade in chassis #3, subject to the error condition.
If the second option is chosen by the user, the master management module than performs a second verification process on the blade in chassis #5 to again determine any dependencies and/or check the status of the blade.
Implementing and utilizing the example systems and methods as described can provide a simple, effective method of providing communication between multiple chassis in a computer system. While one or more embodiments of the present invention have been illustrated in detail, the skilled artisan will appreciate that modifications and adaptations to those embodiments may be made without departing from the scope of the present invention as set forth in the following claims.