News Column

Patent Issued for Methods and Structure for Implementing Logical Device Consistency in a Clustered Storage System

June 24, 2014



By a News Reporter-Staff News Editor at Information Technology Newsweekly -- From Alexandria, Virginia, VerticalNews journalists report that a patent by the inventors Velayudhan, Vinu (Fremont, CA); Rizzo, James A. (Austin, TX); Weiner, Adam (Henderson, NV); Chandra, Rakesh (Santa Clara, CA); Huang, Guolin (Sunnyvale, CA), filed on March 28, 2012, was published online on June 10, 2014.

The patent's assignee for patent number 8751741 is LSI Corporation (Milpitas, CA).

News editors obtained the following quote from the background information supplied by the inventors: "The invention relates generally to management of logical volumes in a storage system.

"This patent application is related to the following commonly owned United States Patent Applications, all filed on the same date herewith and all of which are herein incorporated by reference:

"U.S. patent application Ser. No. 11-1500, entitled METHODS AND STRUCTURE FOR TASK MANAGEMENT IN STORAGE CONTROLLERS OF A CLUSTERED STORAGE SYSTEM;

"U.S. patent application Ser. No. 11-1409, entitled METHODS AND STRUCTURE FOR DIRECT PASS THROUGH OF SHIPPED REQUESTS IN FAST PATH CIRCUITS OF A STORAGE CONTROLLER IN A CLUSTERED STORAGE SYSTEM;

"U.S. patent application Ser. No. 11-1484, entitled METHODS AND STRUCTURE FOR TRANSFERRING OWNERSHIP OF A LOGICAL VOLUME BY TRANSFER OF NATIVE-FORMAT METADATA IN A CLUSTERED STORAGE ENVIRONMENT;

"U.S. patent application Ser. No. 11-1502, entitled METHODS AND STRUCTURE FOR IMPROVED I/O SHIPPING IN A CLUSTERED STORAGE SYSTEM;

"U.S. patent application Ser. No. 11-1504, entitled METHODS AND STRUCTURE FOR MANAGING VISIBILITY OF DEVICES IN A CLUSTERED STORAGE SYSTEM; and

"In the field of data storage, customers demand highly resilient data storage systems that also exhibit fast error recovery times. One type of storage system used to provide both of these characteristics is known as a clustered storage system.

"A clustered storage system typically comprises a number of storage controllers, where each storage controller processes host Input/Output (I/O) requests directed to one or more logical volumes. The logical volumes reside on portions of one or more storage devices (e.g., hard disks) coupled with the storage controllers. Often, the logical volumes are configured as Redundant Array of Independent Disks (RAID) volumes in order to ensure an enhanced level of data integrity and/or performance.

"A notable feature of clustered storage environments is that the storage controllers are capable of coordinating processing of host requests (e.g., by shipping I/O processing between each other) in order to enhance the performance of the storage environment. This includes intentionally transferring ownership of a logical volume from one storage controller to another. For example, a first storage controller may detect that it is currently undergoing a heavy processing load, and may assign ownership of a given logical volume to a second storage controller that has a smaller processing burden in order to increase the overall speed of the clustered storage system in handling I/O requests. Other storage controllers may then update information identifying which storage controller presently owns each logical volume. Thus, when an I/O request is received at a storage controller that does not own the logical volume identified in the request, the storage controller may 'ship' the request to the storage controller that presently owns the identified logical volume.

"FIG. 1 is a block diagram illustrating an example of a prior art clustered storage system 150. Clustered storage system 150 is indicated by the dashed box, and includes storage controllers 120, switched fabric 130, and logical volumes 140. Note that a 'clustered storage system' (as used herein) does not necessarily include host systems and associated functionality (e.g., hosts, application-layer services, operating systems, clustered computing nodes, etc.). However, storage controllers 120 and hosts 110 may be tightly integrated physically. For example, storage controllers 120 may comprise Host Bus Adapters (HBA's) coupled with a corresponding host 110 through a peripheral bus structure of host 110. According to FIG. 1, hosts 110 provide I/O requests to storage controllers 120 of clustered storage system 150. Storage controllers 120 are coupled via switched fabric 130 (e.g., a Serial Attached SCSI (SAS) fabric or any other suitable communication medium and protocol) for communication with each other and with a number of storage devices 142 on which logical volumes 140 are stored.

"FIG. 2 is a block diagram illustrating another example of a prior art clustered storage system 250. In this example, clustered storage system 250 processes I/O requests from hosts 210 received via switched fabric 230. Storage controllers 220 are coupled for communication with storage devices 242 via switched fabric 235, which may be integral with or distinct from switched fabric 230. Storage devices 242 implement logical volumes 240. Many other configurations of hosts, storage controllers, switched fabric, and logical volumes are possible for clustered storage systems as a matter of design choice. Further, in many high reliability storage systems, all the depicted couplings may be duplicated for redundancy. Additionally, the interconnect fabrics may also be duplicated for redundancy.

"While clustered storage systems provide a number of performance benefits over more traditional storage systems described above, problems may arise when storage controllers share access to a logical volume. Logical volumes are typically identified to host systems and storage controllers using a Logical Unit Number (LUN). A LUN provides a reference to the logical volume for I/O requests. In a clustered storage system, typically one storage controller has 'ownership' of a logical volume. The storage controller generates a local LUN to identify the logical volumes that the storage controller owns to its associated host system. When logical volumes are shared, each storage controller that 'sees' the logical volume may utilize a different LUN to identify the shared logical volume to their respective host systems. This can be problematic for a number of reasons.

