SlideShare ist ein Scribd-Unternehmen logo
1 von 96
Downloaden Sie, um offline zu lesen
OpenStack
Super
Bootcamp
            Mirantis, 2012
Agenda
● OpenStack Essex architecture recap
● Folsom architecture overview
● Quantum vs Essex's networking model
Initial State
                                                            Tenant is created, provisioning
                                                            quota is available, user has an
                                                            access to Horizon/CLI
  Horizon                 CLI




                                          Keystone                       Glance
nova: Cloud Controller

              nova-api                         endpoint                          glance-api

                                                                            glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute                Swift
                         que
 nova-volume             ue                   hypervisor                     proxy-server


                                                                                   object
                         Shared Storage                                            store
Step 1: Request VM Provisioning via UI/CLI
                                                            User specifies VM params:
                                                            name, flavor, keys, etc. and hits
                                                            "Create" button
  Horizon                 CLI




                                          Keystone                       Glance
nova: Cloud Controller

              nova-api                         endpoint                          glance-api

                                                                             glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute                Swift
                         que
 nova-volume             ue                   hypervisor                      proxy-server


                                                                                   object
                         Shared Storage                                            store
Step 2: Validate Auth Data
                                                            Horizon sends HTTP request to
                                                            Keystone. Auth info is specified
                                                            in HTTP headers.
  Horizon                 CLI




                                          Keystone                       Glance
nova: Cloud Controller

              nova-api                         endpoint                          glance-api

                                                                            glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute                Swift
                         que
 nova-volume             ue                   hypervisor                     proxy-server


                                                                                   object
                         Shared Storage                                            store
Step 2: Validate Auth Data
                                                            Keystone sends temporary
                                                            token back to Horizon via HTTP.
  Horizon                 CLI




                                          Keystone                      Glance
nova: Cloud Controller

              nova-api                         endpoint                         glance-api

                                                                           glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute               Swift
                         que
 nova-volume             ue                   hypervisor                    proxy-server


                                                                                  object
                         Shared Storage                                           store
Step 3: Send API request to nova-api
                                                            Horizon sends POST request to
                                                            nova-api (signed with given
                                                            token).
  Horizon                 CLI




                                          Keystone                     Glance
nova: Cloud Controller

              nova-api                         endpoint                        glance-api

                                                                           glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute              Swift
                         que
 nova-volume             ue                   hypervisor                    proxy-server


                                                                                 object
                         Shared Storage                                          store
Step 4: Validate API Token
                                                            nova-api sends HTTP request to
                                                            validate API token to Keystone.
  Horizon                 CLI




                                          Keystone                      Glance
nova: Cloud Controller

              nova-api                         endpoint                         glance-api

                                                                           glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute               Swift
                         que
 nova-volume             ue                   hypervisor                    proxy-server


                                                                                  object
                         Shared Storage                                           store
Step 4: Validate API Token
                                                            Keystone validates API token
                                                            and sends HTTP response with
                                                            token acceptance/rejection info.
  Horizon                 CLI




                                          Keystone                       Glance
nova: Cloud Controller

              nova-api                         endpoint                          glance-api

                                                                            glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute                Swift
                         que
 nova-volume             ue                   hypervisor                     proxy-server


                                                                                   object
                         Shared Storage                                            store
Step 5: Process API request
                                                            nova-api parses request and
                                                            validates it by fetching data from
                                                            nova-db. If request is valid, it
                                                            saves initia db entry about VM
  Horizon                 CLI                               to the database.



                                          Keystone                       Glance
nova: Cloud Controller

              nova-api                         endpoint                          glance-api

                                                                             glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute                Swift
                         que
 nova-volume             ue                   hypervisor                      proxy-server


                                                                                   object
                         Shared Storage                                            store
Step 6: Publish provisioning request to queue
                                                            nova-api makes rpc.call to
                                                            scheduler. It publishes a short
                                                            message to scheduler queue
  Horizon                 CLI                               with VM info.




                                          Keystone                       Glance
nova: Cloud Controller

              nova-api                         endpoint                          glance-api

                                                                             glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute                Swift
                         que
 nova-volume             ue                   hypervisor                      proxy-server


                                                                                   object
                         Shared Storage                                            store
Step 6: Pick up provisioning request
                                                            scheduler picks up the message
                                                            from MQ.
  Horizon                 CLI




                                          Keystone                     Glance
nova: Cloud Controller

              nova-api                         endpoint                         glance-api

                                                                           glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute               Swift
                         que
 nova-volume             ue                   hypervisor                    proxy-server


                                                                                  object
                         Shared Storage                                           store
Step 7: Schedule provisioning
                                                            Scheduler fetches information
                                                            about the whole cluster from
                                                            database and based on this info
                                                            selects the most applicable
  Horizon                 CLI                               compute host.



                                          Keystone                      Glance
nova: Cloud Controller

              nova-api                         endpoint                         glance-api

                                                                            glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute               Swift
                         que
 nova-volume             ue                   hypervisor                     proxy-server


                                                                                  object
                         Shared Storage                                           store
Step 8: Start VM provisioning on compute node
                                                            Scheduler publishes message
                                                            to the compute queue (based on
                                                            host ID) and triggers VM
  Horizon                 CLI                               provisioning




                                          Keystone                     Glance
nova: Cloud Controller

              nova-api                         endpoint                        glance-api

                                                                           glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute              Swift
                         que
 nova-volume             ue                   hypervisor                    proxy-server


                                                                                 object
                         Shared Storage                                          store
Step 9: Start VM rendering via hypervisor
                                                            nova-compute fetches
                                                            information about VM from DB,
                                                            creates a command to
                                                            hypervisor and delegates VM
  Horizon                 CLI                               rendering to hypervisor.



                                          Keystone                      Glance
nova: Cloud Controller

              nova-api                         endpoint                         glance-api

                                                                           glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute               Swift
                         que
 nova-volume             ue                   hypervisor                    proxy-server


                                                                                  object
                         Shared Storage                                           store
Step 10: Request VM Image from Glance
                                                            hypervisor request VM image
                                                            from Glance via Image ID
  Horizon                 CLI




                                          Keystone                     Glance
nova: Cloud Controller

              nova-api                         endpoint                        glance-api

                                                                           glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute              Swift
                         que
 nova-volume             ue                   hypervisor                    proxy-server


                                                                                 object
                         Shared Storage                                          store
Step 11: Get Image URI from Glance
                                                            If image with given image ID
                                                            can be found - return
  Horizon                 CLI




                                          Keystone                      Glance
nova: Cloud Controller

              nova-api                         endpoint                         glance-api

                                                                            glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute               Swift
                         que
 nova-volume             ue                   hypervisor                     proxy-server


                                                                                  object
                         Shared Storage                                           store
Step 12: Download image from Swift
                                                            hypervisor downloads image
                                                            using URI, given by Glance,
                                                            from Glance's back-end. After
  Horizon                 CLI                               downloading - it renders it.




                                          Keystone                      Glance
nova: Cloud Controller

              nova-api                         endpoint                         glance-api

                                                                            glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute               Swift
                         que
 nova-volume             ue                   hypervisor                     proxy-server


                                                                                  object
                         Shared Storage                                           store
Step 13: Configure network
                                                            nova-compute makes rpc.call to
                                                            nova-network requesting
                                                            networking info.
  Horizon                 CLI




                                          Keystone                      Glance
nova: Cloud Controller

              nova-api                         endpoint                         glance-api

                                                                           glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute               Swift
                         que
 nova-volume             ue                   hypervisor                    proxy-server


                                                                                  object
                         Shared Storage                                           store
Step 14: allocate and associate network
                                                            nova-network updates tables
                                                            with networking info and VM
                                                            entry in database
  Horizon                 CLI




                                          Keystone                      Glance
nova: Cloud Controller

              nova-api                         endpoint                         glance-api

                                                                           glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute               Swift
                         que
 nova-volume             ue                   hypervisor                    proxy-server


                                                                                  object
                         Shared Storage                                           store
Step 15: Request volume attachment
                                                            Tenant is created, provisioning
                                                            quota is available, user has an
                                                            access to Horizon/CLI
  Horizon                 CLI




                                          Keystone                       Glance
nova: Cloud Controller

              nova-api                         endpoint                          glance-api

                                                                            glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute                Swift
                         que
 nova-volume             ue                   hypervisor                     proxy-server


                                                                                   object
                         Shared Storage                                            store
Initial State
                                                            Tenant is created, provisioning
                                                            quota is available, user has an
                                                            access to Horizon/CLI
  Horizon                 CLI




                                          Keystone                       Glance
nova: Cloud Controller

              nova-api                         endpoint                          glance-api

                                                                            glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute                Swift
                         que
 nova-volume             ue                   hypervisor                     proxy-server


                                                                                   object
                         Shared Storage                                            store
Still part of nova

  Horizon                 CLI




                                          Keystone          Glance
nova: Cloud Controller

              nova-api                         endpoint             glance-api

                                                               glance-registry
  scheduler                               nova: Compute
                     nova-db
 nova-network                                nova-compute   Swift
                         que
 nova-volume             ue                   hypervisor        proxy-server


                                                                      object
                         Shared Storage                               store
Limitations?
● Nova is "overloaded" to do 3 things
   ○ Compute
   ○ Networking
   ○ Block Storage


● API for networking and block storage are still
  parts of nova
UI: horizon or CLI                            Keystone
                                                                                   keystone
                                                                                    server
