Commit 97e53cf8 authored by Stefan Hajnoczi's avatar Stefan Hajnoczi
Browse files

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: default avatarStefan Hajnoczi <stefanha@redhat.com>
parents 1ed9bd12 a38299bf
Loading
Loading
Loading
Loading
+37 −35
Original line number Diff line number Diff line
@@ -43,40 +43,42 @@ outbound packets until it has successfully synchronized the PVM state to the SVM

  Primary Node                                                            Secondary Node
+------------+  +-----------------------+       +------------------------+  +------------+
 |            |  |       HeartBeat       |<----->|       HeartBeat        |  |            |
 | Primary VM |  +-----------|-----------+       +-----------|------------+  |Secondary VM|
|            |  |       HeartBeat       +<----->+       HeartBeat        |  |            |
| Primary VM |  +-----------+-----------+       +-----------+------------+  |Secondary VM|
|            |              |                               |               |            |
|            |  +-----------|-----------+       +-----------|------------+  |            |
|            |  |QEMU   +---v----+      |       |QEMU  +----v---+        |  |            |
|            |  |       |Failover|      |       |      |Failover|        |  |            |
|            |  |       +--------+      |       |      +--------+        |  |            |
|            |  |   +---------------+   |       |   +---------------+    |  |            |
 |            |  |   | VM Checkpoint |-------------->| VM Checkpoint |    |  |            |
|            |  |   | VM Checkpoint +-------------->+ VM Checkpoint |    |  |            |
|            |  |   +---------------+   |       |   +---------------+    |  |            |
 |            |  |                       |       |                        |  |            |
 |Requests<---------------------------^------------------------------------------>Requests|
 |Responses----------------------\ /--|--------------\  /------------------------Responses|
 |            |  |               | |  |  |       |   |  |                 |  |            |
 |            |  | +-----------+ | |  |  |       |   |  |  +------------+ |  |            |
 |            |  | | COLO disk | | |  |  |       |   |  |  | COLO disk  | |  |            |
 |            |  | |   Manager |-|-|--|--------------|--|->| Manager    | |  |            |
 |            |  | +|----------+ | |  |  |       |   |  |  +-----------|+ |  |            |
 |            |  |  |            | |  |  |       |   |  |              |  |  |            |
 +------------+  +--|------------|-|--|--+       +---|--|--------------|--+  +------------+
                    |            | |  |              |  |              |
 +-------------+    | +----------v-v--|--+       +---|--v-----------+  |    +-------------+
 |  VM Monitor |    | |  COLO Proxy      |       |    COLO Proxy    |  |    | VM Monitor  |
 |             |    | |(compare packet)  |       | (adjust sequence)|  |    |             |
 +-------------+    | +----------|----^--+       +------------------+  |    +-------------+
                    |            |    |                                |
 +------------------|------------|----|--+       +---------------------|------------------+
|Requests<--------------------------\ /-----------------\ /--------------------->Requests|
|            |  |                   ^ ^ |       |       | |              |  |            |
|Responses+---------------------\ /-|-|------------\ /-------------------------+Responses|
|            |  |               | | | | |       |  | |  | |              |  |            |
|            |  | +-----------+ | | | | |       |  | |  | | +----------+ |  |            |
|            |  | | COLO disk | | | | | |       |  | |  | | | COLO disk| |  |            |
|            |  | |   Manager +---------------------------->| Manager  | |  |            |
|            |  | ++----------+ v v | | |       |  | v  v | +---------++ |  |            |
|            |  |  |+-----------+-+-+-++|       | ++-+--+-+---------+ |  |  |            |
|            |  |  ||   COLO Proxy     ||       | |   COLO Proxy    | |  |  |            |
|            |  |  || (compare packet  ||       | |(adjust sequence | |  |  |            |
|            |  |  ||and mirror packet)||       | |    and ACK)     | |  |  |            |
|            |  |  |+------------+---+-+|       | +-----------------+ |  |  |            |
+------------+  +-----------------------+       +------------------------+  +------------+
+------------+     |             |   |                                |     +------------+
| VM Monitor |     |             |   |                                |     | VM Monitor |
+------------+     |             |   |                                |     +------------+
+---------------------------------------+       +----------------------------------------+
|   Kernel         |             |   |  |       |   Kernel            |                  |
 +------------------|------------|----|--+       +---------------------|------------------+
+---------------------------------------+       +----------------------------------------+
                   |             |   |                                |
     +--------------v+  +--------v----|--+       +------------------+ +v-------------+
    +--------------v+  +---------v---+--+       +------------------+ +v-------------+
    |   Storage     |  |External Network|       | External Network | |   Storage    |
    +---------------+  +----------------+       +------------------+ +--------------+


== Components introduction ==

You can see there are several components in COLO's diagram of architecture.
+4 −0
Original line number Diff line number Diff line
@@ -508,6 +508,10 @@ static void virtio_net_set_queues(VirtIONet *n)
    int i;
    int r;

    if (n->nic->peer_deleted) {
        return;
    }

    for (i = 0; i < n->max_queues; i++) {
        if (i < n->curr_queues) {
            r = peer_attach(n, i);
+2 −3
Original line number Diff line number Diff line
@@ -1653,10 +1653,9 @@ int net_fill_rstate(SocketReadState *rs, const uint8_t *buf, int size)
            if (rs->index >= rs->packet_len) {
                rs->index = 0;
                rs->state = 0;
                if (rs->finalize) {
                assert(rs->finalize);
                rs->finalize(rs);
            }
            }
            break;
        }
    }
+1 −0
Original line number Diff line number Diff line
@@ -511,6 +511,7 @@ static int net_socket_listen_init(NetClientState *peer,
    s->fd = -1;
    s->listen_fd = ret;
    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);
    qapi_free_SocketAddress(saddr);