IP Library Granted Patent US 12,578,971
Granted Patent B2
US 12,578,971 · App. 18/086,214 · Granted Mar 17, 2026

Container storage interface filter driver-based use of a non-containerized-based storage system with containerized applications

Inventor: Taher Vohra (Sunnyvale, CA)
Assignee: Pure Storage, Inc.
G06F9/4411G06F9/45533
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,578,971
App. No.
18/086,214
Granted
Mar 17, 2026
Kind
B2
Abstract

A method includes receiving, by a container storage interface (CSI) filter driver executing on a node of a container-based cluster managed by a container orchestrator, a request to perform a storage system-based control plane operation associated with a containerized application executing on the node; determining, by the CSI filter driver, that the storage system-based control plane operation is to be performed with respect to a legacy storage system configured to store data for one or more non-containerized applications; and generating, by the CSI filter driver based on the determining that the storage system-based control plane operation is to be performed with respect to the legacy storage system, a command configured to direct a storage interface driver associated with the legacy storage system to perform the storage system-based control plane operation.

Claims (47)

1 . A method comprising:

receiving, by a container storage interface (CSI) filter driver executing on a node of a container-based cluster managed by a container orchestrator, a request to perform a storage system-based control plane operation associated with a containerized application executing on the node, the CSI filter driver configured to prevent a CSI driver also executing on the node from being exposed directly to any external commands from a network;

determining, by the CSI filter driver, that the storage system-based control plane operation is to be performed with respect to a legacy storage system configured to store data for one or more non-containerized applications;

generating, by the CSI filter driver based on the determining that the storage system-based control plane operation is to be performed with respect to the legacy storage system, a command configured to direct a storage interface driver associated with the legacy storage system to perform the storage system-based control plane operation;

transmitting, by the CSI filter driver, the command to the legacy storage interface driver, the legacy storage interface driver configured to perform the storage system-based control plane operation with respect to the storage system; and

transmitting, by the CSI filter driver, an additional command to the CSI driver, the additional command configured to direct the CSI driver to perform an additional storage system-based control plane operation associated with an additional containerized application executing on the node, the additional storage system-based control plane operation configured to be performed with respect to an additional storage system configured to store data for one or more containerized applications.

2 . The method of claim 1 , wherein the non-containerized applications comprise virtual machine-based applications executing within a virtual machine cluster and the legacy storage system comprises a virtual machine-based storage system attached to the virtual machine cluster.

3 . The method of claim 2 , wherein the storage interface driver executes on at least one of the virtual machine cluster or a cloud environment that includes the virtual machine cluster.

4 . The method of claim 1 , wherein the transmitting the command to the storage interface driver is performed using a communication protocol associated with the legacy storage interface driver.

5 . The method of claim 1 , further comprising:

receiving, by the CSI filter driver prior to the transmitting the additional command to the CSI driver, an additional request to perform the additional storage system-based control plane operation associated with the additional containerized application executing on the node;

determining, by the CSI filter driver, that the additional storage system-based control plane operation is to be performed with respect to the additional storage system configured to store data for the one or more containerized applications; and

generating, by the CSI filter driver based on the determining that the additional storage system is to be performed with respect to the additional storage system-based control plane operation, the additional command.

6 . The method of claim 5 , wherein:

the additional storage system is attached to the container-based cluster.

7 . The method of claim 1 , wherein:

the request comprises a first set of one or more instructions that utilize a CSI protocol; and

the generating the command comprises translating the first set of one or more instructions into a second set of one or more instructions that utilize a legacy protocol associated with the storage interface driver, wherein the command comprises the second set of one or more instructions.

8 . The method of claim 1 , wherein the storage system-based control plane operation comprises provisioning a volume on the legacy storage system.

9 . The method of claim 1 , wherein the storage system-based control plane operation comprises one or more of deleting a volume on the legacy storage system, mounting the volume, modifying a setting associated with the volume, generating a recovery dataset for data stored within the volume, or moving the volume to a different location.

10 . A system comprising:

a memory storing instructions; and

one or more processors communicatively coupled to the memory and configured to execute the instructions to implement a container storage interface (CSI) filter driver configured to execute on a node of a container-based cluster managed by a container orchestrator and to prevent a CSI driver also executing on the node from being exposed directly to any external commands from a network, the CSI filter driver further configured to perform a process comprising:

receiving a request to perform a storage system-based control plane operation associated with a containerized application executing on the node;

determining that the storage system-based control plane operation is to be performed with respect to a legacy storage system configured to store data for one or more non-containerized applications;

generating, based on the determining that the storage system-based control plane operation is to be performed with respect to the legacy storage system, a command configured to direct a storage interface driver associated with the legacy storage system to perform the storage system-based control plane operation;

transmitting the command to the legacy storage interface driver, the legacy storage interface driver configured to perform the storage system-based control plane operation with respect to the storage system; and

