Clustered computing systems were conceived, in part, to allow users to more efficiently handle processing tasks. By connecting two or more computers together in such a way that they behave like a single computer, a clustered computing system may be created. Clustering may be used for parallel processing, load balancing, high availability, and fault tolerance. Clustering is a popular strategy for implementing parallel processing applications because it enables companies to leverage an investment already made in PCs, workstations, and servers and because it's relatively easy to add new CPUs simply by adding a new PC to the network.
As the development of clustered systems has progressed, the management of clusters and associated cluster subsystems and cluster processes has become increasingly complex. This is in addition to the challenge of managing the operating system and other aspects of the individual systems (PCs, workstations, servers) comprising the cluster. Systems management has evolved to take advantage of an object-oriented management scheme, which can be applied to clusters as well. In this management scheme, “entities” such as servers, network interface cards, processes, and operating systems, for example, may each be represented as an object. Objects may then be placed in a common grouping scheme known as a namespace with each object having a unique name within that namespace. Grouping associated objects in namespaces allowed network administrators to efficiently manage clustered components. However, as the size of clustered systems and the number of associated cluster components grew, so did the number and types of managed objects. As a result of this growth, network administrators were faced with an increasingly unwieldy set of objects to manage first because an administrator may be unable to readily differentiate between all types of objects and second because associations between objects may be difficult to discern.
One strategy developed for handling these large sets of objects was to create private namespaces. Private namespaces could be configured to receive a smaller set of objects that might be related in some way. For example, a private namespace could be made to hold cluster objects. In other examples, a private namespace could be made to hold all operating system objects; objects related to a performance optimization view of a system; or objects relative to a particular hardware or software technology. In this manner, objects could be divided into logical groupings to reduce the number of objects for any given grouping.
This strategy is illustrated in
However, this method is not without drawbacks. For example, namespace 104 may or may not be populated with a complete set of cluster and non-cluster related objects. For any given application or view, not all cluster and non-cluster related objects may be needed. Thus, management software may create a private namespace and populate this private namespace only with objects directly related to an application or view. This strategy may reduce the total number of objects in a given managed namespace, therefore simplifying their creation and/or population, since management software can ignore any objects it does not directly own. However, a system administrator or management application needs to manage not only that one application or view, but also a variety of other applications and views. Thus, this technique shifts the burden to the system administrator or management application to find objects in the system namespace and all private namespaces and determine how they are related. This is necessitated at least in part by a preference to reduce the working set of objects to a manageable level. Unfortunately, this strategy may result in undesirable results.
First, in populating objects into a private namespace, superclasses must be included, so that inheritances will function as desired. Thus, a private namespace will contain superclasses which are also present in a system namespace and perhaps other private namespaces as well. Multiple copies of these superclasses raise the issue of consistency: it is now more difficult to make sure all copies are identical. Second, a new namespace is understandably less rich in that it will only contain some limited subset of the objects which populate the system namespace. Third, in private namespaces, associations between objects may be lost or obscured thus rendering administration more tedious as it may be left solely to an administrator to ferret out all associations when dealing with cluster issues. For example, it may be difficult to correlate the cluster network interconnect object in the cluster private namespace with the appropriate Network Interface Card in the system namespace of each server member, or even correlate the concept of a cluster member with the system objects.
Therefore, system and methods for managing objects in a server namespace are presented.
The present invention presents methods of creating a schema including: selecting a first class; defining at least one object association for the first class; and creating a schema for the first class and for the at least one object association for the first class. In some embodiments, methods further include: selecting a superclass for the first class; and defining at least one property for the first class. In some embodiments, the schema includes: a name for the first class, a name for the superclass, and the at least one property.
In other embodiments, methods of populating a server namespace with server related object instances are presented including the steps of: a) selecting a cluster aware object instance where the cluster aware object instance is a server related object instance; b) selecting a corresponding non-cluster aware object instance corresponding to the cluster aware object instance as defined by a schema where the non-cluster aware object instance is a server related object instance; c) building an association object instance such that the selected cluster aware object instance and the corresponding non-cluster aware object instance relationship is defined; and d) populating a server namespace with all cluster aware object instances and all corresponding non-cluster aware object instances such that all server related object instances reside in a single namespace. In some embodiments, the association object instance includes at least two endpoints such that the cluster aware object instance and its corresponding non-cluster aware object instance are correctly identified. In some embodiments, methods are presented further including repeating the steps a), b) and c) for all cluster aware object instances. In some embodiments, methods are presented further including before step a): selecting a cluster member; finding a schema corresponding to the cluster member; retrieving cluster information corresponding to selected cluster member; and building at least one cluster aware object instance from retrieved cluster information.
In still other embodiments, methods of managing objects in a server namespace are presented including the steps of: selecting a server of interest; examining a server namespace corresponding to the server of interest enumerating all cluster class instances in the server namespace; and determining whether the server of interest is a member of a cluster. In some embodiments, methods are presented further including: if the server of interest is a member of a cluster, getting all server related object instances corresponding to the server of interest where at least one server related object instance is an association object instance corresponding to a cluster aware object instance and a corresponding non-cluster-aware object instance; determining a current server of the cluster; and displaying the current server of the cluster and all server related object instances. In some embodiments, methods are presented further including: selecting a server related object instance; and operating upon the server related object instance.
In still other embodiments, integrated methods of managing objects in a server namespace are presented including the steps of: creating at least one schema; populating a server namespace in accordance with the at least one schema such that a server namespace is populated with server related object instances defined by the at least one schema; selecting a server; and graphically displaying all server related object instances in the server namespace for a selected server. In some embodiments, methods are presented further including: selecting a server related object instance; and operating upon the server related object instance. In some embodiments, the at least one schema includes: at least one created class; a superclass of the at least one created class; at least one class property; and at least one association object wherein the association object belongs to an association class.
In still other embodiments a server namespace is presented including: at least one cluster aware object instance; at least one non-cluster aware object instance corresponding to at least one cluster aware object instance; and at least one association object instance wherein the at least one association object defines a relationship between the at least one cluster aware object instance and the at least one non-cluster aware object instance. In some embodiments, the at least one association object includes at least two endpoints such that one endpoint corresponds to the cluster aware object instance and one endpoint corresponds to the non-cluster aware object instance.
In still other embodiments, a computer program product for use in conjunction with a computer system for managing objects in a server namespace is presented, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism including: instructions for creating at least one created schema; instructions for populating a server namespace in accordance with the at least one created schema such that the server namespace is populated with server related object instances defined by the at least one created schema; instructions for enabling server selection; and instructions for graphically displaying all server related object instances in the server namespace for a server. In some embodiments, the computer program product is presented further including: instructions for enabling selection of a server related object instance; and instructions for enabling operations upon the server related object instance after selection.
In still other embodiments integrated methods of managing objects in a server namespace are presented including the steps of: means for creating at least one schema; means for populating a server namespace in accordance with the at least one created schema such that a server namespace is populated with server related object instances defined by the at least one created schema; means for selecting a server; and means for graphically displaying all server related object instances in the server namespace for a selected server. In some embodiments, methods further include: means for selecting a server related object instance; and means for operating upon the server related object instance after selection. In some embodiments, the at least one schema includes: at least one created class; a superclass of the created class; at least one class property; and at least one association object wherein the association object belongs to an association class.
Embodiments of the invention may best be understood by reference to the following description taken in conjunction with the accompanying drawings in which:
FIGS. 6A-B illustrate a flowchart demonstrating a method of populating a server namespace in accordance with an embodiment of the present invention;
The present invention will now be described in detail with reference to a few embodiments herein as illustrated in the accompanying drawings. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some or all of these specific details. In other instances, well known process steps and/or structures have not been described in detail in order to not unnecessarily obscure the present invention.
In accordance with embodiments of the present invention, there are provided systems and methods for managing objects in a server namespace. Embodiments of the present invention allow a user to more effectively administer clusters and cluster-related objects.
Referring first to
Also illustrated is an association superclass 230 having children logical identity association class 234 and cluster membership association class 236 as well as a grandchild node identity association class 232. Association class 230 does not inherit from computer system class 210, but may be used to relate a computer system object to the objects corresponding to a particular computer configuration. For example, node identity association 232 may be used to associate a standard server class 216 to a cluster node class 212 or 214.
Thus, cluster instance 308 is illustrated having four cluster node instances 312-324. Cluster node instances 312-324 are associated with cluster instance 308 via associations 340. Associations 340 represent each of four association instances belonging to a class that defines associations between cluster instances and cluster node instances—in this example a cluster membership association class (see
This problem is further exacerbated because these instances illustrate examples of objects that might be found in any of a number of namespaces. As noted above, one strategy developed for handling large sets of objects or sets of objects representing different views was to create additional private namespaces. For example, if, as noted above, objects 308, 312-324, and 340 resided in a private namespace, and computer system 328 resided in the system namespace, an administrator or management software needs to somehow determine which cluster node (312 or 316 or 320 or 324) is logically related to 328 because associations 344-356 were not available. Another related problem is namespace synchronization. For example, where namespaces are not synchronized, it is possible that a computer system cluster member such as 328 might be dropped from its cluster, but will continue to appear in an unsynchronized namespace.
Still further, an instance diagram may be mapped to an inheritance diagram as illustrated in
Referring to
At a next step 512 class properties may be defined supplementing those inherited from a superclass. Class properties include any relevant information necessary to properly create a class being created. In some embodiments were the class is selected (as opposed to created), defining properties may be omitted as they are already defined in the selected class. At a next step 516, desired object associations may be defined. In some embodiments, object associations include associations between cluster-aware instances. For example, referring briefly to
Turning back to
Referring now to FIGS. 6A-B, FIGS. 6A-B illustrate a flowchart demonstrating a method of populating a server namespace in accordance with an embodiment of the present invention. A server namespace contains all server related object instances for a particular server. At a first step 604, a cluster member may be selected or found. A server namespace, may be selected or found by any manner well-known in the art. After a cluster member is found, a corresponding schema, such as the schema written to at a step 524 (
At a next step 612, cluster information corresponding to the schema selected at a step 608 may be retrieved. In some embodiments, cluster information may be retrieved by API's running on a node. Cluster information includes all information regarding all cluster components including, for example, clusters, nodes, and associations. Cluster information may be received and stored in any manner well-known in the art. Once cluster information is received, all cluster-aware object instances may be built at a step 616. In one embodiment, cluster related object instances include, both cluster aware object instances and non-cluster-aware object instances as illustrated in
The method then determines whether there are more cluster aware object instances at a step 636. If there are more cluster aware object instances in the cluster being processed, the method continues to a step 620 to select another cluster aware object instance. If all cluster aware object instances have been processed, then method then places all cluster related object instance into a server namespace at a step 640. In some embodiments, a server namespace generally exists for every server. By grouping objects in a server namespace in embodiments of the present invention, the need to synchronize objects across namespaces may be eliminated. Further benefits may be realized because objects may be more easily accessed via a known server namespace. The method then ends.
Referring to
At a next step 712, all cluster class instances of a selected server may be enumerated. In this manner, the method may determine, at a next step 716, whether the selected server is a member of a cluster. If the method determines that the selected server is not a member of a cluster, the method continues to a step 732 to select another server. If the method determines that server is a member of a cluster, then the method continues to a step 720 to get all cluster related instances of the server. As noted above for
At a next step 728, all cluster related instances may be displayed. Cluster related instances may be displayed in any manner well-known in the art including text display and GUI display. As the object instances may also support management, the administrator or management software may be configured to manage (e.g., operate upon) server related objects. The method continues at a step 732 to determine whether more servers to select are desired. If more servers are desired, the method continues to a step 704. If no further servers are desired, the method ends.
Referring to
Referring to
While this invention has been described in terms of several embodiments, there are alterations, permutations, and equivalents which fall within the scope of this invention. For example, although the present invention is primarily described herein as operating in conjunction with Web-Based Enterprise Management (WBEM) and WMI/CIM, the present invention is equally applicable to other management systems, and thus the references herein to WMI/CIM management system are for illustrative purposes only, and do not limit the applicability of the invention It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations, modifications, and various substitute equivalents as fall within the true spirit and scope of the present invention.