nova                                                  compute node
                                                                                       keystone
                                                                                         -db
   controller                                    nova:        Hypervisor
                            queu                  nova-
                                                Compute
       nova-api               e                  compute
                                                                                   Quantum
                                                                      V
                                                                      M              quantum
   scheduler                                                                          server
                           nova-db
                                                                Network
                                                                                       quantum
                                                                                         -db

                  Cinder                         block               Glance          quantum
                                                storage                               plugin
   endpoint                 queu
                              e                  node            glance-api

   scheduler                                    storage        glance-registry        Swift
                           cinder-vol                                              proxy-server
                                                                          glance
                                                                            db           object
          cinder-db                                                                      store
UI: horizon or CLI                            Keystone
                                                                                   keystone
                                                                                    server
nova                                                  compute node
                                                                                       keystone
                                                                                         -db
   controller                                    nova:        Hypervisor
                            queu                  nova-
                                                Compute
       nova-api               e                  compute
                                                                                   Quantum
                                                                      V
                                                                      M              quantum
   scheduler                                                                          server
                           nova-db
                                                                Network
                                                                                       quantum
                                                                                         -db

                  Cinder                         block               Glance          quantum
                                                storage                               plugin
   endpoint                 queu
                              e                  node            glance-api

   scheduler                                    storage        glance-registry        Swift
                           cinder-vol                                              proxy-server
                                                                          glance
                                                                            db           object
          cinder-db                                                                      store
Essex' networking model overview
●   single-host vs multi-host networking
●   the role of network manager
●   different network manager types
●   floating IPs
Revisit of KVM networking with linux bridge



                                                      router

                                                router: 10.0.0.1
                                              (def. gateway for VMs)




               VM                    VM                                  VM                  VM
             10.0.0.2              10.0.0.3                            10.0.0.4            10.0.0.5

                           linux                                                   linux
                          bridge                                                  bridge



                          eth0                                                    eth0
      nova-compute host                                                                    nova-compute host
                                                     switch
Single-host networking
●   KVM host == nova-compute
●   router == nova-network                         eth1
                                                           public ip


                                                routing/NAT
                                                   eth0      eth0 IP:10.0.0.1
                            nova-network host              (def. gateway for VMs)




                 VM                    VM                                VM                    VM
               10.0.0.2              10.0.0.3                          10.0.0.4              10.0.0.5

                             linux                                                   linux
                            bridge                                                  bridge



                             eth0                                                   eth0
        nova-compute host                                                                    nova-compute host
                                                  switch
What happens if nova-network host dies
VM:~root$ ping google.com
No route to host                                eth1

                                             routing/NAT
                                                eth0




              VM                    VM                       VM                  VM
            10.0.0.2              10.0.0.3                 10.0.0.4            10.0.0.5

                          linux                                        linux
                         bridge                                       bridge



                         eth0                                         eth0
     nova-compute host                                                         nova-compute host
                                               switch
Multi-host networking
Move routing from the central server
to each compute node independently to                eth1
prevent SPOF.                                     routing/NAT
                                                     eth0

                  public ip                                                         public ip
                              eth1                                         eth1

                         routing/NAT                                   routing/NAT


                 VM                      VM                       VM                   VM
               10.0.0.2                10.0.0.3                 10.0.0.4             10.0.0.5

                               linux                                        linux
                              bridge                                       bridge



                              eth0                                         eth0
        nova-compute &                                                              nova-compute &
        nova-network host                           switch                          nova-network host
Multi-host networking
Compute servers maintain Internet access independent from each other. Each of
them runs nova-network & nova-compute components.




                public ip                                                        public ip
                            eth1                                        eth1

                      routing/NAT                                   routing/NAT


               VM                      VM                    VM                     VM
             10.0.0.2                10.0.0.3              10.0.0.4               10.0.0.5

                             linux                                       linux
                            bridge                                      bridge
           10.0.0.1(gw)                                  10.0.0.6(gw)


                            eth0                                        eth0
      nova-compute &                                                             nova-compute &
      nova-network host                         switch                           nova-network host
Multi-host networking - features
● Independent traffic:
  Instances on both compute nodes access external
  networks independently. For each of them, the local linux
  bridge is used as default gateway
Multi-host networking - features
● Independent traffic:
  Instances on both compute nodes access external
  networks independently. For each of them, the local linux
  bridge is used as default gateway
● Routing:
  Kernel routing tables are checked to decide if the packet
  should be NAT-ed to eth1 or sent via eth0
Multi-host networking - features
● Independent traffic:
  Instances on both compute nodes access external
  networks independently. For each of them, the local linux
  bridge is used as default gateway
● Routing:
  Kernel routing tables are checked to decide if the packet
  should be NAT-ed to eth1 or sent via eth0
● IP address management:
  nova-network maintains IP assignments to linux bridges
  and instances in nova database
Network manager
● Determines network layout of the cloud
  infrastructure

● Capabilities of network managers
  ○   Plugging instances into linux bridges
  ○   Creating linux bridges
  ○   IP allocation to instances
  ○   Injecting network configuration into instances
  ○   Providing DHCP services for instances
  ○   Configuring VLANs
  ○   Traffic filtering
  ○   Providing external connectivity to instances
FlatManager
● Features:
  ○     Operates on ONE large IP pool. Chunks of it are shared between tenants.
  ○     Allocates IPs to instances (in nova database) as they are created
  ○     Plugs instances into a predefined bridge
  ○     Injects network config to /etc/network/interfaces
                   eth1                                        eth1


                                                                VM
                                                      /etc/network/interfaces:
                   VM
                                                          "address 10.0.0.2
                                                         gateway 10.0.0.1"


                    linux                                       linux
                   bridge                                      bridge
                                                                        10.0.0.1(gw)


                   eth0                                        eth0
  nova-compute &                              nova-compute &
  nova-network                                nova-network
FlatDHCPManager
● Features:
  ○     Operates on ONE large IP pool. Chunks of it are shared between tenants
  ○     Allocates IPs to instances (in nova database) as they are created
  ○     Creates a bridge and plugs instances into it
  ○     Runs a DHCP server (dnsmasq) for instances to boot from
                   eth1                                         eth1

                                                                   VM
                                                       obtain dhcp static lease:
                   VM                                         ip: 10.0.0.2
                                                             gw: 10.0.0.1


                                                  dnsmasq
                                                                  linux
                                                                 bridge 10.0.0.1(gw)


                   eth0                                          eth0
  nova-compute &                              nova-compute
  nova-network                                & nova-network
DHCP server (dnsmasq) operation
● is managed by nova-network component
● in multi-host networking runs on every compute node and
  provides addresses only to instances on that node (based
  on DHCP reservations)
                             eth1                                                      eth1

                   VM                      VM                                 VM                      VM
              ip: 10.0.0.4            ip: 10.0.0.6                       ip: 10.0.0.2            ip: 10.0.0.5
              gw: 10.0.0.3            gw: 10.0.0.3                       gw: 10.0.0.1            gw: 10.0.0.1




dnsmasq: static leases for    linux                       dnsmasq: static leases for     linux
10.0.0.4 & 10.0.0.6          bridge    10.0.0.3(gw)       10.0.0.2 & 10.0.0.5           bridge     10.0.0.1(gw)



                             eth0                                                       eth0
      nova-compute &                                            nova-compute
      nova-network                                              & nova-network

                                                      switch
VlanManager
● Features:
  ○     Can manage many IP subnets
  ○     Uses a dedicated network bridge for each network
  ○     Can map networks to tenants
  ○     Runs a DHCP server (dnsmasq) for instances to boot from
  ○     Separates network traffic with 802.1Q VLANs
                   eth1                                            eth1


         VM_net1          VM_net2                VM_net1                   VM_net2




                                                     br100                   br200
                                      dnsmasq_net1                                 dnsmasq_net2

                                                        eth0.100
                   eth0                                            eth0 eth0.200
  nova-compute &                            nova-compute
  nova-network                              & nova-network
VlanManager - switch requirements
The switch requires support for 802.1Q tagged VLANs to
connect instances on different compute nodes
                         eth1                                          eth1


         VM_net1                 VM_net2                    VM_net2                  VM_net1




           br100                   br200                     br100                     br200



              eth0.100                                          eth0.200          eth0.100
                         eth0 eth0.200                                     eth0
    nova-compute                                     nova-compute
    & nova-network                                   & nova-network



                                           tagged traffic



                                    802.1Q capable switch
Network managers comparison
Name              Possible use cases                       Limitations
FlatManager       Deprecated - should not be used for       ●   Only Debian derivatives
                  any deployments.                              supported.
                                                            ●   Single IP network suffers from
                                                                scalability limitations.



FlatDHCPManager   Internal, relatively small corporate      ●   Instances share the same linux
                  clouds which do not require tenant            bridge regardless which tenant
                  isolation.                                    they belong to.
                                                            ●   Limited scalability because of one
                                                                huge IP subnet.




VlanManager       Public clouds which require L2 traffic    ●   Requires 802.1Q capable switch.
                  isolation between tenants and use of      ●   Scalable only to 4096 VLANs
                  dedicated subnets.
Inter-tenant traffic
Compute node's routing table
consulted to route traffic
between tenants' networks                public ip
                                                     eth1
(based on IPs of the linux
bridges)                            VM_net1                    VM_net2

                                                     routing
                                           10.100.0.0 via br100
                                           10.200.0.0 via br200


                                      br100                      br200
                                    10.100.0.1                 10.200.0.1


                                          eth0.100
                                                      eth0 eth0.200
                               nova-compute
                               & nova-network
Accessing internet
● eth1 address is set as the
    compute node's default gateway
