mirror of https://gitee.com/openkylin/qemu.git
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1 iQEcBAABAgAGBQJYKrs3AAoJEO8Ells5jWIRb1EH/3bAz/HiOl5COURpvwvMgq0E J3Mr91FPrgepHSeB3cqBBRNqDT2B1gx7DO5dWCQSFMxfGlZ1VX12MGC8ZtBK+8US AxNqfkzLM5tDFGn6LN4OZgV6uEJhKwSPzyasOXHzwZ7+xWG8RQ8pQc+Lj5PlCcqw esrm0EN7mwrw76RnDjDaDsUMiVxCZ0GBo3vWhEsXpCjUing14OFKk4pvQm0uIsac RL5R9xAGmTddN/0cKPG8FXh5xAOb1g/7HPHj97KIc4JrDrK1vrCF4ft6TqIOErGm OJyNX1o65+7HDsfz6vn2Bmiin4UN1mSQ5paCptS8Z5lyGGY6dQPs51dYThCQZ3I= =VMkX -----END PGP SIGNATURE----- Merge remote-tracking branch 'jasowang/tags/net-pull-request' into staging # gpg: Signature made Tue 15 Nov 2016 07:37:27 AM GMT # gpg: using RSA key 0xEF04965B398D6211 # gpg: Good signature from "Jason Wang (Jason Wang on RedHat) <jasowang@redhat.com>" # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: 215D 46F4 8246 689E C77F 3562 EF04 965B 398D 6211 * jasowang/tags/net-pull-request: docs: fix COLO architecture diagram net: fix sending of data with -net socket, listen backend net: skip virtio-net config of deleted nic's peers Message-id: 1479195830-4725-1-git-send-email-jasowang@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
97e53cf82c
|
@ -43,40 +43,42 @@ outbound packets until it has successfully synchronized the PVM state to the SVM
|
||||||
|
|
||||||
Primary Node Secondary Node
|
Primary Node Secondary Node
|
||||||
+------------+ +-----------------------+ +------------------------+ +------------+
|
+------------+ +-----------------------+ +------------------------+ +------------+
|
||||||
| | | HeartBeat |<----->| HeartBeat | | |
|
| | | HeartBeat +<----->+ HeartBeat | | |
|
||||||
| Primary VM | +-----------|-----------+ +-----------|------------+ |Secondary VM|
|
| Primary VM | +-----------+-----------+ +-----------+------------+ |Secondary VM|
|
||||||
| | | | | |
|
| | | | | |
|
||||||
| | +-----------|-----------+ +-----------|------------+ | |
|
| | +-----------|-----------+ +-----------|------------+ | |
|
||||||
| | |QEMU +---v----+ | |QEMU +----v---+ | | |
|
| | |QEMU +---v----+ | |QEMU +----v---+ | | |
|
||||||
| | | |Failover| | | |Failover| | | |
|
| | | |Failover| | | |Failover| | | |
|
||||||
| | | +--------+ | | +--------+ | | |
|
| | | +--------+ | | +--------+ | | |
|
||||||
| | | +---------------+ | | +---------------+ | | |
|
| | | +---------------+ | | +---------------+ | | |
|
||||||
| | | | VM Checkpoint |-------------->| VM Checkpoint | | | |
|
| | | | VM Checkpoint +-------------->+ VM Checkpoint | | | |
|
||||||
| | | +---------------+ | | +---------------+ | | |
|
| | | +---------------+ | | +---------------+ | | |
|
||||||
| | | | | | | |
|
|Requests<--------------------------\ /-----------------\ /--------------------->Requests|
|
||||||
|Requests<---------------------------^------------------------------------------>Requests|
|
| | | ^ ^ | | | | | | |
|
||||||
|Responses----------------------\ /--|--------------\ /------------------------Responses|
|
|Responses+---------------------\ /-|-|------------\ /-------------------------+Responses|
|
||||||
| | | | | | | | | | | | |
|
| | | | | | | | | | | | | | | |
|
||||||
| | | +-----------+ | | | | | | | +------------+ | | |
|
| | | +-----------+ | | | | | | | | | | +----------+ | | |
|
||||||
| | | | COLO disk | | | | | | | | | COLO disk | | | |
|
| | | | COLO disk | | | | | | | | | | | | COLO disk| | | |
|
||||||
| | | | Manager |-|-|--|--------------|--|->| Manager | | | |
|
| | | | Manager +---------------------------->| Manager | | | |
|
||||||
| | | +|----------+ | | | | | | | +-----------|+ | | |
|
| | | ++----------+ v v | | | | | v v | +---------++ | | |
|
||||||
| | | | | | | | | | | | | | |
|
| | | |+-----------+-+-+-++| | ++-+--+-+---------+ | | | |
|
||||||
+------------+ +--|------------|-|--|--+ +---|--|--------------|--+ +------------+
|
| | | || COLO Proxy || | | COLO Proxy | | | | |
|
||||||
| | | | | | |
|
| | | || (compare packet || | |(adjust sequence | | | | |
|
||||||
+-------------+ | +----------v-v--|--+ +---|--v-----------+ | +-------------+
|
| | | ||and mirror packet)|| | | and ACK) | | | | |
|
||||||
| VM Monitor | | | COLO Proxy | | COLO Proxy | | | VM Monitor |
|
| | | |+------------+---+-+| | +-----------------+ | | | |
|
||||||
| | | |(compare packet) | | (adjust sequence)| | | |
|
+------------+ +-----------------------+ +------------------------+ +------------+
|
||||||
+-------------+ | +----------|----^--+ +------------------+ | +-------------+
|
+------------+ | | | | +------------+
|
||||||
| | | |
|
| VM Monitor | | | | | | VM Monitor |
|
||||||
+------------------|------------|----|--+ +---------------------|------------------+
|
+------------+ | | | | +------------+
|
||||||
|
+---------------------------------------+ +----------------------------------------+
|
||||||
| Kernel | | | | | Kernel | |
|
| Kernel | | | | | Kernel | |
|
||||||
+------------------|------------|----|--+ +---------------------|------------------+
|
+---------------------------------------+ +----------------------------------------+
|
||||||
| | | |
|
| | | |
|
||||||
+--------------v+ +--------v----|--+ +------------------+ +v-------------+
|
+--------------v+ +---------v---+--+ +------------------+ +v-------------+
|
||||||
| Storage | |External Network| | External Network | | Storage |
|
| Storage | |External Network| | External Network | | Storage |
|
||||||
+---------------+ +----------------+ +------------------+ +--------------+
|
+---------------+ +----------------+ +------------------+ +--------------+
|
||||||
|
|
||||||
|
|
||||||
== Components introduction ==
|
== Components introduction ==
|
||||||
|
|
||||||
You can see there are several components in COLO's diagram of architecture.
|
You can see there are several components in COLO's diagram of architecture.
|
||||||
|
|
|
@ -508,6 +508,10 @@ static void virtio_net_set_queues(VirtIONet *n)
|
||||||
int i;
|
int i;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
|
if (n->nic->peer_deleted) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < n->max_queues; i++) {
|
for (i = 0; i < n->max_queues; i++) {
|
||||||
if (i < n->curr_queues) {
|
if (i < n->curr_queues) {
|
||||||
r = peer_attach(n, i);
|
r = peer_attach(n, i);
|
||||||
|
|
|
@ -1653,10 +1653,9 @@ int net_fill_rstate(SocketReadState *rs, const uint8_t *buf, int size)
|
||||||
if (rs->index >= rs->packet_len) {
|
if (rs->index >= rs->packet_len) {
|
||||||
rs->index = 0;
|
rs->index = 0;
|
||||||
rs->state = 0;
|
rs->state = 0;
|
||||||
if (rs->finalize) {
|
assert(rs->finalize);
|
||||||
rs->finalize(rs);
|
rs->finalize(rs);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -511,6 +511,7 @@ static int net_socket_listen_init(NetClientState *peer,
|
||||||
s->fd = -1;
|
s->fd = -1;
|
||||||
s->listen_fd = ret;
|
s->listen_fd = ret;
|
||||||
s->nc.link_down = true;
|
s->nc.link_down = true;
|
||||||
|
net_socket_rs_init(&s->rs, net_socket_rs_finalize);
|
||||||
|
|
||||||
qemu_set_fd_handler(s->listen_fd, net_socket_accept, NULL, s);
|
qemu_set_fd_handler(s->listen_fd, net_socket_accept, NULL, s);
|
||||||
qapi_free_SocketAddress(saddr);
|
qapi_free_SocketAddress(saddr);
|
||||||
|
|
Loading…
Reference in New Issue