1. A processor-implemented method of providing a RAID engine, comprising: accepting an access request comprising any of a read request, a write request, a file read request, a file write request, a block read request, a block write request, a stripe rebuild request, a stripe scrub request, and a stripe migrate requests; accepting a metadata input comprising a layout description and, optionally, a plurality of resource optimization objectives; accepting a dynamic input comprising a dynamic state of an I/O stack comprising the RAID engine and a fault configuration of a plurality of storage devices in the I/O stack; accepting generator matrix input comprising information about a RAID code used by an I/O operation; and wherein the metadata input, the dynamic input, and a RAID code generator matrix input are utilized to transform the access request into any of a plurality of individual device reads, XOR calculations, and individual device writes, such that a plurality of RAID code relationships for the storage devices are maintained at all times for each I/O operation.