BACKGROUND

1. Field

Some embodiments of the present disclosure relate generally to the provisioning and use of a network-attached storage device.

2. Description of the Related Art

Network-attached storage (NAS) systems are utilized for a variety of data storage applications. In some applications a NAS system may provide data storage to a number of remote applications. For example a NAS system may operate as a storage system for a database, an email system, a storage backup, and many other data applications. In many cases, the NAS system needs have data protection in place to ensure that data integrity is maintained (e.g. data for a first application is not incorrectly overwritten with data from a second application).

Ethernet solid state drives (eSSDs) have presented new issues with maintaining data protection. ESSDs allow for applications operating on remote servers to directly access data via a network connection (e.g. have a separate data path). For example, Non-volatile memory express over fabrics (NVMe-Of) allows for a host computer to perform Input/Output (I/O) operations directly with a SSD via a network. Using eSSDs allows for remote direct attached storage that is disaggregated with a relatively minimal latency addition.

ESSDs, unlike traditional storage have a separate communications path for control operations and data operations. For example, for a regular SSD, a remote application sends an I/O request to a storage server having directly attached SSDs (or HDDs). Thus, the storage server is able to directly execute the I/O on the SSD. An eSSD system may be disaggregated and the application may have to first communicate with the control server, which then communicates to the eSSD to allow I/O to be initiated between the eSSD and the application. The separate verification causes a performance bottleneck, as well as offering less reliability and an increased security risk.

RAID cards, NAS, and Storage Area Networks (SANs) are all capable of performing replicated data writes that do not separate the control path and data path. As such, these traditional systems do not have the above described drawbacks of eSSDs. Similarly, Hyperscale 2-phase commits (e.g. atomic operations) also include an integrated control and data path. Thus, a system that utilizes eSSDs without the limitations of a separate control path is desired.

The above information is only for enhancement of understanding of the background of embodiments of the present disclosure, and therefore may contain information that does not form the prior art.

SUMMARY

Some embodiments of the present disclosure provide a system and method for network-attached storage devices. In various embodiments, a network-attached storage system may include at least one network-attached storage device, at least one application server, and a control server. The control server may include a memory and a processor, configured to execute instructions from the memory that, when executed by the processor, causes the processor to initialize the system. In various embodiments, the control server may discover the at least one network-attached storage device, configure a storage volume and a storage pool having the at least one network-attached storage device, claim each of the at least one network-attached storage device by sending each of the at least one network-attached storage device a device whitelist, map the application server to the storage volume, and provide the application server with an application server whitelist.

In various embodiments, the at least one network-attached storage device may be an Ethernet solid state drive (eSSD).

In various embodiments, the control server generates a control server whitelist having a network-attached storage device list, a storage pool to network-attached storage device map, a storage pool to storage volume map, a network-attached storage device to storage volume map, and a log file.

In various embodiments, the application server whitelist includes at least one available storage pool and an application to volume map.

In various embodiments, the device whitelist includes a control server identifier, at least one replication target, and at least one application server identifier having access rights to the at least one network-attached storage device.

In various embodiments, the application server is configured to send an Input/Output (I/O) request directly to the at least one network-attached storage device according to the application server whitelist.

In various embodiments, the at least one network-attached storage device verifies, using the device whitelist, that the application server has authority for executing the I/O request.

In various embodiments, the application server may send the Input/Output (I/O) request directly to a tertiary device in the storage pool when the I/O request fails.

In various embodiments, the I/O request may be an atomic write or an atomic read.

