# US 10,503,419 B2 · Controlling storage access by clustered nodes

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

- Number: US 10,503,419 B2
- Document ID: US10503419B2
- Status: Granted
- Kind: B2
- Application number: 15/581,392
- Filed: 2017-04-28
- Published: 2017-08-10
- Granted: 2019-12-10
- Earliest claimed: 2013-05-29
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Vyacheslav Kuznetsov; Vinod R. Shankar; Andrea D'Amato; David Allen Dion
- Web page: https://patentgrep.com/patent/US10503419B2

## CPC

- G06F 3/0622: {in relation to access}
- G06F 3/0632: {by initialisation or re-initialisation of storage systems}
- G06F 3/0637: {Permissions}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 21/78: to assure secure storage of data (address-based protection against unauthorised use of memory G06F12/14; record carriers for use with machines and with at least a part designed to carry digital markings G06K19/00)
- H04L 63/083: {using passwords (cryptographic mechanisms or cryptographic arrangements for entity authentication using a predetermined code H04L9/3226)}
- H04L 63/10: {for controlling access to devices or network resources}
- 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]
- 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

Embodiments provide a method and system for enabling access to a storage device. Specifically, a node may request admittance to a cluster that has read and write access to a storage device. The node seeking access to the storage device must be first be approved by other nodes in the cluster. As part of the request, the node seeking access to the storage device sends a registration key to a storage device. Upon expiration of a registration timer, the node seeking access to the storage device receives a registration table from the storage device and determines whether its registration key is stored in the registration table. If the registration key is stored in the registration table the node has been accepted in the cluster and as a result, has been granted read and write access to the storage device.

## Claims

### Claim 1

A method for controlling access to a storage device connected to a plurality of nodes in a cluster by one or more physical and remote paths, the method comprising:
receiving a command from a node having a physical connection and a remote connection to the storage device;
subsequent to the node losing the physical connection to the storage device, receiving a subsequent command;
identifying a path from which the subsequent command was received;
determining that the path from which the subsequent command was received indicates that the subsequent command is from the node having lost the physical connection; and
based on the determination that the subsequent command is from the node having lost the physical connection, rejecting the subsequent command.

### Claim 2 (depends on 1)

The method of claim 1, wherein identifying the path includes identifying a path identifier.

### Claim 3 (depends on 2)

The method of claim 2, wherein the path identifier includes a cluster identifier, a node identifier, and a reincarnation identifier.

### Claim 4 (depends on 3)

The method of claim 3, wherein determining that the path from which the subsequent command was received indicates that the subsequent command is from the node having lost the physical connection is further based on the node identifier in the path identifier.

### Claim 5 (depends on 1)

The method of claim 1, wherein the command is received by the storage device via the physical connection.

### Claim 6 (depends on 1)

The method of claim 1, wherein the subsequent command is received via a physical connection to another node.

### Claim 7 (depends on 1)

The method of claim 1, further comprising removing a registration key for the node having lost the physical connection upon losing the physical connection.

### Claim 8

A system comprising:
a storage device having a first physical connection to a first node and a second physical connection to a second node;
at least one processor; and
memory storing instructions executable by the at least one processor to perform a set of operations, the set of operations comprising:
receiving a command from the first node having a physical connection and a remote connection to the storage device via the second node;
subsequent to the first node losing the physical connection to the storage device, receiving a subsequent command;
identifying a path from which the subsequent command was received;
determining that the path from which the subsequent command was received indicates that the subsequent command is from the first node having lost the physical connection; and
based on the determination that the subsequent command is from the first node having lost the physical connection, rejecting the subsequent command.

### Claim 9 (depends on 8)

The system of claim 8, wherein identifying the path includes identifying a path identifier.

### Claim 10 (depends on 9)

The system of claim 9, wherein the path identifier includes a cluster identifier, a node identifier, and a reincarnation identifier.

### Claim 11 (depends on 10)

The system of claim 10, wherein determining that the path from which the subsequent command was received indicates that the subsequent command is from the first node having lost the physical connection is further based on the node identifier in the path identifier.

### Claim 12 (depends on 8)

The system of claim 8, wherein the command is received by the storage device via the physical connection.

### Claim 13 (depends on 8)

The system of claim 8, wherein the subsequent command is received via the second node.

### Claim 14 (depends on 8)

The system of claim 8, further comprising removing a registration key for the first node having lost the physical connection upon losing the physical connection.

### Claim 15

A method for controlling access to a storage device connected to a plurality of nodes in a cluster by one or more physical and remote paths, the method comprising:
storing, by a first node in the plurality of nodes in the cluster, path information for at least a portion of the plurality of nodes;
determining, by the first node based on the path information, that a second node in the plurality of nodes has lost a physical connection to the storage device;
based on the determination that the second node lost the physical connection, instructing, by the first node, the storage device to reject write commands from the second node having lost the physical connection.

### Claim 16 (depends on 15)

The method of claim 15, wherein the stored path information indicates a remote path to the storage device via the second node.

### Claim 17 (depends on 16)

The method of claim 16, further comprising removing the indication of the remote path based on the determination that the second node lost the physical connection.

### Claim 18 (depends on 15)

The method of claim 15, further comprising:
receiving a write command for the storage device from the second node; and
rejecting the write command based on the determination that the second node lost the physical connection.

### Claim 19 (depends on 15)

The method of claim 15, further comprising:
detecting a lost connection between the first node and the second node; and
based on the detection of the lost connection, passing remaining commands from the second node to the storage device.

### Claim 20 (depends on 15)

The method of claim 15, further comprising:
receiving a subsequent command from the second node with a new identifier; and
passing the subsequent command to the storage device based on the new identifier.
