US6681307B1 - Method and system for expanding volume capacity - Google Patents

Method and system for expanding volume capacity Download PDF

Info

Publication number
US6681307B1
US6681307B1 US09/722,892 US72289200A US6681307B1 US 6681307 B1 US6681307 B1 US 6681307B1 US 72289200 A US72289200 A US 72289200A US 6681307 B1 US6681307 B1 US 6681307B1
Authority
US
United States
Prior art keywords
volume
capacity
target volume
unused capacity
hierarchy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime, expires
Application number
US09/722,892
Inventor
Donald R. Humlicek
Christina A. Stout
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies International Sales Pte Ltd
Original Assignee
LSI Logic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LSI Logic Corp filed Critical LSI Logic Corp
Priority to US09/722,892 priority Critical patent/US6681307B1/en
Assigned to LSI LOGIC CORPORATION reassignment LSI LOGIC CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HUMLICEK, DONALD R., STOUT, CHRISTINA A.
Application granted granted Critical
Publication of US6681307B1 publication Critical patent/US6681307B1/en
Assigned to DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT reassignment DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: AGERE SYSTEMS LLC, LSI CORPORATION
Assigned to LSI CORPORATION reassignment LSI CORPORATION CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: LSI LOGIC CORPORATION
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LSI CORPORATION
Assigned to AGERE SYSTEMS LLC, LSI CORPORATION reassignment AGERE SYSTEMS LLC TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Assignors: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Assigned to BANK OF AMERICA, N.A., AS COLLATERAL AGENT reassignment BANK OF AMERICA, N.A., AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Assignors: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Assigned to AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED reassignment AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED MERGER (SEE DOCUMENT FOR DETAILS). Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Assigned to AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED reassignment AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER PREVIOUSLY RECORDED ON REEL 047195 FRAME 0026. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation

