Abstract: A network interface controller (NIC) for use in a server controlling a plurality of storage devices provides remote access to a plurality of clients each accessing one or more storage devices of the plurality of storage devices. The NIC is configured to receive from at least a client device an input/output (I/O) request for a storage device of the plurality of storage devices and store the I/O request in a secondary memory thereof. The I/O request is sent to the storage device and a response respective of the I/O request intended for the primary processing unit of the server is received by the NIC. The client device is sent an indication that the I/O request is completed. In some exemplary embodiments, the NIC determines if the client device has appropriate I/O permissions to access a specific data block.
Abstract: To improve upon some of the characteristics of current storage systems in general and block data storage systems in particular, exemplary embodiments combine state-of-the art networking techniques with state-of-the-art data storage elements in a novel way. To accomplish this combination in a highly effective way, it is proposed to combine networking remote direct memory access (RDMA) technique and storage-oriented memory mapped input output (MMIO) technique in a system to provide direct access from a remote storage client to a remote storage system with little to no central processing unit (CPU) intervention of the remote storage server. In some embodiments, this technique may reduce the required CPU intervention on the client side. These reductions of CPU intervention potentially reduce latency while providing performance improvements, and/or providing more data transfer bandwidth and/or throughput and/or more operations per second compared to other systems with equivalent hardware.
Abstract: A controller system allows direct access to a client device accessing remote data storage devices communicatively connected to the controller. A virtual block metadata (VBM) is generated by the controller system, the VBM including a plurality of maps. Each map includes a plurality of virtual addresses, each virtual address mapped to a physical address, each physical address on a remote storage device of the plurality of storage devices. The client device is sent a portion of the VBM, the portion including the map of the virtual addresses sent to the client. The controller receives, over a first network interface, read/write instructions from the client device for the a physical address corresponding to the virtual address allocated to the client device.
Abstract: A system for controlling a multi-tiered storage device (MTSD) includes a first group of storage devices and a second group of storage devices, wherein each storage device of the first group of storage devices has a higher endurance than each storage device of a second group of storage devices of the MTSD. A block of data is received by a controller of the MTSD, and is written to a storage device of the first group of storage devices. Upon determination that the block of data has been written to infrequently, the block of data is written to a storage device of the second group of storage devices. The block of data may then be erased from the storage device of the first group of storage devices. In some embodiments, a storage device from the first group is associated with the second group, upon determination that the storage has degraded.