transmitting an additional command to the CSI driver, the additional command configured to direct the CSI driver to perform an additional storage system-based control plane operation associated with an additional containerized application executing on the node, the additional storage system-based control plane operation configured to be performed with respect to an additional storage system configured to store data for one or more containerized applications.

11 . The system of claim 10 , wherein the non-containerized applications comprise virtual machine-based applications executing within a virtual machine cluster and the legacy storage system comprises a virtual machine-based storage system attached to the virtual machine cluster.

12 . The system of claim 10 , wherein the transmitting the command to the storage interface driver is performed using a communication protocol associated with the legacy storage interface driver.

13 . The system of claim 10 , wherein the process further comprises:

receiving, prior to the transmitting the additional command to the CSI driver, an additional request to perform the additional storage system-based control plane operation associated with the additional containerized application executing on the node;

determining that the additional storage system-based control plane operation is to be performed with respect to the additional storage system configured to store data for the one or more containerized applications; and

generating, based on the determining that the additional storage system is to be performed with respect to the additional storage system-based control plane operation, the additional command.

14 . The system of claim 13 , wherein:

the additional storage system is attached to the container-based cluster.

15 . The system of claim 10 , wherein:

the request comprises a first set of one or more instructions that utilize a CSI protocol; and

the generating the command comprises translating the first set of one or more instructions into a second set of one or more instructions that utilize a legacy protocol associated with the storage interface driver, wherein the command comprises the second set of one or more instructions.

16 . A computer program product embodied in a non-transitory computer readable storage medium and comprising computer instructions for implementing a container storage interface (CSI) filter driver configured to execute on a node of a container-based cluster managed by a container orchestrator and to prevent a CSI driver also executing on the node from being exposed directly to any external commands from a network, the CSI filter driver further configured to perform a process comprising:

receiving a request to perform a storage system-based control plane operation associated with a containerized application executing on the node;

determining that the storage system-based control plane operation is to be performed with respect to a legacy storage system configured to store data for one or more non-containerized applications;

generating, based on the determining that the storage system-based control plane operation is to be performed with respect to the legacy storage system, a command configured to direct a storage interface driver associated with the legacy storage system to perform the storage system-based control plane operation;

transmitting the command to the legacy storage interface driver, the legacy storage interface driver configured to perform the storage system-based control plane operation with respect to the storage system; and

transmitting an additional command to the CSI driver, the additional command configured to direct the CSI driver to perform an additional storage system-based control plane operation associated with an additional containerized application executing on the node, the additional storage system-based control plane operation configured to be performed with respect to an additional storage system configured to store data for one or more containerized applications.

17 . The computer program product of claim 16 , wherein the non-containerized applications comprise virtual machine-based applications executing within a virtual machine cluster and the legacy storage system comprises a virtual machine-based storage system attached to the virtual machine cluster.

