DISTRIBUTED STORAGE SERVICES SUPPORTED BY A NIC
Some embodiments provide a method of providing distributed storage services to a host computer from a network interface card (NIC) of the host computer. At the NIC, the method accesses a set of one or more external storages operating outside of the host computer through a shared port of the NIC that is not only used to access the set of external storages but also for forwarding packets not related to an external storage. In some embodiments, the method accesses the external storage set by using a network fabric storage driver that employs a network fabric storage protocol to access the external storage set. The method presents the external storage as a local storage of the host computer to a set of programs executing on the host computer. In some embodiments, the method presents the local storage by using a storage emulation layer on the NIC to create a local storage construct that presents the set of external storages as a local storage of the host computer.
1 . A method of emulating a local storage for a host computer comprising a network interface card (NIC), the method comprising
on the NIC:
deploying a storage emulator first program to emulate a local storage, from a plurality of external storages accessed through the NIC, for a set of processes executing on the host computer; and
deploying a storage service second program to perform a set of distributed storage services that account for the set of processes on the host computer lack of knowledge regarding plurality of external storages being used to emulate the local storage.
2 . The method of claim 1 , wherein the set of distributed storage services comprises data efficiency processes including at least one of deduplication operations and compression operations.
3 . The method of claim 1 , wherein the set of distributed storage services comprises security processes including at least one of end-to-end encryption and access control operations.
4 . The method of claim 1 , wherein the set of distributed storage services comprises data and life cycle management, including at least one of storage vmotion, snapshot operations, snapshot schedules, cloning, disaster recovery, backup, and long term storage.
5 . The method of claim 1 , wherein the set of distributed storage services improve performance, resiliency and security of the set of host processes access the plurality of external storages through the NIC.
6 . The method of claim 1 , wherein the set of distributed storage services comprise encryption services encrypt the read and write requests and responses that are exchanged between the set of host processes and the plurality of external storages that are made to appear as the local storage.
7 . The method of claim 6 , wherein the storage service second program is a proxy program that uses a storage service program executing on another device to provide one or more of the distributed storage services in the set of distributed storage services.
8 . The method of claim 6 further comprising deploying a network fabric driver on the NIC to access the plurality of external storages through one or more intervening networks.
9 . The method of claim 8 , wherein the network fabric driver is a non-volatile memory express over fabric (NVMeOF) driver.
10 . The method of claim 9 , wherein the storage service second program communicates through the NVMeOF driver with other storage service programs that provide the distributed storage service for a plurality of compute and storage nodes.
11 . The method of claim 1 , wherein the set of processes comprise an operating system executing on the host computer.
12 . The method of claim 1 , wherein the set of processes comprise a set of machines executing on the host computer.
13 . The method of claim 1 , wherein the set of processes comprise a hypervisor executing on the host computer.
14 . A non-transitory machine readable medium storing sets of instructions for emulating a local storage for a host computer comprising a network interface card (NIC), the sets of instructions for execution by at least one processing unit of the NIC, the sets of instructions for:
emulating a local storage, from a plurality of external storages accessed through the NIC, for a set of processes executing on the host computer; and
performing a set of distributed storage services that account for the set of processes on the host computer lack of knowledge regarding plurality of external storages being used to emulate the local storage.
15 . The non-transitory machine readable medium of claim 14 , wherein the set of distributed storage services comprises data efficiency processes including at least one of deduplication operations and compression operations.
16 . The non-transitory machine readable medium of claim 14 , wherein the set of distributed storage services comprises security processes including at least one of end-to-end encryption and access control operations.
17 . The non-transitory machine readable medium of claim 14 , wherein the set of distributed storage services comprises data and life cycle management, including at least one of storage vmotion, snapshot operations, snapshot schedules, cloning, disaster recovery, backup, and long term storage.
18 . The non-transitory machine readable medium of claim 14 , wherein the set of distributed storage services improve performance, resiliency and security of the set of host processes access the plurality of external storages through the NIC.
19 . The non-transitory machine readable medium of claim 14 , wherein the set of distributed storage services comprise encryption services encrypt the read and write requests and responses that are exchanged between the set of host processes and the plurality of external storages that are made to appear as the local storage.
20 . The non-transitory machine readable medium of claim 14 , wherein the set of instructions further for using a network fabric driver on the NIC to access the plurality of external storages through one or more intervening networks.