1. Field of the Invention
The present invention generally relates to software that provides an operator or software modules the ability to access, control, or configure different data center resources using common sets of commands.
2. Description of the Related Art
The modern data center contains a plurality of heterogeneous types of resources that include, yet are not limited to, compute resource (nodes), servers, solid state disks, disk drives, tape drives, data storage arrays, automated tape libraries, network adaptors, and other forms of electronic equipment. Today, data center resources are controlled by a plurality of disparate forms of controlling software. In this environment, various different pieces of equipment require different control software each with a unique user interface and command sets.
Similar types of equipment often require different pieces of software to control or configure them. For example, if one had to control different data storage arrays such as a disk array without an integrated controller—colloquially, “just a bunch of disks” (JBOD) made by different data storage vendors, each individual JBOD array would require different control software because control functions designed for one vendor of JBOD array is different from another vendor. Even JBOD arrays made by the same vendor of different product generations may require different control software when controlling or configuring them.
This problem is exacerbated by the fact that the data center contains a plurality of different types of devices. There can thus be dozens or hundreds of pieces of equipment in the data center that require different control software to control and configure them.
Because of this, data center administrators are overwhelmed with mastering a plurality of different user interfaces that must be used to control each different piece of hardware in the data center. As such, there is a great need in the data center today to simplify how equipment is controlled and configured.
Embodiments of the invention simplify the job of data center operators by enabling operators or software modules external to the invention the ability to access, control, or configure a plurality of different data center resources using common sets of functions or commands. The invention is configured to accept common functions or commands and then translate them from a common command format into device specific commands or command sets.
In certain embodiments an operator can access, control, or configure a plurality of different data center hardware resources through a common user interface with common control functions. Furthermore, other software programs running in the data center can use the same set of control functions to access, control, or configure the same data center hardware resources as those controlled by the user interface. To accomplish this, software consistent with the invention encapsulates the control functions required to control various different pieces of data center equipment, and abstracts them from the operator or from the system service wishing to control, configure, or access those pieces of equipment.
Certain embodiments of the invention utilize at least three software modules that include: at least one action module, a user interface module, and a dispatch module. Action modules describe services or functions and map those services or functions to commands or command sets used to access, control, or configure specific types of data center hardware resources.
Command and control functionality of the user interface module and of the dispatch module are typically dynamically updated as soon as an action module is loaded. This can also occur even when action modules are loaded during runtime.
The user interface module allows an operator to access, control, or configure data center hardware resources typically using a command line interface. The invention's user interface is not limited to the use of a command line interface, as other forms of user interfaces may be incorporated into the invention, such as an interface provided through a network browser application.
The dispatch module allows other programs running in the data center to access, control, or configure data center resources through the same common command sets that are used by the user interface module. Thus, the invention enables data center resources to be controlled by a user interface or by other software programs typically without updating or changing the configuration of those other software programs when new hardware is added. Furthermore, the user interface module and the dispatch module typically do not require updates when new hardware is added to the data center. Instead, new functionality is added to the data center by adding or updating an action module.
The invention thus simplifies how data center equipment is accessed, controlled, and configured by translating common input commands into device specific commands or sets of commands.
Embodiments of the invention simplify the job of data center operators by enabling operators or software modules external to the invention the ability to access, control, or configure a plurality of different data center resources using common sets of functions or commands. The invention is configured to accept common functions or commands and then translate them from a common command format into device specific commands or command sets.
In certain embodiments, an operator can access, control, or configure a plurality of different data center hardware resources through a common user interface with common control functions. Furthermore, other software programs running in the data center can use the same set of control functions to access, control, or configure the same data center hardware resources as those controlled by the user interface.
Certain embodiments of the invention utilize at least three software modules that include: at least one action module, a user interface module, and a dispatch module. These modules are components of the system that might be widely distributed. In general, the dispatcher loads action modules from some persistent store, and communicates with the user interface module either directly, called as a subroutine, or through a network or messaging connection. Action modules describe services or functions and map those services or functions to commands or command sets used to access, control, or configure specific types of data center hardware resources. Action modules also encapsulate control functions required to control various different pieces of data center equipment and abstracts them from the operator or from other software programs wishing to control, configure, or access particular data center equipment. Action modules may also include text reviewing syntactic requirements of the command line interface or action modules may provide other useful instructions to an operator using the user interface.
Command and control functionality of the user interface module and of the dispatch module are typically dynamically updated as soon as an action module is loaded. This can also occur even when action modules are loaded during runtime.
The user interface module allows operators access, control, or configure data center hardware resources typically using a command line interface. The invention's user interface is not however limited to the use of a command line interface, as other forms of user interfaces may be incorporated into the invention including yet not limited a web page user interface.
For example, if an operator wishes to configure two different data storage arrays to implement RAID 1 (mirroring) on a first set of two disks contained within each of the two arrays, an operator could command software consistent with the invention to configure RAID1 on each data storage array using a single command set. The software would abstract the different types of commands sent to each data storage array from the operator. In this instance, software consistent with the invention is aware of that the different data storage arrays require different commands to configure RAID 1 and knows what those specific commands are to perform that task on each of the different data storage arrays: The invention thus translates the particular function “configure RAID 1 on the first two disks” commanded by the operator into different commands or sets of commands as required to perform the function. Software consistent with the invention can be configured in various embodiments to control many different types of equipment, thus the invention is scalable and is not limited to controlling one class of equipment.
The dispatch module allows other programs running in the data center to access, control, or configure data center resources through the same common command sets that are used by the user interface module. Thus, the invention enables data center resources to be controlled by a user interface or by other software programs typically without updating or changing the configuration of those other software programs when new hardware is added. Furthermore, the user interface module and the dispatch module typically do not require updates when new hardware is added to the data center. Instead, new functionality is added to the data center by adding or updating an action module.
Certain embodiments of the invention are configured to load action modules into the user interface module and into the dispatch model. This is conceptually similar to plugging in a FLASH memory chip into a camera where once installed in the camera, the FLASH memory chip is considered part of the camera. Other embodiments of the invention may be implemented where action modules communicate with user interface modules and with dispatch modules. This is conceptually similar to connecting a USB dongle containing a FLASH memory chip to a computer—here however the FLASH memory chip may be viewed as being attached to the computer instead of being part of the computer. Similarly, the invention may be implemented in various ways yet still within the scope of the invention.
Examples of software programs that may communicate with dispatch modules of the invention include yet are not limited to: SGI® Data Migration Facility (DMF), SGI® XFS or CXFS files systems, parallel distributed databases such as LiveArcrm, or other similar system services.
Examples of hardware accessed, controlled, or configured by the invention include yet are not limited to: disk drives, tape drives, automated tape libraries, data storage device arrays, network file system appliances, or parallel multi-core supercomputers.
The invention thus simplifies how data center equipment is accessed, controlled, and configured by translating common input functions or commands into device specific commands or sets of commands.
The above description is illustrative and not restrictive. Many variations of the invention will become apparent to those of skill in the art upon review of this disclosure. While the present invention has been described in connection with a variety of embodiments, these descriptions are not intended to limit the scope of the invention to the particular forms set forth herein. To the contrary, the present descriptions are intended to cover alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims and otherwise appreciated by one of ordinary skill in the art