Abstract:
A method for interfacing with a storage system having a plurality of elements, the elements having a visible relationship with each other, and being coupled to a system control unit including a display. The method includes drawing an image of the elements on the display, the image having the visible relationship and modifying the image of one of the elements to represent a property of the element. The method further includes, in response to an input from a user of the storage system to the system control unit, making a change in the property of the element and representing the change in the image.

Description:
FIELD OF THE INVENTION  
       [0001]     The present invention relates generally to data storage systems, and specifically to a graphic user interface for facilitating operation of the system.  
       BACKGROUND OF THE INVENTION  
       [0002]     As demands placed upon data storage systems increase and as the volume of data processed by the systems also increases, operation of the storage systems becomes more problematic. One of the aspects of operation of storage systems is the interface between an operator of the system and the system itself, and attempts to improve the overall operation by relating to a graphic user interface (GUI) have been made in the prior art. Some of these GUIs use text describing elements of the storage system, and/or icons depicting the elements, to help the operator operate the system.  
         [0003]     U.S. Pat. No. 6,845,395 to Blumenau et al., whose disclosure is incorporated herein by reference, describes a user interface that allows communication with a database. A graphic user interface graphically represents elements of the storage system, and permits a user to view a topology of the system at user-selectable levels of detail.  
         [0004]     U.S. Pat. No. 6,845,344 to Lally et al., whose disclosure is incorporated herein by reference, describes a graphic user interface that enables time delays and different configurations to be applied to elements of a storage system.  
         [0005]     U.S. Pat. No. 6,839,747 to Blumenau et al., whose disclosure is incorporated herein by reference, describes a graphic user interface that permits a user of a storage system to allow or deny access to elements of the system by manipulating graphical representations of the elements.  
         [0006]     U.S. Pat. No. 6,751,758 to Alipui et al., whose disclosure is incorporated herein by reference, describes a graphic user interface that is claimed to provide clarity and simplicity in screening errors in a data storage system, and in responding to the errors.  
       SUMMARY OF THE INVENTION  
       [0007]     In embodiments of the present invention, a graphic user interface (GUI) is used to operate a storage system. The storage system comprises a plurality of elements having a visible relationship with each other. The elements of the storage system are coupled to a system control unit including a display. The GUI generates a visually realistic image of the elements which is drawn on the display, the image having the same visible relationship as the actual elements. The image of one of the elements is modified to represent a property, and/or a property change, of the element. In addition, a user of the storage system may implement the property change of the element by making an input to the control unit, typically using a pointing device on the GUI, thereby both modifying the image of the element and making the property change. Using an interactive image of elements of a storage system as the GUI, the image appearing to be visually realistic and substantially identical to the physical storage system, improves the ease of operation of the storage system for the user, and makes the operation more intuitive.  
         [0008]     In an embodiment of the invention, the elements of a sub-system of the storage system are housed in a console, and the GUI typically shows at least a part of the console. Alternatively or additionally, images of the console and/or of the elements are drawn on the GUI as three-dimensional images.  
         [0009]     There is therefore provided, according to an embodiment of the present invention, a method for interfacing with a storage system having a plurality of elements, the elements having a visible relationship with each other, and being coupled to a system control unit including a display, the method including:  
         [0010]     drawing an image of the elements on the display, the image having the visible relationship;  
         [0011]     modifying the image of one of the elements to represent a property of the element; and  
         [0012]     in response to an input from a user of the storage system to the system control unit, making a change in the property of the element and representing the change in the image.  
         [0013]     Typically, the image is a three-dimensional image.  
         [0014]     In an embodiment, the elements are installed in a console, and the image includes an image of the console.  
         [0015]     Typically, the elements include at least one of an interface module, a management module, a non-volatile storage unit, and a power supply.  
         [0016]     The method may further include physically coupling the elements together according to the visual relationship, and conveying the visual relationship to the system control unit in response to the physical coupling.  
         [0017]     The property may include at least one of a type, a position, and an operating parameter of the element.  
         [0018]     Typically, making the change in the property includes at least one of changing a position of the element, activating the element, deactivating the element, copying data to the element, reading data from the element, erasure of data from the element, partitioning of the element, and reconfiguration of data within the element.  
         [0019]     The input from the user may include a signal derived in response to the user moving a pointing device, and the method may further include generating the signal in response to at least one of positioning the pointing device and clicking a control comprised in the pointing device.  
         [0020]     In one embodiment making the change in the property of the element includes the user performing a drag-and-drop operation on the image of the element with a pointing device coupled to the system control unit.  
         [0021]     In some embodiments the image of the elements appears to the user as a realistic reproduction of the elements, and modifying the image includes configuring a modification to the image to appear as realistic to the user.  
         [0022]     There is further provided, according to an embodiment of the present invention, a graphic user interface for a storage system having a plurality of elements, the elements having a visible relationship with each other, and being coupled to a system control unit including a display, the interface including:  
         [0023]     a processor which is adapted to:  
         [0024]     draw an image of the elements on the display, the image having the visible relationship,  
         [0025]     modify the image of one of the elements to represent a property of the element, and  
         [0026]     in response to an input from a user of the storage system to the system control unit, make a change in the property of the element and represent the change in the image.  
         [0027]     The present invention will be more fully understood from the following detailed description of the embodiments thereof, taken together with the drawings in which:  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0028]      FIG. 1  is a schematic illustration of a graphic user interface (GUI) for a data storage system, according to an embodiment of the present invention;  
         [0029]      FIG. 2  illustrates a console in the system of  FIG. 1 , and an image of the console, according to an embodiment of the present invention; and  
         [0030]      FIGS. 3A-3L  show examples of use of the GUI of  FIG. 1 , according to embodiments of the present invention.  
     
    
     DETAILED DESCRIPTION OF EMBODIMENTS  
       [0031]     Reference is now made to  FIG. 1 , which is a schematic illustration of a graphic user interface (GUI)  10  for a data storage system  20 , according to an embodiment of the present invention. System  20  acts as a facility for one or more hosts  24  to read data from, write data to, and store data. System  20  is assumed to comprise one or more physically separate sub-systems  22 , and the elements of each sub-system are positioned in one respective location and are typically coupled together using cables and/or other physical couplings.  
         [0032]     Storage system  20  is controlled by a system operator  28  via a system control unit  11 , typically comprising an off-the-shelf personal computer. Hosts  24 , sub-systems  22 , and unit  11  may be coupled using any suitable communication method known in the art, including wireless, wired, and/or optical communication methods, and are assumed herein to be coupled by and operate in a network  13 .  
         [0033]     Control unit  11  comprises a processing unit  16  coupled to a memory  18  in a processor  15 , and the processor operates a display  12 . By way of example, the system operator is assumed to operate control unit  11  using a keyboard  14  and/or a pointing device  26 , which provide operator inputs to the control unit. It will be understood, however, that operation of the present invention is not limited to a particular method for inputting to system control unit  11 , that any other suitable system for providing such operator inputs may be used, and that all such systems are considered to be comprised within the scope of the present invention. As is described in more detail below, system operator  28  generates an interactive realistic non-iconic image of each physical sub-system  22  and its elements on display  12 , using display software  32  stored in memory  18 . Display software  32  generates the images to be substantially similar in texture and color gradations to images produced by photographing the sub-system. Typically the images of sub-system  22  and its elements are three-dimensional (3D) images. It will be appreciated that each sub-system  22  typically comprises different elements, and that each of the sub-systems are typically arranged physically differently. By way of example, the description hereinbelow assumes that one of sub-systems  22  comprises a console  34  housing elements of the sub-system, and that display software  32  generates a 3D image  30  of console  34 .  
         [0034]      FIG. 2  illustrates console  34  and image  30  of the console, according to an embodiment of the present invention. At installation of console  34 , elements of the sub-system are positioned in racks  48 , typically industry-standard racks, for example 19″ racks, of the console. Each rack  48  comprises a back-plane, mid-plane, or other connecting system known in the art such as cables, which mates with the element inserted into the rack, and via which the element is able to transmit and receive data.  
         [0035]     The elements installed in console  34  comprise three computers  40 . By way of example, each computer  40  is herein assumed to comprise an interface module  43 , which acts as an interface between storage system  20  and hosts  24 , and a management module  45 , which manages operations of the storage sub-system. Each computer  40  typically includes a processing unit (PU)  42  and a memory  44 , the memory typically being used as a cache for its PU and/or its interface module, as well as for storing software used by its computer in operating sub-system  22 .  
         [0036]     Elements of console  34  also comprise computing units  46  which act as non-volatile data storage units, and which are herein by way of example assumed to be arranged in respective banks  50  of racks  48 , and which are used to store data used by the system. Computing units  46  are also referred to herein as non-volatile data storage units  46 . Each non-volatile data storage unit typically comprises a magnetic disk operating together with a cache for the disk. It will be appreciated that other forms of non-volatile data storage unit, such as compact disks, magnetic tapes or media, optical media, and/or other media wherein data may be stored permanently, may be included in one or more of banks  50 , and that all such modes of non-volatile storage are assumed to be comprised within the present invention.  
         [0037]     Elements installed in console  34  further comprise power supplies  52 , typically uninterruptible power supplies, in respective racks  48 . Typically, elements corresponding to computers  40 , storage units  46 , and power supplies  52  are installed in other sub-systems  22 , in a generally similar configuration to that of the elements installed in console  34 . In an embodiment of the present invention, the elements of storage system  20  are configured to operate with redundancy, so that storage system  20  may continue to function on failure of a processor, a storage unit, or a power supply of any specific sub-system  22 . The redundancy may be implemented to operate at a local sub-system level, i.e., within the sub-system, and/or at a system level, i.e., between sub-systems.  
         [0038]     In the following description, unless otherwise stated, console  34  is assumed to comprise three computers  40 ,  120  storage units  46  arranged in eight banks, each bank  50  having fifteen units, and three power supplies  52  which are uninterruptible. To distinguish between similar elements, a letter suffix is added to the identifying numeral. For example, the three computers of console  34  may be identified as computer  40 A,  40 B, and  40 C.  
         [0039]     Image  30  is generated so as to be substantially indistinguishable from an image produced by photographing console  34 , so that the image presented on display  12  appears to operator  28  as a realistic reproduction of console  34 , and not as an iconic reproduction. Image  30  is typically a three-dimensional image, and the realism of the image is typically further enhanced using methods well known in the graphic arts, such as varying color dimensions and/or a perspective of the image or a part of the image. Such methods are also applied so that changes/modifications in image  30 , in response to an input from operator  28  as described in more detail below, also appear to the operator as realistic changes/modifications. In one embodiment of the present invention, image  30  is produced using a film or a digital camera, by taking a photograph of the console. It will be understood that image  30 , as represented herein, is a schematic simplified representation of the realistic image presented on display  12 .  
         [0040]     Display software  32  typically generates image  30  from a skeleton image of an empty console, which the software populates with images of the elements which have been installed in console  34 . The images of the elements are also generated by software  32 .  
         [0041]     While the description herein, except where otherwise stated, relates to a sub-system  22  in the form of console  34 , it will be appreciated that other sub-systems  22  may be in the form of more than one console, and/or may be assembled in other physical arrangements. In these cases, an image of a skeleton of the respective physical arrangement is formed by the display software  32  of the sub-system. The skeleton image may be produced as a computer-generated image using one or more photographs of the sub-system, and/or by an operator such as operator  28  using a computer graphics program, by methods which are known in the art. The skeleton image is populated, as is described herein for console  34 , with images of the elements installed in the respective sub-system.  
         [0042]     The elements in console  34  have a visual relationship with respect to each other that is apparent to an observer of the console, and software  32  generates the images of the elements to have the same visual relationship as that of the elements themselves. Hereinbelow, as necessary, images of an element are differentiated from the element itself by adding a suffix letter I to the identifying numeral of the element. Thus, images of computers  40 A,  40 B, and  40 C are labeled  40 AI,  40 BI,  40 CI.  
         [0043]     Each of the elements installed in console  34  comprises identifying hardware and/or software, which operates so that when any specific element has been installed in the console, control unit  11  is able to identify a type and a position of the element. Control unit  11  is also able to detect the absence of any elements in a particular position within console  34 . In addition to having identifying hardware and/or software, each type of element comprises information collecting hardware and/or software, which enables each specific element to gather information regarding the element, and to transmit this information to unit  11 . The type of information collected and transmitted is a function of the element. In the specification and in the claims, information concerning a particular aspect of an element that may be collected by control unit  11  is termed a property of the element. Such aspects include, but are not limited to, the type, status, and the position of the element, as well as operating parameters of the element. Certain properties such as the position of the element, and some of the operating parameters thereof, may be changed. Such changes include copying of data to the element, reading data from the element, erasure of data from the element, partitioning of the element, and reconfiguration of data within the element. Those skilled in the art will be able to formulate other possible changes in operating parameters of specific elements, and all such changes are assumed to be within the scope of the present invention. Some aspects of elements are described in more detail hereinbelow.  
         [0044]     For a power supply such as uninterruptible power supply  52 , the power supply typically transmits whether the power supply is supplying power to console  34  in the absence of line power. If line power is not present, the power supply transmits the values of the voltages and currents it is supplying and the remaining time it is able to safely continue supplying these voltages and currents. If line power is present, the power supply transmits this fact to unit  11 , together with other relevant information such as how the power supply is able to react in the case of a line power failure.  
         [0045]     Each non-volatile data storage unit  46  typically transmits a total capacity of the unit, together with how much of the capacity is being used. Each storage unit may also transmit a number of primary and secondary slices that the unit has been partitioned into, primary slices being used to store a first copy of data, and secondary slices being used to store a backup data copy. Other information that a storage unit transmits typically includes a status of the unit, e.g., whether the unit is in service and available, is booting, has an “OK” or a “failed” status, and/or an average throughput over a predetermined period of time, an average latency over the predetermined period of time, whether the unit is in a process of rebuilding its data, to which cache unit the storage unit is coupled, and properties of the cache unit.  
         [0046]     In an embodiment of the present invention, each storage unit transmits data reflecting the activity of the unit, for example, the number of read and/or write requests handled by the unit in a given time, and/or the size of data read from or written to the unit in the given time.  
         [0047]     Each computer  40  typically transmits data concerning software and hardware it is configured to run, such as the operation or non-operation of each of its management and interface modules such as a capacity of the modules, a fraction of the capacity that is being used, and/or an availability of the module in the case of it being configured to fulfill a redundancy requirement. Each computer  40  may also transmit information on specific programs designed to run on the computer, and the status of the programs, i.e., if the programs are executing correctly or if there is some problem with the execution. Also transmitted may be data concerning the PU of the computer, such as the activity of the PU, and of the memory coupled to the PU, such as, in the case of the memory being used as a cache, relevant data concerning the cache use. Typically, such data includes a fraction of “hits” which are successful in a given time period, i.e., wherein the data requested is already present in the cache. Typically, one of computers  40  acts as an operational manager, in which case the other computers  40  are configured as one or more redundant managers.  
         [0048]     The data transmitted from the individual elements of console  34  is used by control unit  11  to generate graphic information about specific elements of system  20 , combinations of specific elements, and about the overall system. The graphic information is overlaid on image  30 . For combinations of specific elements, and for the overall system, the graphic information is typically generated by control unit  11  analyzing a variety of received data from the elements of system  20  to derive parameters for the required combination and/or the overall system. The graphic information may be presented automatically on GUI  10  without any input from operator  28 , or may be accessed by the operator providing an input to processing unit  16 , typically using a pointing device such as device  26 .  
         [0049]     In addition to transmitting information data to control unit  11 , each of the elements of console  34  is typically configured to receive management and control signals from the control unit for operating the element. Such management and control signals include signals that activate, deactivate, update, and/or reconfigure an element, and are typically provided by operator  28  providing an input to GUI  10  on display  12 . GUI  10  thus acts as a fully interactive monitoring and control interface. In addition, because the GUI is substantially visually identical to physical console  34 , the ease of use of the interface is enhanced.  
         [0050]     The input provided by operator  28  is typically initiated by the operator using pointing device  26  to select a particular element. The selection may be by moving the cursor of device  26  over the element, and/or by clicking on the element, the latter being understood to comprise all clicking methods known in the art, including single, double, and treble clicking, and/or use of left, right, or intermediate pointing device controls. The different forms of selection typically generate different responses on display  12 , such as generating a menu having one or more properties of the selected element that may be chosen for more detailed display by operator  28 . The responses are pre-programmed into display software  32  by a system operator such as operator  28 .  
         [0051]     An embodiment of the present invention uses device  26  to implement the concept of “drag-and-drop,” the concept being applied herein by display software  32  to the images of selected elements. Functions that may be performed by drag-and-drop include, but are not limited to, copying the contents of one storage unit  46  to another storage unit  46 , moving the contents from one storage unit  46  to another storage unit  46 , and rebuilding or reconfiguring the contents of a storage unit  46 . Other functions that may be performed using device  26  on image  30  will be apparent to those skilled in the art, and all such functions are assumed to be included within the scope of the present invention.  
         [0052]      FIGS. 3A-3L  below show examples of information received from elements and combinations of elements of console  34 , as well as operations that may be performed on the elements, the information and the operations being considered to be properties of their respective element or combination of elements, and being transmitted via GUI  10 , according to embodiments of the present invention. It will be appreciated that  FIGS. 3A-3L  are schematic illustrations of changes/modifications that are overlaid on realistic image  30 , and that the overlaid changes/modifications do not significantly reduce the realism of the underlying image.  
         [0053]     In a diagram  60  in  FIG. 3A , computers  40 A,  40 B, and  40 C have transmitted information to control unit  11 . In image  40 AI the image “M” indicates that the management module of computer  40 A is operational. Images  40 BI and  40 CI indicate that each respective computer has detected a problem in one of the modules it is running. GUI  10  presents each problem using specific problem-detected symbols  62  and  63 . Symbol  62  indicates a problem has been detected in the management module of computer  40 B; symbol  63  indicates that a problem has been detected in the interface module of computer  40 C. Typically, a level of severity of the problem may be indicated by applying different colors to each problem-detected symbol, and/or by providing another type of visual indication such as configuring the symbol to blink and/or change form. Optionally, a name of a program having the problem, and/or other information relating to the problem, is displayed together with the symbol. Operator  28  may determine further information on the problem detected by using device  26  to interrogate a specific computer, for example by pointing to the symbol  62  displayed on image  40 BI. The operator may also activate or deactivate the computers by pointing/clicking on images  64  or  66  of power switches of computer images  40 BI and  40 CI, and may also activate other elements such as banks  50  or power supplies  52  by pointing/clicking on images of their power switches, exemplified by an image  67  of a switch for one of banks  50 .  
         [0054]     Image  50 AI is shaded, to represent that on display  12  the image of bank  50 A is colored. Typically, the color represents a state of bank  50 A. For example, image  50 AI may be colored red, while maintaining the underlying realism of the image of bank  50 A, to represent that the bank has failed.  
         [0055]     GUI  10  also indicates that power supply  52 C has informed unit  11  that it is being phased out of operation in console  34  by altering a color of the image  52 CI, the color change being represented by shading in  FIG. 3A . The operator  28  may determine further information on the problem by using device  26  to interrogate the power supply, for example by pointing to/clicking on image  52 CI.  
         [0056]     In  FIG. 3B  a diagram  65  shows that, on interrogating power supply  52 B by pointing to/clicking on image  52 BI, GUI  10  displays a message indicating the status of the power supply.  
         [0057]     In a diagram  70  in  FIG. 3C , at a time that computer  40 B appears to be functioning correctly, operator  28  interrogates the computer to determine the status of the interface module the computer is operating, using device  26  to select image  40 BI. In response GUI  10  displays a message  72  that the module is operating correctly. In a diagram  76  in  FIG. 3D , the “M” of image  40 AI indicates that the management module of computer  40 A is operational. Operator  28  interrogates computer  40 C to determine the status of its management module using image  40 CI, and in response GUI  10  displays a management program symbol  77  indicating that the management module of computer  40 C is available, as well as a message  78  that the status of the management module is OK.  
         [0058]     In a diagram  80  in  FIG. 3E , GUI  10  shows that computer  40 B has detected a problem in its management module, GUI  10  indicating the problem by overlaying a problem-indicating symbol  82  on the appropriate part of image  40 BI. Computer  40 C has detected a problem in the interface module it is running, GUI  10  overlaying problem-indicating image  84  on the appropriate part of image  40 CI. The “M” of image  40 AI indicates that the management module of computer  40 A is operational. The problem-indicating symbols are typically colored with different colors to indicate a level of severity of the detected problem. At the time that the problems are indicated, operator  28  selects image  40 CI to interrogate computer  40 C concerning its management module, and GUI  10  illustrates with a program symbol  86  and a message  88  that the status of the management module is OK.  
         [0059]      FIG. 3F  illustrates information received from disks  46 . In a diagram  90 , GUI  10  shows that a bank  50 A of disks that have failed are rebooting by surrounding a colored image  50 AI with a different colored border  92 , The different colors are shown in  FIG. 3F  as different shadings.  
         [0060]     In a diagram  100  in  FIG. 3G , GUI  10  indicates that bank  50 A has informed unit  11  of a problem by coloring image  50 AI. Operator  28  may interrogate each of the units in bank  50 A, by pointing to/clicking on its respective image in image  50 AI. By way of example, diagram  100  shows that on pointing to image  46 AI of storage unit  46 A, operator  28  receives a message  102  giving details of the unit and of the problem.  
         [0061]     In a diagram  110  in  FIG. 3H , GUI  10  shows that console  34  has been reconfigured from the configurations of  FIGS. 3A-3G . Console  34  now comprises three computers  40 A,  40 B, and  40 C, and six banks  50  of storage units, each bank consisting of five storage units  46 . Typically the reconfiguration is performed by operator  28  using device  26  to close down the other ten storage units in each bank, by clicking on their on/off switches. By way of example, a disk in the fourth bank of disks is illustrated as being interrogated by pointing to its image  46 BI, and a message  112  giving details of the disk displays on GUI  10 .  
         [0062]     In an embodiment of the present invention, control unit  11  presents metrics of the behavior of the elements comprised in console  34  on image  30 , the metrics being presented in a graphical and/or pictorial form and overlaid on the image.  FIGS. 3I and 3J  illustrate examples of such metrics. The metrics are typically derived by control unit  11  from information transmitted by the elements. For example, control unit  11  may request load data from each of storage units  46 , and may derive an average load for console  34 . Control unit  11  may then generate a comparison metric of the load on each storage unit, relative to the average, and unit  11  colors each of the images of units  46  according to their metric. Thus, unit  11  generates a visual map of the load balancing of units  46 . By way of example, load balancing as measured for each bank  50  of units  46  is illustrated in diagram  120  of  FIG. 3I .  
         [0063]     Similar visual maps, using visual features or cues other than color known in the art, may be generated to illustrate metrics of specific properties of console  34 . Such properties include free capacity and/or activity of the storage units, successful hits on the caches of the units, level of installed redundancy of the units, and other properties that will be apparent to those skilled in the art. In  FIG. 3J  a diagram  130  illustrates a visual map of the free capacity of each of the storage units  46  in a bank  132  by overlaying and fitting a histogram to the images of the storage units. In an embodiment of the present invention, the image of each storage unit comprises an image of a LED, and flashing of the LED image is used as a cue to indicate activity of the storage unit: the faster the flashing, the higher the rate of activity of the unit.  
         [0064]     As described above, device  26  may be used to perform drag-and-drop operations between elements of console  34 . Such a drag-and-drop operation is illustrated in  FIG. 3K , which shows copying of data from a first storage unit  46  to a second storage unit  46 , by selecting the first storage unit, and transferring an image of the unit along a path  142  to the second unit.  
         [0065]     In  FIG. 3L  a diagram  150  illustrates how a user of GUI  10  may perform a drag-and-drop operation between elements of different sub-systems  22 . The user, such as operator  28 , generates image  30  of console  34  on a part  154  of display  12 , and an image  152  of another sub-system  22  on another part  156  of the display. The other sub-system  22  and console  34  are typically configured differently. The user may then use the drag-and-drop operation to copy data from a storage unit of console  34  to a storage unit of the other sub-system.  
         [0066]     It will be appreciated that the embodiments described above are cited by way of example, and that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope of the present invention includes both combinations and sub-combinations of the various features described hereinabove, as well as variations and modifications thereof which would occur to persons skilled in the art upon reading the foregoing description and which are not disclosed in the prior art.