# US 11,307,980 B2 · Distributed data storage system with passthrough operations

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

- Number: US 11,307,980 B2
- Document ID: US11307980B2
- Status: Granted
- Kind: B2
- Application number: 15/958,621
- Filed: 2018-04-20
- Published: 2019-10-24
- Granted: 2022-04-19
- Earliest claimed: 2018-04-20
- Assignees: Seagate Technology LLC
- Applicants: Seagate Technology LLC
- Inventors: Thomas R. Prohofsky
- Web page: https://patentgrep.com/patent/US11307980B2

## CPC

- G06F 13/4221: {being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0622: {in relation to access}
- G06F 3/0658: {Controller construction arrangements}
- 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 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/526: {Mutual exclusion algorithms}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 12/0253: {Garbage collection, i.e. reclamation of unreferenced memory}
- H04L 41/0894: Policy-based network configuration management
- H04L 67/1097: 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]
- H04L 67/60: Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources (admission control or resource allocation H04L47/70)
- G06F 2212/7202: Allocation control and policies
- G06F 2212/7205: Cleaning, compaction, garbage collection, erase control
- G06F 2212/7211: Wear leveling
- G06F 2213/0026: PCI express
- H04L 41/0806: for initial configuration or provisioning, e.g. plug-and-play
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A distributed data storage system can have a plurality of data storage devices connected to a host via a network controller. Receipt of a data access request from the host with the network controller can result in passing the data access request to a predetermined data storage device of the plurality of data storage devices with the network controller without processing the data access request. The data access request may then be satisfied with a device controller of the predetermined data storage device.

## Claims

### Claim 1

A method comprising:
connecting a plurality of data storage devices to first and second hosts via a first network controller;
receiving a first data access request from the first host with the first network controller, the first network controller capable of satisfying the first data access request;
passing the first data access request to a predetermined data storage device of the plurality of data storage devices with the first network controller without acting on the first data access request with the first network controller;
receiving a second data access request from the second host with the first network controller;
passing the second data access request to a predetermined data storage device of the plurality of data storage devices with the first network controller without acting on or satisfying the second data access request with the first network controller;
executing an in-drive mutex with a device controller of the predetermined data storage device on the first and second data access requests; and
satisfying the first and second data access requests with the device controller of the predetermined data storage device.

### Claim 2 (depends on 1)

The method of claim 1, wherein the in-drive mutex maintains the first and second data access requests in different states to prevent resource contention.

### Claim 3 (depends on 1)

The method of claim 1, wherein the in-drive mutex modifies access control for at least one logical volume of at least one data storage device of the plurality of data storage devices.

### Claim 4 (depends on 1)

The method of claim 1, wherein the in-drive mutex prevents request redundancy, conflict, and error between the first data access request and the second data access request.

### Claim 5 (depends on 1)

The method of claim 1, wherein the first and second data access requests are passed through an enclosure controller to the predetermined data device without processing either data access request.

### Claim 6 (depends on 1)

The method of claim 1, wherein a second network controller is connected to the plurality of data storage devices as part of a distributed network.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first network controller is a network server.

### Claim 8 (depends on 1)

The method of claim 1, wherein a first data storage device and a second data storage device of the plurality of data storage devices are each housed in a first enclosure and a third data storage device and a fourth data storage device of the plurality of data storage devices are each housed in a second enclosure.

### Claim 9 (depends on 8)

The method of claim 8, wherein the first and second enclosures are housed in different racks positioned in different cities.

### Claim 10 (depends on 1)

The method of claim 1, wherein the predetermined data storage device has a peripheral component interconnect express (PCIe) bus employing a non-volatile memory express (NVMe) protocol, internet small computer systems interface (ISCSI) over Ethernet, NVMe over Infiniband, NVMe over Ethernet, and NVMe over OmniPath.

### Claim 11 (depends on 1)

The method of claim 1, further comprising
assigning a physical block address and a logical block address for a data block associated with the first data access request with the device controller of the predetermined data storage device.

### Claim 12 (depends on 1)

The method of claim 1, wherein the network controller distributes the data access request to the predetermined data storage device without assigning a physical block address to the data block associated with the data access request.

### Claim 13 (depends on 1)

The method of claim 1, wherein the network controller distributes the data access request to the predetermined data storage device without correlating a logical block address of the data access request with a physical block.

### Claim 14 (depends on 1)

The method of claim 1, wherein the network controller acts as a dummy component.

### Claim 15 (depends on 1)

The method of claim 1, wherein the device controller generates policy operation activities in response to the data access request.

### Claim 16 (depends on 15)

The method of claim 15, wherein the policy operation activities comprise provisioning a logical volume of at least one data storage device of the plurality of data storage devices.

### Claim 17 (depends on 15)

The method of claim 15, wherein the policy operation activities comprise garbage collection in at least one data storage device of the plurality of data storage devices.

### Claim 18 (depends on 15)

The method of claim 15, wherein the policy operation activities comprise wear mitigation in at least one data storage device of the plurality of data storage devices.

### Claim 19 (depends on 15)

The method of claim 15, wherein the device controller generates an operations schedule for the policy operation activities and subsequently directs execution of the policy operation activities.
