Abstract:
A computer readable medium includes executable instructions for visually representing a status of a plurality of storage device slots and a plurality of attached storage devices by, and a method for visually representing a status of a plurality of storage device slots and a plurality of attached storage devices includes, assigning a logical name to a storage device slot based on an enumeration rule; detecting a storage device attached to a computer system; storing a correlation between a physical location of the storage device slot and the assigned logical name; monitoring an availability and an operating status of the plurality of storage device slots and the plurality of attached storage devices; and generating a what-you-see-is-what-you-get (WYSIWYG) representation of the plurality of storage device slots and the plurality of attached storage devices, wherein the WYSIWYG representation includes physical location information, operating status information, and logical names for the plurality of storage device slots and the plurality of attached storage devices. A storage device location program includes an operating system configured to assign a logical name to a storage device attached to a computer system; a mapping software configured to correlate the logical name to a physical device name of the storage device attached to the computer system; a status detecting program configured to update an operating status of the storage device; and a display program configured to generate a what-you-see-is-what-you-get (WYSIWYG) representation of a physical location of the storage device attached to the computer system.

Description:
BACKGROUND 
       [0001]    Storage devices in a computer system are typically enumerated in certain logical orders based on device probing sequences for the computer system, BIOS, and operating systems. Logical device names are assigned to the storage devices to allow the system software and a variety of applications to access the storage devices. 
         [0002]    A logical name for a storage device is assigned at the time of the addition of the storage device to the computer system based on enumeration by probing sequences for the computer system. In most cases, the assignment of logical names to storage devices is contingent upon the timing and the order of device additions. As the number of storage devices attached to the computer system grows, it becomes increasingly difficult to correlate physical locations of the storage devices with dynamically assigned logical names. 
         [0003]    Traditionally, the correlation between the logical device names and the physical locations is determined by analyzing and parsing cryptic log files. In one example, an end-user who notices a storage device failure needs to parse error messages contained in the log files to determine the actual location of the failing storage device. With a large number of storage devices attached to the computer system, it is difficult and error-prone to track the status and location of all storage devices by parsing such log files. 
         [0004]    End-users will appreciate features which enable them to physically locate the storage devices using a simple command. As the logical names assigned by the computer system do not give any clue to the actual location of the storage devices, a topological location view of the physically mapped storage devices will be highly useful if the end-users need to add, remove, or swap a particular storage device in the computer system. 
       SUMMARY 
       [0005]    In accordance with one or more embodiments, a computer readable medium comprises executable instructions for visually representing a status of a plurality of storage device slots and a plurality of attached storage devices by assigning a logical name to a storage device slot based on an enumeration rule; detecting a storage device attached to a computer system; storing a correlation between a physical location of the storage device slot and the assigned logical name; monitoring an availability and an operating status of the plurality of storage device slots and the plurality of attached storage devices; and generating a what-you-see-is-what-you-get (WYSIWYG) representation of the plurality of storage device slots and the plurality of attached storage devices, wherein the WYSIWYG representation includes physical location information, operating status information, and logical names for the plurality of storage device slots and the plurality of attached storage devices. 
         [0006]    In accordance with one or more embodiments, a storage device location program comprises an operating system configured to assign a logical name to a storage device attached to a computer system; a mapping software configured to correlate the logical name to a physical device name of the storage device attached to the computer system; a status detecting program configured to update an operating status of the storage device; and a display program configured to generate a what-you-see-is-what-you-get (WYSIWYG) representation of a physical location of the storage device attached to the computer system. 
         [0007]    In accordance with one or more embodiments, a method for visually representing a status of a plurality of storage device slots and a plurality of attached storage devices, comprises assigning a logical name to a storage device slot based on an enumeration rule; detecting a storage device attached to a computer system; storing a correlation between a physical location of the storage device and the assigned logical name; monitoring an availability and an operating status of the plurality of storage device slots and the plurality of attached storage devices; and generating a what-you-see-is-what-you-get (WYSIWYG) representation of the plurality of storage device slots and the plurality of attached storage devices, wherein the WYSIWYG representation includes physical location information, operating status information, and logical names for the plurality of storage device slots and the plurality of attached storage devices. 
     
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0008]      FIG. 1  shows a plurality of storage device controllers connected to a computer system in accordance with an embodiment of the invention. 
           [0009]      FIG. 2  shows a plurality of storage devices connected to a storage device controller in accordance with an embodiment of the invention. 
           [0010]      FIG. 3  shows a visual representation of an arrangement of storage devices with dynamically assigned logical names for a plurality of storage device controllers and a plurality of storage devices using an enumeration rule in accordance with an embodiment of the invention. 
           [0011]      FIG. 4  shows a flowchart for producing a visual representation of attached storage devices to a computer system in accordance with an embodiment of the invention. 
           [0012]      FIG. 5  shows a flowchart for correlating physical names of storage device controllers and logical names assigned by an operating system. 
           [0013]      FIG. 6  shows a flowchart for correlating physical names of storage device slots to logical names assigned by an operating system and updating status of each attached storage device. 
           [0014]      FIG. 7  shows a screenshot of a visual representation of attached storage device on a computer using a mapping software in accordance with an embodiment of the invention. 
           [0015]      FIG. 8  shows a computer system in accordance with an embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0016]    Specific embodiments of the invention will now be described in detail with reference to the accompanying figures. Like elements in the various figures are denoted by like reference numerals for consistency. 
         [0017]    In the following detailed description of embodiments of the invention, numerous specific details are set forth in order to provide a more thorough understanding of the invention. However, it will be apparent to one of ordinary skill in the art that the invention may be practiced without these specific details. In other instances, well-known features have not been described in detail to avoid unnecessarily complicating the description. 
         [0018]    In general, embodiments of the invention relate to a method and apparatus for creating a what-you-see-is-what-you-get (WYSIWYG) representation of a plurality of storage device slots attached to a plurality of storage device controllers. 
         [0019]    In one or more embodiments of the invention, a WYSIWYG representation depicts a physical configuration of a plurality of storage devices attached to a plurality of storage device controllers. The WYSIWYG representation correlates physical names of a plurality of storage devices to its logical name counterparts assigned by an operating system. 
         [0020]    In one or more embodiments of the invention, a WYSIWYG representation of a plurality of storage device slots attached to a plurality of storage device controllers include accessibility information for each storage device slot and functional status information for each attached storage device. 
         [0021]      FIG. 1  shows a portion of a computer system  102  operatively connected to a multi-controller storage device system  116 . In one or more embodiments of the invention, the multi-controller storage device system  116  include six individual storage device controllers  104 ,  106 ,  108 ,  110 ,  112 , and  114 . The individual storage device controllers are operatively connected to the multi-controller storage device system  116  via a hardware bus such as the PCI bus. In one or more embodiments of the invention, the portion of a computer system  102  includes a central processing unit  118 . The central processing unit  118  requests and receives data from a plurality of storage devices connected to each individual storage device controller. 
         [0022]    In one or more embodiments of the invention, an operating system of the computer system assigns logical controller names c 3 , c 2 , c 5 , c 4 , c 1 , and c 0  to storage device controllers  104 ,  106 ,  108 ,  110 ,  112 , and  114  based on a controller logical name enumeration rule related to a controller probing sequence. Each storage device controller also has its own physical names PN 0 , PN 1 , PN 2 , PN 3 , PN 4 , and PN 5 . A logical to physical topology mapping software correlates the assigned logical controller names to physical names for the storage device controllers and stores the correlation in a data structure. 
         [0023]      FIG. 2  shows an individual storage device controller  104  comprising a plurality of storage device slots  220 ,  222 ,  224 ,  226 ,  228 ,  230 ,  232 , and  234 . In one or more embodiments of the invention, the individual storage device controller  104  contains eight storage device slots. Storage device slots  220 ,  222 ,  226 ,  230 , and  234  are operatively connected to storage devices  204 ,  206 ,  210 ,  214 , and  218 . Some storage slots  224 ,  228 , and  232  are not connected to any storage devices and remain empty. Each storage device slot has a designated physical name which is mapped to a logical name assigned by an operating system. The operating system assigns logical names to both connected and empty slots. 
         [0024]    In one or more embodiments of the invention, the logical names for storage device slots are determined by a specific enumeration rule defined by the operating system based on a device probing sequence. For example, the operating system can assign logical names sequentially from a bottom-left storage device slot to a top-left storage device slot, and continue logical name assignment sequentially from a bottom-right storage device slot to a top-right storage device slot, as shown in  FIG. 2  (t 0 -t 7 ). On the other hand, physical names for the storage device slots are defined by a hardware configuration. 
         [0025]    In one or more embodiments of the invention, a logical to physical topological location mapping software searches device path for each storage device slot from the operating system to the physical device level and stores correlations of the physical names for the storage device slots and the logical names assigned by the operating system in a data structure. 
         [0026]      FIG. 3  shows a WYSIWYG representation of logical to physical name topology for a multi-controller storage device system. In one or more embodiments of the invention, the multi-controller storage device system includes six storage device controllers  304 ,  306 ,  308 ,  310 ,  312 , and  314  and each storage device controller contains eight storage device slots. For example, a first storage device controller  304  has a physical name (i.e. Controller  1 ) and an assigned logical name (i.e. Logical Name A). Physical names for each storage device slot is defined by a hardware configuration. 
         [0027]    In one or more embodiments of the invention, the physical names for the storage device slots are defined sequentially from a bottom-left storage device slot to a bottom-right storage device slot (i.e. P 0 -P 11 ). The physical naming convention for storage device slots continue in upper sections from left to right (e.g. P 12 -P 23 , P 24 -P 35 , P 36 -P 47 ). The physical names are defined sequentially, across different storage device controllers. 
         [0028]    Continuing with the discussion of  FIG. 3 , logical names for storage device slots are assigned by an operating system which defines an enumeration rule based on a device probing sequence for a particular storage device controller. In one or more embodiments of the invention, the enumeration rule assigns logical names sequentially to storage device slots for a storage device controller, sweeping upwards from a bottom-left storage device slot to a top-left storage device slot (e.g. D 11 -D 14 ) and then continuing from a bottom-right storage device slot to a top-right storage device slot (e.g. D 15 -D 18 ). A first digit after letter “D” identifies a storage device controller and a second digit after “D” identifies a particular storage device slot. The operating system applies the same enumeration rule for storage device slots on other storage device controllers (e.g. D 21 -D 28 , D 31 -D 38 , D 41 - 48 , D 51 - 58 , D 61 - 68 ). The correlation among logical and physical names for storage device slots and logical and physical names for storage device controllers is stored in a logical to physical topological location mapping software as one or more data structures. 
         [0029]      FIG. 4  shows a flowchart for logical to physical topological location mapping in accordance with one or more embodiments of the invention. In STEP  402 , an operating system assigns logical names to storage device slots based on an enumeration rule defined by a device probing sequence. In one or more embodiments of the invention, the logical names use a numerical sequence per storage device controller. For example, the order of logical name assignment begins from a bottom storage device slot and ends at a top-left storage device slot. The order of logical names is different from the order of physical names, which can be sequentially defined by a hardware configuration across a plurality of storage device controllers. 
         [0030]    In STEP  404 , a mapping software searches device paths between storage device slots and the operating system to correlate physical names to assigned logical names. Device path information can be obtained based on information from a hardware bus, BIOS, and the operating system. In STEP  406 , the mapping software stores the correlation between the physical names and the assigned logical names in one or more data structure. Because the physical names are defined by a hardware configuration, the mapping software can accurately represent physical locations of the storage device slots in a WYSIWYG display of the multi-controller storage device system. 
         [0031]    Continuing with the discussion of  FIG. 4 , in STEP  408 , the operating system detects storage devices attached to storage device slots. In one or more embodiments of the invention, a newly attached device sends a signal to a central processing unit, informing the operating system that the newly attached device is connected to a storage device slot. In STEP  410 , the mapping software keeps track of an accessibility of each storage device slot and an operating status of attached storage devices. In one or more embodiments of the invention, the mapping software routinely checks accessibility of the storage device slots and updates operating information of attached storage devices in its data structures. 
         [0032]    In STEP  412 , the mapping software generates a WYSIWYG representation of the storage devices attached to the storage device slots and includes information regarding the accessibility of storage device slots and the operating status of the attached storage devices. In one or more embodiments of the invention, a user command triggers the mapping software to check storage device slots connected to a plurality of storage device controllers, gathers information on the operating status of the attached storage devices, stores the gathered information in one or more data structures in the mapping software, and generates the WYSIWYG representation of the multi-controller storage device system. In another embodiment of the invention, a routine check to the storage device slots and the attached storage devices gathers information on the operating status of the attached storage devices, stores the gathered information in one or more data structures of the mapping software, and generates the WYSIWYG representation of the multi-controller storage device system. 
         [0033]      FIG. 5  shows a flowchart for correlating logical names to physical names for storage device controllers. In STEP  502 , a physical sort order is determined for a plurality of storage device controllers. In STEP  504 , a logical to physical topological location mapping software searches a device path of each storage device controller from a hardware bus (e.g. PCI bus) to an operating system according to the physical device sort order. In STEP  506 , the logical to physical topological location mapping software correlates the physical names of all storage device controllers to logical names assigned by the operating system. In one or more embodiments of the invention, the operating system dynamically assigns a logical name to a storage device controller if at least one storage device is attached to the storage device controller. 
         [0034]      FIG. 6  shows a flowchart for gathering accessibility and operating information from a multi-controller storage device system for a WYSIWYG representation in accordance with the invention. In STEP  604 , a logical to physical topological location mapping software inquires the current status of the multi-controller storage device system. In one or more embodiments of the invention, the inquiry to the multi-controller storage device system is a user command. In another embodiment of the invention, the inquiry is a routine polling. In STEP  606 , the mapping software checks whether the storage device slot occupied by a storage device. If the storage device slot is occupied by a storage device, then the mapping software checks whether the storage device is accessible, as shown in STEP  608 . Then, in STEP  610 , the mapping software obtains a functional status of the storage device operatively connected to the storage device slot. In STEP  614 , the obtained functional status of the storage device is stored in the mapping software. In one or more embodiments of the invention, the functional status of the storage device is stored in one or more data structures for the mapping software. 
         [0035]    Continuing with the discussion of  FIG. 6 , if the storage device slot is not occupied by a storage device, as shown in STEP  606 , or if the storage device is not accessible, as shown in STEP  608 , then the mapping software marks the storage device slot as inaccessible. 
         [0036]      FIG. 7  is a screenshot  702  of an embodiment of the invention, displaying a WYSIWYG configuration of a multi-controller storage device system. The front side  706  from the screenshot  702  reflects a physical front side of the multi-controller storage device system. Similarly, the rear side  704  from the screenshot  702  also reflects a physical rear side of the multi-controller storage device system. In this particular embodiment, each controller has eight slots and occupies two columns within the multi-controller storage device system (e.g. c 6 t 0 -c 6 t 7 , c 5 t 0 -c 5 t 7 , c 8 t 0 -c 8 t 7 , c 7 t 0 -c 7 t 7 , c 1 t 0 -c 1 t 7 , c 0 t 0 -c 0 t 7 ). Several symbols indicate the status of storage device slots. For example, an up arrow “̂” indicates that a status is for a device pointed by the arrow. A double-plus “++” indicates that a device pointed by the arrow is present and accessible. A double-minus “−−” indicates that a device pointed by the arrow is not accessible, absent, empty, or down. A “b” character indicates that a storage device attached to a storage device slot is bootable if there is an operating system installed on the drive. 
         [0037]    In one or more embodiments of the invention, the WYSIWYG configuration of a multi-controller storage device system is color-coded. The color codes can be used to distinguish which storage devices are enumerated, which storage device slots are empty (i.e. as opposed to containing inaccessible storage devices), and etc. 
         [0038]    In addition, in one or more embodiments of the invention, the mapping software generates a list of attached storage devices. For each storage device, the list can contain a logical name for each device, a serial number, a vendor name, a model name, a revision code, and temperature information. Further, the mapping software can also generate a summary information displaying the number of storage devices by vendor and model. 
         [0039]    The invention may be implemented on virtually any type of computer regardless of the platform being used. For example, as shown in  FIG. 8 , a computer system  800  includes a processor  802 , associated memory  804 , a storage device  806 , and numerous other elements and functionalities typical of today&#39;s computers (not shown). The computer system  800  may also include input means, such as a keyboard  808  and a mouse  810 , and output means, such as a monitor  812 . The computer system  800  is connected to a local area network (LAN) or a wide area network (e.g., the Internet) (not shown) via a network interface connection (not shown). Those skilled in the art will appreciate that these input and output means may take other forms. 
         [0040]    Further, those skilled in the art will appreciate that one or more elements of the aforementioned computer system  800  may be located at a remote location and connected to the other elements over a network. Further, the invention may be implemented on a distributed system having a plurality of nodes, where each portion of the invention may be located on a different node within the distributed system. In one embodiment of the invention, the node corresponds to a computer system. Alternatively, the node may correspond to a processor with associated physical memory. The node may alternatively correspond to a processor with shared memory and/or resources. Further, software instructions to perform embodiments of the invention may be stored on a computer readable medium such as a compact disc (CD), a diskette, a tape, a file, or any other computer readable storage device. 
         [0041]    While the invention has been described with respect to a limited number of embodiments, those skilled in the art, having benefit of this disclosure, will appreciate that other embodiments can be devised which do not depart from the scope of the invention as disclosed herein. Accordingly, the scope of the invention should be limited only by the attached claims.