Definitions

  • the present invention generally relates to the field of storage systems, and particularly to a method and system for recombining unused capacity for use in expanding volume capacity on a storage device.
  • a volume of data may be stored on a storage device to include data of a particular type, data from a particular source, user-defined segment of data, and the like. In certain instances, it is desirable to expand capacity of the volume to enable the volume to store additional data.
  • previous methods utilized to increase volume size may involve rearranging the order of the volumes on the storage device. This may be undesirable for a number of reasons. For example, volumes may be located in a specific order on a storage device in order to take advantage of faster access times of the device. Therefore, volumes requiring more frequent access and/or greater access amounts may be positioned for faster access times and transfer over volumes with lower access needs. Additionally, previous methods may require increased volume movement and data movement, thereby requiring a greater period of time to perform the volume expansion as well as greater system resources.
  • a method of expanding volume capacity on a storage device includes receiving a request to expand capacity of a target volume by a requested amount.
  • a first hierarchy is queried for unused capacity, wherein if unused capacity is at least one of greater than or equal to the requested amount, the unused capacity is positioned within the target volume. If unused capacity is less than the requested amount, at least one successive hierarchy located at a logic block address further from a target volume logic block address than a first hierarchy logic block address is queried to locate unused capacity, which is at least one of greater than or equal to the requested amount. The unused capacity is then positioned to be included with the target volume.
  • a method of expanding volume capacity on a storage device includes receiving a request to expand capacity of a target volume having an initial capacity by a requested amount.
  • the unused capacity of the storage device is determined and the target volume located.
  • Successive hierarchies are queried for unused capacity, wherein a first hierarchy is queried before a second hierarchy.
  • the first hierarchy is located at a logic block address closer to the target volume than the second hierarchy.
  • Unused capacity is located, the unused capacity at least one greater than and equal to the requested amount.
  • the unused capacity is positioned with the target volume to arrive at a target volume generally having the initial capacity and the requested amount.
  • a method of expanding volume capacity on a storage device includes receiving a request to expand capacity of a target volume having an initial capacity by a requested amount. Unused capacity of the storage device is determined. Successive hierarchies surrounding the target volume are queried for unused capacity, wherein a first hierarchy is queried before a second hierarchy, the first hierarchy located at a logic block address closer to the target volume than the second hierarchy, until unused capacity at least one greater than and equal to the requested amount is located. The unused capacity is then positioned to be included with the target volume.
  • FIG. 1 is a block diagram depicting an exemplary embodiment of the present invention wherein unused capacity is positioned directly following a volume targeted for expansion, wherein a search for the unused capacity starts at the volume targeted for expansion and moves outward from the volume until the total additional capacity amount is satisfied;
  • FIG. 2 is an illustration of an exemplary embodiment of the present invention wherein a volume included across a plurality of devices is expanded utilizing the present invention
  • FIG. 3 is a flow chart illustrating an exemplary method of the present invention wherein volumes are queried in hierarchies to limit volume movement;
  • FIG. 4 is an illustration of an exemplary embodiment of the present invention wherein a combination dynamic capacity expansion and dynamic volume expansion may be utilized to expand a target volume.
  • a volume group may include a group of drives, which allows a volume to be defined in equal blocks distributed across drives.
  • volumes are in contiguous blocks in storage to enable a mathematical calculation to be performed to determine where a specific block of memory will reside.
  • volumes were expanded in noncontiguous segments, thereby making the calculation unavailable.
  • Unused storage may be interspersed between volumes. This may occur because of volume deletions, additions and the like. Unused storage may also exist on unused drives. As stated earlier, it is desirable to maintain a volume in a contiguous nature for the volume and its expanded capacity to preserve the performance,characteristics for the volume and enable a mathematical calculation to be performed to determine where a specific block of memory resides. In order to position unused capacity directly following the volume targeted for expansion, such as to maintain volume order, volumes within a storage device may be moved in both directions, some to higher logical block addresses (LBAs) and some to lower LBAs. The unused capacity may be in small “chunks” or segments scattered between volumes across the total storage device capacity, and may be added to achieve the desired capacity.
  • LBAs logical block addresses
  • a search for the unused capacity starts at the volume targeted for expansion and moves outward from that volume until the total additional capacity amount is satisfied.
  • LBA logic block addresses
  • an exemplary embodiment 100 of the present invention is shown wherein unused capacity is positioned directly following a volume targeted for expansion, wherein a search for the unused capacity starts at the volume targeted for expansion and moves outward from the volume until the total additional capacity amount is satisfied. For example, if 2.5 GB of extra space were desired for Volume One 102 , the space directly below the DVE volume would first be queried 104 . Since Volume Two 104 is there, the space directly above the DVE volume at Volume Zero 106 would be queried, and again, no space is available there.
  • unused capacity 110 is found in step 4 above Volume Zero 106 , and thus may be used for the DVE.
  • Volumes Zero 106 and One 102 In order to position this unused capacity below Volume One 102 , Volumes Zero 106 and One 102 must move up by the 1 GB that is available. This may be accomplished by decreasing the offsets of these volumes by 1 GB, which will cause them to move “up” (according to the diagram) once a reconfiguration operation runs to position the unused space. However, 1.5 GB is still required to increase the target volume.
  • the next step finds additional unused capacity and will increase the offsets of Volumes 2 104 and 3 108 by 1.5 GB, which will cause the volumes to move 20 “down” (according to the diagram) once the reconfiguration operation runs.
  • LBA logical block address
  • volumes may exist along an array 202 of drives.
  • four drives 204 , 206 , 208 and 210 , arranged in an array 202 include Volume Zero 212 , Volume One 214 , Volume Two 216 , Volume Three 218 , Volume Four 220 and Volume Five 222 , each of which is two gigabytes in size.
  • a DVE command is initiated to expand Volume Two 216 .
  • Data segments in a first hierarchy to the DVE target volume are queried first, in this instance Volume Three 218 and then Volume One 214 .
  • a second hierarchy is queried for additional capacity, in this instance Volume Four 220 and Volume Zero 212 .
  • additional capacity does not provide sufficient capacity for expanding Volume Two 216 by the requested amount. Therefore, the query continues progressing among successive hierarchies until unused capacity 226 is located “below” Volume Five 222 , where 4.5 gigabytes of capacity are found. After a sufficient amount of capacity has been located, the capacity needs to be positioned with the target DVE volume, in this instance Volume Two 216 . This may be accomplished by moving the offsets of the corresponding volumes.
  • Volume Zero 212 may be moved “outward” to incorporate the Unused Capacity 224 . Offsets corresponding to successive volumes are also moved outward, such as Volume One 214 and Volume Two 216 . Therefore, once moved, Volume Zero 254 in the reconfigured disk array 252 may be positioned at the start of the disk array 252 , with Volume One 256 and Volume Two 258 positioned directly thereafter. In this way, the ordering of the volumes is maintained with minimized movement of data to provide additional capacity to Volume Two 258 by moving volumes and adding capacity.
  • Volume Three 218 , Volume Four 220 and Volume Five 222 may be moved outward, i.e. to a logic block address (LBA) further away from the target DVE Volume Two 216 , to position unused capacity with the target DVE volume. Therefore, once moved, Volume Three 260 , Volume Four 262 and Volume Five 264 would be positioned so as to enable the unused capacity 224 to be positioned with Volume Two 258 . Additional unused capacity 266 after movement may still be positioned at the end of the volumes. It should be noted, that utilization of the unused capacity may be altered depending on the desires of the user. For example, in the previous example the hierarchies were searched by volume and the entirety of the unused capacity 224 positioned at the end of the drive array 202 , the unused capacity may also be positioned elsewhere without departing from the spirit and scope of the present invention.
  • LBA logic block address
  • a request for a volume expansion is received 302 .
  • Such a volume may exist on a storage device including a single storage device, multiple storage devices, such as a drive array, and the like without departing from the spirit and scope of the present invention.
  • the unused capacity of the storage device is determined 304 and “holes” or portions of unused capacity are located. Locating volume offsets and the lengths of the volume following that offset may be utilized to accomplish this determination. For example, if there is a hole between the end of the length of a previous volume, which may be indicated by an offset, and a subsequent volume, a hole of unused capacity is available to be used for expansion.
  • a system looks at volumes, adds offset and length to obtain the end of the volume, finds beginning of next volume, gets offset, and if there is a difference between the end of the volume and offset of next volume, then there is a hole, and the size of the hole is also known.
  • the target volume for expansion is then located 306 , and starting from that volume outward, available capacity is located.
  • hierarchies of volumes may be queried, with a first hierarchy located at a LBA closer to the target volume than a second hierarchy.
  • the space following the target volume is queried first to determine if a hole exists directly under the target volume 308 . If there is a hole, and sufficient capacity exists in the hole to expand the target volume, the capacity is added to the target volume 310 , and no volumes need to be moved.
  • a second hierarchy is queried to look for additional capacity 312 . If sufficient capacity is located to expand the target volume 314 , then the volumes may be moved to position the addition capacity at the end of the target volume 316 . If there is not sufficient capacity, successive hierarchies may be queried 318 , as shown in FIGS. 1, 2 & 3 , until sufficient capacity is located, and then the volume moved to position that capacity with the target volume. In this way, if volume movement is necessary, it is accomplished with the least amount of volume movement and preserves the ordering of the volumes on the storage device.
  • one or more additional storage devices may be added at the same time that the volumes are rearranged. For example, as shown in the embodiment 400 illustrated in FIG. 4, adding a storage device may be utilized to expand a target volume.
  • a storage device 402 includes an array of disk drives 404 , 406 , 408 , and 410 .
  • a request to expand Volume Two 412 by a requested amount is received.
  • the available capacity is less than the requested amount for expansion. Therefore, an additional drive may be added to increase the capacity of the drive array.
  • an expanded drive array 452 may be configured to include Drive One 454 , Drive Two 456 , Drive Three 458 , and Drive Four 460 , as well as an additional Drive Five 462 , which is added to increase the total storage capacity of the drive array 452 .
  • the requested amount of additional capacity will be left at the end of the targeted volume, in this instance Volume Two 464 .
  • a defragmenting function is also performed to position the unused capacity 466 in a unified segment.