●   Compute node's routing table                  public ip
                                                              eth1
    consulted to route traffic from
    the instance to the internet over
                                             VM_net1                    VM_net2


    the public interface (eth1)                           routing/NAT
                                                        0.0.0.0 via eth1

    source NAT is performed to the
                                               src 10.100.0.0 -j SNAT to public_ip
●
    compute node's public address              br100
                                             10.100.0.1
                                                                           br200
                                                                         10.200.0.1


                                                   eth0.100
                                                              eth0 eth0.200
                                        nova-compute
                                        & nova-network
Floating & fixed IPs
● Fixed IPs:
   ○ given to each instance on boot (by dnsmasq)
   ○ private IP ranges (10.0.0.0, 192.168.0.0, etc.)
   ○ only for communication between instances and to
     external networks
   ○ inaccessible from external networks
● Floating IPs:
   ○ allocated & associated to instances by cloud users
   ○ bunches of publicly routable IPs registered in
     Openstack by cloud dmin
   ○ accessible from external networks
   ○ multiple floating IP pools, leading to different ISP-s
Floating IPs
● User associates a floating                                        floating IP
                                                                    added as a
  IP with VM:                                                       secondary IP
                                                                    on eth1
   ○ floating IP is added as a
     secondary IP address on
                                              vm_float_ ip: 92.93.94.95
                                              public ip

     compute node's eth1 (public                          eth1
                                                floating IP DNAT:
     IF)                                     -d 92.93.94.95/32 -j DNAT --
                                                to-destination 10.0.0.2
   ○ DNAT rule is set to redirect
     floating IP -> fixed IP                 VM
                                           10.0.0.2
                                                                     VM
                                                                   10.0.0.3
     (10.0.0.2)                                            linux
                                                          bridge


                                                          eth0
                                    nova-compute &
                                    nova-network host
Limitations
● Networking management is available only for
  admin
● Implementation is coupled with networking
  abstractions
QUANTUM - a new networking platform
● Provides a flexible API for service providers or their
  tenants to manage OpenStack network topologies

● Presents a logical API and a corresponding plug-in
  architecture that separates the description of network
  connectivity from its implementation

● Offers an API that is extensible and evolves
  independently of the compute API

● Provides a platform for integrating advanced networking
  solutions
QUANTUM - a new networking platform
● Provides a flexible API for service providers or their
  tenants to manage OpenStack network topologies

● Presents a logical API and a corresponding plug-in
  architecture that separates the description of network
  connectivity from its implementation

● Offers an API that is extensible and evolves
  independently of the compute API

● Provides a platform for integrating advanced networking
  solutions
QUANTUM - a new networking platform
● Provides a flexible API for service providers or their
  tenants to manage OpenStack network topologies

● Presents a logical API and a corresponding plug-in
  architecture that separates the description of network
  connectivity from its implementation

● Offers an API that is extensible and evolves
  independently of the compute API

● Provides a platform for integrating advanced networking
  solutions
QUANTUM - a new networking platform
● Provides a flexible API for service providers or their
  tenants to manage OpenStack network topologies

● Presents a logical API and a corresponding plug-in
  architecture that separates the description of network
  connectivity from its implementation

● Offers an API that is extensible and evolves
  independently of the compute API

● Provides a platform for integrating advanced networking
  solutions
QUANTUM - a new networking platform
● Provides a flexible API for service providers or their
  tenants to manage OpenStack network topologies
                                              E
                                         V IC plug-in
    Presents a logical API and a corresponding
                                       R
●
                                     E
    architecture that separates the description of network
                                   S
                               N
    connectivity from its implementation.

                           T IO
                         C
    Offers an API that is extensible and evolves
    independently RA compute API
●
                    of the
               S T
●   Provides B platform for integrating advanced networking
           Aa
     A N
    solutions
Quantum Overview
●   quantum abstracts
●   quantum architecture
●   quantum Open vSwitch plugin
●   quantum L3 agents
QUANTUM - abstracts - tenant network layout

                                     provider nets

                external net                                external net
                 8.8.0.0/16                                 172.24.0.0/16


                      NAT                                            NAT


                  router1                                        router2

       10.0.0.1             192.168.0.1              10.23.0.1
                   GW                                             GW



        vm                      vm                    vm               vm
     10.0.0.2               192.168.0.2         10.23.0.2         10.23.0.3
                                       local nets
QUANTUM - abstracts
●   virtual L2 networks (port & switches)
●   IP pools & DHCP
●   virtual routers & NAT
●   "local" & "external" networks
Quantum network abstracts vs hardware
             compute node               compute node

           vm     vm   vm              vm   vm    vm




                                                         remote
         DC net             DC DMZ                          DC
                                                          tunnel




                                                       compute node
                                                        (another DC)
                            internet
                                                 vm        vm      vm
QUANTUM - abstracts
●   virtual L2 networks
●   IP pools & DHCP
●   virtual ports & routers
●   "local" & "external" networks




       virtual networks delivered on
        top of datacenter hardware
Quantum - architecture




                         source: http://openvswitch.org
quantum uses plugins to deal
with hardware diversity and
different layers of the OSI model
Quantum plugin architecture




                              source: http://openvswitch.org
Quantum plugin architecture




                              source: http://openvswitch.org
Quantum plugin architecture




                              source: http://openvswitch.org
quantum plugin determines
network connectivity layout.
Folsom - available quantum plugins

●   Linux Bridge
●   OpenVSwitch
●   Nicira NVP
●   Cisco (UCS Blade + Nexus)
●   Ryu OpenFlow controller
●   NEC ProgrammableFlow Controller
Example plugin: OpenVswitch
Example - Open vSwitch plugin

● leverages OpenVSwitch software switch
● modes of operation:
   ○ FLAT:
     networks share one L2 domain
   ○ VLAN:
     networks are separated by 802.1Q VLANs
   ○ TUNNEL:
     traffic is carried over GRE with different per-
     net tunnel IDs
Open vSwitch plugin - bridges


       single integration         compute node
         bridge "br-int"
                                       vm                           vm

                                             LV_1            LV_2

                                                    br-int


     a patch port leads to             ovs
                                     daemon
     a bridge which is
     attached to a                                   br-
                                                    eth0
     physical interface
                                     q-agt


                                                    eth0


Integration bridge & NIC bridge
Open vSwitch plugin - ovs daemon


                                                     compute node
                                   openvswitch
  Quantum agent
                                daemon accepts            vm                           vm
 accepts calls from
                               calls from Quantum
the central quantum                                             LV_1            LV_2
                              agent & reconfigures
  server via plugin                                                    br-int
                                      network
                                                          ovs
                                                        daemon

                                                                        br-
                                                                       eth0
                      q-
 quantum server       plugi                             q-agt
                      n

                                                                       eth0
Open vSwitch plugin vs compute farm




                 q-
quantum server   plugi
                 n




Quantum server manages an OpenVswitch server farm
through Quantum agents on compute nodes
Open vSwitch plugin - local VLANs


     traffic separated by
                               compute node
        "local" VLANs:
          LV_1, LV_2
                                      vm                           vm

                                            LV_1            LV_2

                                                   br-int


                                      ovs
                                    daemon

                                                    br-
                                                   eth0

                                    q-agt


                                                   eth0


One bridge, many VLANs
OpenStack connectivity - Open vSwitch plugin

● leverages OpenVSwitch software switch
● modes of operation:
   ○ FLAT:
     networks share one L2 domain
   ○ VLAN:
     networks are separated by 802.1Q VLANs
   ○ TUNNEL:
     traffic is carried over GRE with different per-
     net tunnel IDs
Open vSwitch plugin - FLAT mode




Single L2 bcast
domain
Local vs global traffic ID-s - FLAT mode



               openvswitch
FLAT:
                             LV_1 >> UNTAGGED
        LV_1
  VM                br-int       br-eth0        eth0




Local VLAN tag stripped before sending down the wire
Open vSwitch plugin - VLAN mode




802.1Q VLANs
Local vs global traffic ID-s - VLAN mode


               openvswitch
VLAN:
                             LV_1 >> NET1_GLOBAL_VID
        LV_1
  VM                br-int        br-eth0              eth0




Local VLAN tag changed to "global" VLAN tag.
Open vSwitch plugin - Tunnel mode




GRE tunnel IDs
Local vs global traffic ID-s - Tunnel mode



              openvswitch
GRE:
                            LV_1 >> NET1_TUNNEL_ID
       LV_1
  VM               br-int        br-tun              eth0




Local VLAN tag changed to GRE tunnel ID
VLAN vs GRE scalability




VLAN ID: 12bit field:     2^12 = 4096

GRE tunnel ID: 32bit field: 2^32 = 4   294 967 296
Tenant connection needs - provider networks
               compute node               compute node

             vm     vm   vm              vm   vm    vm




                                                           remote
           DC net             DC DMZ                          DC
                                                            tunnel




need for many physical
connections per                                          compute node
                                                          (another DC)
                              internet
compute node
                                                   vm        vm      vm
Integration with cloud and datacenter networks




dedicated per-NIC
bridge
Integration with cloud and datacenter networks

      vlan range:                          vlan range:
      100-400                              401-800




                                           tunnel ID
                                           range:
                                           50-600




vlan ranges are
mapped to per-NIC
bridges
Agents: routing/NAT & IPAM
Tenant connection needs - L3
                                vm        vm




                                     vm

                 vm        vm




                      vm



                                vm        vm



Ensuring "wired" instance            vm
connectivity is not enough
Tenant connection needs - L3    10.1.0.0/24



                                vm            vm


                 10.0.0.0/24

                                     vm

                vm         vm




                                 10.2.0.0/24
                     vm



                                vm            vm



