# US 2025/0094072 A1 · Storage replication group membership updates based on performance considerations

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2025/0094072 A1
- Document ID: US20250094072A1
- Status: Published application
- Kind: A1
- Application number: 18/901,211
- Filed: 2024-09-30
- Published: 2025-03-20
- Earliest claimed: 2017-12-07
- Assignees: Pure Storage, Inc.
- Applicants: Pure Storage, Inc.
- Inventors: TAHER VOHRA
- Web page: https://patentgrep.com/patent/US20250094072A1

## CPC

- G06F 3/0647: {Migration mechanisms}
- G06F 3/0649: {Lifecycle management}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0683: {Plurality of storage devices}
- G06F 12/0804: with main memory updating (G06F12/0806 takes precedence)
- G06F 2212/1032: Reliability improvement, data loss prevention, degraded operation etc
- G06F 2212/2022: Flash memory
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Volume migration among a set of storage systems synchronously replicating a dataset for a volume, where volume migration includes: initiating a transfer of the volume in dependence upon determining that a performance metric for accessing the volume stored on a first storage system would improve if transferred to a second storage system; and during the transfer of the volume: determining status information for the transfer; intercepting an I/O operation directed to the volume; and directing, in dependence upon the status information, the I/O operation to either the first storage system or the second storage system.

## Claims

### Claim at position 1

1-20. (canceled)

### Claim 21

A method comprising:
including, based on performance considerations associated with accessing a dataset, a second storage system in a plurality of storage systems that includes a first storage system that stores the dataset; and
initiating a transfer of the dataset from the first storage system to the second storage system, wherein a recipient of an I/O operation received after the initiation is selected from the first storage system or the second storage system.

### Claim 22 (depends on 21)

The method of claim 21, further comprising:
monitoring the first storage system to generate one or more performance metrics, wherein the one or more performance metrics include one or more of network bandwidth capacity, network latency, storage capacity, software configuration, hardware configuration, or I/O latency; and
selecting, in dependence upon the one or more performance metrics, the first storage system as a migration source for the dataset.

### Claim 23 (depends on 22)

The method of claim 22, further comprising:
receiving state information for one or more storage systems that are not included in a set of storage systems synchronously replicating the dataset, wherein the second storage system is included within the one or more storage systems;
ranking, in dependence upon the state information for the one or more storage systems, the one or more storage systems according to a respective performance capability, wherein the respective performance capability is based on one or more of network bandwidth capacity, network latency, storage capacity, software configuration, hardware configuration, or I/O latency; and
selecting, in dependence upon ranking the one or more storage systems, the second storage system as a migration target for the dataset.

### Claim 24 (depends on 23)

The method of claim 23, further comprising comparing state information for the one or more storage systems and the one or more performance metrics for the first storage system.

### Claim 25 (depends on 21)

The method of claim 21, wherein an agent executing on a host computer performs determining status information for the transfer, intercepting the I/O operation directed to the dataset, and directing, in dependence upon the status information, the I/O operation to either the first storage system or the second storage system.

### Claim 26 (depends on 23)

The method of claim 23, wherein the set of storage systems synchronously replicating the dataset are included in a membership list of in-sync members of a pod that is respectively stored on each of the set of storage systems, and wherein the pod comprises a management entity representing the dataset, a set of managed objects, and a set of management operations.

### Claim 27 (depends on 26)

The method of claim 26, wherein initiating transfer of the dataset is performed in response to stretching the pod to include the second storage system, wherein stretching the pod comprises synchronizing the second storage system with the set of storage systems.

### Claim 28 (depends on 21)

The method of claim 21, wherein the I/O operation is a read operation, and wherein initiating the transfer of the dataset comprises directing the I/O operation to the first storage system if target data of the read operation has not been migrated, and directing the I/O operation to the second storage system if the target data of the read operation has been migrated.

### Claim 29

An apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
including, based on performance considerations associated with accessing a dataset, a second storage system in a plurality of storage systems that includes a first storage system that stores the dataset; and
initiating a transfer of the dataset from the first storage system to the second storage system, wherein a recipient of an I/O operation received after the initiation is selected from the first storage system or the second storage system.

