Raid enabled NVME device
View Patent ↗A data protection system having a host, a solid-state drive (“SSD”) array comprising at least three non-volatile memory express (“NVMe”) drives, each NVMe drive comprising a buffer, and a peripheral component interconnect express (“PCIe”) data bus interfacing the host and the NVMe drives. The NVMe drives are implemented with commands for implementing a RAID volume in the SSD array, wherein the commands are operable to perform RAID operations at the NVMe drives using the buffers of the NVMe drives.
1. A non-volatile memory express (“NVMe”) drive comprising a buffer and implemented with commands operable to perform RAID operations at the NVMe drive using the buffer of the NVMe drive.
2. The NVMe drive according to claim 1 further comprising a firmware implemented with the commands.
3. The NVMe drive according to claim 1 , wherein the commands comprise transactional controls executable at the NVMe drive to implement exclusive access sessions in the NVMe drive.
4. The NVMe drive according to claim 1 , wherein the commands comprise RAID commands executable at the NVMe drive to generate erasure codes in the buffer of the NVMe drive.
5. The NVMe drive according to claim 4 , wherein the erasure codes are exclusive-or (XOR) sums.
6. The NVMe drive according to claim 4 , wherein the erasure codes are Reed-Solomon codes.
7. The NVMe drive according to claim 4 , wherein the commands are operable to transmit the erasure codes directly from the NVMe drive over a connected PCIe data bus to another NVMe drive.
8. The NVMe drive according to claim 3 , wherein the transactional controls comprise:
an open session command for opening an exclusive access session in a specified range of blocks in a namespace of the NVMe drive; and
a close session command for closing a specified open session in the NVMe drive.
9. The NVMe drive according to claim 3 , wherein the transactional controls comprise:
a get next session command for querying open sessions in the NVMe drive.
10. The NVMe drive according to claim 3 , wherein the transactional controls comprise:
a get session details command for returning state information regarding a specified open session.
11. The NVMe drive according to claim 4 , wherein the RAID commands comprise:
an XWrite command executable:
to generate an erasure code based on incoming data in the buffer of the NVMe drive and current data in a specified range of blocks in a namespace of the NVMe drive;
to write the erasure code to the buffer of the NVMe drive; and
to write the incoming data to the specified range of blocks in the namespace of the NVMe drive.
12. The NVMe drive according to claim 4 , wherein the RAID commands further comprise:
an XRead command executable:
to generate an erasure code based on incoming data in the buffer of the NVMe drive and current data in a specified range of blocks in a namespace of the NVMe drive using the buffer of the NVMe drive; and
to write the erasure code in the buffer of the NVMe drive.
13. A computer-readable medium encoded with instructions executable by a processor to implement a firmware of a non-volatile memory express (“NVMe”) drive with commands operable to perform RAID operations at the NVMe drive using the buffer of the NVMe drive.