We need IP addresses                 vm
Tenant connection needs - L3      10.1.0.0/24



                                  vm            vm


                   10.0.0.0/24

                                       vm

                  vm         vm




                                   10.2.0.0/24
                       vm



                                  vm            vm



We need routers                        vm
Tenant connection needs - L3      10.1.0.0/24



                                  vm            vm


                   10.0.0.0/24

                                       vm

                vm           vm




                                   10.2.0.0/24
                       vm



                                  vm            vm



We need external                       vm
access/NAT
Quantum vs L3 services            10.1.0.0/24


 dhcp-agent &
                                  vm            vm
 quantum db
 for IP address
                   10.0.0.0/24
 mgmt
                                       vm

                  vm         vm




                                   10.2.0.0/24
                       vm



                                  vm            vm

 l3-agent for
 routing & NAT
                                       vm
IPAM

●   create Quantum network
●   create Quantum subnet
●   pair subnet with network
●   boot instances and throw them into the network
DHCP

dhcp-agent: aims to manage different dhcp backends to
provide dhcp services to openstack instances.
Routing

l3-agent:
   ● creates virtual routers and plugs them into different
      subnets
   ● provides connectivity between Quantum networks
   ● creates default gateways for instances
NAT

l3-agent: creates NAT-ed connections to "external" networks
Compute cluster /w plugins & agents




quantum server




                     dhcp host        gateway host

                      dnsmasq         routing/NAT



                     dhcp-agent        l3-agent
Quantum - plugin & agent summary

       OVS              CISCO          NICIRA           RYU              NEC       OTHER?



                                                         Open            Progra
flat    vlan   gre   nexus   UCS        NVP             Flow/O           mmabl          ???
                                                          VS             eFlow



                                      QUANTUM



       dnsma                            iptable                  HApro
                     NAT     router
                                           s      ???             xy
                                                                          F5      ???
         sq




       DHCP               L3                FIREWALL                      L-B
       AGENT            AGENT                 AGENT                      AGENT
Quantum /w OVS - model summary

● each tenant manages his IP addresses independently
● networks separated on L2 with VLANs or GRE
  tunnel IDs
● disjoint concepts of "network" and "IP pool"
● tenant networks connected with one another by
  "virtual routers"
● internal vs external networks
Quantum vs nova-network
                       NOVA-NETWORK        QUANTUM

   multi-host              Yes                No
   VLAN networking         Yes                Yes
   Flat(DHCP)
                           Yes                Yes
   networking
   Tunneling (GRE)         No                 Yes
   many bridges            No                 Yes
   SDN                     No                 Yes
   IPAM                    Yes                Yes
                                      Limited - no floating
   dashboard support       No
                                              IPs
                                      Limited - only with
   security groups         Yes        non-overlapping IP
                                            pools
Questions?




             kishanov@mirantis.com

Weitere ähnliche Inhalte

Was ist angesagt?

OpenStack Telco Architecture: OpenStack Summit Boston 2017
OpenStack Telco Architecture: OpenStack Summit Boston 2017OpenStack Telco Architecture: OpenStack Summit Boston 2017
OpenStack Telco Architecture: OpenStack Summit Boston 2017Christian "kiko" Reis
 
Quick overview of Openstack architecture
Quick overview of Openstack architectureQuick overview of Openstack architecture
Quick overview of Openstack architectureToni Ramirez
 
Openstack Architecture
Openstack ArchitectureOpenstack Architecture
Openstack ArchitectureSrbIT
 
Cloud Computing Open Stack Compute Node
Cloud Computing Open Stack Compute NodeCloud Computing Open Stack Compute Node
Cloud Computing Open Stack Compute NodePalak Sood
 
Architecture Openstack for the Enterprise
Architecture Openstack for the EnterpriseArchitecture Openstack for the Enterprise
Architecture Openstack for the EnterpriseKeith Tobin
 
Getting started with OpenStack
Getting started with OpenStackGetting started with OpenStack
Getting started with OpenStackKnoldus Inc.
 
Openstack training material
Openstack training materialOpenstack training material
Openstack training materialchenvi123
 
Openstackoverview-DEC2013
Openstackoverview-DEC2013Openstackoverview-DEC2013
Openstackoverview-DEC2013Michael Lessard
 
Introduction to OpenStack (Juno)
Introduction to OpenStack (Juno)Introduction to OpenStack (Juno)
Introduction to OpenStack (Juno)Krunal Jain
 
Red Hat OpenStack - Open Cloud Infrastructure
Red Hat OpenStack - Open Cloud InfrastructureRed Hat OpenStack - Open Cloud Infrastructure
Red Hat OpenStack - Open Cloud InfrastructureAlex Baretto
 
Openstack Installation (ver. liberty)
Openstack Installation (ver. liberty)Openstack Installation (ver. liberty)
Openstack Installation (ver. liberty)Eggy Cheng
 
OpenStack 101 Presentation
OpenStack 101 PresentationOpenStack 101 Presentation
OpenStack 101 PresentationEVault
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack ArchitectureMirantis
 
Cloud computing and OpenStack
Cloud computing and OpenStackCloud computing and OpenStack
Cloud computing and OpenStackEdgar Magana
 
Openstack Fundamentals by CloudZone @Back2School
Openstack Fundamentals by CloudZone @Back2SchoolOpenstack Fundamentals by CloudZone @Back2School
Openstack Fundamentals by CloudZone @Back2SchoolAsaf Abres
 
Open stack architecture overview-meetup-6-6_2013
Open stack architecture overview-meetup-6-6_2013Open stack architecture overview-meetup-6-6_2013
Open stack architecture overview-meetup-6-6_2013Mirantis
 
Openstack_administration
Openstack_administrationOpenstack_administration
Openstack_administrationAshish Sharma
 
Introduction to OpenStack Architecture (Grizzly Edition)
Introduction to OpenStack Architecture (Grizzly Edition)Introduction to OpenStack Architecture (Grizzly Edition)
Introduction to OpenStack Architecture (Grizzly Edition)Ken Pepple
 

Was ist angesagt? (20)

OpenStack Telco Architecture: OpenStack Summit Boston 2017
OpenStack Telco Architecture: OpenStack Summit Boston 2017OpenStack Telco Architecture: OpenStack Summit Boston 2017
OpenStack Telco Architecture: OpenStack Summit Boston 2017
 
Quick overview of Openstack architecture
Quick overview of Openstack architectureQuick overview of Openstack architecture
Quick overview of Openstack architecture
 
Openstack Architecture
Openstack ArchitectureOpenstack Architecture
Openstack Architecture
 
Cloud Computing Open Stack Compute Node
Cloud Computing Open Stack Compute NodeCloud Computing Open Stack Compute Node
Cloud Computing Open Stack Compute Node
 
Architecture Openstack for the Enterprise
Architecture Openstack for the EnterpriseArchitecture Openstack for the Enterprise
Architecture Openstack for the Enterprise
 
Getting started with OpenStack
Getting started with OpenStackGetting started with OpenStack
Getting started with OpenStack
 
Openstack training material
Openstack training materialOpenstack training material
Openstack training material
 
Openstackoverview-DEC2013
Openstackoverview-DEC2013Openstackoverview-DEC2013
Openstackoverview-DEC2013
 
Introduction to OpenStack (Juno)
Introduction to OpenStack (Juno)Introduction to OpenStack (Juno)
Introduction to OpenStack (Juno)
 
Red Hat OpenStack - Open Cloud Infrastructure
Red Hat OpenStack - Open Cloud InfrastructureRed Hat OpenStack - Open Cloud Infrastructure
Red Hat OpenStack - Open Cloud Infrastructure
 
Openstack Installation (ver. liberty)
Openstack Installation (ver. liberty)Openstack Installation (ver. liberty)
Openstack Installation (ver. liberty)
 
OpenStack 101 Presentation
OpenStack 101 PresentationOpenStack 101 Presentation
OpenStack 101 Presentation
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 
Cloud computing and OpenStack
Cloud computing and OpenStackCloud computing and OpenStack
Cloud computing and OpenStack
 
Openstack Fundamentals by CloudZone @Back2School
Openstack Fundamentals by CloudZone @Back2SchoolOpenstack Fundamentals by CloudZone @Back2School
Openstack Fundamentals by CloudZone @Back2School
 
Open stack architecture overview-meetup-6-6_2013
Open stack architecture overview-meetup-6-6_2013Open stack architecture overview-meetup-6-6_2013
Open stack architecture overview-meetup-6-6_2013
 
Cloud and OpenStack
Cloud and OpenStackCloud and OpenStack
Cloud and OpenStack
 
Openstack_administration
Openstack_administrationOpenstack_administration
Openstack_administration
 
Introduction to OpenStack Architecture (Grizzly Edition)
Introduction to OpenStack Architecture (Grizzly Edition)Introduction to OpenStack Architecture (Grizzly Edition)
Introduction to OpenStack Architecture (Grizzly Edition)
 
OpenStack 101
OpenStack 101OpenStack 101
OpenStack 101
 

Andere mochten auch

OpenStack 2016 - Boom or Bust? - Adrian Ionel, CEO, Mirantis - OpenStackSV 2014
OpenStack 2016 - Boom or Bust? - Adrian Ionel, CEO, Mirantis - OpenStackSV 2014OpenStack 2016 - Boom or Bust? - Adrian Ionel, CEO, Mirantis - OpenStackSV 2014
OpenStack 2016 - Boom or Bust? - Adrian Ionel, CEO, Mirantis - OpenStackSV 2014Mirantis
 
