Offload pipeline for data mirroring or data striping for a server
AssigneeAmazon Technologies, Inc.
InventorRobert Michael Johnson
Life of this patent
Estimating the term…
Abstract
A server computer comprising an Input/Output (I/O) adapter device and a host device receives I/O requests for transactions from a client computer via a network. According to various embodiments, the host device can offload certain data processing for storing payload data for the transactions to the I/O adapter device. The I/O adapter device can perform data mirroring or data striping on the payload data and can send the mirrored or striped data for storing in the plurality of storage volumes. The plurality of storage volumes can include one or more remote storage volumes and/or one or more local storage volumes.
Claims20
A server computer comprising:
- a host device comprising a host processor, wherein the host processor is configured to execute a plurality of computer-executable instructions;
- and
- an I/O adapter device communicatively coupled to the host device via a host interface and to a plurality of remote devices via one or more networks, wherein the host device is configured to offload to the I/O adapter device processing of payload data for a transaction for an I/O request received from a first remote device via a first network, wherein the first remote device is a client computer communicatively coupled to the server computer via the first network, the I/O adapter device comprising:
- a processor core, wherein the processor core is configured to execute a plurality of computer-executable instructions;
- an offload pipeline coupled to the processor core;
- and
- a network interface configured to communicate with the plurality of remote devices via the one or more networks,
- wherein the I/O adapter device is configured to:
- receive the I/O request for the transaction from the client computer via the network interface;
- identify the transaction based on information associated with the I/O request as a type of transaction for processing the payload data for the transaction for storing to a plurality of storage volumes;
- determine, using header information from the I/O request, that the I/O request is for a particular virtual machine from a plurality of virtual machines associated with the host device;
- process the payload data to generate a plurality of processed data based on a configuration of the I/O adapter device, identification that the transaction is the type of transaction for processing the payload data and determination that the I/O request is for the particular virtual machine, wherein the configuration includes a mirroring configuration or a striping configuration;
- and
- send the plurality of processed data for storing in the plurality of storage volumes.
A server computer comprising:
- a host device comprising a host processor, wherein the host processor is configured to execute a plurality of computer-executable instructions;
- and
- an I/O adapter device communicatively coupled to the host device via a host interface and to a plurality of remote devices via one or more networks, wherein the host device is configured to offload to the I/O adapter device processing of payload data for a transaction for an I/O request received from a first remote device, wherein the first remote device is a client computer communicatively coupled to the server computer via a first network, wherein the I/O adapter device is configured to:
- receive the I/O request for the transaction from the client computer via the first network;
- identify the transaction based on information associated with the I/O request as a type of transaction for processing the payload data for the transaction for storing to at least one of a plurality of storage volumes;
- determine, using header information from the I/O request, that the I/O request is for a particular virtual machine from a plurality of virtual machines associated with the host device;
- process the payload data to generate a plurality of processed data based on a configuration of the I/O adapter device, identification that the transaction is the type of transaction for processing the payload data and determination that the I/O request is for the particular virtual machine, wherein the configuration includes a mirroring configuration or a striping configuration;
- and
- send the plurality of processed data for storing in the plurality of storage volumes.
A computer implemented method comprising:
- receiving, by a server computer, an I/O request for a transaction from a first remote device from a plurality of remote devices via a network, wherein the first remote device is a client computer communicatively coupled to the server computer via the network, wherein the server computer comprises a host device and an I/O adapter device communicatively coupled to the host device via a host interface, and wherein the host device is configured to offload to the I/O adapter device processing of payload data for the transaction for the I/O request received from the client computer;
- identifying the transaction based on information associated with the I/O request as a type of transaction for processing the payload data for the transaction for storing to at least one of a plurality of storage volumes;
- determining, using header information from the I/O request, that the I/O request is for a particular virtual machine from a plurality of virtual machines associated with the host device;
- processing the payload data to generate a plurality of processed data based on a configuration of the I/O adapter device, identification that the transaction is the type of transaction for processing the payload data and determination that the I/O request is for the particular virtual machine, wherein the configuration includes a mirroring configuration or a striping configuration;
- and
- sending the plurality of processed data for storing in the plurality of storage volumes.
Dependencies are inferred from the claim text.