1. Technical Field
The present invention generally relates to scanning and reporting on storage resources. More particularly, the present invention relates to scanning and reporting on storage resources in a UNIX or UNIX derivative operating system computing environment.
2. Background Information
In UNIX, LINUX and other UNIX derivative operating systems, information about storage resources, such as type, size, manufacturer, serial number, etc., is scattered across various utilities, configuration and kernel access files. Each of the sources for obtaining the information also typically has its own format and protocol.
For example, the size of a physical storage resource in a UNIX or UNIX derivative environment can typically be found in at least three ways: sending a query to the operating system using a system service such as “ioctl,” which will return the total number of blocks for the storage device; opening a special system file in the “/proc” directory tree and locating the storage device in the table; and sending a low-level query to the storage device itself, for example, issuing the SCSI command “READ_CAPACITY” or the ATA command “IDENTIFY.”
This seemingly haphazard design for the location and accessing of storage resource information creates a challenge for, and results in more complex, storage management software in such environments.
Thus, a need exists for a simpler way to access storage resource information in UNIX and UNIX derivative operating system computing environments.
Briefly, the present invention satisfies the need for a simpler way to access storage resource information in UNIX and UNIX derivative operating system computing environments by providing a single point of reference for such information in a standard hierarchical format.
In accordance with the above, it is an object of the present invention to provide a way to access storage resource information in UNIX and UNIX derivative operating system computing environments.
The present invention provides, in a first aspect, a method of providing storage resource information in a UNIX or UNIX derivative operating system computing environment. The method comprises collecting information about a storage resource in a UNIX or UNIX derivative operating system computing environment, and assembling the collected information into a single file in a standard hierarchical format.
The present invention provides, in a second aspect, a method of reliably completing a storage resource scan in a UNIX or UNIX derivative operating system computing environment. The method comprises initiating at least one scan thread for a storage resource in a UNIX or UNIX derivative operating system computing environment, and excluding at least one of the at least one scan thread from scan results after a predetermined time.
The present invention also provides systems and program products implementing the methods of the first and second aspects.
These, and other objects, features and advantages of this invention will become apparent from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings.
In a UNIX or UNIX derivative operating system environment, different types of information about storage resources is obtained from various sources. This can be done, for example, in response to scan requests for storage resources. All information of the same type for a given resource that is gathered from multiple sources is analyzed for inconsistencies, and any inconsistencies are resolved in some fashion. All of the different types of information are placed in a single file in a standard hierarchical format.
The operating system comprises, for example, UNIX or a UNIX derivative, for example, some form of LINUX. The resource scanner comprises, for example, a software server operating in accordance with the principles of the present invention, performing the client requests for information regarding the storage resources. There may be multiple scan threads for any given resource at any given time. Each storage resource has associated therewith a controller and driver. For example, controller 118 and driver 120 are associated with storage resource 112. The controllers control access to the resources, and the drivers, which may be software drivers residing in the operating system, facilitates the flow of data into and out of the associated storage resource.
One example of a method of providing storage resource information in accordance with the present invention will now be described with reference to the computing environment 100 of
Thus information is collected about a given storage resource (Step 202). Preferably, a given type of information is collected from at least one two different sources, when possible. In the present example, assume that the same information is also available through the operating system, which can be queried by the scanner. Where a given type of information collected from at least two sources, the information is preferably verified for consistency (Step 204). In the present example, the scanner compares the information to confirm its consistency from the two sources. Where inconsistencies exist (atypical), it usually signifies some type of failure of some entity in the process, frequently the controller or storage resource. In such a situation, either the scan is restarted, or the resource is declared as failed. The information is then assembled into a single file in a hierarchical standard format (Step 206). In the present example, the scanner adds the information to an XML file, which may then be accessed by client 102. In this way, there is a single point of standardized access to the information.
The types of information available for a given storage resource varies depending on the resource. Generally, the different types of information available include, for example, type, model number, vendor name, size, manufacturer's unique ID, serial number, system name for the storage resource, whether the storage resource is enabled or disabled, and some details regarding the information on the storage resource, such as, for example, file system label, virtual volume label, RAID super block, and partition table.
As noted above, the information is gathered and placed in a single file in a standard hierarchical format. Any hierarchical format now known or later developed can be used, so long as it has a flexible and extensible hierarchical data organization with hierarchically interconnected (e.g., nested) nodes (e.g., objects), each node having attributes or properties. A strong hierarchy allows for specifying multiple configurations and for easily introducing diverse nodes, without complicating the navigation of the file. Perhaps the best currently known example of such a hierarchical format, and the preferred format, is XML. Another example is the “ini” format, though well-known “tricks” to allow for nesting would need to be applied. For example, since the beginning of the next section is also the end of the previous, i.e., no breaks, nesting can be simulated by declaring subsections and paragraphs in the following manner: [section-name.subsection-name.paragraph . . . ]. While the “ini” format is not preferred, and can quickly become unruly with nesting, in theory it could be used.
In a variation of the method of
In another aspect of the present invention, a method of reliably completing a resource scan in a UNIX or UNIX derivative operating system computing environment where one or more resources may unexpectedly fail, is provided. Threads initiated for a scan request from clients are time-limited to achieve reliability in the completion of storage resource scans, such that a completion of a scan is based on time, not actual completion of all scan threads. The time limit can be blanket, regardless of the type of storage device, or it could be specific to the type of device. However, scan threads that do not complete in the predetermined time may be monitored and maintained in a queue.
The method will be described with reference to the flow diagram 300 of
When a thread in the queue finishes, the normal sequence of events for an ending thread take place. The new scan results are preferably not provided to the originally requesting client, however, since the results without this information were already reported to the client. The new results may instead be used to determine whether a new scan should be initiated for the storage resource. For example, if the scan returns an error, then a new scan may be increasingly delayed until the resource recovers. No query is initiated for any resource with an active scan thread, or any resource with a scan returning an error. Examples of errors include a response time-out, an internal storage resource error, and block read error due to a damaged block or corrupt data. For resources returning such errors, scans may begin again, for example, with a new client request. However, resources returning a predetermined number of errors consecutively may be declared “deadbeat” and removed from potential scans.
The above-described computing environment and/or computing units are only offered as examples. The present invention can be incorporated and used with many types of computing units, computers, processors, nodes, systems, work stations and/or environments without departing from the spirit of the present invention.
The present invention can include at least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform the capabilities of the present invention. The program storage device can be provided separately, or as a part of a computing unit.
The figures depicted herein are just exemplary. There may be many variations to these diagrams or the steps (or operations) described therein without departing from the spirit of the invention. For instance, the steps may be performed in a differing order, or steps may be added, deleted or modified. All of these variations are considered a part of the invention.
While several aspects of the present invention have been described and depicted herein, alternative aspects may be effected by those skilled in the art to accomplish the same objectives. Accordingly, it is intended by the appended claims to cover all such alternative aspects as fall within the true spirit and scope of the invention.
This application claims priority under 35 U.S.C. §119 to U.S. Provisional Application No. 60/714,408, filed Sep. 6, 2005, which is herein incorporated by reference in its entirety. This application contains subject matter which is related to the subject matter of the following applications, each of which is assigned to the same assignee as this application and filed on the same day as this application. Each of the below listed applications is hereby incorporated herein by reference in its entirety: U.S. patent application Ser. No. ______, by Malkin et al., entitled “REDUNDANT APPLIANCE CONFIGURATION REPOSITORY IN STANDARD HIERARCHICAL FORMAT” (Attorney Docket No. 2660.002A) U.S. patent application Ser. No. ______, by Malkin et al., entitled “LIGHTWEIGHT MANAGEMENT AND HIGH AVAILABILITY CONTROLLER” (Attorney Docket No. 2660.003A) U.S. patent application Ser. No. ______, by Kirill Malkin, entitled “BLOCK SNAPSHOTS OF iSCSI” (Attorney Docket No. 2660.004A) U.S. patent application Ser. No. ______, by Kirill Malkin, entitled “GENERATING DIGEST FOR BLOCK RANGE VIA iSCSI” (Attorney Docket No. 2660.005A) U.S. patent application Ser. No. ______, by Kirill Malkin, entitled “INCREMENTAL REPLICATION USING SNAPSHOTS” (Attorney Docket No. 2660.006A) U.S. patent application Ser. No. ______, by Kirill Malkin, entitled “PERFORMANCE IMPROVEMENT FOR BLOCK SPAN REPLICATION” (Attorney Docket No. 2660.007A) U.S. patent application Ser. No. ______, by Dmitry Fomichev, entitled “REUSING TASK OBJECT AND RESOURCES” (Attorney Docket No. 2660.008A)
Number | Date | Country | |
---|---|---|---|
60714408 | Sep 2005 | US |