Neutron Network Namespaces and IPtables--A Technical Deep Dive
Neutron Network Namespaces and IPtables--A Technical Deep DiveNeutron Network Namespaces and IPtables--A Technical Deep Dive
Neutron Network Namespaces and IPtables--A Technical Deep DiveMirantis
 
OpenStack Havana over IPv6
OpenStack Havana over IPv6OpenStack Havana over IPv6
OpenStack Havana over IPv6Shixiong Shang
 
Mirantis OpenStack-DC-Meetup 17 Sept 2014
Mirantis OpenStack-DC-Meetup 17 Sept 2014Mirantis OpenStack-DC-Meetup 17 Sept 2014
Mirantis OpenStack-DC-Meetup 17 Sept 2014Mirantis
 
Openstack Neutron and SDN
Openstack Neutron and SDNOpenstack Neutron and SDN
Openstack Neutron and SDNinakipascual
 
OpenStack Summits 101: A Guide For Attendees
OpenStack Summits 101: A Guide For AttendeesOpenStack Summits 101: A Guide For Attendees
OpenStack Summits 101: A Guide For AttendeesOpenStack Foundation
 
Introduction to OpenStack Architecture
Introduction to OpenStack ArchitectureIntroduction to OpenStack Architecture
Introduction to OpenStack ArchitectureOpenStack Foundation
 
OpenStack Tutorial
OpenStack TutorialOpenStack Tutorial
OpenStack TutorialBret Piatt
 
150114 OpenStack Korea 정기세미나 session3 - OpenStack 네트워크와 SDN
150114 OpenStack Korea 정기세미나 session3 - OpenStack 네트워크와 SDN150114 OpenStack Korea 정기세미나 session3 - OpenStack 네트워크와 SDN
150114 OpenStack Korea 정기세미나 session3 - OpenStack 네트워크와 SDNIan Choi
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack ArchitectureMirantis
 

Andere mochten auch (12)

OpenStack 2016 - Boom or Bust? - Adrian Ionel, CEO, Mirantis - OpenStackSV 2014
OpenStack 2016 - Boom or Bust? - Adrian Ionel, CEO, Mirantis - OpenStackSV 2014OpenStack 2016 - Boom or Bust? - Adrian Ionel, CEO, Mirantis - OpenStackSV 2014
OpenStack 2016 - Boom or Bust? - Adrian Ionel, CEO, Mirantis - OpenStackSV 2014
 
Neutron Network Namespaces and IPtables--A Technical Deep Dive
Neutron Network Namespaces and IPtables--A Technical Deep DiveNeutron Network Namespaces and IPtables--A Technical Deep Dive
Neutron Network Namespaces and IPtables--A Technical Deep Dive
 
OpenStack Havana over IPv6
OpenStack Havana over IPv6OpenStack Havana over IPv6
OpenStack Havana over IPv6
 
OpenStack Keystone
OpenStack KeystoneOpenStack Keystone
OpenStack Keystone
 
Openstack Keystone
Openstack Keystone Openstack Keystone
Openstack Keystone
 
Mirantis OpenStack-DC-Meetup 17 Sept 2014
Mirantis OpenStack-DC-Meetup 17 Sept 2014Mirantis OpenStack-DC-Meetup 17 Sept 2014
Mirantis OpenStack-DC-Meetup 17 Sept 2014
 
Openstack Neutron and SDN
Openstack Neutron and SDNOpenstack Neutron and SDN
Openstack Neutron and SDN
 
OpenStack Summits 101: A Guide For Attendees
OpenStack Summits 101: A Guide For AttendeesOpenStack Summits 101: A Guide For Attendees
OpenStack Summits 101: A Guide For Attendees
 
Introduction to OpenStack Architecture
Introduction to OpenStack ArchitectureIntroduction to OpenStack Architecture
Introduction to OpenStack Architecture
 
OpenStack Tutorial
OpenStack TutorialOpenStack Tutorial
OpenStack Tutorial
 
150114 OpenStack Korea 정기세미나 session3 - OpenStack 네트워크와 SDN
150114 OpenStack Korea 정기세미나 session3 - OpenStack 네트워크와 SDN150114 OpenStack Korea 정기세미나 session3 - OpenStack 네트워크와 SDN
150114 OpenStack Korea 정기세미나 session3 - OpenStack 네트워크와 SDN
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 

Ähnlich wie OpenStack Super Bootcamp.pdf

Mirantis Folsom Meetup Intro
Mirantis Folsom Meetup IntroMirantis Folsom Meetup Intro
Mirantis Folsom Meetup IntroMirantis
 
OpenStack 101 Technical Overview
OpenStack 101 Technical OverviewOpenStack 101 Technical Overview
OpenStack 101 Technical OverviewOpen Stack
 
Am 04 track1--salvatore orlando--openstack-apac-2012-final
Am 04 track1--salvatore orlando--openstack-apac-2012-finalAm 04 track1--salvatore orlando--openstack-apac-2012-final
Am 04 track1--salvatore orlando--openstack-apac-2012-finalOpenCity Community
 
OpenStack Quantum - Past, Present & Future
OpenStack Quantum - Past, Present & FutureOpenStack Quantum - Past, Present & Future
OpenStack Quantum - Past, Present & FutureSomik Behera
 
Quantum (OpenStack Meetup Feb 9th, 2012)
Quantum (OpenStack Meetup Feb 9th, 2012)Quantum (OpenStack Meetup Feb 9th, 2012)
Quantum (OpenStack Meetup Feb 9th, 2012)Dan Wendlandt
 
Deep drive into Nova
Deep drive into NovaDeep drive into Nova
Deep drive into NovaUdayendu Kar
 
Openstack Study Nova 1
Openstack Study Nova 1Openstack Study Nova 1
Openstack Study Nova 1Jinho Shin
 
Openstack Quantum yahoo meetup 1 23-13
Openstack Quantum yahoo meetup 1 23-13Openstack Quantum yahoo meetup 1 23-13
Openstack Quantum yahoo meetup 1 23-13Dan Wendlandt
 
Quantum Folsom Summit Developer Overview
Quantum Folsom Summit Developer OverviewQuantum Folsom Summit Developer Overview
Quantum Folsom Summit Developer OverviewDan Wendlandt
 
OpenStack at Xen summit Asia
OpenStack at Xen summit Asia OpenStack at Xen summit Asia
OpenStack at Xen summit Asia Jaesuk Ahn
 
RunningQuantumOnQuantumAtNicira.pdf
RunningQuantumOnQuantumAtNicira.pdfRunningQuantumOnQuantumAtNicira.pdf
RunningQuantumOnQuantumAtNicira.pdfOpenStack Foundation
 
OpenStack Quantum Intro (OS Meetup 3-26-12)
OpenStack Quantum Intro (OS Meetup 3-26-12)OpenStack Quantum Intro (OS Meetup 3-26-12)
OpenStack Quantum Intro (OS Meetup 3-26-12)Dan Wendlandt
 
Open stack in sina
Open stack in sinaOpen stack in sina
Open stack in sinaHui Cheng
 
Openstack: Open Source software for building public and private cloud.
Openstack: Open Source software for building public and private cloud.Openstack: Open Source software for building public and private cloud.
Openstack: Open Source software for building public and private cloud.Atul Jha
 
OpenStack: Open Source Private/Public Cloud Software
OpenStack: Open Source Private/Public Cloud SoftwareOpenStack: Open Source Private/Public Cloud Software
OpenStack: Open Source Private/Public Cloud Softwareopenstackindia
 
OpenStack Quantum: Cloud Carrier Summit 2012
OpenStack Quantum: Cloud Carrier Summit 2012OpenStack Quantum: Cloud Carrier Summit 2012
OpenStack Quantum: Cloud Carrier Summit 2012Dan Wendlandt
 

Ähnlich wie OpenStack Super Bootcamp.pdf (20)

Mirantis Folsom Meetup Intro
Mirantis Folsom Meetup IntroMirantis Folsom Meetup Intro
Mirantis Folsom Meetup Intro
 
OpenStack 101 Technical Overview
OpenStack 101 Technical OverviewOpenStack 101 Technical Overview
OpenStack 101 Technical Overview
 
Am 04 track1--salvatore orlando--openstack-apac-2012-final
Am 04 track1--salvatore orlando--openstack-apac-2012-finalAm 04 track1--salvatore orlando--openstack-apac-2012-final
Am 04 track1--salvatore orlando--openstack-apac-2012-final
 
NaaS
NaaSNaaS
NaaS
 
NaaS
NaaSNaaS
NaaS
 
OpenStack Quantum - Past, Present & Future
OpenStack Quantum - Past, Present & FutureOpenStack Quantum - Past, Present & Future
OpenStack Quantum - Past, Present & Future
 
Quantum (OpenStack Meetup Feb 9th, 2012)
Quantum (OpenStack Meetup Feb 9th, 2012)Quantum (OpenStack Meetup Feb 9th, 2012)
Quantum (OpenStack Meetup Feb 9th, 2012)
 
Deep drive into Nova
Deep drive into NovaDeep drive into Nova
Deep drive into Nova
 
Openstack Study Nova 1
Openstack Study Nova 1Openstack Study Nova 1
Openstack Study Nova 1
 
Openstack Quantum yahoo meetup 1 23-13
Openstack Quantum yahoo meetup 1 23-13Openstack Quantum yahoo meetup 1 23-13
Openstack Quantum yahoo meetup 1 23-13
 
Quantum Folsom Summit Developer Overview
Quantum Folsom Summit Developer OverviewQuantum Folsom Summit Developer Overview
Quantum Folsom Summit Developer Overview
 
