DYNAMIC SERVER REBALANCING
Enhanced apparatuses, systems, and techniques are presented for coupling remote peripheral devices located at a host device, as local peripheral devices of a client device. A method includes receiving an indication of a peripheral device, located at a first computing device, that is available for data processing, and receiving a request from a second computing device to access the peripheral device. Based on the request, the method may include directing the second computing device to emulate the peripheral device as a local device installed into the second computing device, and routing data traffic from the second computing device to the first computing device for processing by the peripheral device.
1 . A method comprising:
obtaining, from a server rebalancing system via a network interface, an indication of a peripheral device available over the network interface for processing, the peripheral device located at a remote computing device;
issuing a request to access the peripheral device to the server rebalancing system over the network interface;
based on a response from the server rebalancing system, instantiate an emulated version of the peripheral device as a local device installed locally to a computing device by at least triggering an entry point process in a peripheral interconnect interface of the computing device that emulates a hardware plugging process for the peripheral device with the peripheral interconnect interface; and
issuing data traffic for processing by the peripheral device to the server rebalancing system via the network interface.
2 . The method of claim 1 , comprising:
in a network stack of the computing device, exchanging data over the network interface;
in a local peripheral interconnect interface of the computing device, exchanging signals with local peripheral devices; and
emulating the peripheral device as the local device by at least interworking traffic for the peripheral device between the network stack and the local peripheral interconnect interface.
3 . The method of claim 2 , comprising:
emulating the peripheral device as the local device by at least:
intercepting traffic from the computing device for the peripheral device from the local peripheral interconnect interface;
interpreting the traffic from the computing device to convert from a native peripheral format into a packet format suitable for transfer over the network interface; and
routing the traffic from first computing device in the packet format over the network interface for delivery to the peripheral device.
4 . The method of claim 2 , comprising:
receiving peripheral device-originated traffic in a packet format from the server rebalancing system via the network interface; and
emulating the peripheral device as the local device by at least interpreting the peripheral device-originated traffic in the packet format to convert to a native peripheral format suitable for the local peripheral interconnect interface.
5 . The method of claim 2 , comprising:
emulating the peripheral device as the local device by at least emulating the hardware plugging process for the peripheral device with the local peripheral interconnect interface; and
providing address space descriptions to the local peripheral interconnect interface to access the peripheral device as a local peripheral device coupled to the first computing device.
6 . The method of claim 1 , comprising:
in the server rebalancing system:
receiving the indication of the peripheral device available for processing located at the remote computing device;
receiving the request from the computing device to access the peripheral device;
based on the request, directing the computing device to emulate the peripheral device as the local device installed into the first computing device; and
routing data traffic from the computing device to the remote computing device for processing by the peripheral device.
7 . The method of claim 1 , comprising:
in the remote computing device:
issuing, to the server rebalancing system, the indication that the peripheral device located at the remote computing device is available for processing;
receiving, from the server rebalancing system, a second indication that the peripheral device is assigned to the computing device;
receiving, from the server rebalancing system, the data traffic from the computing device for processing by the peripheral device; and
providing to the server rebalancing system a result of processing the data traffic by the peripheral device.
8 . The method of claim 1 , comprising:
intercepting traffic to the peripheral interconnect interface for the emulated version of peripheral device issued by applications executed by the computing device;
translating the traffic into translated traffic comprising a network format suitable for the network interface; and
routing the translated traffic over a network stack to reach the peripheral device over the network interface instead of over the peripheral interconnect interface.
9 . The method of claim 1 , wherein the computing device, the remote computing device, and the server rebalancing system each communicate over corresponding network links.
10 . A system comprising:
a first computing device including a network interface, the first computing device configured to:
obtain, from a server rebalancing system via the network interface, an indication of a peripheral device available over the network interface for processing, the peripheral device located at a second computing device;
issue a request to access the peripheral device to the server rebalancing system over the network interface;
based on a response from the server rebalancing system, emulate the peripheral device as a local device installed into the first computing system; and
issue data traffic for processing by the peripheral device to the server rebalancing system via the network interface.
11 . The system of claim 10 , further comprising:
the first computing device further includes:
a network stack configured to exchange data over the network interface;
a local peripheral interconnect interface configured to exchange signals with local peripheral devices;
the first computing device configured to emulate the peripheral device as a local device, further including:
interwork traffic for the peripheral device between the network stack and the local peripheral interconnect interface.
12 . The system of claim 11 further comprising:
the first computing device configured to emulate the peripheral device as a local device, further including:
intercept traffic from the first computing device for the peripheral device from the local peripheral interconnect interface;
interpret the traffic from the first computing device to convert from a native peripheral format into a packet format suitable for transfer over the network interface; and
route the traffic from the first computing device in the packet format over the network interface for delivery to the peripheral device.
13 . The system of claim 11 comprising the first computing device further configured to:
receive peripheral device-originated traffic in a packet format from the server rebalancing system via the network interface; and
emulate the peripheral device as a local device, further including:
interpret the peripheral device-originated traffic in the packet format to convert to a native peripheral format suitable for the local peripheral interconnect interface.
14 . The system of claim 11 further comprising:
the first computing device configured to emulate the peripheral device as a local device, further including:
emulate a hardware plugging process for the peripheral device with the local peripheral interconnect interface;
provide address space descriptions to the local peripheral interconnect interface to access the peripheral device as a local peripheral device coupled to the first computing device.
15 . The system of claim 10 , further comprising:
the server rebalancing system, including a second network interface and a processor configured to:
receive, over the second network interface, the indication of the peripheral device available for processing located at the second computing device;
receive, over the second network interface, the request from the first computing device to access the peripheral device;
based on the request, direct the first computing device, via the second network interface, to emulate the peripheral device as a local device installed into the first computing device; and
route data traffic from the first computing device to the second computing device for processing by the peripheral device.
16 . The system of claim 10 , further comprising:
the second computing device including:
a third network interface;
the peripheral device;
the second computing device configured to:
issue, to the server rebalancing system over the third network interface, the indication that the peripheral device located at the second computing device is available for processing;
receive, from the server rebalancing system via the third network interface, a second indication that the peripheral device is assigned to the first computing device;
receive, from the server rebalancing system via the third network interface, the data traffic from the first computing device for processing by the peripheral device; and
provide, from the second computing device to the server rebalancing system via the third network interface, a result of processing the data traffic by the peripheral device.
17 . A method comprising:
issuing, from a first computing device to a server rebalancing system over a network interface, an indication that a peripheral device located at the first computing device is available for processing;
receiving, at the first computing device from the server rebalancing system via the network interface, a second indication that the peripheral device is assigned to a second computing device;
receiving, at the first computing device from the server rebalancing system via the network interface, data traffic from the second computing device for processing by the peripheral device; and
providing, from the first computing device via the network interface, a result of processing the data traffic by the peripheral device.
18 . The method of claim 17 further comprising:
receiving, at the first computing device, the data traffic in a packet format suitable for transfer over the network interface;
interpreting the data traffic in the packet format to convert to a native peripheral format suitable for the peripheral device;
processing the data traffic at the peripheral device;
interpreting the result of the processing from the native peripheral format to the packet format; and
providing the result to the server rebalancing system via the network interface in the packet format.
19 . The method of claim 17 further comprising:
receiving, at the server rebalancing system over the network interface, the indication of the peripheral device available for processing at a first computing device;
receiving, at the server rebalancing system over the network interface, a request from the second computing device to access the peripheral device;
based on the request, directing the second computing device, by the server rebalancing system via the network interface, to emulate the peripheral device as a local device installed into the second computing device; and
routing, via the server rebalancing system, data traffic from the second computing device to the first computing device for processing by the peripheral device.
20 . The method of claim 17 further comprising:
obtaining, at the second computing device from the server rebalancing system, the indication of the peripheral device available for processing;
issuing a request, from the second computing device to the server rebalancing system over the network interface, to access the peripheral device;
based on a response from the server rebalancing system at the second computing system, emulating the peripheral device as a local device installed into the second computing system; and
issuing the data traffic for processing by the peripheral device from the second computing system to the server rebalancing system via the network interface.