Abstract

The present invention is directed to a method and system for expanding volume capacity. A method of expanding volume capacity on a storage device may include receiving a request to expand capacity of a target volume by a requested amount. A first hierarchy is queried for unused capacity, wherein if unused capacity is at least one of greater than or equal to the requested amount, the unused capacity is positioned within the target volume. If unused capacity is less than the requested amount, at least one successive hierarchy is queried to locate unused capacity, which is at least one of greater than or equal to the requested amount, the successive hierarchy located at a logic block address further from a target volume logic block address than a first hierarchy logic block address. The unused capacity is then positioned to be included with the target volume.

Description

FIELD OF THE INVENTION
The present invention generally relates to the field of storage systems, and particularly to a method and system for recombining unused capacity for use in expanding volume capacity on a storage device.
BACKGROUND OF THE INVENTION
The storage of electronic data is one of the most important and pervasive aspects of modern life. Everything from bank account information to personal data and work product may be stored on storage devices, such as hard disks, disk arrays such as RAID arrays, and the like. Thus, the efficient access and use of data is of utmost importance.
An important aspect of data storage is the expansion of a volume of data on a storage device. A volume of data may be stored on a storage device to include data of a particular type, data from a particular source, user-defined segment of data, and the like. In certain instances, it is desirable to expand capacity of the volume to enable the volume to store additional data. However, previous methods utilized to increase volume size may involve rearranging the order of the volumes on the storage device. This may be undesirable for a number of reasons. For example, volumes may be located in a specific order on a storage device in order to take advantage of faster access times of the device. Therefore, volumes requiring more frequent access and/or greater access amounts may be positioned for faster access times and transfer over volumes with lower access needs. Additionally, previous methods may require increased volume movement and data movement, thereby requiring a greater period of time to perform the volume expansion as well as greater system resources.
Therefore, it would be desirable to provide an improved method and system for volume expansion on a storage device.
SUMMARY OF THE INVENTION
Accordingly, the present invention is directed to a method and system for expanding volume capacity. In a first aspect of the present invention, a method of expanding volume capacity on a storage device includes receiving a request to expand capacity of a target volume by a requested amount. A first hierarchy is queried for unused capacity, wherein if unused capacity is at least one of greater than or equal to the requested amount, the unused capacity is positioned within the target volume. If unused capacity is less than the requested amount, at least one successive hierarchy located at a logic block address further from a target volume logic block address than a first hierarchy logic block address is queried to locate unused capacity, which is at least one of greater than or equal to the requested amount. The unused capacity is then positioned to be included with the target volume.
In a second aspect of the present invention, a method of expanding volume capacity on a storage device includes receiving a request to expand capacity of a target volume having an initial capacity by a requested amount. The unused capacity of the storage device is determined and the target volume located. Successive hierarchies are queried for unused capacity, wherein a first hierarchy is queried before a second hierarchy. The first hierarchy is located at a logic block address closer to the target volume than the second hierarchy. Unused capacity is located, the unused capacity at least one greater than and equal to the requested amount. The unused capacity is positioned with the target volume to arrive at a target volume generally having the initial capacity and the requested amount.
In a third aspect of the present invention, a method of expanding volume capacity on a storage device includes receiving a request to expand capacity of a target volume having an initial capacity by a requested amount. Unused capacity of the storage device is determined. Successive hierarchies surrounding the target volume are queried for unused capacity, wherein a first hierarchy is queried before a second hierarchy, the first hierarchy located at a logic block address closer to the target volume than the second hierarchy, until unused capacity at least one greater than and equal to the requested amount is located. The unused capacity is then positioned to be included with the target volume.
It is to be understood that both the forgoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention as claimed. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate an embodiment of the invention and together with the general description, serve to explain the principles of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
The numerous advantages of the present invention may be better understood by those skilled in the art by reference to the accompanying figures in which:
FIG. 1 is a block diagram depicting an exemplary embodiment of the present invention wherein unused capacity is positioned directly following a volume targeted for expansion, wherein a search for the unused capacity starts at the volume targeted for expansion and moves outward from the volume until the total additional capacity amount is satisfied;
FIG. 2 is an illustration of an exemplary embodiment of the present invention wherein a volume included across a plurality of devices is expanded utilizing the present invention;
FIG. 3 is a flow chart illustrating an exemplary method of the present invention wherein volumes are queried in hierarchies to limit volume movement; and
FIG. 4 is an illustration of an exemplary embodiment of the present invention wherein a combination dynamic capacity expansion and dynamic volume expansion may be utilized to expand a target volume.
DETAILED DESCRIPTION OF THE INVENTION
Reference will now be made in detail to the presently preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings.
Referring generally now to FIGS. 1 through 4, exemplary embodiments of the present invention are shown. The present invention provides a Dynamic Volume Expansion (DVE) feature to allow a user to increase the capacity of an existing volume. A volume group may include a group of drives, which allows a volume to be defined in equal blocks distributed across drives. Preferably, volumes are in contiguous blocks in storage to enable a mathematical calculation to be performed to determine where a specific block of memory will reside. However, utilizing previous expansion methods, volumes were expanded in noncontiguous segments, thereby making the calculation unavailable.
Unused storage may be interspersed between volumes. This may occur because of volume deletions, additions and the like. Unused storage may also exist on unused drives. As stated earlier, it is desirable to maintain a volume in a contiguous nature for the volume and its expanded capacity to preserve the performance,characteristics for the volume and enable a mathematical calculation to be performed to determine where a specific block of memory resides. In order to position unused capacity directly following the volume targeted for expansion, such as to maintain volume order, volumes within a storage device may be moved in both directions, some to higher logical block addresses (LBAs) and some to lower LBAs. The unused capacity may be in small “chunks” or segments scattered between volumes across the total storage device capacity, and may be added to achieve the desired capacity. Preferably, a search for the unused capacity starts at the volume targeted for expansion and moves outward from that volume until the total additional capacity amount is satisfied. In the following discussion, reference is made to movement of volumes and offsets with relation to each other, such as “up”, “above”, “below” and “down” for adding the discussion, which may be considered to be relative movement as defined by logic block addresses (LBA). For example, “up” may refer to a LBA lower in number than a previous LBA, “down” may refer to a LBA higher in number than a previous LBA, and the like.
Referring now to FIG. 1, an exemplary embodiment 100 of the present invention is shown wherein unused capacity is positioned directly following a volume targeted for expansion, wherein a search for the unused capacity starts at the volume targeted for expansion and moves outward from the volume until the total additional capacity amount is satisfied. For example, if 2.5 GB of extra space were desired for Volume One 102, the space directly below the DVE volume would first be queried 104. Since Volume Two 104 is there, the space directly above the DVE volume at Volume Zero 106 would be queried, and again, no space is available there.
Finally, after querying Volume Three 108, which again is unavailable space, unused capacity 110 is found in step 4 above Volume Zero 106, and thus may be used for the DVE. In order to position this unused capacity below Volume One 102, Volumes Zero 106 and One 102 must move up by the 1 GB that is available. This may be accomplished by decreasing the offsets of these volumes by 1 GB, which will cause them to move “up” (according to the diagram) once a reconfiguration operation runs to position the unused space. However, 1.5 GB is still required to increase the target volume. In this example, the next step finds additional unused capacity and will increase the offsets of Volumes 2 104 and 3 108 by 1.5 GB, which will cause the volumes to move 20 “down” (according to the diagram) once the reconfiguration operation runs.
In this way, successive hierarchies are queried, with the second hierarchy queried being positioned after the first hierarchy, such as a logical block address (LBA) located further away from the target volume LBA than the initially queried hierarchy. Thus, the unused capacity needed to expand a volume is found as close as possible to the target volume to provide minimal volume movement. Volume ordering is also conserved within the volume group in order to maintain the performance characteristics of a volume based on location within a drive.
Referring now to FIG. 2, an exemplary embodiment 200 of the present invention is shown wherein a volume included across a plurality of devices is expanded utilizing the present invention. Volumes may exist along an array 202 of drives. In this example, four drives 204, 206, 208 and 210, arranged in an array 202, include Volume Zero 212, Volume One 214, Volume Two 216, Volume Three 218, Volume Four 220 and Volume Five 222, each of which is two gigabytes in size. However, it may be desirable to expand the capacity of Volume Two 216 by five gigabytes, from the two original gigabytes, to total of seven total gigabytes. Therefore, a DVE command is initiated to expand Volume Two 216. Data segments in a first hierarchy to the DVE target volume are queried first, in this instance Volume Three 218 and then Volume One 214.
Since there is no available capacity, a second hierarchy is queried for additional capacity, in this instance Volume Four 220 and Volume Zero 212. During a query for a third hierarchy, 1.5 gigabytes of unused capacity 224 are located “above” Volume Zero 212. However, this additional capacity does not provide sufficient capacity for expanding Volume Two 216 by the requested amount. Therefore, the query continues progressing among successive hierarchies until unused capacity 226 is located “below” Volume Five 222, where 4.5 gigabytes of capacity are found. After a sufficient amount of capacity has been located, the capacity needs to be positioned with the target DVE volume, in this instance Volume Two 216. This may be accomplished by moving the offsets of the corresponding volumes.
For example, Volume Zero 212 may be moved “outward” to incorporate the Unused Capacity 224. Offsets corresponding to successive volumes are also moved outward, such as Volume One 214 and Volume Two 216. Therefore, once moved, Volume Zero 254 in the reconfigured disk array 252 may be positioned at the start of the disk array 252, with Volume One 256 and Volume Two 258 positioned directly thereafter. In this way, the ordering of the volumes is maintained with minimized movement of data to provide additional capacity to Volume Two 258 by moving volumes and adding capacity.
Likewise, Volume Three 218, Volume Four 220 and Volume Five 222 may be moved outward, i.e. to a logic block address (LBA) further away from the target DVE Volume Two 216, to position unused capacity with the target DVE volume. Therefore, once moved, Volume Three 260, Volume Four 262 and Volume Five 264 would be positioned so as to enable the unused capacity 224 to be positioned with Volume Two 258. Additional unused capacity 266 after movement may still be positioned at the end of the volumes. It should be noted, that utilization of the unused capacity may be altered depending on the desires of the user. For example, in the previous example the hierarchies were searched by volume and the entirety of the unused capacity 224 positioned at the end of the drive array 202, the unused capacity may also be positioned elsewhere without departing from the spirit and scope of the present invention.
Referring now to FIG. 3, an exemplary embodiment of the present invention is shown wherein volumes are queried in hierarchies to limit volume movement. A request for a volume expansion is received 302. Such a volume may exist on a storage device including a single storage device, multiple storage devices, such as a drive array, and the like without departing from the spirit and scope of the present invention. The unused capacity of the storage device is determined 304 and “holes” or portions of unused capacity are located. Locating volume offsets and the lengths of the volume following that offset may be utilized to accomplish this determination. For example, if there is a hole between the end of the length of a previous volume, which may be indicated by an offset, and a subsequent volume, a hole of unused capacity is available to be used for expansion. Thus, to find a hole, a system looks at volumes, adds offset and length to obtain the end of the volume, finds beginning of next volume, gets offset, and if there is a difference between the end of the volume and offset of next volume, then there is a hole, and the size of the hole is also known.
The target volume for expansion is then located 306, and starting from that volume outward, available capacity is located. Thus hierarchies of volumes may be queried, with a first hierarchy located at a LBA closer to the target volume than a second hierarchy. Preferably, the space following the target volume is queried first to determine if a hole exists directly under the target volume 308. If there is a hole, and sufficient capacity exists in the hole to expand the target volume, the capacity is added to the target volume 310, and no volumes need to be moved.
However, if the hole is not directly under the target volume, a second hierarchy is queried to look for additional capacity 312. If sufficient capacity is located to expand the target volume 314, then the volumes may be moved to position the addition capacity at the end of the target volume 316. If there is not sufficient capacity, successive hierarchies may be queried 318, as shown in FIGS. 1, 2 & 3, until sufficient capacity is located, and then the volume moved to position that capacity with the target volume. In this way, if volume movement is necessary, it is accomplished with the least amount of volume movement and preserves the ordering of the volumes on the storage device.
If a user requests a DVE, but does not have enough unused capacity available, one or more additional storage devices may be added at the same time that the volumes are rearranged. For example, as shown in the embodiment 400 illustrated in FIG. 4, adding a storage device may be utilized to expand a target volume. In this example, a storage device 402 includes an array of disk drives 404, 406, 408, and 410. A request to expand Volume Two 412 by a requested amount is received. However, even though unused capacity 414, 416 and 418 exists on the storage device 402, the available capacity is less than the requested amount for expansion. Therefore, an additional drive may be added to increase the capacity of the drive array.
For instance, an expanded drive array 452 may be configured to include Drive One 454, Drive Two 456, Drive Three 458, and Drive Four 460, as well as an additional Drive Five 462, which is added to increase the total storage capacity of the drive array 452. As the new offset and piece lengths are being determined, the requested amount of additional capacity will be left at the end of the targeted volume, in this instance Volume Two 464. Preferably, a defragmenting function is also performed to position the unused capacity 466 in a unified segment.
It is believed that the method and system for expanding volume capacity of the present invention and many of its attendant advantages will be understood by the forgoing description. It is also believed that it will be apparent that various changes may be made in the form, construction and arrangement of the components thereof without departing from the scope and spirit of the invention or without sacrificing all of its material advantages. The form herein before described being merely an explanatory embodiment thereof. It is the intention of the following claims to encompass and include such changes.

