Patent ID: 8346997

Claim:
A computer-implemented method for creating redundant system configurations, the method comprising: creating a set of virtual function path authorization tables, by a trusted entity, wherein entries define access for a specified virtual function, comprising a specified function within an input/output virtualization enabled endpoint sharing one or more single root or a multi-root peripheral component interconnect (PCI) devices, to a set of logical address ranges in a plurality of systems and the entries further defining a boundary preventing invalid cross function access, wherein each system in the plurality of systems comprises at least one processor and associated memory with a logical address assigned to each logic component in each system to form a portion of the set of logical address ranges, wherein the specified virtual function is performed by the single root or the multi-root PCI device, wherein each entry in the path authorization tables contains a primary communication path and an alternative communication path for routing between the specified virtual function and a logical address range in one of the plurality of systems; receiving a request from a requestor to perform a disk write operation to write data to a disk; responsive to receiving the request from the requestor to perform the disk write operation, creating both a first receive buffer in a first selected logical address range in the set of logical address ranges and a second receive buffer in a second selected logical address range in the set of logical address ranges, wherein the second selected address range is on a different system than the first selected logical address range; responsive to creating the first receive buffer and second receive buffer, creating a virtual function work queue entry for the specified virtual function containing a logical address of the first and second receive buffers in the first and second selected logical address ranges; determining, from the set of virtual function path authorization tables, whether the specified virtual function is authorized to use the first and second selected logical address ranges based on a table entry for the specified function and a set of permitted logical addresses; responsive to a determination that the specified virtual function is authorized, writing the data into the first and second receive buffers of the first and second selected logical address ranges in the plurality of systems; and responsive to writing the requested data into the first and second receive buffers, reporting to the requestor that the data has been physically written to the disk and that the disk write operation is complete, before the data is physically written to the disk.