IP Library Patent Application 15823638
Patent Application
App. No. 15/823,638

Virtual File System Supporting Multi-Tiered Storage

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 None
App. No.
15/823,638
Filed
Nov 28, 2017
Art Unit
2165
USPC
707/827
Abstract

A plurality of computing devices are interconnected via a local area network and comprise circuitry configured to implement a virtual file system comprising one or more instances of a virtual file system front end and one or more instances of a virtual file system back end. Each instance of the virtual file system front end may be configured to receive a file system call from a file system driver residing on the plurality of computing devices, and determine which of the one or more instances of the virtual file system back end is responsible for servicing the file system call. Each instance of the virtual file system back end may be configured to receive a file system call from the one or more instances of the virtual file system front end, and update file system metadata for data affected by the servicing of the file system call.

Claims (80)

1 - 30 . (canceled)

31 . A system comprising:

a plurality of computing devices that are interconnected via a local area network, the circuitry of the plurality of computing devices configured to implement a virtual file system comprising one or more instances of a virtual file system front end and one or more instances of a virtual file system back end, wherein:

each of the one or more instances of the virtual file system front end is configured to:

receive a file system call from a virtual file system driver residing on the plurality of computing devices; and

determine which of the one or more instances of the virtual file system back end is responsible for servicing the file system call;

each of the one or more instances of the virtual file system back end is configured to:

receive a file system call from the one or more instances of the virtual file system front end; and

update file system metadata for data affected by the servicing of the file system call; and

the number of instances in the one or more instances of the virtual file system front end and the number of instances in the one or more instances of the virtual file system back end are variable independently of each other.

32 . The system of claim 31 , comprising a first electronically addressed nonvolatile storage device and a second electronically addressed nonvolatile storage device, wherein each instance of the virtual file system back end is configured to:

allocate memory of the first electronically addressed nonvolatile storage device and the second electronically addressed nonvolatile storage device such that data written to the virtual file system is distributed across the first electronically addressed nonvolatile storage device and the second electronically addressed nonvolatile storage device.

33 . The system of claim 32 , comprising a third nonvolatile storage device, wherein:

the first electronically addressed nonvolatile storage device and the second electronically addressed nonvolatile storage device are used for a first tier of storage; and

the third nonvolatile storage device is used for a second tier of storage.

34 . The system of claim 33 , wherein data written to the virtual file system is first stored to the first tier of storage and then migrated to the second tier of storage according to policies of the virtual file system.

35 . The system of claim 31 , wherein the virtual file system driver supports a virtual file system specific protocol, and at least one of the following legacy protocols: network file system protocol (NFS) and server message block (SMB) protocol.

36 . A system comprising:

a plurality of computing devices that reside on a local area network and that comprise a plurality of electronically addressed nonvolatile storage devices, wherein:

circuitry of the plurality of computing devices is configured to implement a virtual file system;

data stored to the virtual file system is distributed across the plurality of electronically addressed nonvolatile storage devices;

any particular quantum of data stored to the virtual file system is associated with an owning node and a storing node;

the owning node is a first one of the computing devices and maintains metadata for the particular quantum of data; and

the storing node is a second one of the computing devices comprising one of the electronically addressed nonvolatile storage devices on which the quantum of data physically resides.

37 . The system of claim 36 , wherein the virtual file system comprises one or more instances of a virtual file system front end, one or more instances of a virtual file system back end, a first instance of a virtual file system memory controller configured to control accesses to a first of the plurality of electronically addressed nonvolatile storage devices, and a second instance of a virtual file system memory controller configured to control accesses to a second of the plurality of electronically addressed nonvolatile storage devices.

38 . The system of claim 37 , wherein each instance of the virtual file system front end is configured to:

receive a file system call from a virtual file system driver residing on the plurality of computing devices;

determine which of the one or more instances of the virtual file system back end is responsible for servicing the file system call; and

send one or more file system calls to the determined one or more instances of the plurality of virtual file system back end.

39 . The system of claim 37 , wherein each instance of the virtual file system back end is configured to:

receive a file system call from the one or more instances of the virtual file system front end; and

allocate memory of the plurality of electronically addressed nonvolatile storage devices to achieve the distribution of the data across the plurality of electronically addressed nonvolatile storage devices.

40 . The system of claim 37 , wherein each instance of the virtual file system back end is configured to:

receive a file system call from the one or more instances of the virtual file system front end; and

update file system metadata for data affected by the servicing of the file system call.

41 . The system of claim 47 , wherein:

each instance of the virtual file system back end is configured to generate resiliency information for data stored to the virtual file system; and

the resiliency information can be used to recover the data in the event of a corruption.

42 . The system of claim 47 , wherein:

