Chapter 1. Architecture

This guide assumes the following example system architecture.

OpenStack Controller Node:

  • Controller Node (controller)

Compute Node:

  • Compute Node (compute1)

Since MidoNet is a distributed system, it does not have the concept of a Network Node as being used with the default OpenStack networking plugin. Instead it uses two or more Gateway Nodes that utilize Quagga to provide connectivity to external networks via the Border Gateway Protocol (BGP).

  • Gateway Node 1 (gateway1)
  • Gateway Node 2 (gateway2)

Three or more hosts are being used for the MidoNet Network State Database (NSDB) cluster which utilizes ZooKeeper and Cassandra to store virtual network topology and connection state information:

  • NSDB Node 1 (nsdb1)
  • NSDB Node 2 (nsdb2)
  • NSDB Node 3 (nsdb3)
[Important]Important

Ideally, both the ZooKeeper transaction log and Cassandra data files need their own dedicated disks, with additional disks for other services on the host. However, for small POCs and small deployments, it is ok to share the Cassandra disk with other services and just leave the ZooKeeper transaction log on its own.

The MidoNet Agent (Midolman) has to be installed on all nodes where traffic enters or leaves the virtual topology. In this guide this are the gateway1, gateway2 and compute1 hosts.

The Midonet Cluster can be installed on a separate host, but this guide assumes it to be installed on the controller host.

The Midonet Command Line Interface (CLI) can be installed on any host that has connectivity to the MidoNet Cluster. This guide assumes it to be installed on the controller host.

The Midonet Neutron Plugin replaces the ML2 Plugin and has to be installed on the controller.

Questions? Discuss on Mailing Lists or Chat.
Found an error? Report a bug.