OpenStack at Xen summit Asia
OpenStack at Xen summit Asia OpenStack at Xen summit Asia
OpenStack at Xen summit Asia
 
RunningQuantumOnQuantumAtNicira.pdf
RunningQuantumOnQuantumAtNicira.pdfRunningQuantumOnQuantumAtNicira.pdf
RunningQuantumOnQuantumAtNicira.pdf
 
Diablo keystone
Diablo keystoneDiablo keystone
Diablo keystone
 
OpenStack Quantum Intro (OS Meetup 3-26-12)
OpenStack Quantum Intro (OS Meetup 3-26-12)OpenStack Quantum Intro (OS Meetup 3-26-12)
OpenStack Quantum Intro (OS Meetup 3-26-12)
 
Open stack in sina
Open stack in sinaOpen stack in sina
Open stack in sina
 
Openstack: Open Source software for building public and private cloud.
Openstack: Open Source software for building public and private cloud.Openstack: Open Source software for building public and private cloud.
Openstack: Open Source software for building public and private cloud.
 
OpenStack: Open Source Private/Public Cloud Software
OpenStack: Open Source Private/Public Cloud SoftwareOpenStack: Open Source Private/Public Cloud Software
OpenStack: Open Source Private/Public Cloud Software
 
OpenStack Report
OpenStack ReportOpenStack Report
OpenStack Report
 
OpenStack Quantum: Cloud Carrier Summit 2012
OpenStack Quantum: Cloud Carrier Summit 2012OpenStack Quantum: Cloud Carrier Summit 2012
OpenStack Quantum: Cloud Carrier Summit 2012
 

Mehr von OpenStack Foundation

Sponsor Webinar - OpenStack Summit Vancouver 2018
Sponsor Webinar  - OpenStack Summit Vancouver 2018Sponsor Webinar  - OpenStack Summit Vancouver 2018
Sponsor Webinar - OpenStack Summit Vancouver 2018OpenStack Foundation
 
OpenStack Marketing Plan - Community Presentation
OpenStack Marketing Plan - Community PresentationOpenStack Marketing Plan - Community Presentation
OpenStack Marketing Plan - Community PresentationOpenStack Foundation
 
OpenStack 5th Birthday - User Group Parties
OpenStack 5th Birthday - User Group PartiesOpenStack 5th Birthday - User Group Parties
OpenStack 5th Birthday - User Group PartiesOpenStack Foundation
 
Liberty release: Preliminary marketing materials & messages
Liberty release: Preliminary marketing materials & messagesLiberty release: Preliminary marketing materials & messages
Liberty release: Preliminary marketing materials & messagesOpenStack Foundation
 
OpenStack Foundation 2H 2015 Marketing Plan
OpenStack Foundation 2H 2015 Marketing PlanOpenStack Foundation 2H 2015 Marketing Plan
OpenStack Foundation 2H 2015 Marketing PlanOpenStack Foundation
 
OpenStack Summit Tokyo Sponsor Webinar
OpenStack Summit Tokyo Sponsor Webinar OpenStack Summit Tokyo Sponsor Webinar
OpenStack Summit Tokyo Sponsor Webinar OpenStack Foundation
 
Neutron Updates - Liberty Edition
Neutron Updates - Liberty Edition Neutron Updates - Liberty Edition
Neutron Updates - Liberty Edition OpenStack Foundation
 
Searchlight Updates - Liberty Edition
Searchlight Updates - Liberty EditionSearchlight Updates - Liberty Edition
Searchlight Updates - Liberty EditionOpenStack Foundation
 
Congress Updates - Liberty Edition
Congress Updates - Liberty EditionCongress Updates - Liberty Edition
Congress Updates - Liberty EditionOpenStack Foundation
 
Release Cycle Management Updates - Liberty Edition
Release Cycle Management Updates - Liberty EditionRelease Cycle Management Updates - Liberty Edition
Release Cycle Management Updates - Liberty EditionOpenStack Foundation
 
OpenStack Day CEE 2015: Real-World Use Cases
OpenStack Day CEE 2015: Real-World Use CasesOpenStack Day CEE 2015: Real-World Use Cases
OpenStack Day CEE 2015: Real-World Use CasesOpenStack Foundation
 

Mehr von OpenStack Foundation (20)

Sponsor Webinar - OpenStack Summit Vancouver 2018
Sponsor Webinar  - OpenStack Summit Vancouver 2018Sponsor Webinar  - OpenStack Summit Vancouver 2018
Sponsor Webinar - OpenStack Summit Vancouver 2018
 
OpenStack Marketing Plan - Community Presentation
OpenStack Marketing Plan - Community PresentationOpenStack Marketing Plan - Community Presentation
OpenStack Marketing Plan - Community Presentation
 
OpenStack 5th Birthday - User Group Parties
OpenStack 5th Birthday - User Group PartiesOpenStack 5th Birthday - User Group Parties
OpenStack 5th Birthday - User Group Parties
 
Liberty release: Preliminary marketing materials & messages
Liberty release: Preliminary marketing materials & messagesLiberty release: Preliminary marketing materials & messages
Liberty release: Preliminary marketing materials & messages
 
OpenStack Foundation 2H 2015 Marketing Plan
OpenStack Foundation 2H 2015 Marketing PlanOpenStack Foundation 2H 2015 Marketing Plan
OpenStack Foundation 2H 2015 Marketing Plan
 
OpenStack Summit Tokyo Sponsor Webinar
OpenStack Summit Tokyo Sponsor Webinar OpenStack Summit Tokyo Sponsor Webinar
OpenStack Summit Tokyo Sponsor Webinar
 
Cinder Updates - Liberty Edition
Cinder Updates - Liberty Edition Cinder Updates - Liberty Edition
Cinder Updates - Liberty Edition
 
Glance Updates - Liberty Edition
Glance Updates - Liberty EditionGlance Updates - Liberty Edition
Glance Updates - Liberty Edition
 
Heat Updates - Liberty Edition
Heat Updates - Liberty EditionHeat Updates - Liberty Edition
Heat Updates - Liberty Edition
 
Neutron Updates - Liberty Edition
Neutron Updates - Liberty Edition Neutron Updates - Liberty Edition
Neutron Updates - Liberty Edition
 
Nova Updates - Liberty Edition
Nova Updates - Liberty EditionNova Updates - Liberty Edition
Nova Updates - Liberty Edition
 
Sahara Updates - Liberty Edition
Sahara Updates - Liberty EditionSahara Updates - Liberty Edition
Sahara Updates - Liberty Edition
 
Searchlight Updates - Liberty Edition
Searchlight Updates - Liberty EditionSearchlight Updates - Liberty Edition
Searchlight Updates - Liberty Edition
 
Trove Updates - Liberty Edition
Trove Updates - Liberty EditionTrove Updates - Liberty Edition
Trove Updates - Liberty Edition
 
OpenStack: five years in
OpenStack: five years inOpenStack: five years in
OpenStack: five years in
 
Swift Updates - Liberty Edition
Swift Updates - Liberty EditionSwift Updates - Liberty Edition
Swift Updates - Liberty Edition
 
Congress Updates - Liberty Edition
Congress Updates - Liberty EditionCongress Updates - Liberty Edition
Congress Updates - Liberty Edition
 
Release Cycle Management Updates - Liberty Edition
Release Cycle Management Updates - Liberty EditionRelease Cycle Management Updates - Liberty Edition
Release Cycle Management Updates - Liberty Edition
 
OpenStack Day CEE 2015: Real-World Use Cases
OpenStack Day CEE 2015: Real-World Use CasesOpenStack Day CEE 2015: Real-World Use Cases
OpenStack Day CEE 2015: Real-World Use Cases
 
OpenStack Kilo - April 2015
OpenStack Kilo - April 2015OpenStack Kilo - April 2015
OpenStack Kilo - April 2015
 

