[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 0/4] Multiple interface support on top of Multi-FD
From: |
Het Gala |
Subject: |
[PATCH 0/4] Multiple interface support on top of Multi-FD |
Date: |
Thu, 9 Jun 2022 07:33:01 +0000 |
As of now, the multi-FD feature supports connection over the default network
only. This Patchset series is a Qemu side implementation of providing multiple
interfaces support for multi-FD. This enables us to fully utilize dedicated or
multiple NICs in case bonding of NICs is not possible.
Introduction
-------------
Multi-FD Qemu implementation currently supports connection only on the default
network. This forbids us from advantages like:
- Separating VM live migration traffic from the default network.
- Fully utilize all NICs’ capacity in cases where creating a LACP bond (Link
Aggregation Control Protocol) is not supported.
Multi-interface with Multi-FD
-----------------------------
Multiple-interface support over basic multi-FD has been implemented in the
patches. Advantages of this implementation are:
- Able to separate live migration traffic from default network interface by
creating multiFD channels on ip addresses of multiple non-default interfaces.
- Can optimize the number of multi-FD channels on a particular interface
depending upon the network bandwidth limit on a particular interface.
Implementation
--------------
Earlier the 'migrate' qmp command:
{ "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } }
Modified qmp command:
{ "execute": "migrate",
"arguments": { "uri": "tcp:0:4446", "multi-fd-uri-list": [ {
"source-uri": "tcp::6900", "destination-uri": "tcp:0:4480",
"multifd-channels": 4}, { "source-uri": "tcp:10.0.0.0: ",
"destination-uri": "tcp:11.0.0.0:7789",
"multifd-channels": 5} ] } }
------------------------------------------------------------------------------
Earlier the 'migrate-incoming' qmp command:
{ "execute": "migrate-incoming", "arguments": { "uri": "tcp::4446" } }
Modified 'migrate-incoming' qmp command:
{ "execute": "migrate-incoming",
"arguments": {"uri": "tcp::6789",
"multi-fd-uri-list" : [ {"destination-uri" : "tcp::6900",
"multifd-channels": 4}, {"destination-uri" : "tcp:11.0.0.0:7789",
"multifd-channels": 5} ] } }
------------------------------------------------------------------------------
Introduced a new flag while spawning a qemu process for 'migrate-incoming' ip
addresses (-multi-fd-incoming flag):
-multi-fd-incoming "tcp::6900:4,tcp:11.0.0.0:7789:5"
---
Het Gala (4):
Modifying ‘migrate’ qmp command to add multi-FD socket on particular
source and destination pair
Adding multi-interface support for multi-FD on destination side
Establishing connection between any non-default source and destination
pair
Adding support for multi-FD connections dynamically
chardev/char-socket.c | 4 +-
include/io/channel-socket.h | 26 ++--
include/qapi/util.h | 10 ++
include/qemu/sockets.h | 6 +-
io/channel-socket.c | 50 +++++--
migration/migration.c | 211 ++++++++++++++++++++++------
migration/migration.h | 3 +-
migration/multifd.c | 42 +++---
migration/socket.c | 119 ++++++++++++----
migration/socket.h | 24 +++-
monitor/hmp-cmds.c | 68 ++++-----
nbd/client-connection.c | 2 +-
qapi/migration.json | 92 +++++++++---
qapi/qapi-util.c | 27 ++++
qemu-nbd.c | 4 +-
qemu-options.hx | 18 +++
scsi/pr-manager-helper.c | 1 +
softmmu/vl.c | 30 +++-
tests/unit/test-char.c | 8 +-
tests/unit/test-io-channel-socket.c | 4 +-
tests/unit/test-util-sockets.c | 16 +--
ui/input-barrier.c | 2 +-
ui/vnc.c | 3 +-
util/qemu-sockets.c | 71 +++++++---
24 files changed, 626 insertions(+), 215 deletions(-)
--
2.22.3
- [PATCH 0/4] Multiple interface support on top of Multi-FD,
Het Gala <=