# US 10,503,441 B2 · Resolving failed or hanging mount points in a clustered storage solution for containers

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

- Number: US 10,503,441 B2
- Document ID: US10503441B2
- Status: Granted
- Kind: B2
- Application number: 15/824,259
- Filed: 2017-11-28
- Published: 2019-05-30
- Granted: 2019-12-10
- Earliest claimed: 2017-11-28
- Assignees: Portworx, Inc.
- Applicants: Portworx, Inc.
- Inventors: Dinesh Israni; Vinod Jayaraman; Goutham Rao
- Web page: https://patentgrep.com/patent/US10503441B2

## CPC

- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/0622: {in relation to access}
- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- 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

A clustered storage system may include potentially many different nodes, each including a storage driver and a kernel module. A node may mount a virtual storage volume for the use of a container application at the node. The storage driver and kernel module may receive a request from a storage driver at a different node and respond by indicating whether the virtual storage volume is in active use. In this way, the clustered storage system may safely but forcibly unmount a virtual storage volume having a failed or hanging mount point so that the volume may be mounted on a different node.

## Claims

### Claim 1

A method to be performed by one or more processors, the method comprising:
receiving a virtual storage volume activity request message at a storage driver on a first compute node from a second compute node via a communications interface, the virtual storage volume activity request message identifying a virtual storage volume mounted at the first compute node, the virtual storage volume configured to access data stored on one or more storage devices accessible via a network;
determining, at a processor on the first compute node, whether the virtual storage volume is associated with one or more block device references in an operating system running at the first compute node, wherein the determination is made based on communications between the storage driver and a kernel module associated with the operating system; and
transmitting a virtual storage volume activity response message from the storage driver to the second compute node via the communications interface, the virtual storage volume activity response message indicating whether the virtual storage volume is associated with one or more block device references in the operating system, wherein the virtual storage volume is configured as a data storage service within a containerized application system.

### Claim 2 (depends on 1)

The method recited in claim 1, wherein the containerized application system configured to run a plurality of distributed application instances within the operating system, each application instance corresponding with a designated application.

### Claim 3 (depends on 2)

The method recited in claim 2, wherein the plurality of distributed applications includes the storage driver.

### Claim 4 (depends on 1)

The method recited in claim 1, wherein the one or more storage devices include at least two storage devices.

### Claim 5 (depends on 1)

The method recited in claim 1, wherein the request message is sent in response to a mount request to mount the virtual storage volume at the remote computing device, and wherein the virtual storage volume is in a non-responsive state in which the virtual storage volume is not responding to storage requests.

### Claim 6 (depends on 5)

The method recited in claim 5, wherein the virtual storage volume is not associated with one or more block device references, and wherein a selected one of the one or more block device references comprises a respective identifier associated with a respective open file accessible via the virtual storage volume.

### Claim 7 (depends on 6)

The method recited in claim 6, wherein the virtual storage volume activity response message indicates that the virtual storage volume may be safely mounted at the remote computing device.

### Claim 8

A computing device comprising:
a communications interface operable to receive from a remote computing node a virtual storage volume activity request message addressed to a storage driver implemented at the computing device, the virtual storage volume activity request message identifying a virtual storage volume mounted at the computing device, the virtual storage volume configured to access data stored on one or more storage devices accessible via a network;
a processor operable to determine whether the virtual storage volume is associated with one or more block device references in an operating system running at the computing device, wherein the determination is made based on communications between the storage driver and a kernel module associated with the operating system; and
memory operable to store one or more block device references, wherein the processor is further operable to instruct the communications interface to transmit a virtual storage volume activity response message from the storage driver to the remote computing node, the virtual storage volume activity response message indicating whether the virtual storage volume is associated with one or more block device references in the operating system, wherein the virtual storage volume is configured as a data storage service within a containerized application system.

### Claim 9 (depends on 8)

The computing device recited in claim 8, wherein the containerized application system configured to run a plurality of distributed application instances within the operating system, each application instance corresponding with a designated application.

### Claim 10 (depends on 9)

The computing device recited in claim 9, wherein the plurality of distributed applications includes the storage driver.

### Claim 11 (depends on 8)

The computing device recited in claim 8, wherein the one or more storage devices include at least two storage devices.

### Claim 12 (depends on 8)

The computing device recited in claim 8, wherein the request message is sent in response to a mount request to mount the virtual storage volume at the remote computing device.

### Claim 13 (depends on 12)

The computing device recited in claim 12, wherein the virtual storage volume is in a non-responsive state in which the virtual storage volume is not responding to storage requests.

### Claim 14 (depends on 13)

The computing device recited in claim 13, wherein the virtual storage volume is not associated with one or more block device references.

### Claim 15 (depends on 14)

The computing device recited in claim 14, wherein the virtual storage volume activity response message indicates that the virtual storage volume may be safely mounted at the remote computing device.

### Claim 16 (depends on 8)

The computing device recited in claim 8, wherein a selected one of the one or more block device references comprises a respective identifier associated with a respective open file accessible via the virtual storage volume.

### Claim 17

One or more machine readable media having instructions stored thereon for performing a method, the method comprising:
receiving a virtual storage volume activity request message at a storage driver on a first compute node from a second compute node via a communications interface, the virtual storage volume activity request message identifying a virtual storage volume mounted at the first compute node, the virtual storage volume configured to access data stored on one or more storage devices accessible via a network;
determining, at a processor on the first compute node, whether the virtual storage volume is associated with one or more block device references in an operating system running at the first compute node, wherein the determination is made based on communications between the storage driver and a kernel module associated with the operating system; and
transmitting a virtual storage volume activity response message from the storage driver to the second compute node via the communications interface, the virtual storage volume activity response message indicating whether the virtual storage volume is associated with one or more block device references in the operating system, wherein the virtual storage volume is configured as a data storage service within a containerized application system.

### Claim 18 (depends on 17)

The one or more machine readable media recited in claim 17, wherein the containerized application system configured to run a plurality of distributed application instances within the operating system, each application instance corresponding with a designated application.

### Claim 19 (depends on 17)

The one or more machine readable media recited in claim 17, wherein the one or more storage devices include at least two storage devices.

### Claim 20 (depends on 17)

The one or more machine readable media recited in claim 17, wherein the virtual storage volume is in a non-responsive state in which the virtual storage volume is not responding to storage requests.
