# US 10,769,042 B2 · Single port data storage device with multi-port virtualization

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

- Number: US 10,769,042 B2
- Document ID: US10769042B2
- Status: Granted
- Kind: B2
- Application number: 16/017,091
- Filed: 2018-06-25
- Published: 2019-12-26
- Granted: 2020-09-08
- Earliest claimed: 2018-06-25
- Assignees: Seagate Technology LLC
- Applicants: Seagate Technology LLC
- Inventors: Vijay Nanjunda Swamy
- Web page: https://patentgrep.com/patent/US10769042B2

## CPC

- G06F 11/2007: {using redundant communication media}
- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F 3/0617: {in relation to availability}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 11/008: {Reliability or availability analysis}
- G06F 11/0727: {in a storage system, e.g. in a DASD or network based storage system (drivers for digital recording or reproducing units G06F3/06; circuits for error detection or correction within digital recording or reproducing units G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- G06F 11/079: {Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36)}
- G06F 11/2005: {using redundant communication controllers}
- G06F 11/2058: {using more than 2 mirrored copies}
- G06F 11/2074: {Asynchronous techniques}
- G06F 11/2089: {Redundant storage control functionality}
- G06F 11/2092: {Techniques of failing over between control units}
- G06F 15/17331: {Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]}
- G06F 2201/815: Virtual
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Multi-port data storage device capabilities can be provided by a remote host connected to a diskgroup that has a first single port data storage device and a second single port data storage device. Initialization of a first logical volume and a second logical volume in each single port data storage device allows a data access request to be serviced from the remote host with the first logical volume of the first single port data storage device. Data virtualized from the first logical volume of the first single port data storage device to the second volume of the second single port data storage device allows accessing the second volume of the second single port data storage device in response to a request to a data request to the first volume of the first single port data storage device.

## Claims

### Claim 1

A method comprising:
connecting a host to a diskgroup comprising a first single port data storage device and a second single port data storage device, the diskgroup comprising a first controller connected to the first single port data storage device and a second controller connected to the second single port data storage device;
initializing a first logical volume and a second logical volume in each single port data storage device with the respective first controller and second controller;
servicing a data access request from the host with the first logical volume of the first single port data storage device;
virtualizing data from the first logical volume of the first single port data storage device to the second volume of the second single port data storage device with the second controller via a first remote data memory access module of the first single port data storage device; and
accessing the second volume of the second single port data storage device with the first controller via a second remote data memory access module of the second single port data storage device in response to a request to a data request to the first volume of the first single port data storage device.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first logical volume of the first single port data storage device is classified as unavailable prior to the accessing step.

### Claim 3 (depends on 2)

The method of claim 2, wherein the first logical volume of the first single port data storage device is unavailable due to a fault.

### Claim 4 (depends on 3)

The method of claim 3, wherein the fault is predicted and the accessing step is conducted proactively.

### Claim 5 (depends on 3)

The method of claim 3, wherein the fault is tested and confirmed prior to assigning the second logical volume of the second single port data storage device to service future data access requests.

### Claim 6 (depends on 1)

The method of claim 1, wherein the data is copied from the first logical volume of the first single port data storage device to the second volume of the second single port data storage device via mirroring.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first single port data storage device is disabled by the second single port data storage device in response to the first single port data storage device having a fault.

### Claim 8

A system comprising a remote host connected to a diskgroup comprising a first single port data storage device and a second single port data storage device, the diskgroup comprising a first controller connected to the first single port data storage device and a second controller connected to the second single port data storage device, each controller comprising a multipath I/O circuitry and a remote data memory access module, each single port data storage device initialized with a first logical volume and a second logical volume by the respective first controller and second controller, the first logical volume of each single port data storage device accessed by the remote data memory access module of a controller of a different single port data storage device to store data to service a data access request from the remote host, the second logical volume of each data storage device configured to accessed by the remote data memory access module of a controller of a different single port data storage device to store data emulated from a different single port data storage device of the diskgroup, the second volume of at least one single port data storage device of the diskgroup accessed by a remote data memory access module in response to data request to the first volume of the first single port data storage device.

### Claim 9 (depends on 8)

The system of claim 8, wherein each single port data storage device comprises a device controller and a solid-state memory array.

### Claim 10 (depends on 8)

The system of claim 8, wherein the first single port data storage device is positioned in a separate location than the second single port data storage device.

### Claim 11 (depends on 8)

The system of claim 8, wherein each single port data storage device is housed within a common enclosure.

### Claim 12 (depends on 9)

The system of claim 9, wherein the device controller and solid-state memory array are positioned within a single housing.

### Claim 13

A method comprising:
connecting a remote host to a diskgroup comprising a first single port data storage device and a second single port data storage device, the first single port data storage device comprising a first controller connected to a first memory array, the second single port data storage device comprising a second controller connected to a second memory array, each controller comprising a multipath I/O connecting to the respective single port data storage devices;
initializing a first logical volume and a second logical volume in the first single port data storage device with the first controller;
initializing a third logical volume and a fourth logical volume in the second single port data storage device with the second controller;
servicing a first data access request from the remote host with the first logical volume as directed by the second controller via a first remote data memory access module of the first single port data storage device; and
accessing the fourth logical volume in response to a request to a data request to the first volume by the first controller via a second remote data memory access module of the second single port data storage device.

### Claim 14 (depends on 13)

The method of claim 13, wherein the second logical volume is a virtualized copy of the third logical volume accessed by the first controller.

### Claim 15 (depends on 13)

The method of claim 13, wherein the fourth logical volume is a virtualized copy of the first logical volume accessed by the first controller.

### Claim 16 (depends on 13)

The method of claim 13, wherein a second data access request is serviced with the third logical volume as directed by the second controller.

### Claim 17 (depends on 13)

The method of claim 13, wherein each single port data storage device connects to the respective controller with a non-volatile memory express protocol.

### Claim 18 (depends on 13)

The method of claim 13, wherein the second controller accesses the first logical volume with a remote direct memory access.

### Claim 19 (depends on 13)

The method of claim 13, wherein the controller deliberately initiates a host port failure in response to a diskgroup fault.

### Claim 20 (depends on 13)

The method of claim 13, wherein the second controller is assigned ownership of the diskgroup in response to a fault in the first single port data storage device.
