Safety for volume operations
14 claims: 5 independent, 9 dependent
- 1ストレージシステムにおいて使用するための方法であって、前記方法は、 ストレージコントローラによって、 前記ストレージシステム上の論理ストレージを表す論理ボリュームを復元するための要求を受信することと、 前記論理ボリュームを復元するための前記要求を受信することに応答して、 前記ストレージシステムに記憶されたデータに現在マッピングしている論理データ表現に、過去にマッピングされていた前記論理ボリューム、を決定することと、 前記ストレージシステムに記憶されたデータに現在マッピングしている論理データ表現に、過去にマッピングされていた前記論理ボリューム、を決定することに応じて、 前記論理ボリュームの第2の論理データ表現を生成し、 前記第2の論理データ表現が前記論理データ表現にマッピングされていることのインジケータを記憶し、 ボリューム-論理データ表現マッピングテーブル内に新規のエントリを生成すること、を含むことであって、前記新規のエントリは、前記論理ボリュームが前記第2の論理データ表現にマッピングされていることの第2のインジケータを含む、ことによって、 前記論理ボリュームを前記論理データ表現に論理的に再マッピングすることにより、前記論理ボリュームと、前記ストレージシステムに記憶された前記データとの間の接続を復元することと、 を備える方法。
- 2さらに、 削除ボリューム テーブルの中で、前記論理ボリュームが前記論理データ表現に過去にマッピングされていた ことのインジケータを記憶すること を備え、前記論理データ表現は、ある時点における前記ストレージシステムに記憶されたデータを指す、請求項1に記載の方法。
- 3さらに、 前記論理ボリュームを削除するための要求を受信することと、 前記論理ボリュームを削除するための前記要求を受信することに応答して、 前記論理ボリュームが マッピングされている 特定の論理データ表現を決定することと、 前記論理ボリュームが、前記論理ボリュームの前記特定の論理データ表現に過去にマッピングされていた ことのインジケータを記憶する ことと、 前記論理ボリュームが有効であることのいずれのインジケータを除去することと、 を備える、請求項1に記載の方法。
- 4さらに、 論理 ボリュームと、 前記論理 ボリュームの論理データ表現との関係を追跡するために、ボリューム-論理データ表現マッピングテーブルを維持することを備え、前記論理ボリュームが有効であることのいずれのインジケータを除去することは、前記ボリューム-論理データ表現マッピングテーブルの中で、前記論理ボリュームに対応するエントリを除去することを備える、請求項 3 に記載の方法。
- 5さらに、前記論理ボリュームを 削除 するための前記要求を受信することに応答して、前記 削除の動作後、 第1の期間だけ前記特定の論理データ表現を 保持する ことを備える、請求項3に記載の方法。
- 61つ以上のストレージデバイスと、 前記1つ以上のストレージデバイスに結合されたストレージコントローラと、を備えるコンピュータシステムであって、前記ストレージコントローラは、 ストレージシステム上の論理ストレージを表す論理ボリュームを復元するための要求を受信し、 前記論理ボリュームを復元するための前記要求を受信することに応じて、 前記ストレージシステムに記憶されたデータに現在マッピングしている論理データ表現に、過去にマッピングされていた前記論理ボリューム、を決定し、 前記ストレージシステムに記憶されたデータに現在マッピングしている論理データ表現に、過去にマッピングされていた前記論理ボリューム、を決定することに応答して、 前記論理ボリュームの第2の論理データ表現を生成し、 前記第2の論理データ表現が前記論理データ表現にマッピングされていることのインジケータを記憶し、 ボリューム-論理データ表現マッピングテーブル内に新規のエントリを生成することを含むことであって、前記新規のエントリは、前記論理ボリュームが前記第2の論理データ表現にマッピングされていることの第2のインジケータを含む、ことによって、 前記論理ボリュームを前記論理データ表現に論理的に再マッピングすることにより、前記論理ボリュームと、前記ストレージシステムに記憶された前記データとの間の接続を復元する、 ように構成されている、コンピュータシステム。
- 7前記ストレージコントローラはさらに、 削除ボリューム テーブルの中で、前記論理ボリュームが前記論理データ表現に過去にマッピングされていた ことのインジケータを記憶すること を備え、前記論理データ表現は、ある時点における前記ストレージシステムに記憶されたデータを指すように構成されている、請求項6に記載のコンピュータシステム。
- 8前記ストレージコントローラはさらに、 前記論理ボリュームを削除するための要求を受信し、 前記論理ボリュームを削除するための前記要求を受信することに応答して、 前記論理ボリュームが マッピングされている 特定の論理データ表現を決定し、 前記論理ボリュームが前記論理ボリュームの前記特定の論理データ表現に過去にマッピングされていた ことのインジケータを記憶 し、 前記論理ボリュームが有効であることのいずれのインジケータを除去する、ように構成されている、請求項6に記載のコンピュータシステム。
- 9前記ストレージコントローラは、さらに、 論理 ボリュームと、 前記論理 ボリュームの論理データ表現との関係を追跡するために、ボリューム-論理データ表現マッピングテーブルを維持するように構成され、前記論理ボリュームが有効であることのいずれのインジケータを除去することは、前記ボリューム-論理データ表現マッピングテーブルの中で、前記論理ボリュームに対応するエントリを除去することを備える、請求項8に記載のコンピュータシステム。
- 10前記ストレージコントローラはさらに、 前記論理ボリュームを 削除 するための前記要求を受信することに応答して、前記 削除の動作後、 第1の期間だけ前記特定の論理データ表現を 保持する ように構成される、請求項8に記載のコンピュータシステム。
- 11プログラム命令を記録したコンピュータ読み取り可能な記録媒体であって、前記プログラム命令は、プロセッサによって、 論理ボリュームを復元するための要求を受信し、 ストレージシステム上の論理ストレージを表す前記論理ボリュームを復元するための前記要求を受信することに応答して、 前記ストレージシステムに記憶されたデータに現在マッピングしている論理データ表現に、過去にマッピングされていた前記論理ボリューム、を決定し、 前記ストレージシステムに記憶されたデータに現在マッピングしている論理データ表現に、過去にマッピングされた前記論理ボリューム、を決定することに応じて、 前記論理ボリュームの第2の論理データ表現を生成し、 前記第2の論理データ表現が前記論理データ表現にマッピングされていることのインジケータを記憶し、 ボリューム-論理データ表現マッピングテーブル内に新規のエントリを生成することを含むことであって、前記新規のエントリは、前記論理ボリュームが前記第2の論理データ表現にマッピングされていることの第2のインジケータを含む、ことによって、 前記論理ボリュームを、前記論理データ表現に論理的に再マッピングすることにより、前記論理ボリュームと前記ストレージシステムに記憶された前記データとの間の接続を復元する、 ために実行できる、コンピュータ読み取り可能な記録媒体。
- 12前記プログラム命令は、 削除ボリューム テーブルの中で、前記論理ボリュームが前記論理データ表現に過去にマッピングされていた ことのインジケータを記憶する ことを、プロセッサによって実行でき、前記論理データ表現は、ある時点における前記ストレージシステムに記憶されたデータを指す、請求項11に記載のコンピュータ読み取り可能な記録媒体。
- 13前記プログラム命令は、プロセッサによって、 前記論理ボリュームを消去するための要求を受信し、 前記論理ボリュームを消去するための前記要求を受信したことに応答して、 前記論理ボリュームが マッピングされている 特定の論理データ表現を決定し、 前記論理ボリュームが、前記論理ボリュームの前記特定の論理データ表現に過去にマッピングされていた ことのインジケータを記憶 し、 前記論理ボリュームが有効であることのいずれのインジケータを除去するために実行できる、請求項11に記載のコンピュータ読み取り可能な記録媒体。
- 14前記プログラム命令は、プロセッサによって、 論理 ボリュームと、 前記 論理ボリュームの論理データ表現との関係を追跡するために、ボリューム-論理データ表現マッピングテーブルを維持するために実行でき、前記論理ボリュームが有効であることのいずれのインジケータを除去することは、前記ボリューム-論理データ表現マッピングテーブルの中で、前記論理ボリュームに対応するエントリを除去することを備える、請求項1 3 に記載のコンピュータ読み取り可能な記録媒体。
Independent claims14
55 paragraphs, as filed
The present invention relates to restoring a deleted volume in a storage system.
As computer memory storage and data bandwidth increase, so does the amount and complexity of data that is routinely managed in the business. Large-scale distributed storage systems, such as data centers, typically perform a number of business operations. A data center, sometimes referred to as a server room, is a physical or virtual central repository for storing, managing, and distributing data associated with one or more operations. The distributed storage system may connect to client computers interconnected by one or more networks. Poor performance of any part of a distributed storage system can impair the operation of the company. Therefore, it maintains high standards for distributed storage systems, data availability and high performance functionality.
Software applications such as logical volume managers or disk array managers provide a means of allocating space on mass storage arrays. In addition, the software allows system administrators to create units in storage groups that include logical volumes. Storage virtualization extracts logical storage from physical storage, allowing end users to access logical storage without identifying the physical storage.
To support storage virtualization, the volume manager makes new input / output (I / O) requests from end users using logical addresses, using addresses related to their physical location within the storage device. Perform I / O redirection by translating into the request of. Since some storage devices may include additional address translation mechanisms, such as an address translation layer that may be used within a solid state storage device, translation from a logical address to another address described above is the only or final. It may not represent a typical address translation.
For many storage systems, volume operations can be performed frequently. For example, many volumes can be created and deleted daily. Users sometimes inadvertently delete a volume and find that they want to restore it. However, in a conventional storage system, once a volume is deleted, it is impossible to restore the deleted volume.
In view of the above, there is a demand for systems and methods that can restore deleted volumes.
<p> Consider various embodiments of systems and methods for performing volume inversion operations.</p>
<p> The storage system may include a storage controller and one or more storage devices. This storage system may be connected to one or more host and client systems. In one embodiment, the storage controller utilizes volumes and media to track client data stored within the storage system. Media are defined as logical groupings of data, and each medium has an identifier to identify the logical grouping of data.</p><p> The storage controller can map each volume to a single medium by maintaining a volume-medium mapping table, which is called the volume's anchor medium. Each medium can be mapped to any number of other media, the storage controller can also track the relationship between the anchor medium and the underlying medium by maintaining a media mapping table, and each underlying medium snaps. Represents a shot.</p><p> In one embodiment, the storage controller may be configured to invert the volume operation. The storage controller may receive the first request to delete the first volume. The first volume may have a first medium as its anchor medium. In response to receiving the first request, the storage controller may remove the link between the first volume and the first medium. The storage controller may delay the deletion of the first medium over a first period of time or until the storage space utilized by the first medium is needed to store the other data. The first period may be programmable and may vary from embodiment to embodiment. The storage controller may also temporarily store an indicator of a past link between the first volume and the first medium in case the user wants to restore this link.</p><p> At a later point, the user may want to restore the first volume. The user may generate a second request to restore the first volume and send this second request to the storage controller. In one embodiment, in response to receiving a second request, the storage controller may restore the link between the first volume and the first medium. In another embodiment, in response to the reception of the second request, the storage controller generates a second medium, stores an indicator that the first medium is underneath the second medium, and then the second. You may create a link between the first volume and the second volume. In this embodiment, changes to the reconnected volume can be distinguished from changes that precede disconnection.</p><p> These and other embodiments will become apparent by considering the following description and accompanying drawings.</p>
<figref num="1">FIG. 1 is a schematic block diagram showing an embodiment of a storage system.</figref><figref num="2">FIG. 2 is a schematic block diagram of an embodiment of a directed acyclic graph (DAG) of a medium.</figref><figref num="3">FIG. 3 shows an embodiment of the medium mapping table.</figref><figref num="4">FIG. 4 shows an embodiment of an operation for deleting and restoring a volume.</figref><figref num="5">FIG. 5 shows an embodiment of an alternative operation for restoring a deleted volume.</figref><figref num="6">FIG. 6 is a schematic flow chart showing an embodiment of a method for canceling the volume operation.</figref><figref num="7">FIG. 7 is a schematic flow diagram showing an embodiment of an alternative method for restoring a deleted volume.</figref>
Although the present invention allows for various modifications and alternatives, a plurality of specific embodiments will be shown in the drawings as examples and will be described in detail herein. However, the drawings and detailed description thereof are not intended to limit the invention to the particular embodiments disclosed in this application, and conversely, the invention is defined by the appended claims. It should be understood that all modifications, equivalents and alternatives within the spirit and scope of the present invention can be included.
In the following description, a number of specific details are given to provide a complete understanding of the present invention. However, those skilled in the art should recognize that the present invention may be practiced without these specific details. For example, known circuits, structures, signals, computer program instructions, and techniques are not shown in detail to avoid obscuring the present invention.
Here, referring to FIG. 1, a schematic block diagram of an embodiment of the storage system 100 is shown. The storage system 100 may include a storage controller 110 and storage device groups 130 and 140, and the storage device groups 130 and 140 are representative examples of any number of storage device groups (or data storage arrays). As illustrated, storage device group 130 includes storage devices 135A-N, which are any number and type of storage device (eg, solid-state). drive: SDD)) is a typical example. The storage controller 110 may be directly connected to the client computer system 125, and the storage controller 110 may be connected to the client computer system 115 via the network 120 in a state of being separated from the client computer system 115. Clients 115 and 125 are representative examples of any number of clients that can use the storage controller 110 to store and access data in system 100. Note that some systems may include only a single client connected directly or remotely to the storage controller 110.
The storage controller 110 may include software and / or hardware configured to provide access to storage devices 135A-N. Although the storage controller 110 is shown as being separated from the storage device groups 130 and 140, in some embodiments, the storage controller 110 is arranged in one or each of the storage device groups 130 and 140. Good. The storage controller 110 may include, or may be connected to, an operating system (OS), a volume manager, and additional control logic for implementing the various techniques disclosed herein.
Depending on the embodiment, the storage controller 110 may include any number of processors and / or may run on any number of processors, and may include a single host computing device, and / Or it may run on a single host computing device or may be distributed across multiple host computing devices. In some embodiments, the storage controller 110 generally includes one or more file servers and / or block servers, or may be run on one or more file servers and / or block servers. The storage controller 110 uses any of a variety of techniques for replicating data across devices 135A-N to prevent data loss due to bad device or bad storage location within the device. Good. The storage controller 110 may also utilize any of a variety of fine-grained deduplication techniques to reduce the amount of data stored in devices 135A-N by deduplicating common data segments.
The storage controller 110 may also be configured to generate and manage snapshots within system 100. Therefore, the set of media is recorded and maintained by the storage controller 110. Most of the media may be read-only, except for one or more selected media, such as the latest media in which a particular volume is in use. Read-only media represents snapshots that have already been generated. Each medium logically includes all blocks within the medium. However, only the blocks that have changed from the time the medium was created to the time the medium was closed are preserved, and mappings to these blocks may be maintained using the medium.
In various embodiments, the storage controller 110 may maintain a plurality of mapping tables. These mapping tables may include a medium mapping table, a volume-to-medium mapping table, an address translation table, a deduplication table, an overlay table and / or other tables. In some embodiments, the information stored in two or more of these tables may be combined into a single table. The media mapping table may be used to record and maintain the mapping between the medium and the underlying medium and the mapping between the volume and the medium, and the volume-to-medium mapping table may be used to record and maintain the volume and medium. The mapping between may be recorded and maintained.
The address translation table may include an address translation table with multiple entries, each entry holding a virtual-physical mapping for the corresponding data component. This mapping table can be used to map logical read / write requests from client computer systems 115, 125 to physical locations within storage devices 135A-N. The "physical" pointer value may be read from the mapping associated with a given medium during the search operation corresponding to the received read / write request. Subsequently, this physical pointer value may be used to position the physical position within the storage devices 135A to N. The physical pointer value may be used to access another mapping table in a predetermined storage device among the storage devices 135A to N. As a result, one or more level indirect references can exist between the physical pointer value and the target storage location.
In various embodiments, the address translation table may be accessed using a key that includes a medium ID, a logical or virtual address, a sector number, and the like. Received read / write storage access requests may identify specific volumes, sectors and lengths. The volume ID may be mapped to the medium ID using the volume-media mapping table. A sector may be a logical block of data stored in a medium. Sectors may have different sizes in different media. The address translation table may map the medium as a sector-sized unit. In one embodiment, the key value for accessing the address translation table may be a combination of the medium ID and the received sector number. A key is an entity in a mapping table that distinguishes one row of data from another. In other embodiments, other types of address translation tables may be utilized.
In one embodiment, the address translation table may map media to physical pointer values. Depending on the embodiment, the physical pointer value may be a physical or logical address that the storage device maps to a physical location within the device. In one embodiment, an index may be used to access the address translation table. This index may identify the location of the mapping in the address translation table. The index may be queried using the key value generated from the medium ID and sector number, and the index may be searched for one or more entries that match the key value or otherwise correspond. The information from the conforming entry may then be used to place and obtain a mapping that identifies the storage location that is the target of the received read or write request. In one embodiment, a hit in the index provides a corresponding virtual page ID that identifies the page in the storage device of the storage system, and the page stores both the key value and the corresponding physical pointer value. .. You can then search this page using the key value to find the physical pointer value.
The deduplication table may contain information used to deduplication data at the fine grain level. The information stored in the deduplication table is for one or more hash values calculated for a given data component and the physical location within one of the storage devices 135A-N that holds the given data component. It may include a mapping to and from a physical pointer. Further, the deduplication table may store the length of the predetermined data component and the status information regarding the corresponding entry. Note that in some embodiments, there may be one or more levels of indirect reference between the physical pointer value and the corresponding physical storage location. Thus, in these embodiments, physical pointers can be used to access another mapping table within a given storage device of storage devices 135A-N.
The storage controller 110 may be configured to restore the deleted volume if the user decides that the volume has been accidentally deleted. In one embodiment, the storage controller 110 may delete a volume by deleting the entry corresponding to the volume in the volume-to-medium mapping table. This will remove the link between the volume and its anchor medium. The storage controller may also store an indicator of past mappings between the deleted volume and its anchor medium. This mapping may be stored in a log, table or another location, depending on the embodiment. Then, at a later point, when the user requests the restoration of the deleted volume, the storage controller takes the mapping and uses it to regenerate the link between the deleted volume and its anchor medium. You can. When this link is regenerated, it effectively restores the deleted volume to its past state.
In the alternative embodiment, the number and type of the client computer, the storage controller, the network, the storage device group, and the data storage device are not limited to those shown in FIG. At various times, one or more clients can operate offline. Further, during operation, individual client computer connection types may be changed as the user connects, disconnects, and reconnects to the system 100. Further, the systems and methods described herein may be applied to a direct connection storage system or a network connection storage system and are configured to perform one or more aspects of the methods described herein. May include the host operating system. Many such alternatives are possible and are the subject of consideration.
Network 120: Wireless connections; direct local area network (LAN) connections; various technologies including wide area network (WAN) connections such as the Internet, routers, storage area networks, Ethernet®, etc. You may use. The network 120 may include one or more LANs, which may be wireless. Network 120 also includes remote direct memory access (RDMA) hardware and / or software, transmission control protocol / internet protocol (TCP / IP) hardware and / or software, It may include routers, repeaters, switches and / or grids and / or others. Fiber Channel, Fiber Channel over Ethernet Protocols such as Ethernet: FCoE) and iSCSI may be used in network 120. The network 120 may interface with a set of communication protocols used for the Internet, such as Transmission Control Protocol (TCP) and Internet Protocol (IP), ie TCP / IP.
Client computers 115 and 125 include desktop personal computers (PCs), servers, server farms, workstations, laptops, handheld computers, servers, and personal digital assistants. This is a typical example of any number of stationary or mobile computers such as assistants: PDAs) and smartphones. Client computer systems 115, 125 generally include one or more processors with one or more processor cores. Each processor core contains a circuit configuration for executing instructions according to a predefined set of general instructions. For example, you may choose the x86 instruction set architecture. Alternatively, ARM®, Alpha®, PowerPC®, SPARC® or any other general-purpose instruction set architecture may be selected. The processor core may access the cache memory subsystem for data and computer program instructions. The cache subsystem may be connected to a memory hierarchy that includes random access memory (RAM) and storage devices.
With reference to FIG. 2, a block diagram showing a directed acyclic graph (DAG) 200 of the medium is shown. FIG. 2 also shows the volume-to-medium mapping table 205, which shows, for each volume, to which medium the volume is mapped while being used by the storage system. The volume can be a possible pointer to Graph 200.
The term "medium" as used herein is defined as a logical grouping of data. The medium may have a corresponding identifier to identify the logical grouping of data. Each medium may also include or be associated with a logical block number mapping for content location, deduplication entries and other information. In one embodiment, the media identifier may be used by the storage controller, but the media identifier does not have to be user controlled. The user (or client) may send a data request associated with the volume ID to identify which data this request targets, and the storage controller maps the volume ID to the media ID. The media ID may be used in processing the above request.
The term "medium" should not be confused with the term "storage medium" or "computer readable storage medium". A storage medium is defined as an actual physical device (eg SSD, HDD) used to store data. A computer-readable storage medium (or non-temporary computer-readable storage medium) is defined as a physical storage medium configured to store program instructions that a processor or other hardware device can execute. Various types of program instructions that implement the methods and / or mechanisms described herein may be transported or stored on a computer-readable medium. There are many types of media available that are configured to store program instructions, including optical discs, floppy (registered trademark) disks, CD-ROMs, DVDs, flash memory, programmable ROM (Programmable ROM), and Programmable ROM (PROM). Includes random access memory (RAM) and various other forms of volatile or non-volatile storage.
It should also be noted that the term "volume to medium mapping table" may refer to multiple tables rather than just a single table. Similarly, the term "medium mapping table" may refer to multiple tables rather than just a single table. Further note that the volume-to-medium mapping table 205 is just one example of a volume-to-medium mapping table. Other volume-to-medium mapping tables may have different numbers of entries for different numbers of volumes.
Each medium is shown in Graph 200 as three combined boxes, the left box shows the medium ID, the center box shows the underlying medium, and the right box shows the medium status (RO: read-only). only))) or (RW: read-write). Read-write media may be referred to as active media, and read-only media may represent snapshots that have already been generated. Within Graph 200, the medium refers to the underlying medium. For example, medium 20 refers to medium 12, which indicates that medium 12 is a lower layer medium of medium 20. Further, the medium 12 refers to the medium 10, the medium 10 refers to the medium 5, and the medium 5 refers to the medium 1. Some media are the underlying media for two or more higher-order media. For example, three separate media (12, 17, 11) refer to medium 10, two separate media (18, 10) refer to medium 5, and two separate media (6, 5) refer to medium 1. .. Each underlying medium for at least one higher order medium has a read-only status.
The set of media in the lower left of Graph 200 is an example of a linear set. As shown in Graph 200, medium 3 is generated first, followed by snapshots, resulting in stable medium 3 (ie, from this point onwards, the search results for a given block in medium 3 are always the same. Will return a value). Medium 7 is generated using medium 3 as the underlying medium. Any block written after the medium 3 stabilizes is labeled as being in the medium 7. The search for the medium 7 returns the value from the medium 7 when the value is found in the medium 7, but searches the medium 3 when the block is not found in the medium 7. After that, a snapshot of the medium 7 is executed, the medium 7 becomes stable, and the medium 14 is generated. By searching for blocks in medium 14, medium 7 and then medium 3 are inspected to find the target logic block. Finally, a snapshot of the medium 14 is performed, the medium 14 becomes stable, and the medium 15 is generated. At this point in Graph 200, the medium 14 is stabilized by writing to the volume 102 towards the medium 15.
Volume-to-medium mapping table 205 maps user-managed volumes to media. Each volume may be mapped to a single medium, also known as an anchor medium. This anchor medium, like all other media, may process its own search. A medium on which multiple volumes depend (eg, medium 10) tracks its own blocks separately from the volumes on which these blocks depend. Each medium may be decomposed into blocks, and each range may be processed separately within the DAG200 of the medium.
Here, with reference to FIG. 3, an embodiment of the medium mapping table 300 is shown. Any part or all of the medium mapping table 300 may be stored in one or more of the storage controllers 110 and / or the storage devices 135A-N. The volume identifier (ID) may be used to access the volume-to-medium mapping table 205 to determine the media ID that corresponds to this volume ID. This media ID may then be used to access the media mapping table 300. Note that the table 300 is merely an example of a media mapping table, and in other embodiments, different media mapping tables with different numbers of entries may be used. In yet other embodiments, the medium mapping table may include other attributes and may be organized in a manner different from that shown in FIG. Also note that mapping table information may be stored using any suitable data structure (eg B-tree, binary tree, hash table, etc.) to provide efficient retrieval. All of these data structures are the subject of consideration.
As shown in the left column of the table 300, each medium may be identified by the medium ID. Each entry in Table 300 may also include a range attribute, which range may relate to a data block. The size of the blocks of data (eg 4KB, 8KB) can vary depending on the embodiment. The medium may be decomposed into multiple ranges and each range of the medium may be treated as if it were an independent medium with unique attributes and mappings. For example, medium ID 2 has two separate ranges. The range 0-99 of the medium ID 2 has entries in table 300 that are separated from the entries for the range 100-999 of the medium ID 2.
Both of these ranges of medium ID2 are mapped to lower layer medium ID1, but different ranges of the same source medium can also be mapped to different lower layer media. For example, map a separate range of medium ID 35 to a separate underlying medium. For example, the range 0 to 299 of the medium ID 35 is mapped to the lower medium ID 18 with an offset of 400. This indicates that blocks 0 to 299 of medium ID 35 are mapped to blocks 400 to 699 of medium ID 18. Further, the range 300 to 499 of the medium ID 35 is mapped to the lower layer medium ID 33 with an offset of ~ 300, and the range 500 to 899 of the medium ID 35 is mapped to the lower layer medium ID 5 with an offset of ~ 400. These entries indicate that blocks 300-499 of media ID 35 are mapped to blocks 0-199 of media ID 33 and blocks 500-899 of media ID 35 are mapped to blocks 100-499 of media ID 5. .. In other embodiments, the medium may be decomposed into four or more ranges.
The "Status" column of Table 300 records information that allows the search for blocks to be performed more efficiently. The state "Q" indicates that the medium is quiescent, "R" indicates that the medium is registered, and "U" indicates that the medium is unmasked. Show that. In the quiescent state, the search is performed on only one or two media identified in Table 300. In the registered state, the search is executed recursively. The unmasked state determines whether the search should be performed in the basal medium or only in the underlying medium. Although not shown in Table 300 for any entry, another state "X" may be used to identify the source medium as unmapped. This unmapped state indicates that the source medium contains no reachable data and can be discarded. This unmapped state may apply to a range of source media. If the entire medium is in an unmapped state, the medium ID may be entered in the sequence invalidation table and eventually discarded.
In one embodiment, when a medium is generated, the medium is in a registered state if it has a lower layer medium, or is stationary if the medium is a new volume that does not have an existing state. It becomes a state. When writing is done on the medium, part of this medium can be in an unmasked state and there are mappings within the medium itself and the underlying medium. This can be done by splitting a single range into multiple range entries, some of which are retained in the initial masked state and others are recorded as unmasked. To.
In addition, each entry in Table 300 may contain a basis attribute, which indicates the basis of the medium, which in this case refers to the source medium itself. Each entry may also include an offset field, which identifies the offset to be applied to the block's address when mapping to the source medium with respect to the underlying medium. This allows the medium to be configured not only from the starting block of the underlayer medium to the top of the underlayer medium, but also to other positions within the underlayer medium. As shown in Table 300, medium 8 has an offset of 500, which indicates that block 0 of medium 8 is mapped to block 500 of the underlying medium (medium 1). Therefore, the search for medium 1 by medium 8 adds an offset of 500 to the initial block number of the request. The "offset" line allows the medium to consist of multiple media. For example, in one embodiment, the medium consists of a "gold master" operating system image and a scratch space per VM (virtual machine). Other flexible mappings are possible and are subject to consideration.
Each entry also contains a lower medium attribute, which indicates the lower medium of the source medium. If the underlying medium (similar to medium 1) refers to the source medium, this indicates that the source medium has no underlying medium and all searches are performed on the source medium only. Each entry also contains a stability attribute, "Y" (yes: yes) indicates that the medium is stable (or read-only), and "N" (no: no) indicates that the medium is readable and writable. Is shown. In a stable medium, the data corresponding to a given block in the medium does not change, but the mapping that produces this data can change. For example, medium 2 is stable, but block 50 of medium 2 may be recorded on medium 2 or medium 1, and medium 2 and medium 1 may be logically searched in this order, but this search may be performed logically in this order. It may be executed in parallel. In one embodiment, the medium is stable when it is used as a lower layer medium by any medium other than itself.
Moving to FIG. 4, one embodiment of the operation of deleting and restoring the volume is shown. The user may want to delete a predetermined volume, and the request for deleting the predetermined volume may be transmitted to the storage controller. The volume to be deleted is represented by volume 410 in FIG. Prior to performing this delete operation, there may be an entry corresponding to volume 410 in the volume-to-medium mapping table 425A, which records that medium 415 is the anchor medium for volume 410. Good. For the purposes of this discussion, medium 415 is considered to have a lower layer medium, which lower layer medium is shown as medium 420. The medium 420 may or may not have a lower layer medium depending on the situation. In some cases, the medium 415 does not have to have a lower layer medium.
The storage controller records the past mapping of volume 410 to anchor medium 415 in deleted volume table 430 and deletes the entry corresponding to volume 410 in volume-to-medium mapping table 425B to remove volume 410. You may perform a delete operation. The volume and anchor medium numbers are cleared in the volume-media mapping table 425B, which indicates that this entry has been deleted from table 425B. The block diagram also shows that the volume 410 has been deleted to show that the volume 410 has been deleted and that the link between the volume 410 and the medium 415 no longer exists.
If the entry corresponding to volume 410 is removed from volume-to-medium mapping table 425B, this effectively removes volume 410 from the storage system. As a result of the removal of volume 410, its anchor medium (medium 415) becomes stable. The deleted volume table 430 is a type of storage structure that can be used to store information about deleted volumes and past connections between deleted volumes and anchor media. In other embodiments, other types of structures and other methods of storing this information may be utilized. By storing this information, it is possible to perform a restore operation of the deleted volume at a later point in time. Further, entries in the medium mapping table (not shown) corresponding to medium 415, medium 420 and any other underlying medium may be retained after the delete operation. The storage controller may hold the medium 415 for a period of time after the delete operation is performed. In some cases, if the other volume uses the medium 415 or if the other medium uses the medium 415 as the underlying medium, the medium 415 will be retained indefinitely.
At any point after the deletion operation of volume 410 is executed, the user may request the restoration operation of volume 410. The storage controller may restore volume 410 based on the information stored in deleted volume table 430. The dotted box at the bottom of Figure 4 shows the status of the volume-media mapping table 425C after performing the restore operation. The restore operation reconnects volume 410 to medium 415. In other words, the restore operation restores the volume 410 to the state before the delete operation was executed. The status of medium 415 can also be updated from stable to active at this point.
Generally, the storage controller may hold the deleted volume linkage information for the shortest period after the predetermined volume deletion operation. Alternatively, the storage controller may retain the deleted volume linkage information until space is needed to store other data. After the storage controller waits for this specific period, the cooperation information corresponding to the predetermined volume may be deleted. At this point, the storage controller may immediately reuse a given anchor medium for this deleted volume, or the storage controller waits until a later point in time, which is more convenient for reusing the given anchor medium. You can do it. In some cases, the storage controller may wait for the reuse of the predetermined anchor medium until space is needed for storing other data. Any lower layer medium of this predetermined anchor medium may also be reused if it is not utilized by another volume or medium.
Here, with reference to FIG. 5, an embodiment of an alternative operation for restoring a deleted volume is shown. In this embodiment, the operation for restoring a previously deleted volume 410 involves generating a new medium (medium 505) after receiving a request to restore the volume 410. Then, for the medium 505, a new entry may be generated in the medium mapping table 515, and an indicator that the medium 415 is under the medium 505 may be stored in this new entry. An existing entry for medium 415 is also shown in the medium mapping table 515, which shows medium 420 as the underlying medium of medium 415.
Also, a new entry may be generated in the volume-to-medium mapping table 525, and medium 505 may be recorded in this entry as the anchor medium of medium 410. As can be seen from FIG. 5, after the restore operation, volume 410 points to medium 505 and medium 505 points to medium 415. By generating medium 505 and placing medium 505 between volume 410 and its past anchor medium (medium 415), the storage controller can make any changes that occur to volume 410 after restoration of volume 410. It is definitely distinguishable from changes that occurred before volume 410 was deleted.
Here, with reference to FIG. 6, an embodiment of the method 600 for canceling the volume operation is shown. The components integrated into the system 100 described above (eg, the storage controller 110) can generally operate according to method 600. Further, the steps of this embodiment are shown in order. However, in another embodiment, some steps may be performed in a different order than shown, some steps may be performed simultaneously, some steps may be combined with other steps, and some. That step does not have to exist.
The storage controller may receive a request to delete the first volume (block 605). In response to receiving this request, the storage controller may determine the anchor medium for the first volume (block 610). The storage controller may determine the anchor medium from the entry corresponding to the first volume in the volume-to-medium mapping table. For the purposes of this discussion, the anchor medium of the first volume may be referred to as the "first medium". The storage controller may then store an indicator of the mapping between the first volume and the first medium (block 615). In one embodiment, this mapping may be stored in the deleted volume table. In other embodiments, this mapping may be stored in any other suitable structure (eg, log file). In one embodiment, this mapping may be retained for a period of time after the first volume has been deleted. The storage controller is configured to hold this mapping for an appropriate period of time so that the first volume can be restored if the user wishes to restore the first volume. After this period, the mapping may be deleted. In another embodiment, the mapping may be retained indefinitely. Note that if you delete the mapping, the storage controller will not be able to restore the first volume to its past state.
The storage controller may then remove any indicator that the first volume is valid (block 620). By removing either indicator that the first volume is valid, the storage controller makes the first volume unavailable to the user. In one embodiment, the storage controller may remove any indicator that the first volume is valid by removing the entry corresponding to the first volume in the volume-to-medium mapping table. .. In other embodiments, other techniques may be used to maintain the mapping between the volume and the medium, other than storing this information in a table. In these embodiments, the storage controller may update the status of the first volume in any suitable manner. Also, after a period of time, the storage controller may mark the first medium as ready for reuse, followed by the first medium the next time a dust collection operation is performed. May be deleted. In some cases, the storage controller may prioritize the reuse of other types of free space before the deleted volume. For example, a storage controller may attempt to request unreachable space (by overwriting) before reclaiming space from a deleted volume. If the first medium is deleted, the storage controller cannot restore the first volume to its past state. However, the storage controller holds the first medium for a considerable period of time to allow this restore operation if the user requests a restore operation to restore the first volume to a past state. Good.
Then, after block 620, at a later point in time, the storage controller may receive a request to restore the first volume (block 625). For example, a user may find that he has accidentally deleted a first volume and therefore wants to restore this first volume to its past state. This request to restore the first volume can be expected to be received by the storage controller before the mapping of the first volume to the first medium is removed and before the first medium is removed. .. In response to receiving a request to restore the first volume, the storage controller may obtain the mapping corresponding to the first volume in the delete volume table (block 630). Using this acquired mapping, the storage controller may then generate an entry for the first volume in the volume-to-medium mapping table, which is the anchor medium for the first medium and the first volume. May be recorded as (block 635). By generating the above entry for the first volume in the volume-media mapping table, the storage controller restores the first volume to its past state. After block 635, method 600 may be terminated.
Here, with reference to FIG. 7, an embodiment of an alternative method 700 for recovering a deleted volume is shown. The components integrated into the system 100 described above (eg, the storage controller 110) can generally operate according to method 700. Further, the steps of this embodiment are shown in order. However, in another embodiment, some steps may be performed in a different order than shown, some steps may be performed simultaneously, some steps may be combined with other steps, and some. That step does not have to exist.
The storage controller may receive a request to restore a first volume that was previously deleted (block 705). In response to receiving this request, the storage controller may acquire the mapping corresponding to the first volume in the delete volume table (block 710). The obtained mapping may remember the identification of the anchor medium of the first volume before the first volume was deleted, and for the purposes of this discussion, this anchor medium is referred to as the "first medium". It's fine. The storage controller may also generate a new medium in response to receiving this request (block 715). For the purposes of this discussion, this new medium may be referred to as the "second medium." The storage controller may then generate a new entry in the media mapping table for the second medium (block 720). The storage controller may remember the indicator that the first medium is below the second medium in this new entry in the media mapping table (block 725).
The storage controller may also generate a new entry in the volume-to-medium mapping table for the first volume (block 730). The storage controller may record the second medium as the anchor medium for the first volume in this new entry in the volume-to-medium mapping table (block 735). Method 700 is an alternative implementation for restoring previously deleted volumes. In this alternative implementation, by creating a new medium and pointing the restored volume to this new volume, the storage controller makes changes to the restored volume before the volume is deleted. It can be reliably distinguished from any of the changes made.
The above-described embodiment may include software. In such an embodiment, program instructions that implement the method and / or mechanism may be transported or stored on a computer-readable medium. Many types of media are available that are configured to store program instructions, including hard disks, floppy disks, CD-ROMs, DVDs, flash memory, programmable ROM (PROM), random access memory (RAM), Includes various other forms of volatile or non-volatile storage.
In various embodiments, one or more parts of the methods and mechanisms described herein may form part of a cloud computing environment. In such an embodiment, resources may be provided over the Internet as needed according to one or more different models. Such models are Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (Software as a). Service: SaaS) may be included. IaaS provides computer infrastructure as needed. In such cases, the service provider generally owns and operates the computer equipment. In the PaaS model, the service provider may, as needed, provide and host the software tools and underlying equipment that developers use to develop software solutions. SaaS typically includes a service provider that authorizes software according to the service. The service provider may host the software or deploy the software to the customer for a predetermined period of time. Many combinations of the above models are possible and are the subject of consideration.
Although the above embodiments have been described in considerable detail, a full understanding of the above disclosure will reveal a number of modifications and modifications to those skilled in the art. The following claims are intended to be construed as including all of these modifications and modifications.
7 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| US20100042802A1 | Cites | United States of America |
| JP2007058264A | Cites | Japan |
57 members in 6 offices
Priority claims14
| Document | Office | Kind | Date |
|---|---|---|---|
| 201361751142 | United States of America | P | |
| 201361751142 | United States of America | P | |
| 61751142 | United States of America | – | |
| 14046878 | United States of America | – | |
| 201314046878 | United States of America | A | |
| 201314046878 | United States of America | A | |
| 2014011003 | United States of America | W | |
| 2014011003 | United States of America | W | |
| 14046878 | – | – | – |
| 61751142 | – | – | – |
| US201314046878 | – | – | – |
| US201361751142P | – | – | – |
| US2014011003 | – | – | – |
| WO2014US11003 | – | – | – |
Members57
| Document | Office | Kind | |
|---|---|---|---|
| US2014195551A1 | United States of America | A1 | |
| US2014195749A1 | United States of America | A1 | |
| US2014195754A1 | United States of America | A1 | |
| US2014195755A1 | United States of America | A1 | |
| US2014195762A1 | United States of America | A1 | |
| WO2014110137A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2014110158A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2014110266A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2014110311A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2014110343A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US9063967B2 | United States of America | B2 | |
| KR20150104604A | Republic of Korea | A | |
| KR20150104605A | Republic of Korea | A | |
| KR20150104606A | Republic of Korea | A | |
| CN105027068A | China | A | |
| CN105027069A | China | A | |
| CN105027070A | China | A | |
| EP2943870A1 | European Patent Office (EPO) | A1 | |
| EP2943871A1 | European Patent Office (EPO) | A1 | |
| EP2943872A1 | European Patent Office (EPO) | A1 | |
| JP2016508273A | Japan | A | |
| JP2016508275A | Japan | A | |
| JP2016510458A | Japan | A | |
| US9361035B1 | United States of America | B1 | |
| US9436720B2 | United States of America | B2 | |
| US9589008B2 | United States of America | B2 | |
| US9646039B2 | United States of America | B2 | |
| US9760313B1 | United States of America | B1 | |
| US9880779B1 | United States of America | B1 | |
| US9891858B1 | United States of America | B1 | |
| CN105027070B | China | B | |
| US10013317B1 | United States of America | B1 | |
| CN105027068B | China | B | |
| JP6445458B2 | Japan | B2 | |
| US10235093B1 | United States of America | B1 | |
| US2019179535A1 | United States of America | A1 | |
| JP2019096355A | Japan | A | |
| JP6543195B2 | Japan | B2 | |
| US10585617B1 | United States of America | B1 | |
| CN105027069B | China | B | |
| JP6767115B2This record | Japan | B2 | |
| US10908835B1 | United States of America | B1 | |
| US2021247906A1 | United States of America | A1 | |
| US11099769B1 | United States of America | B1 | |
| US2021263651A1 | United States of America | A1 | |
| US2021382625A1 | United States of America | A1 | |
| US11573727B1 | United States of America | B1 | |
| US11662936B2 | United States of America | B2 | |
| US11733908B2 | United States of America | B2 | |
| US2023273743A1 | United States of America | A1 | |
| US11768623B2 | United States of America | B2 | |
| US2023384963A1 | United States of America | A1 | |
| US2023384965A1 | United States of America | A1 | |
| US11853584B1 | United States of America | B1 | |
| US12099741B2 | United States of America | B2 | |
| US2025028472A1 | United States of America | A1 | |
| US12443359B2 | United States of America | B2 |
29 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| Written request for extension of timeJAPANESE INTERMEDIATE CODE: A601A601 | A601 | |
| Trial/appeal decision takenAppealJAPANESE INTERMEDIATE CODE: C03C03 | C03 | |
| Notification sentJAPANESE INTERMEDIATE CODE: C3012C30A | C30A | |
| Notice of termination of proceedingsJAPANESE INTERMEDIATE CODE: C23C23 | C23 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Record of communicationJAPANESE INTERMEDIATE CODE: C302C302 | C302 | |
| Notice of reasons for refusalJAPANESE INTERMEDIATE CODE: C13C13 | C13 | |
| Notice of designation (change) of administrative judgeJAPANESE INTERMEDIATE CODE: C22C22 | C22 | |
| Notice of designation (change) of administrative judgeJAPANESE INTERMEDIATE CODE: C22C22 | C22 | |
| Notice of termination of reconsideration by examiners before appeal proceedingsAppealJAPANESE INTERMEDIATE CODE: C211C211 | C211 | |
| Re-examination (zenchi) completed and case transferred to appeal boardAppealJAPANESE INTERMEDIATE CODE: A912A912 | A912 | |
| Transfer to examiner for re-examination before appeal (zenchi)AppealJAPANESE INTERMEDIATE CODE: A911A911 | A911 | |
| Notice of transfer of a case for reconsideration by examiners before appeal proceedingsAppealJAPANESE INTERMEDIATE CODE: C21C21 | C21 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Trial request (containing other claim documents, opposition documents)OppositionJAPANESE INTERMEDIATE CODE: C60C60 | C60 | |
| Decision of refusalJAPANESE INTERMEDIATE CODE: A02A02 | A02 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A821A521 | A521 | |
| Notification of resignation of power of attorneyJAPANESE INTERMEDIATE CODE: A7424RD04 | RD04 | |
| Notification of appointment of power of attorneyJAPANESE INTERMEDIATE CODE: A7423RD03 | RD03 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Report on retrievalJAPANESE INTERMEDIATE CODE: A971007A977 | A977 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 |
Numbers
- Publication
- 6767115
- Publication, DOCDB
- 6767115
- Publication, EPODOC
- JP6767115B
- Application
- 2015552796
- Application, DOCDB
- 2015552796
- Application, EPODOC
- JP20150552796
Titles2
- Japanese
- ボリューム動作のための安全装置
- English
- Safety device for volume operation
Classification
- CPC, 33
- G06F3/065
- G06F3/0608
- G06F3/061
- G06F3/0611
- G06F3/0664
- G06F3/0667
- G06F3/0689
- G06F3/0605
- G06F16/23
- G06F16/1748
- G06F3/0641
- G06F3/067
- G06F3/0683
- G06F3/0626
- G06F3/0652
- G06F3/0665
- G06F3/0619
- G06F3/0614
- G06F3/0671
- G06F3/0655
- G06F3/0685
- G06F3/0604
- G06F3/0632
- G06F3/0644
- G06F2212/1008
- G06F2212/1044
- G06F3/0673
- G06F2212/1016
- G06F2212/1032
- G06F2212/154
- G06F2212/163
- G06F2212/261
- G06F2212/263
- IPC, 2
- G06F3 06
- G06F16 13
