Snapshot creation workflow
First Claim
1. A method comprising:
- receiving a first write request directed towards a first logical unit (LUN), the first write request having a data, a logical block address (LBA) and a length representing an address range of the first LUN, the LBA and the length mapped to a first volume associated with the first LUN, the first write request processed at a storage system having a memory and attached to a storage array;
receiving a second write request directed to the first LUN;
in response to receiving a snapshot request from a host, initiating a first barrier on the first volume such that the second write request is blocked;
flushing the first write request by associating a key with the data;
storing the key in a metadata entry included in a metadata structure, the metadata entry associated with the address range; and
creating a first snapshot of the first volume.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique efficiently creates a snapshot for a logical unit (LUN) served by a storage input/output (I/O) stack executing on a node of a cluster that organizes data as extents referenced by keys. In addition, the technique efficiently creates one or more snapshots for a group of LUNs organized as a consistency group (CG) and served by storage I/O stacks executing on a plurality of nodes of the cluster. To that end, the technique involves a plurality of indivisible operations (i.e., transactions) of a snapshot creation workflow administered by a Storage Area Network (SAN) administration layer (SAL) of the storage I/O stack in response to a snapshot create request issued by a host. The SAL administers the snapshot creation workflow by initiating a set of transactions that includes, inter alia, (i) installation of barriers for LUNs (volumes) across all nodes in the cluster that participate in snapshot creation, (ii) creation of point-in-time (PIT) markers to record those I/O requests that are included in the snapshot, and (iii) updating of records (entries) in snapshot and volume tables of a cluster database (CDB).
467 Citations
20 Claims
-
1. A method comprising:
-
receiving a first write request directed towards a first logical unit (LUN), the first write request having a data, a logical block address (LBA) and a length representing an address range of the first LUN, the LBA and the length mapped to a first volume associated with the first LUN, the first write request processed at a storage system having a memory and attached to a storage array; receiving a second write request directed to the first LUN; in response to receiving a snapshot request from a host, initiating a first barrier on the first volume such that the second write request is blocked; flushing the first write request by associating a key with the data; storing the key in a metadata entry included in a metadata structure, the metadata entry associated with the address range; and creating a first snapshot of the first volume. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system comprising:
-
a cluster having a plurality of nodes; a storage array coupled to the cluster; a first instance of a storage I/O stack executing on a first node of the cluster, the first instance of the storage I/O stack configured to; receive a first write request directed towards a first logical unit (LUN), the first write request having a data, a logical block address (LBA) and a length representing an address range of the first LUN, the LBA and the length mapped to a volume associated with the first LUN; a second instance of the storage I/O stack executing on a second node of the cluster, the second instance of the storage I/O stack when configured to; receive a second write request directed to a second LUN; associate the first and second LUNs with a group; in response to receiving a snapshot request for the group from a host, send a barrier message to the first node to establish a first barrier on the volume and initiating a second barrier on the volume at the second node; determine whether the first and second barriers are established; and in response to determining that the first and second barriers are established, create snapshots of the first and second LUNs.
-
-
11. A system comprising:
-
a storage system having a memory connected to a processor via a bus; a storage array coupled to the storage system; a storage I/O stack executing on the processor of the storage system, the storage I/O stack configured to; receive a first write request directed towards a first logical unit (LUN), the first write request having a data, a logical block address (LBA) and a length representing an address range of the first LUN, the LBA and the length mapped to a first volume associated with the first LUN; receive a second write request directed to the first LUN; in response to receiving a snapshot request from a host, initiate a first barrier on the first volume such that the second write request is blocked; flush the first write request by associating a key with the data; store the key in a metadata entry included in a metadata structure, the metadata entry associated with the address range; and create a first snapshot of the first volume. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification