1. Field of the Invention
The present invention generally relates to storage systems and more particularly to systems using storage virtualization technology.
2. Description of the Related Art
A variety of storage virtualization technologies allow user to create and use virtual storage devices. A virtual storage device appears to the user just like a physical storage unit. One of the advantages of the virtualization is the ability to create storage devices of any desired size or having a desired partitioning structure. For instance, multiple storage consolidation technology, well known to persons of skill in the art, enables one to create a single storage pool of a very large size. On the other hand, the logical partitioning technology enables users to have multiple small virtual storage devices allocated within a single physical device.
However, because of the complexity involved in the management of the storage area network (SAN), storage administrators usually require some topology managing tool to visualize the complex hierarchy of various devices within the storage system. Such devices may include, without limitation, storage arrays, SAN switches, and various host systems. However, the currently available tools are only able to show the physical connectivity of the devices. Therefore, the currently available tools are not able to handle the complexity associated with the virtualization storage environment.
It should be noted that storage system administrators desire to view or operate virtual storage devices virtually in a specific perspective, in other words, the consolidated storage should be shown as single element instead of multiple elements, while the partitioned storage should be shown as individual elements instead of a single element. Moreover, the properties of each element of the storage system topology must also be shown individually. On the other hand, it is also desirable to enable the storage system administrators to view the actual physical elements which correspond to the virtual element in the other specific perspective. Further, it may be desirable to additionally display physical conditions such as performance of individual storage disks. Furthermore, the various views of the storage system topology should be easily switchable between one another at any portion of the storage environment that the user may focus on.
Therefore, it would be desirable to provide a solution enabling the storage administrators to recognize and manage both virtual and physical aspects of the storage system hierarchy by incorporating the necessary functionality into the appropriate virtual topology management tools.
The inventive methodology is directed to methods and systems that substantially obviate one or more of the above and other problems associated with conventional techniques for data replication.
In accordance with one aspect of the invention, there is provided a computerized data storage system and an associated method and computer programming product. The inventive system includes at least one physical storage device with a storage controller and least one storage disk. The physical storage device(s) is apportioned into at least one logical partition. The inventive system additionally includes a client host executing client software; and a storage management server executing a virtual storage manager. The storage management server includes a central processing unit, a memory and a network interface connecting the storage management server to the storage device and the client host via a network. The virtual storage topology module obtains information about the physical topology associated with the storage system. The aforesaid physical topology includes information on the physical storage device(s). The virtual storage topology module also obtains information on the virtual topology associated with the storage system. The virtual topology includes information on the logical partition(s) within the storage system. The virtual storage topology module further causes a first portion of the physical topology information and a second portion of the virtual topology information top be displayed within the same topology view.
In accordance with another aspect of the invention, there is provided a method and a computer programming product for visualizing a topology associated with a computerized data storage system. The storage system includes at least one physical storage device. In accordance with the inventive method, information about the physical topology associated with the storage system is obtained. The physical topology includes information on the physical storage device(s). The inventive method further includes obtaining information on the virtual topology associated with the storage system. The aforesaid virtual topology includes information on logical partitions within the storage system. The inventive method further involves displaying a first portion of the physical topology information and a second portion of the virtual topology information to a user within the same topology view.
Additional aspects related to the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. Aspects of the invention may be realized and attained by means of the elements and combinations of various elements and aspects particularly pointed out in the following detailed description and the appended claims.
It is to be understood that both the foregoing and the following descriptions are exemplary and explanatory only and are not intended to limit the claimed invention or application thereof in any manner whatsoever.
The accompanying drawings, which are incorporated in and constitute a part of this specification exemplify the embodiments of the present invention and, together with the description, serve to explain and illustrate principles of the inventive technique. Specifically:
In the following detailed description, reference will be made to the accompanying drawing(s), in which identical functional elements are designated with like numerals. The aforementioned accompanying drawings show by way of illustration, and not by way of limitation, specific embodiments and implementations consistent with principles of the present invention. These implementations are described in sufficient detail to enable those skilled in the art to practice the invention and it is to be understood that other implementations may be utilized and that structural changes and/or substitutions of various elements may be made without departing from the scope and spirit of present invention. The following detailed description is, therefore, not to be construed in a limited sense. Additionally, the various embodiments of the invention as described may be implemented in the form of a software running on a general purpose computer, in the form of a specialized hardware, or combination of software and hardware.
1. Hardware Architecture (
1) Overall System
The overall system configuration of the first embodiment of the inventive system shown in
2) Storage Device (100)
The storage device 100 includes a Controller 101, which is operatively coupled to a set of storage Disks 105. Additionally, a Cache Memory 102, Port 103, and Network Interface Card (NIC) 104 may be incorporated within the Controller 101. The Disks 105 may be connected to the Controller 101 by means of a storage system interconnect. The storage device 100 provides storage capacity for storing data and, in addition, may be configured to enable virtual partitioning of the storage Disks 105 into a small set of virtual devices available to the users and having a suitable degree of granularity.
3) Host (110)
The host 110 may be implemented based on a generic computer platform, which may include a CPU 111, Memory 112 as well as a Host Bus Adapter (HBA) arranged to connect the host 110 to the SAN 120. Additionally, the Host 110 may include a network interface card (NIC) 114, configured to enable the connection of the host 110 to the local area network (LAN) 140. The Host 110 is configured to enable the users of the inventive system to visualize and manage the topology of storage environment including virtualized storage devices.
4) Storage Device Management Server (130)
The storage management server 130 may be implemented using a generic computer or server platform, which may include a CPU 131, Memory 132, and NIC 133. The server 130 may incorporate a functionality enabling a user to manage the storage environment using the inventive virtualization feature.
2. Logical Element Structure (
1) Elements on the Storage Device (100)
Logical Partitions 200, 210 and 220 are created by virtually partitioning the storage device 100. These partitions may be created to have any appropriate size, as requested by the users. In one embodiment of the invention, the size of the logical partitions 200, 210 and 220 is substantially small. Each of the logical partitions 200, 210 and 220 incorporates one of the Storage Volumes 201, 211 and 221, respectively, which provides data storage capability for the respective partition. Additionally, each Logical Partition 200, 210 and 220 is assigned one of Cache Memory units 202, 212 and 222 and one of Ports 203, 213 and 223. The Storage Volumes 201, 211 and 221 and Cache Memory units 202, 212 and 222 are allocated from the storage Disk 105 as well as Cache Memory 102 of the Storage Device 100. In one implementation of the inventive system, each of the Logical Partitions 200, 210 and 220 is allocated for a particular user. For security, the user's Logical Partition is not accessible to all other users. However, the system storage administrator has privileges to access and manage the partitioning of the storage resources of the inventive system.
The aforesaid Storage Volumes 201, 211 and 221 are allocated from the combined storage resources of physical Disks 105 and are accessible to a particular Host 110, associated with the respective volume, and the corresponding User through the SAN 120. This enables the Host 110 to use the Storage Volumes 201, 211 and 221 to perform various data storage and retrieval operations.
The Cache Memory units 202, 212 and 222 are memory devices used by the inventive storage system to perform caching operation of the data which is being written or read from (to) the respective Storage Volume(s) during the storage access operation. Each of the Cache Memory units 202, 212 and 222 is allocated for each Logical Partition 200, 210 and 220 from the physical Cache Memory 102. The Cache Memory units 202, 212 and 222 may be made of any desired size.
The Ports 203, 213 and 223 are the access points of each Logical Partition. Each of the aforesaid Ports 203, 213 and 223 is connected to the particular Host 110 through the SAN 120.
2) Logical Elements of the Host (110)
The Host 110 executes client software applications 231, 241 and 251. The Client applications 231, 241 and 251 are configured to request a topology view of the storage system from the Virtualized Storage Manager. Users 232, 242 and 252 use the respective Hosts 110 to monitor and manage the operation of the Client Software 231, 241 and 251. Specifically, the software may be monitored and managed using one of Web browsers, well known to persons of skill in the art, which may execute on the Hosts 110.
3) Elements on the Storage Device Management Server (130)
The Storage Device Management Server 130 incorporates Virtualized Storage Manager 260, Physical Topology Table 261, Logical Partition Table 262 and Drawing Topology Table 263. The Virtualized Storage Manager 260 is an application operable to create a storage topology view of the target storage system. Specifically, the Virtualized Storage Manager 260 may generate graphical storage system topology representations, which may include elements of both virtual and physical topology structures.
The Physical Topology Table 261 stores information about the physical connectivity of the actual physical devices within the storage system, such as the storage Disks 105. On the other hand, the Logical Partition Table 262 holds information about the Logical Partition configuration within the Storage Device. The Drawing Topology Table 263 contains information on the storage topology to be drawn on the user's screen, which includes both virtual portions and physical portions. The virtual and physical portions are combined within the same graphical representation of the storage system topology view. The Drawing Topology Table is dynamically created by the Virtualized Storage Manager 260 in response to a request for topology information received from the Client Software.
3. Data Structure (
1) Physical Topology Table (
Finally, the Mode column 540 indicates whether any specific Array element is presently shown in a virtual representation or a physical representation. For instance, row 591 represents a record of a storage topology element corresponding to a User and having an Element identification value of ‘100’. The type of the element (‘User’) is indicated in the column 520 of the table. The topology element represented by the row 591 is connected to an element with the Element identification value of ‘200’. The latter element ‘200’ is represented in the table by row 593. The type the element ‘200’ is Array, as indicated by the value in the Type column 520. It should be noted that the element ‘200’ is not connected to any specific device. However, other elements of the topology are connected to it, as indicated in the table. Finally, it should be noted that the value of ‘Virtual’ in the Mode column 540 of the element ‘200’ indicates that the element is presently being displayed to the user of the inventive system in the virtual representation mode. The Physical Topology Table is managed by the Virtualized Storage Manager to store information on the physical topology configuration of various devices of the inventive storage system as well as the manner in which storage arrays are represented in a storage system topology view at any give time.
2) Logical Partition Table (
The Icon column 640 identifies a Bitmap, which is utilized to represent the logical partition in the storage system topology view. The aforesaid bitmap may be specially drawn to represent the specific Logical Partition. The value in the Storage Volume column 650 contains Storage Volume identification information, specifying a Storage Volume, which is associated with the specific Logical Partition. The value in the Cache Memory 660 column identifies Cache Memory resource, which is allocated to the specific Logical Partition. Finally, the value in the Port column 670 identifies a Port which has been allocated to the Partition.
For instance, row 691 of the table shown in
On the other hand, a partition represented by row 692 of the aforesaid table is provided with a specific Icon image ‘MyDevice.jpg’, as evidenced by the value in the column 640. Therefore, that bitmap would be used when drawing this Logical Partition on the storage system topology view. The Logical Partition Table shown in
3) Drawing Topology Table (
For instance, row 791 of the table shown in
4. User Interface (
1) Physical Storage View (
A Screen 1000 shown in
On the other hand, lines drawn between the User icons 1001b, 1001c and 1001d and the physical device 1002a show that the device 1002b is shared by the aforesaid Users 1001b, 1001c and 1001d. A user may focus on a specific Array or other topology element by clicking on the corresponding icon with a mouse button. When the element of the topology is focused on, the corresponding icon is displayed using different color palette, as shown by numeral 1004 in
2) Virtualized Storage View (
Each logical partition shown in
5. Process Flow (
1) Creating Drawing Topology Table (
Now, specific steps of the aforesaid operating sequences will be described in detail. First, at step 1510, all old records are cleared from the Drawing Topology Table. At step 1520, the inventive system selects all records from the Physical Topology Table shown in
At Step 1530, the inventive system determines whether the value of the “Mode” variable 540 of the selected record is “Physical.” If so, the inventive process proceeds to step 1540. Otherwise, if the value of the aforesaid variable is “Virtual”, the process continues with the step 1550.
At step 1540, the inventive system inserts a new record representing a physical array into the Drawing Topology Table. The inserted record has the same values of the “Element”, “Type” and “Target” variables as the corresponding record which was obtained at step 1520. The “Icon” variable value of the inserted record will be set to “null”.
At step 1550, the inventive system selects all records from the Logical Partition Table shown in
At step 1560, the inventive system picks the next record from the set of records generated as the result of the step 1550. The aforesaid step 1560, together with the step 1570, which processes the selected record, are repeated in a loop, until all such records are processed. When no more unprocessed records for the Logical Partition remain, the inventive process proceeds back to the step 1520.
At the processing step 1570, a new record representing the Logical Partition (the same as Virtual Storage) is inserted into the Drawing Topology Table.
The “Element” variable of the newly inserted record is set to the value of the “Logical Partition” variable of the record obtained at step 1560. Further, the value of the “Type” variable of the inserted record is set to “V-Array”, the value of the “Target” variable is set to “null” and the “Icon” variable is set to have the value of the “Icon” variable of the record obtained at step 1560.
At step 1610 of the process flow shown in
At step 1620, the inventive system obtains the value of the “Target” variable of the “User”-type record selected at step 1610 and finds an “Array”-type record from the Physical Topology Table having the “Element” variable matching the obtained value. The found Array record corresponds to the Array storage element, which includes the Logical Partition exclusively allocated to the specific User.
At step 1630, the system determines whether the value of the “Mode” variable of the Array-type record found at step 1620 is “Physical.” If so, the process proceeds to step 1640. Otherwise, if the corresponding variable value is “Virtual,” the process proceeds to step 1650.
At step 1640, the system inserts a new record representing the User into the Drawing Topology Table. The newly inserted record has the same values of “Element”, “Type” and “Target” variables as the record, which was obtained at step 1610. By default, the value of the “Icon” variable of the inserted record will be set to “null”.
At step 1650, the system selects a record from the Logical Partition Table shown in
At step 1660, the inventive system inserts a new record into the Drawing Topology Table representing the User connected to a specific Logical Partition (Virtual Storage). The value of the “Element” variable of the inserted record is equal to the value of the “Element” variable of the record obtained at step 1610. The value of the “Type” variable is set to “User”, while the “Target” variable is set to have the value of the “Logical Partition” variable of the record obtained at step 1650. Finally, by default, the value of the “Icon” variable is set to “null”. Thus, the inserted record carries the information on the link between the User and the corresponding Logical Partition.
2) Drawing Topology (
At step 1710, the system selects a record from the Drawing Topology Table. The selected record corresponds to a storage topology element. If icons corresponding to all storage topology elements have been already drawn, and no more unprocessed records remain in the Drawing Topology Table, the process proceeds to the step 1770.
At step 1720, the system obtains an icon bitmap of the element. If the specified icon bitmap is found, the process proceeds with step 1740. Otherwise, the process proceeds to step 1730. At step 1730, a default bitmap icon corresponding to the specific type of the Drawing Topology Table record is placed in a proper layer area of the system's user interface.
At step 1740, the found bitmap icon, which was specified in the Drawing Topology Table record, is likewise placed within the proper layer area the inventive system's user interface.
At step 1750, the system checks the value of the “Type” variable of the record. If the “Type” value is ‘V-Array’ (which corresponds Logical Partition), the process proceeds to step 1760. Otherwise, the operation flow goes back to step 1710.
At step 1760, the system draws a special symbol bitmap, which indicates the drawn topology element is a Virtual Storage element. At step 1770, the inventive system selects a new record of a topology element from the beginning of the Drawing Topology Table. If there are no more unprocessed record remain in the Drawing Topology Table, the process is terminated.
At step 1780, the system checks the value of the “Target” variable of the record. If its value is ‘null’, then the process proceeds back to the step 1770. At step 1790, the system draws a linkage line connecting the icon image of the “Element” with the “Target”. This line represents the correspondence between a User and the physical or virtual storage device.
3) Switching Display of a Storage Device Portion within the Topology (
It should be noted that the element identification information, which corresponds to the element selected on the screen is obtained when the process illustrated in
At step 1820, the value of the “Type” variable of that record is checked and if it is ‘V-Array’ then the process proceeds to step 1830. If not, the process proceeds to step 1850. At step 1830, a record is selected from the Logical Partition Table, which has its “Logical Partition” value match the value of the “Element” variable of the record, which was obtained in step 1810.
At step 1840, the system obtains the value of the “Storage Device” variable (which corresponds to the identification of the physical device) of the record obtained in step 1830. At step 1850, the value of the “Element” variable is obtained (this is also identification of the physical device) of the record, which was obtained in step 1810. At step 1860, a record is selected from the Physical Topology Table, where the value of its “Element” variable matches the value obtained in step 1840 or 1850 (which is the identification of physical device).
At step 1870, the value of the “Mode” variable of the record is switched from ‘Virtual’ or ‘Physical’ or vice versa. This causes the change of the topology display mode when the topology is redrawn. At step 1880, the system recreates the Drawing Topology Table according with new status of Physical Topology Table. This process is already shown in
Finally, it should be understood that processes and techniques described herein are not inherently related to any particular apparatus and may be implemented by any suitable combination of components. Further, various types of general purpose devices may be used in accordance with the teachings described herein. It may also prove advantageous to construct specialized apparatus to perform the method steps described herein. The present invention has been described in relation to particular examples, which are intended in all respects to be illustrative rather than restrictive. Those skilled in the art will appreciate that many different combinations of hardware, software, and firmware will be suitable for practicing the present invention. For example, the described software may be implemented in a wide variety of programming or scripting languages, such as Assembler, C/C++, perl, shell, PHP, Java, etc.
Moreover, other implementations of the invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. Various aspects and/or components of the described embodiments may be used singly or in any combination in the computerized storage system with data replication functionality. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the invention being indicated by the following claims.