the number of instances in the one or more instances of the virtual file system front end is dynamically adjustable based on demand on resources of the plurality of computing devices; and

the number of instances in the one or more instances of the virtual file system back end is dynamically adjustable based on demand on resources of the plurality of computing devices.

43 . The system of claim 47 , wherein:

the number of instances in the one or more instances of the virtual file system front end is dynamically adjustable independent of the number of instances in the one or more instances of the virtual file system back end; and

the number of instances in the one or more instances of the virtual file system back end is dynamically adjustable independent of the number of instances in the one or more instances of the virtual file system front end.

44 . The system of claim 47 , wherein:

a first one or more of the plurality of electronically addressed nonvolatile storage devices are used for a first tier of storage; and

a second one or more of the plurality of electronically addressed nonvolatile storage devices are used for a second tier of storage.

45 . The system of claim 44 , wherein:

the first one or more of the plurality of electronically addressed nonvolatile storage devices are characterized by a first value of a latency metric; and

the second one or more of the plurality of electronically addressed nonvolatile storage devices are characterized by a second value of the latency metric.

46 . The system of claim 44 , wherein:

the first one or more of the plurality of electronically addressed nonvolatile storage devices are characterized by a first value of an endurance metric; and

the second one or more of the plurality of electronically addressed nonvolatile storage devices are characterized by a second value of the endurance metric.

47 . The system of claim 46 , wherein data written to the virtual file system is first stored to the first tier of storage and then migrated to the second tier of storage according to policies of the virtual file system.

48 . The system of claim 36 , comprising one or more mechanically addressed nonvolatile storage device, wherein the data stored to the virtual file system is distributed across the plurality of electronically addressed nonvolatile storage devices and one or more mechanically addressed nonvolatile storage devices.

49 . The system of claim 36 , comprising one or more other nonvolatile storage devices residing on one or more other computing devices coupled to the local area network via the Internet.

50 . The system of claim 49 , wherein:

the plurality of electronically addressed nonvolatile storage devices are used for a first tier of storage; and

the one or more other storage devices are used for a second tier of storage.

51 . The system of claim 50 , wherein data written to the virtual file system is first stored to the first tier of storage and then migrated to the second tier of storage according to policies of the virtual file system.

52 . The system of claim 50 , wherein the second tier of storage is an object-based storage.

53 . The system of claim 50 , wherein the one or more other nonvolatile storage devices comprises one or more mechanically addressed nonvolatile storage devices.

54 . The system of claim 36 , comprising:

a first one or more other nonvolatile storage devices residing on the local area network; and

a second one or more other nonvolatile storage devices residing on one or more other computing devices coupled to the local area network via the Internet, wherein:

the plurality of electronically addressed nonvolatile storage devices are used for a first tier of storage and a second tier of storage;

the first one or more other nonvolatile storage devices residing on the local area network are used for a third tier of storage; and

the second one or more other nonvolatile storage devices residing on one or more other computing devices coupled to the local area network via the Internet are used for a fourth tier of storage.

55 . The system of claim 36 , wherein:

a client application resides on a first one of the plurality of computing devices; and

one or more components of the virtual file system reside on the first one of the plurality of computing devices.

56 . The system of claim 55 , wherein the client application and the one or more components of the virtual file system share resources of a processor of the first one of the plurality of computing devices.

57 . The system of claim 55 , wherein:

the client application is implemented by a main processor chipset of the first one of the plurality of computing devices; and

the one or more components of the virtual file system are implemented by a processor of a network adaptor of the first one of the plurality of computing devices.

58 . The system of claim 53 , wherein file system calls from the client application are handled by a virtual file system front end instance residing on a second one of the plurality of computing devices.

59 . A non-transitory machine readable storage having code stored thereon, wherein:

when the code is executed by a first computing device, the first computing device is configured such that a single processor of the first computing device implements one or more components of a virtual file system and one or more client processes running on the first computing device; and

when the code is executed by a second computing device, the second computing device is configured such that a first processor of the second computing device implements the one or more components of a virtual file system, and a second processor of the second computing device implements one or more client processes running on the second computing device.

50 . The non-transitory machine readable storage of claim 59 , wherein the second processor is a processor of a network adaptor of the second computing device.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Jun 20, 2024
From: BANK LEUMI LE-ISRAEL B.M.
To: WEKAIO LTD.
Reel/Frame 067783/0962 →
SECURITY INTEREST Recorded Mar 29, 2020
From: WEKAIO LTD.
To: BANK LEUMI LE-ISRAEL B.M.
Reel/Frame 052253/0860 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: BEN DAYAN, MAOR; PALMON, OMRI; ZVIBEL, LIRAN
To: WEKA.IO LTD.
Reel/Frame 051829/0848 →