OpenStack Super Bootcamp.pdf

  • 1. OpenStack Super Bootcamp Mirantis, 2012
  • 2. Agenda ● OpenStack Essex architecture recap ● Folsom architecture overview ● Quantum vs Essex's networking model
  • 3. Initial State Tenant is created, provisioning quota is available, user has an access to Horizon/CLI Horizon CLI Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 4. Step 1: Request VM Provisioning via UI/CLI User specifies VM params: name, flavor, keys, etc. and hits "Create" button Horizon CLI Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 5. Step 2: Validate Auth Data Horizon sends HTTP request to Keystone. Auth info is specified in HTTP headers. Horizon CLI Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 6. Step 2: Validate Auth Data Keystone sends temporary token back to Horizon via HTTP. Horizon CLI Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 7. Step 3: Send API request to nova-api Horizon sends POST request to nova-api (signed with given token). Horizon CLI Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 8. Step 4: Validate API Token nova-api sends HTTP request to validate API token to Keystone. Horizon CLI Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 9. Step 4: Validate API Token Keystone validates API token and sends HTTP response with token acceptance/rejection info. Horizon CLI Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 10. Step 5: Process API request nova-api parses request and validates it by fetching data from nova-db. If request is valid, it saves initia db entry about VM Horizon CLI to the database. Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 11. Step 6: Publish provisioning request to queue nova-api makes rpc.call to scheduler. It publishes a short message to scheduler queue Horizon CLI with VM info. Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 12. Step 6: Pick up provisioning request scheduler picks up the message from MQ. Horizon CLI Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 13. Step 7: Schedule provisioning Scheduler fetches information about the whole cluster from database and based on this info selects the most applicable Horizon CLI compute host. Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 14. Step 8: Start VM provisioning on compute node Scheduler publishes message to the compute queue (based on host ID) and triggers VM Horizon CLI provisioning Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 15. Step 9: Start VM rendering via hypervisor nova-compute fetches information about VM from DB, creates a command to hypervisor and delegates VM Horizon CLI rendering to hypervisor. Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 16. Step 10: Request VM Image from Glance hypervisor request VM image from Glance via Image ID Horizon CLI Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 17. Step 11: Get Image URI from Glance If image with given image ID can be found - return Horizon CLI Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 18. Step 12: Download image from Swift hypervisor downloads image using URI, given by Glance, from Glance's back-end. After Horizon CLI downloading - it renders it. Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 19. Step 13: Configure network nova-compute makes rpc.call to nova-network requesting networking info. Horizon CLI Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 20. Step 14: allocate and associate network nova-network updates tables with networking info and VM entry in database Horizon CLI Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 21. Step 15: Request volume attachment Tenant is created, provisioning quota is available, user has an access to Horizon/CLI Horizon CLI Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 22. Initial State Tenant is created, provisioning quota is available, user has an access to Horizon/CLI Horizon CLI Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 23. Still part of nova Horizon CLI Keystone Glance nova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  • 24. Limitations? ● Nova is "overloaded" to do 3 things ○ Compute ○ Networking ○ Block Storage ● API for networking and block storage are still parts of nova
  • 25. UI: horizon or CLI Keystone keystone server nova compute node keystone -db controller nova: Hypervisor queu nova- Compute nova-api e compute Quantum V M quantum scheduler server nova-db Network quantum -db Cinder block Glance quantum storage plugin endpoint queu e node glance-api scheduler storage glance-registry Swift cinder-vol proxy-server glance db object cinder-db store
  • 26. UI: horizon or CLI Keystone keystone server nova compute node keystone -db controller nova: Hypervisor queu nova- Compute nova-api e compute Quantum V M quantum scheduler server nova-db Network quantum -db Cinder block Glance quantum storage plugin endpoint queu e node glance-api scheduler storage glance-registry Swift cinder-vol proxy-server glance db object cinder-db store
  • 27. Essex' networking model overview ● single-host vs multi-host networking ● the role of network manager ● different network manager types ● floating IPs
  • 28. Revisit of KVM networking with linux bridge router router: 10.0.0.1 (def. gateway for VMs) VM VM VM VM 10.0.0.2 10.0.0.3 10.0.0.4 10.0.0.5 linux linux bridge bridge eth0 eth0 nova-compute host nova-compute host switch
  • 29. Single-host networking ● KVM host == nova-compute ● router == nova-network eth1 public ip routing/NAT eth0 eth0 IP:10.0.0.1 nova-network host (def. gateway for VMs) VM VM VM VM 10.0.0.2 10.0.0.3 10.0.0.4 10.0.0.5 linux linux bridge bridge eth0 eth0 nova-compute host nova-compute host switch
  • 30. What happens if nova-network host dies VM:~root$ ping google.com No route to host eth1 routing/NAT eth0 VM VM VM VM 10.0.0.2 10.0.0.3 10.0.0.4 10.0.0.5 linux linux bridge bridge eth0 eth0 nova-compute host nova-compute host switch
  • 31. Multi-host networking Move routing from the central server to each compute node independently to eth1 prevent SPOF. routing/NAT eth0 public ip public ip eth1 eth1 routing/NAT routing/NAT VM VM VM VM 10.0.0.2 10.0.0.3 10.0.0.4 10.0.0.5 linux linux bridge bridge eth0 eth0 nova-compute & nova-compute & nova-network host switch nova-network host
  • 32. Multi-host networking Compute servers maintain Internet access independent from each other. Each of them runs nova-network & nova-compute components. public ip public ip eth1 eth1 routing/NAT routing/NAT VM VM VM VM 10.0.0.2 10.0.0.3 10.0.0.4 10.0.0.5 linux linux bridge bridge 10.0.0.1(gw) 10.0.0.6(gw) eth0 eth0 nova-compute & nova-compute & nova-network host switch nova-network host
  • 33. Multi-host networking - features ● Independent traffic: Instances on both compute nodes access external networks independently. For each of them, the local linux bridge is used as default gateway
  • 34. Multi-host networking - features ● Independent traffic: Instances on both compute nodes access external networks independently. For each of them, the local linux bridge is used as default gateway ● Routing: Kernel routing tables are checked to decide if the packet should be NAT-ed to eth1 or sent via eth0
  • 35. Multi-host networking - features ● Independent traffic: Instances on both compute nodes access external networks independently. For each of them, the local linux bridge is used as default gateway ● Routing: Kernel routing tables are checked to decide if the packet should be NAT-ed to eth1 or sent via eth0 ● IP address management: nova-network maintains IP assignments to linux bridges and instances in nova database
  • 36. Network manager ● Determines network layout of the cloud infrastructure ● Capabilities of network managers ○ Plugging instances into linux bridges ○ Creating linux bridges ○ IP allocation to instances ○ Injecting network configuration into instances ○ Providing DHCP services for instances ○ Configuring VLANs ○ Traffic filtering ○ Providing external connectivity to instances
  • 37. FlatManager ● Features: ○ Operates on ONE large IP pool. Chunks of it are shared between tenants. ○ Allocates IPs to instances (in nova database) as they are created ○ Plugs instances into a predefined bridge ○ Injects network config to /etc/network/interfaces eth1 eth1 VM /etc/network/interfaces: VM "address 10.0.0.2 gateway 10.0.0.1" linux linux bridge bridge 10.0.0.1(gw) eth0 eth0 nova-compute & nova-compute & nova-network nova-network
  • 38. FlatDHCPManager ● Features: ○ Operates on ONE large IP pool. Chunks of it are shared between tenants ○ Allocates IPs to instances (in nova database) as they are created ○ Creates a bridge and plugs instances into it ○ Runs a DHCP server (dnsmasq) for instances to boot from eth1 eth1 VM obtain dhcp static lease: VM ip: 10.0.0.2 gw: 10.0.0.1 dnsmasq linux bridge 10.0.0.1(gw) eth0 eth0 nova-compute & nova-compute nova-network & nova-network
  • 39. DHCP server (dnsmasq) operation ● is managed by nova-network component ● in multi-host networking runs on every compute node and provides addresses only to instances on that node (based on DHCP reservations) eth1 eth1 VM VM VM VM ip: 10.0.0.4 ip: 10.0.0.6 ip: 10.0.0.2 ip: 10.0.0.5 gw: 10.0.0.3 gw: 10.0.0.3 gw: 10.0.0.1 gw: 10.0.0.1 dnsmasq: static leases for linux dnsmasq: static leases for linux 10.0.0.4 & 10.0.0.6 bridge 10.0.0.3(gw) 10.0.0.2 & 10.0.0.5 bridge 10.0.0.1(gw) eth0 eth0 nova-compute & nova-compute nova-network & nova-network switch
  • 40. VlanManager ● Features: ○ Can manage many IP subnets ○ Uses a dedicated network bridge for each network ○ Can map networks to tenants ○ Runs a DHCP server (dnsmasq) for instances to boot from ○ Separates network traffic with 802.1Q VLANs eth1 eth1 VM_net1 VM_net2 VM_net1 VM_net2 br100 br200 dnsmasq_net1 dnsmasq_net2 eth0.100 eth0 eth0 eth0.200 nova-compute & nova-compute nova-network & nova-network
  • 41. VlanManager - switch requirements The switch requires support for 802.1Q tagged VLANs to connect instances on different compute nodes eth1 eth1 VM_net1 VM_net2 VM_net2 VM_net1 br100 br200 br100 br200 eth0.100 eth0.200 eth0.100 eth0 eth0.200 eth0 nova-compute nova-compute & nova-network & nova-network tagged traffic 802.1Q capable switch
  • 42. Network managers comparison Name Possible use cases Limitations FlatManager Deprecated - should not be used for ● Only Debian derivatives any deployments. supported. ● Single IP network suffers from scalability limitations. FlatDHCPManager Internal, relatively small corporate ● Instances share the same linux clouds which do not require tenant bridge regardless which tenant isolation. they belong to. ● Limited scalability because of one huge IP subnet. VlanManager Public clouds which require L2 traffic ● Requires 802.1Q capable switch. isolation between tenants and use of ● Scalable only to 4096 VLANs dedicated subnets.
  • 43. Inter-tenant traffic Compute node's routing table consulted to route traffic between tenants' networks public ip eth1 (based on IPs of the linux bridges) VM_net1 VM_net2 routing 10.100.0.0 via br100 10.200.0.0 via br200 br100 br200 10.100.0.1 10.200.0.1 eth0.100 eth0 eth0.200 nova-compute & nova-network
  • 44. Accessing internet ● eth1 address is set as the compute node's default gateway ● Compute node's routing table public ip eth1 consulted to route traffic from the instance to the internet over VM_net1 VM_net2 the public interface (eth1) routing/NAT 0.0.0.0 via eth1 source NAT is performed to the src 10.100.0.0 -j SNAT to public_ip ● compute node's public address br100 10.100.0.1 br200 10.200.0.1 eth0.100 eth0 eth0.200 nova-compute & nova-network
  • 45. Floating & fixed IPs ● Fixed IPs: ○ given to each instance on boot (by dnsmasq) ○ private IP ranges (10.0.0.0, 192.168.0.0, etc.) ○ only for communication between instances and to external networks ○ inaccessible from external networks ● Floating IPs: ○ allocated & associated to instances by cloud users ○ bunches of publicly routable IPs registered in Openstack by cloud dmin ○ accessible from external networks ○ multiple floating IP pools, leading to different ISP-s
  • 46. Floating IPs ● User associates a floating floating IP added as a IP with VM: secondary IP on eth1 ○ floating IP is added as a secondary IP address on vm_float_ ip: 92.93.94.95 public ip compute node's eth1 (public eth1 floating IP DNAT: IF) -d 92.93.94.95/32 -j DNAT -- to-destination 10.0.0.2 ○ DNAT rule is set to redirect floating IP -> fixed IP VM 10.0.0.2 VM 10.0.0.3 (10.0.0.2) linux bridge eth0 nova-compute & nova-network host
  • 47. Limitations ● Networking management is available only for admin ● Implementation is coupled with networking abstractions
  • 48. QUANTUM - a new networking platform ● Provides a flexible API for service providers or their tenants to manage OpenStack network topologies ● Presents a logical API and a corresponding plug-in architecture that separates the description of network connectivity from its implementation ● Offers an API that is extensible and evolves independently of the compute API ● Provides a platform for integrating advanced networking solutions
  • 49. QUANTUM - a new networking platform ● Provides a flexible API for service providers or their tenants to manage OpenStack network topologies ● Presents a logical API and a corresponding plug-in architecture that separates the description of network connectivity from its implementation ● Offers an API that is extensible and evolves independently of the compute API ● Provides a platform for integrating advanced networking solutions
  • 50. QUANTUM - a new networking platform ● Provides a flexible API for service providers or their tenants to manage OpenStack network topologies ● Presents a logical API and a corresponding plug-in architecture that separates the description of network connectivity from its implementation ● Offers an API that is extensible and evolves independently of the compute API ● Provides a platform for integrating advanced networking solutions
  • 51. QUANTUM - a new networking platform ● Provides a flexible API for service providers or their tenants to manage OpenStack network topologies ● Presents a logical API and a corresponding plug-in architecture that separates the description of network connectivity from its implementation ● Offers an API that is extensible and evolves independently of the compute API ● Provides a platform for integrating advanced networking solutions
  • 52. QUANTUM - a new networking platform ● Provides a flexible API for service providers or their tenants to manage OpenStack network topologies E V IC plug-in Presents a logical API and a corresponding R ● E architecture that separates the description of network S N connectivity from its implementation. T IO C Offers an API that is extensible and evolves independently RA compute API ● of the S T ● Provides B platform for integrating advanced networking Aa A N solutions
  • 53. Quantum Overview ● quantum abstracts ● quantum architecture ● quantum Open vSwitch plugin ● quantum L3 agents
  • 54. QUANTUM - abstracts - tenant network layout provider nets external net external net 8.8.0.0/16 172.24.0.0/16 NAT NAT router1 router2 10.0.0.1 192.168.0.1 10.23.0.1 GW GW vm vm vm vm 10.0.0.2 192.168.0.2 10.23.0.2 10.23.0.3 local nets
  • 55. QUANTUM - abstracts ● virtual L2 networks (port & switches) ● IP pools & DHCP ● virtual routers & NAT ● "local" & "external" networks
  • 56. Quantum network abstracts vs hardware compute node compute node vm vm vm vm vm vm remote DC net DC DMZ DC tunnel compute node (another DC) internet vm vm vm
  • 57. QUANTUM - abstracts ● virtual L2 networks ● IP pools & DHCP ● virtual ports & routers ● "local" & "external" networks virtual networks delivered on top of datacenter hardware
  • 58. Quantum - architecture source: http://openvswitch.org
  • 59. quantum uses plugins to deal with hardware diversity and different layers of the OSI model
  • 60. Quantum plugin architecture source: http://openvswitch.org
  • 61. Quantum plugin architecture source: http://openvswitch.org
  • 62. Quantum plugin architecture source: http://openvswitch.org
  • 63. quantum plugin determines network connectivity layout.
  • 64. Folsom - available quantum plugins ● Linux Bridge ● OpenVSwitch ● Nicira NVP ● Cisco (UCS Blade + Nexus) ● Ryu OpenFlow controller ● NEC ProgrammableFlow Controller
  • 66. Example - Open vSwitch plugin ● leverages OpenVSwitch software switch ● modes of operation: ○ FLAT: networks share one L2 domain ○ VLAN: networks are separated by 802.1Q VLANs ○ TUNNEL: traffic is carried over GRE with different per- net tunnel IDs
  • 67. Open vSwitch plugin - bridges single integration compute node bridge "br-int" vm vm LV_1 LV_2 br-int a patch port leads to ovs daemon a bridge which is attached to a br- eth0 physical interface q-agt eth0 Integration bridge & NIC bridge
  • 68. Open vSwitch plugin - ovs daemon compute node openvswitch Quantum agent daemon accepts vm vm accepts calls from calls from Quantum the central quantum LV_1 LV_2 agent & reconfigures server via plugin br-int network ovs daemon br- eth0 q- quantum server plugi q-agt n eth0
  • 69. Open vSwitch plugin vs compute farm q- quantum server plugi n Quantum server manages an OpenVswitch server farm through Quantum agents on compute nodes
  • 70. Open vSwitch plugin - local VLANs traffic separated by compute node "local" VLANs: LV_1, LV_2 vm vm LV_1 LV_2 br-int ovs daemon br- eth0 q-agt eth0 One bridge, many VLANs
  • 71. OpenStack connectivity - Open vSwitch plugin ● leverages OpenVSwitch software switch ● modes of operation: ○ FLAT: networks share one L2 domain ○ VLAN: networks are separated by 802.1Q VLANs ○ TUNNEL: traffic is carried over GRE with different per- net tunnel IDs
  • 72. Open vSwitch plugin - FLAT mode Single L2 bcast domain
  • 73. Local vs global traffic ID-s - FLAT mode openvswitch FLAT: LV_1 >> UNTAGGED LV_1 VM br-int br-eth0 eth0 Local VLAN tag stripped before sending down the wire
  • 74. Open vSwitch plugin - VLAN mode 802.1Q VLANs
  • 75. Local vs global traffic ID-s - VLAN mode openvswitch VLAN: LV_1 >> NET1_GLOBAL_VID LV_1 VM br-int br-eth0 eth0 Local VLAN tag changed to "global" VLAN tag.
  • 76. Open vSwitch plugin - Tunnel mode GRE tunnel IDs
  • 77. Local vs global traffic ID-s - Tunnel mode openvswitch GRE: LV_1 >> NET1_TUNNEL_ID LV_1 VM br-int br-tun eth0 Local VLAN tag changed to GRE tunnel ID
  • 78. VLAN vs GRE scalability VLAN ID: 12bit field: 2^12 = 4096 GRE tunnel ID: 32bit field: 2^32 = 4 294 967 296
  • 79. Tenant connection needs - provider networks compute node compute node vm vm vm vm vm vm remote DC net DC DMZ DC tunnel need for many physical connections per compute node (another DC) internet compute node vm vm vm
  • 80. Integration with cloud and datacenter networks dedicated per-NIC bridge
  • 81. Integration with cloud and datacenter networks vlan range: vlan range: 100-400 401-800 tunnel ID range: 50-600 vlan ranges are mapped to per-NIC bridges
  • 83. Tenant connection needs - L3 vm vm vm vm vm vm vm vm Ensuring "wired" instance vm connectivity is not enough
  • 84. Tenant connection needs - L3 10.1.0.0/24 vm vm 10.0.0.0/24 vm vm vm 10.2.0.0/24 vm vm vm We need IP addresses vm
  • 85. Tenant connection needs - L3 10.1.0.0/24 vm vm 10.0.0.0/24 vm vm vm 10.2.0.0/24 vm vm vm We need routers vm
  • 86. Tenant connection needs - L3 10.1.0.0/24 vm vm 10.0.0.0/24 vm vm vm 10.2.0.0/24 vm vm vm We need external vm access/NAT
  • 87. Quantum vs L3 services 10.1.0.0/24 dhcp-agent & vm vm quantum db for IP address 10.0.0.0/24 mgmt vm vm vm 10.2.0.0/24 vm vm vm l3-agent for routing & NAT vm
  • 88. IPAM ● create Quantum network ● create Quantum subnet ● pair subnet with network ● boot instances and throw them into the network
  • 89. DHCP dhcp-agent: aims to manage different dhcp backends to provide dhcp services to openstack instances.
  • 90. Routing l3-agent: ● creates virtual routers and plugs them into different subnets ● provides connectivity between Quantum networks ● creates default gateways for instances
  • 91. NAT l3-agent: creates NAT-ed connections to "external" networks
  • 92. Compute cluster /w plugins & agents quantum server dhcp host gateway host dnsmasq routing/NAT dhcp-agent l3-agent
  • 93. Quantum - plugin & agent summary OVS CISCO NICIRA RYU NEC OTHER? Open Progra flat vlan gre nexus UCS NVP Flow/O mmabl ??? VS eFlow QUANTUM dnsma iptable HApro NAT router s ??? xy F5 ??? sq DHCP L3 FIREWALL L-B AGENT AGENT AGENT AGENT
  • 94. Quantum /w OVS - model summary ● each tenant manages his IP addresses independently ● networks separated on L2 with VLANs or GRE tunnel IDs ● disjoint concepts of "network" and "IP pool" ● tenant networks connected with one another by "virtual routers" ● internal vs external networks
  • 95. Quantum vs nova-network NOVA-NETWORK QUANTUM multi-host Yes No VLAN networking Yes Yes Flat(DHCP) Yes Yes networking Tunneling (GRE) No Yes many bridges No Yes SDN No Yes IPAM Yes Yes Limited - no floating dashboard support No IPs Limited - only with security groups Yes non-overlapping IP pools
  • 96. Questions? kishanov@mirantis.com