18 . The computer program product of claim 16 , wherein the transmitting the command to the storage interface driver is performed using a communication protocol associated with the legacy storage interface driver.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2022
From: VOHRA, TAHER
To: PURE STORAGE, INC., A DELAWARE CORPORATION
Reel/Frame 062174/0543 →
Continuity (1)
Related Publication 20240211276A1 · Jun 27, 2024
References Cited (82)
US 7769972B2 · Kaushik · 2010 [cited by applicant]
US 7975115B2 · Wayda et al. · 2011 [cited by applicant]
US 8180855B2 · Aiello et al. · 2012 [cited by applicant]
US 8239884B2 · Cheng et al. · 2012 [cited by applicant]
US 8427669B2 · Kadota · 2013 [cited by applicant]
US 8495472B1 · Magerramov et al. · 2013 [cited by applicant]
US 8504797B2 · Mimatsu · 2013 [cited by applicant]
US 8706914B2 · Duchesneau · 2014 [cited by applicant]
US 8822155B2 · Sukumar et al. · 2014 [cited by applicant]
US 8830228B2 · Zhang et al. · 2014 [cited by applicant]
US 8918478B2 · Ozzie et al. · 2014 [cited by applicant]
US 9152825B2 · Sarcone · 2015 [cited by applicant]
US 9275063B1 · Natanzon · 2016 [cited by applicant]
US 9280678B2 · Redberg · 2016 [cited by applicant]
US 9282021B2 · Smith et al. · 2016 [cited by applicant]
US 9389797B2 · Thakur et al. · 2016 [cited by applicant]
US 9395922B2 · Nishikido et al. · 2016 [cited by applicant]
US 9552299B2 · Stalzer · 2017 [cited by applicant]
US 9639299B2 · Calder et al. · 2017 [cited by applicant]
US 9665385B1 · Nguyen et al. · 2017 [cited by applicant]
US 9740403B2 · Storer et al. · 2017 [cited by applicant]
US 9766992B2 · Wipfel et al. · 2017 [cited by applicant]
US 9804929B2 · Karinta et al. · 2017 [cited by applicant]
US 9864874B1 · Shanbhag et al. · 2018 [cited by applicant]
US 9983832B1 · Mayatskikh · 2018 [cited by applicant]
US 10025673B1 · Maccanti et al. · 2018 [cited by applicant]
US 10102356B1 · Sahin et al. · 2018 [cited by applicant]
US 10185495B2 · Katsuki · 2019 [cited by applicant]
US 10216455B1 · Schroeder et al. · 2019 [cited by applicant]
US 10324639B2 · Seo · 2019 [cited by applicant]
US 10503441B2 · Israni et al. · 2019 [cited by applicant]
US 10567406B2 · Astigarraga et al. · 2020 [cited by applicant]
US 10649679B2 · Gill et al. · 2020 [cited by applicant]
US 10732995B2 · Israni et al. · 2020 [cited by applicant]
US 10810088B1 · Gu et al. · 2020 [cited by applicant]
US 10831540B2 · Israni et al. · 2020 [cited by applicant]
US 10841152B1 · Humphreys · 2020 [cited by applicant]
US 10846137B2 · Vallala et al. · 2020 [cited by applicant]
US 10877683B2 · Wu et al. · 2020 [cited by applicant]
US 10922116B2 · S S et al. · 2021 [cited by applicant]
US 11003372B2 · Israni et al. · 2021 [cited by applicant]
US 11106810B2 · Natanzon et al. · 2021 [cited by applicant]
US 11194483B1 · Dontu et al. · 2021 [cited by applicant]
US 11216220B2 · Israni et al. · 2022 [cited by applicant]
US 11314687B2 · Kavaipatti Anantharamakrishnan et al. · 2022 [cited by applicant]
US 11334372B2 · Israni et al. · 2022 [cited by applicant]
US 11467775B2 · Cain · 2022 [cited by applicant]
US 20110035540A1 · Fitzgerald et al. · 2011 [cited by applicant]
US 20120154375A1 · Zhang et al. · 2012 [cited by applicant]
US 20130305005A1 · Calder et al. · 2013 [cited by applicant]
US 20140114644A1 · Smith et al. · 2014 [cited by applicant]
US 20150261434A1 · Kagan et al. · 2015 [cited by applicant]
US 20160080255A1 · Ignatuk et al. · 2016 [cited by applicant]
US 20160188621A1 · Karinta et al. · 2016 [cited by applicant]
US 20170235525A1 · Calder et al. · 2017 [cited by applicant]
US 20180365046A1 · S S et al. · 2018 [cited by applicant]
US 20190163405A1 · Israni et al. · 2019 [cited by applicant]
US 20190266022A1 · Israni et al. · 2019 [cited by applicant]
US 20190362004A1 · Oks et al. · 2019 [cited by applicant]
US 20190369895A1 · Israni et al. · 2019 [cited by applicant]
US 20190370023A1 · Israni · 2019 [cited by applicant]
US 20200021654A1 · Rao et al. · 2020 [cited by applicant]
US 20200034062A1 · Gill et al. · 2020 [cited by applicant]
US 20200183621A1 · Israni et al. · 2020 [cited by applicant]
US 20200364063A1 · Israni et al. · 2020 [cited by applicant]
US 20210019270A1 · Li et al. · 2021 [cited by applicant]
US 20210271565A1 · Bhavanarushi et al. · 2021 [cited by applicant]
US 20210382632A1 · Dontu et al. · 2021 [cited by applicant]
US 20210382741A1 · Dontu et al. · 2021 [cited by applicant]
US 20220083283A1 · Israni et al. · 2022 [cited by applicant]
US 20220091871A1 · Deutsch et al. · 2022 [cited by applicant]
US 20220092024A1 · Kavaipatti Anantharamakrishnan et al. · 2022 [cited by applicant]
US 20220114030A1 · Johnson et al. · 2022 [cited by applicant]
US 20220171648A1 · Rodriguez · 2022 [cited by examiner]
US 20220214997A1 · Kavaipatti Anantharamakrishnan et al. · 2022 [cited by applicant]
US 20220229605A1 · Degwekar et al. · 2022 [cited by applicant]
EP 3974978A1 · 2022 [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2023/084404, mailed Jun. 5, 2024, 21 Pages. [cited by applicant]
Kubernetes Container Storage Interface (CSI) Documentation. [cited by applicant]
Hwang, et al., “RAID-x: A New Distributed Disk Array for I/O-Centric Cluster Computing”, Proceedings the Ninth International Symposium on High-Performance Distributed Computing, 2000, pp. 279-286. [cited by applicant]
Stalzer, et al., “FlashBlades: System Architecture and Applications”, Proceedings of the 2nd Workshop on Architectures and Systems for Big Data, Association for Computing Machinery, New York, NY, 2012, pp. 10-14. [cited by applicant]
Storer, et al., “Pergamum: Replacing Tape with Energy Efficient, Reliable, Disc-Based Archival Storage”, FAST'08: Proceedings of the 6th USENIX Conference on File and Storage Technologies, Feb. 2008, Article No. 1, pp. … [cited by applicant]