"The first reason that this can be problematic is that utilizing different local LUNs to access the logical volume can cause confusion in users. For example, host system A may reference a logical volume as LUN-x, while host system B may reference the same logical volume as LUN-y. Thus, when a user changes between using host system A and using host system B, the same logical volume is referenced differently.

"The second reason that the use of different local LUNs to access the same logical volume can be problematic is due to I/O shipping. As discussed above with respect to FIGS. 1 and 2, I/O requests in a clustered storage system may be shipped from storage controllers that do not own a logical volume to storage controllers that own the logical volume. When I/O shipping to a shared logical volume occurs, storage controllers may perform a number of LUN translations and LUN analysis as the I/O requests are shipped from one storage controller to another storage controller. This may occur because different storage controllers expose the shared logical volume to their respective host systems using different LUNs. In continuing with the example, consider that storage controller A is coupled with host system A. Storage controller A references the shared logical volume as LUN-x. In this example, storage controller A does not own the shared logical volume. Instead, the shared logical volume is owned by storage controller B that is coupled with host system B. Storage controller B references the shared volume as LUN-y. In this case, I/O requests generated by host system A use LUN-x as the target LUN, which are sent to storage controller A. Storage controller A is then tasked with analyzing the I/O request to determine which controller 'owns' LUN-y (controller B in the example), translating the I/O requests from target LUN-x to target LUN-y, and ships the I/O request to storage controller B. This places a computational burden on the storage controllers in a clustered storage system.

"Thus it is an ongoing challenge to reduce the computational burden on storage controllers within a clustered storage system."

As a supplement to the background information on this patent, VerticalNews correspondents also obtained the inventors' summary information for this patent: "The present invention solves the above and other problems, thereby advancing the state of the useful arts, by providing methods and systems for storage controllers to coordinate with other peer storage controllers of a clustered storage system to generate LUNs for logical volumes that are unique within the clustered storage system. Specifically, according to the methods and systems, storage controllers utilize a peer to peer communication strategy to assign new LUNs to logical volumes. A storage controller generates a proposed LUN for a logical volume, and coordinates with other peer storage controllers to determine if the proposed LUN is in use. If the proposed LUN is in use, then a new LUN is generated and the storage controller re-tries coordinating with the other peer storage controllers to determine if the new LUN is in use. If the proposed LUN is not in use, then the storage controller assigns the proposed LUN to the logical volume. The LUN assigned to the logical volume may then be exposed to storage controllers and host systems across the clustered storage system in a consistent manner.

"One aspect hereof provides for a plurality of storage controllers within a clustered storage system. Each of the storage controllers communicatively couples a host system with storage devices. Each of the controllers comprises an interface and a control unit. The interface communicates with other storage controllers within the clustered storage system. The control unit generates a proposed LUN for a logical volume provisioned at the storage devices, and communicates with each of the other storage controllers within the clustered storage system, requesting that the other storage controllers determine if the proposed LUN is in use. If the proposed LUN is not in use by the other storage controllers, then the control unit assigns the proposed LUN to the logical volume. If the proposed LUN is in use by at least one of the other storage controllers, then the control unit generates a new proposed LUN and re-tries communicating with each of the other storage controllers until a unique LUN is found.

"Another aspect hereof provides a method operable on a plurality of storage controllers within a clustered storage system. In this aspect, each storage controller within the clustered storage system communicatively couples a host system with storage devices. According to the method, a storage controller generates a proposed LUN for a logical volume provisioned at the storage devices, and communicates with each of the other storage controllers within the clustered storage system requesting that the other storage controllers determine if the proposed LUN is in use. If the proposed LUN is not in use by the other storage controllers, then the storage controller assigns the proposed LUN to the logical volume. If the proposed LUN is in use by at least one of the other storage controllers, then the storage controller generates a new proposed LUN and re-tries communicating with each of the other storage controllers until a unique LUN is found.

"Another aspect hereof provides for a storage controller within a clustered storage system. The storage controller communicatively couples a host system with storage devices. The storage controller comprises an interface and a control unit. The interface communicates with other storage controllers within the clustered storage system. The control unit receives a proposed LUN for a logical volume provisioned by another storage controller within the clustered storage system, and determines if the proposed LUN is in use by the storage controller. If the proposed LUN is in use by the storage controller, then the control unit transmits a message to the other storage controller indicating that the proposed LUN is in use. If the proposed LUN is not in use by the storage controller, then the control unit transmits a message to the other storage controller indicating that the proposed LUN is not in use."

For additional information on this patent, see: Velayudhan, Vinu; Rizzo, James A.; Weiner, Adam; Chandra, Rakesh; Huang, Guolin. Methods and Structure for Implementing Logical Device Consistency in a Clustered Storage System. U.S. Patent Number 8751741, filed March 28, 2012, and published online on June 10, 2014. Patent URL: http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=8751741.PN.&OS=PN/8751741RS=PN/8751741

Keywords for this news article include: LSI Corporation, Information Technology, Information and Data Storage.

Our reports deliver fact-based news of research and discoveries from around the world. Copyright 2014, NewsRx LLC


For more stories covering the world of technology, please see HispanicBusiness' Tech Channel



Source: Information Technology Newsweekly


Story Tools






HispanicBusiness.com Facebook Linkedin Twitter RSS Feed Email Alerts & Newsletters