Claims (41)

What is claimed is:
1. A method of expanding volume capacity on a storage device, comprising:
receiving a request to expand capacity of a target volume by a requested amount;
querying a first hierarchy for unused capacity, wherein if unused capacity is at least one of greater than or equal to the requested amount, the unused capacity is positioned to be included with the target volume and if unused capacity is less than the requested amount, at least one successive hierarchy is queried to locate unused capacity which is at least one of greater than or equal to the requested amount, the successive hierarchy located at a logic block address farther from a target volume logic block address than a first hierarchy logic block address, the unused capacity used to expand the target volume being located to provide minimal volume movement; and
positioning the unused capacity to be included with the target volume,
wherein the target volume is defined as an equal number of blocks distributed across multiple disk drives, the storage device including the multiple disk drives, the target volume expanding to include a greater size in each of the multiple disk drives.
2. The method of claim 1, wherein, after the method is implemented and then terminated, any unused capacity is contiguously located only by the highest logical block addresses.
3. The method of claim 1, wherein the volumes are in contiguous blocks of storage to enable a mathematical calculation to be performed to determine where a specific block of memory is to reside.
4. The method of claim 1, wherein the target volume expands so as to start at a lower logical block address.
5. The method of claim 1, wherein the target volume expands so as to end at a higher logical block address.
6. The method of claim 1, wherein the multiple disk drives do not increase in number.
7. The method of claim 1, wherein the multiple disk drives increase in number.
8. A method of expanding volume capacity on a storage device, comprising:
receiving a request to expand capacity of a target volume having an initial capacity by a requested amount;
determining unused capacity of the storage device;
locating the target volume;
querying successive hierarchies for unused capacity, wherein a first hierarchy is queried before a second hierarchy, the first hierarchy located at a logic block address closer to the target volume than the second hierarchy;
locating unused capacity at least one of greater than and equal to the requested amount; and
positioning the unused capacity to be included with the target volume, the unused capacity used to expand the target volume being located to provide minimal volume movement,
wherein a volume, including the target volume, is defined as an equal number of blocks distributed consistently across multiple disk drives, the storage device including the multiple disk drives, the target volume expanding to include a greater size in each of the multiple disk drives.
9. The method as described in claim 8, wherein determining the unused capacity of the storage device includes locating holes.
10. The method as described in claim 9, wherein determining the unused capacity includes querying for volume offsets and lengths of volumes following the offset so that, to find a hole, an offset and length of a first volume are determined and a beginning of a second volume is found by locating a second volume offset, and if there is a space between the first volume and the second volume, that space is a hole.
11. The method as described in claim 10, wherein size of the hole is determined from an end of the first volume and a beginning of the second volume.
12. The method as described in claim 8, wherein unused capacity is positioned by at least one of positioning an offset of at least one volume surrounding the target volume.
13. The method as described in claim 8, wherein unused capacity includes a plurality of unused capacity segments.
14. The method of claim 8, wherein the volumes are in contiguous blocks of storage to enable a mathematical calculation to be performed to determine where a specific block of memory is to reside.
15. The method of claim 8, wherein the target volume expands so as to start at a lower logical block address.
16. The method of claim 8, wherein the target volume expands so as to end at a higher logical block address.
17. The method of claim 8, wherein the multiple disk drives do not increase in number.
18. The method of claim 8, wherein the multiple disk drives increase in number.
19. A method of expanding volume capacity on a storage device, comprising:
receiving a request to expand capacity of a target volume having an initial capacity by a requested amount;
determining unused capacity of the storage device;
querying successive hierarchies surrounding the target volume for unused capacity, wherein a first hierarchy is queried before a second hierarchy, the first hierarchy located at a logic block address closer to the target volume than the second hierarchy, until unused capacity at least one of greater than and equal to the requested amount is located; and
positioning the unused capacity with the target volume, the unused capacity used to expand the target volume being located to provide minimal volume movement,
wherein all volumes, including the target volume, are distributed across multiple disk drives, the storage device including the multiple disk drives, the target volume expanding to include a greater size in each of the multiple disk drives.
20. The method as described in claim 19, wherein determining the unused capacity of the storage device includes locating holes.
21. The method as described in claim 20, wherein determining the unused capacity includes querying for volume offsets and lengths of volumes following the offset so that, to find a hole, an offset and length of a first volume are determined and a beginning of a second volume is found by locating a second volume offset, and if there is a space between the first volume and the second volume, that space is a hole.
22. The method as described in claim 21, wherein size of the hole is determined from an end of the first volume and a beginning of the second volume.
23. The method as described in claim 19, wherein unused capacity is positioned by positioning an offset of at least one volume surrounding the target volume.
24. The method as described in claim 19, further comprising locating unused capacity.
25. The method as described in claim 19, wherein unused capacity includes a plurality of unused capacity segments.
26. The method of claim 19, wherein the volumes are in contiguous blocks of storage to enable a mathematical calculation to be performed to determine where a specific block of memory is to reside.
27. The method of claim 19, wherein the target volume expands so as to start at a lower logical block address.
28. The method of claim 19, wherein the target volume expands so as to end at a higher logical block address.
29. The method of claim 19, wherein the multiple disk drives do not increase in number.
30. The method of claim 19, wherein the multiple disk drives increase in number.
31. A method of expanding volume capacity on a storage device, comprising:
receiving a request to expand capacity of a target volume having an initial capacity by a requested amount, the target volume being one of a plurality of volumes included in the storage device, the plurality of volumes arranged in a specific order;
querying successive hierarchies surrounding the target volume for unused capacity, wherein a first hierarchy is queried before a second hierarchy, the first hierarchy being located at a logic block address closer to the target volume than the second hierarchy, until unused capacity at least one of greater than and equal to the requested amount is located; and
positioning the unused capacity with the target volume so that the plurality of volumes remain arranged in the specific order, the unused capacity used to expand the target volume being located to provide minimal volume movement,
wherein each of the plurality of volumes is defined as an equal number of blocks distributed across multiple disk drives, the storage device including the multiple disk drives, the target volume expanding to include a greater size in each of the multiple disk drives.
32. The method of claim 31, wherein the volumes are arranged in a specific order to maintain a volume performance characteristic within a disk drive.
33. The method of claim 31, wherein the step of querying continues until sufficient capacity is located.
34. The method of claim 31, wherein an additional storage device is may be added during the positioning step.
35. The method of claim 31, the positioning step further comprising a defragmenting step.
36. The method of claim 31, wherein the request is made by a user.
37. The method of claim 31, wherein the volumes are in contiguous blocks of storage to enable a mathematical calculation to be performed to determine where a specific block of memory is to reside.
38. The method of claim 31, wherein the target volume expands so as to start at a lower logical block address.
39. The method of claim 31, wherein the target volume expands so as to end at a higher logical block address.
40. The method of claim 31, wherein the multiple disk drives do not increase in number.
41. The method of claim 31, wherein the multiple disk drives increase in number.
US09/722,892 2000-11-27 2000-11-27 Method and system for expanding volume capacity Expired - Lifetime US6681307B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/722,892 US6681307B1 (en) 2000-11-27 2000-11-27 Method and system for expanding volume capacity

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/722,892 US6681307B1 (en) 2000-11-27 2000-11-27 Method and system for expanding volume capacity