### Claim 30 (depends on 29)

The apparatus of claim 29, wherein the computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
monitoring the first storage system to generate one or more performance metrics, wherein the one or more performance metrics include one or more of network bandwidth capacity, network latency, storage capacity, software configuration, hardware configuration, or I/O latency; and
selecting, in dependence upon the one or more performance metrics, the first storage system as a migration source for the dataset.

### Claim 31 (depends on 30)

The apparatus of claim 30, wherein the computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
receiving state information for one or more storage systems that are not included in a set of storage systems synchronously replicating the dataset, wherein the second storage system is included within the one or more storage systems;
ranking, in dependence upon the state information for the one or more storage systems, the one or more storage systems according to a respective performance capability, wherein the respective performance capability is based on one or more of network bandwidth capacity, network latency, storage capacity, software configuration, hardware configuration, or I/O latency; and
selecting, in dependence upon ranking the one or more storage systems, the second storage system as a migration target for the dataset.

### Claim 32 (depends on 31)

The apparatus of claim 31, wherein the computer program instructions, when executed by the computer processor, cause the apparatus to carry out the step of comparing the state information for the one or more storage systems and the one or more performance metrics for the first storage system.

### Claim 33 (depends on 29)

The apparatus of claim 29, wherein an agent executing on a host computer performs determining status information for the transfer, intercepting the I/O operation directed to the dataset, and directing, in dependence upon the status information, the I/O operation to either the first storage system or the second storage system.

### Claim 34 (depends on 29)

The apparatus of claim 29, wherein the plurality of storage systems is included in a membership list of in-sync members of a pod that is respectively stored on each of the plurality of storage systems, and wherein the pod comprises a management entity representing the dataset, a set of managed objects, and a set of management operations.

### Claim 35 (depends on 34)

The apparatus of claim 34, wherein initiating transfer of the dataset is performed in response to stretching the pod to include the second storage system, wherein stretching the pod comprises synchronizing the second storage system with the plurality of storage systems.

### Claim 36 (depends on 29)

The apparatus of claim 29, wherein the I/O operation is a read operation, and wherein initiating transfer of the dataset comprises directing the I/O operation to the first storage system if target data of the read operation has not been migrated, and directing the I/O operation to the second storage system if the target data of the read operation has been migrated.

### Claim 37

A computer program product disposed upon a non-transitory computer readable medium, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:
including, based on performance considerations associated with accessing a dataset, a second storage system in a plurality of storage systems that includes a first storage system that stores the dataset; and
initiating a transfer of the dataset from the first storage system to the second storage system, wherein a recipient of an I/O operation received after the initiation is selected from the first storage system or the second storage system.

### Claim 38 (depends on 37)

The computer program product of claim 37, wherein the computer program instructions, when executed, further cause the computer to carry out the steps of:
monitoring the first storage system to generate one or more performance metrics, wherein the one or more performance metrics include one or more of network bandwidth capacity, network latency, storage capacity, software configuration, hardware configuration, or I/O latency; and
selecting, in dependence upon the one or more performance metrics, the first storage system as a migration source for the dataset.

### Claim 39 (depends on 38)

The computer program product of claim 38, wherein the computer program instructions, when executed, further cause the computer to carry out the steps of:
receiving state information for one or more storage systems that are not included in a set of storage systems synchronously replicating the dataset, wherein the second storage system is included within the one or more storage systems;
ranking, in dependence upon the state information for the one or more storage systems, the one or more storage systems according to a respective performance capability, wherein the respective performance capability is based on one or more of network bandwidth capacity, network latency, storage capacity, software configuration, hardware configuration, or I/O latency; and
selecting, in dependence upon ranking the one or more storage systems, the second storage system as a migration target for the dataset.

### Claim 40 (depends on 39)

The computer program product of claim 39, wherein the computer program instructions, when executed, further cause the computer to carry out the steps of comparing state information for the one or more storage systems and the one or more performance metrics for the first storage system.