Publications (1)

Publication Number Publication Date
US6681307B1 true US6681307B1 (en) 2004-01-20

Family

ID=30001142

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/722,892 Expired - Lifetime US6681307B1 (en) 2000-11-27 2000-11-27 Method and system for expanding volume capacity

Country Status (1)

Country Link
US (1) US6681307B1 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050228945A1 (en) * 2004-04-08 2005-10-13 Koji Nagata Disk array apparatus and control method for disk array apparatus
US20080144142A1 (en) * 2006-10-24 2008-06-19 Russell Dean Reece Systems and methods for storage management in a data processing device
CN100403247C (en) * 2005-12-28 2008-07-16 英业达股份有限公司 Expanding system and method for redundant array of self-contained disk
US20090177783A1 (en) * 2008-01-07 2009-07-09 Mitch Adler Pairing and storage access scheme between a handheld device and a computing system
CN103226518A (en) * 2012-01-31 2013-07-31 国际商业机器公司 Method and device for performing volume expansion in storage management system
US8918579B2 (en) 2012-02-06 2014-12-23 Sandisk Technologies Inc. Storage device and method for selective data compression
US8996787B2 (en) 2012-02-06 2015-03-31 Sandisk Technologies Inc. Storage device aware of I/O transaction and stored data
US9047176B2 (en) 2012-02-06 2015-06-02 Sandisk Technologies Inc. Storage device and method for utilizing unused storage space
US20180239700A1 (en) * 2015-11-10 2018-08-23 International Business Machines Corporation Selection and placement of volumes in a storage system using stripes
JP2020004186A (en) * 2018-06-29 2020-01-09 富士通株式会社 Information processing system, management device and control method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5502836A (en) * 1991-11-21 1996-03-26 Ast Research, Inc. Method for disk restriping during system operation
US5675769A (en) * 1995-02-23 1997-10-07 Powerquest Corporation Method for manipulating disk partitions
US5956745A (en) * 1997-04-23 1999-09-21 Novell, Inc. System and method for automatically resizing a disk drive volume
US6070172A (en) * 1997-03-06 2000-05-30 Oracle Corporation On-line free space defragmentation of a contiguous-file file system
US6088778A (en) * 1995-02-23 2000-07-11 Powerquest Corporation Method for manipulating disk partitions
US6115799A (en) * 1996-07-19 2000-09-05 Canon Kabushiki Kaisha Information processing apparatus and associated method for managing a memory using a next fit and for reducing a memory fragmentation problem

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5502836A (en) * 1991-11-21 1996-03-26 Ast Research, Inc. Method for disk restriping during system operation
US5675769A (en) * 1995-02-23 1997-10-07 Powerquest Corporation Method for manipulating disk partitions
US6088778A (en) * 1995-02-23 2000-07-11 Powerquest Corporation Method for manipulating disk partitions
US6115799A (en) * 1996-07-19 2000-09-05 Canon Kabushiki Kaisha Information processing apparatus and associated method for managing a memory using a next fit and for reducing a memory fragmentation problem
US6070172A (en) * 1997-03-06 2000-05-30 Oracle Corporation On-line free space defragmentation of a contiguous-file file system
US5956745A (en) * 1997-04-23 1999-09-21 Novell, Inc. System and method for automatically resizing a disk drive volume

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Google Groups, S. Widlake discussion thread, http://groups.google.com/groups?q=partition+enlarge+shift&hl=en&lr=&selm=s.widlake.1990.000D1C18%40rl.-ac.uk&rnum=1. *
Google Groups, S. Widlake discussion thread, http://groups.google.com/groups?q=partition+enlarge+shift&hl=en&lr=&selm=s.widlake.1990.000D1C18%40rl.—ac.uk&rnum=1.

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7752390B2 (en) 2004-04-08 2010-07-06 Hitachi, Ltd. Disk array apparatus and control method for disk array apparatus
US7139875B2 (en) 2004-04-08 2006-11-21 Hitachi, Ltd. Disk array apparatus and control method for disk array apparatus
US20070005886A1 (en) * 2004-04-08 2007-01-04 Koji Nagata Disk array apparatus and control method for disk array apparatus
US7334084B2 (en) 2004-04-08 2008-02-19 Hitachi, Ltd. Disk array apparatus and control method for disk array apparatus
US20050228945A1 (en) * 2004-04-08 2005-10-13 Koji Nagata Disk array apparatus and control method for disk array apparatus
US20080320218A1 (en) * 2004-04-08 2008-12-25 Koji Nagata Disk array apparatus and control method for disk array apparatus
CN100403247C (en) * 2005-12-28 2008-07-16 英业达股份有限公司 Expanding system and method for redundant array of self-contained disk
US8156271B2 (en) 2006-10-24 2012-04-10 Apple Inc. Systems and methods for storage management in a data processing device
US7925809B2 (en) * 2006-10-24 2011-04-12 Apple Inc. Systems and methods for storage management in a data processing device
US20110185033A1 (en) * 2006-10-24 2011-07-28 Russell Dean Reece Systems and methods for storage management in a data processing device
US20080144142A1 (en) * 2006-10-24 2008-06-19 Russell Dean Reece Systems and methods for storage management in a data processing device
US9015381B2 (en) 2008-01-07 2015-04-21 Apple Inc. Pairing and storage access scheme between a handheld device and a computing system
US8090767B2 (en) 2008-01-07 2012-01-03 Apple Inc. Pairing and storage access scheme between a handheld device and a computing system
US20090177783A1 (en) * 2008-01-07 2009-07-09 Mitch Adler Pairing and storage access scheme between a handheld device and a computing system
US9772801B2 (en) * 2012-01-31 2017-09-26 International Business Machines Corporation Performing volume expansion in storage management system
US20130198472A1 (en) * 2012-01-31 2013-08-01 International Business Machines Corporation Performing volume expansion in storage management system
CN103226518B (en) * 2012-01-31 2016-06-22 国际商业机器公司 A kind of method and apparatus carrying out volume extension in storage management system
CN103226518A (en) * 2012-01-31 2013-07-31 国际商业机器公司 Method and device for performing volume expansion in storage management system
US8918579B2 (en) 2012-02-06 2014-12-23 Sandisk Technologies Inc. Storage device and method for selective data compression
US8996787B2 (en) 2012-02-06 2015-03-31 Sandisk Technologies Inc. Storage device aware of I/O transaction and stored data
US9047176B2 (en) 2012-02-06 2015-06-02 Sandisk Technologies Inc. Storage device and method for utilizing unused storage space
US20180239700A1 (en) * 2015-11-10 2018-08-23 International Business Machines Corporation Selection and placement of volumes in a storage system using stripes
US10402321B2 (en) * 2015-11-10 2019-09-03 International Business Machines Corporation Selection and placement of volumes in a storage system using stripes
US11048627B2 (en) * 2015-11-10 2021-06-29 International Business Machines Corporation Selection and placement of volumes in a storage system using stripes
JP2020004186A (en) * 2018-06-29 2020-01-09 富士通株式会社 Information processing system, management device and control method

Similar Documents

Publication Publication Date Title
US11687446B2 (en) Namespace change propagation in non-volatile memory devices
US6675176B1 (en) File management system
JP5000316B2 (en) Object-based data storage
US6311252B1 (en) Method and apparatus for moving data between storage levels of a hierarchically arranged data storage system
US6571261B1 (en) Defragmentation utility for a shared disk parallel file system across a storage area network
US8285757B2 (en) File system for a storage device, methods of allocating storage, searching data and optimising performance of a storage device file system
US6643754B1 (en) System and method for dynamically allocating computer memory
US20050015557A1 (en) Nonvolatile memory unit with specific cache
US8996799B2 (en) Content storage system with modified cache write policies
US7933938B2 (en) File storage system, file storing method and file searching method therein
US6697797B1 (en) Method and apparatus for tracking data in a database, employing last-known location registers
CA2511304C (en) Dual journaling store method and storage medium thereof
JPH06309224A (en) Method for data page control and data processing system
US6681307B1 (en) Method and system for expanding volume capacity
CN114610232A (en) Storage system, memory management method and management node
US6745198B1 (en) Parallel spatial join index
TW201830249A (en) Method, memory system and article for maximized dedupable memory
CN115794669A (en) Method, device and related equipment for expanding memory
US20040172501A1 (en) Metadata allocation method in a storage system
JP5712127B2 (en) Dynamic write balancing in data storage systems.
US7797290B2 (en) Database reorganization program and method
US7509473B2 (en) Segmented storage system mapping
CN108427648B (en) Storage system page viscera data indexing method and device
CN106294189B (en) Memory defragmentation method and device
KR100502106B1 (en) The reorganization method in the raid striping system

Legal Events

Date Code Title Description
AS Assignment

Owner name: LSI LOGIC CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HUMLICEK, DONALD R.;STOUT, CHRISTINA A.;REEL/FRAME:011302/0407

Effective date: 20001122

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AG

Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:LSI CORPORATION;AGERE SYSTEMS LLC;REEL/FRAME:032856/0031

Effective date: 20140506

AS Assignment

Owner name: LSI CORPORATION, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:LSI LOGIC CORPORATION;REEL/FRAME:033102/0270

Effective date: 20070406

AS Assignment

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LSI CORPORATION;REEL/FRAME:035390/0388

Effective date: 20140814

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: LSI CORPORATION, CALIFORNIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039

Effective date: 20160201

Owner name: AGERE SYSTEMS LLC, PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039

Effective date: 20160201

AS Assignment

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001

Effective date: 20160201

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001

Effective date: 20160201

AS Assignment

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001

Effective date: 20170119

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001

Effective date: 20170119

AS Assignment

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE

Free format text: MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047195/0026

Effective date: 20180509

AS Assignment

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER PREVIOUSLY RECORDED ON REEL 047195 FRAME 0026. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047477/0423

Effective date: 20180905