OpenStack Quantum


Published on

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

OpenStack Quantum

  1. 1. What is Quantum?
  2. 2. The Quantum project was created to provide a rich and tenant-facing APIfor defining network connectivity and addressing in the cloud.NetworkSubnetPort
  3. 3. Flexibility to Choose Different Network TechnologiesOpen vSwitchCiscoLinux BridgeNicira NVPRyuNEC OpenFlow
  4. 4. Different Components• quantum-server• plugin agent (quantum-*-agent)• dhcp agent (quantum-dhcp-agent)• l3 agent (quantum-l3-agent)
  5. 5. Use Case: Single Flat Network
  6. 6. • This is a "shared" network, meaning it is visible to all tenants via the Quantum API. Tenant VMs have a single NIC, and receive a fixed IP address from the subnet(s) associated with that network. This essentially maps to the FlatManager and FlatDHCPManager models provided by Nova. Floating IPs are not supported.
  7. 7. Use Case: Multiple Flat Network
  8. 8. • This use case is very similar to the above Single Flat Network use case, except that tenants see multiple shared networks
  9. 9. Use Case: Mixed Flat and Private Network
  10. 10. in which tenants also optionally have access toprivate per-tenant networks. In addition to seeingone or more shared networks via the quantum API,tenants can create additional networks that areonly visible to users of that tenant. When creatingVMs, those VMs can have NICs on any of the sharednetworks and/or any of the private networksbelonging to the tenant. This enables the creationof "multi-tier" topologies using VMs with multipleNICs. It also supports a model where a VM acting asa gateway can provide services such as routing, NAT,or load balancing.
  11. 11. Provider Router with Private Networks
  12. 12. This use provides each tenant with one or moreprivate networks, which connect to the outsideworld via a Quantum router. The case whereeach tenant gets exactly one network in thisform maps to the same logical topology as theVlanManager in Nova. Using the Quantum API,the tenant would only see a network for eachprivate network assigned to that tenant. Therouter object in the API is created and owned bythe cloud admin.
  13. 13. Per-tenant Routers with Private Networks
  14. 14. A more advanced router scenario in which each tenantgets at least one router, and potentially has access to theQuantum API to create additional routers. The tenant cancreate their own networks, potentially unlinking thosenetworks to a router. This model enables tenant-definedmulti-tier applications, with each tier being a separatenetwork behind the router. Since there are multiplerouters, tenant subnets can be overlapping withoutconflicting, since access to external networks all happensvia SNAT or Floating IPs. Each router uplink and floating IPis allocated from the external network subnet.
  15. 15. • 3 Servers Server 1 = > running network controller and nova-compute Server 2 = > running nova-compute, Cinder, rabbit-mq, mysql, keystone, glance, swift Server 3 = > running nova-compute• All servers are having 4 lan card, eth0 is connected to public switch and rest are connected to private switch. eth3 of Server 1 is also connected to public switch for br-ex. all node eth2 is for br-int• 10.10.x.x is for public access• 172.24.0.x is for private network• 172.24.x.x is reserved for tenant Network
  16. 16. Network Node Setup• vi /etc/network/interfacesauto eth0iface eth0 inet staticaddress VMs Networks with OVS in tunnel modeauto eth1iface eth1 inet manualup ifconfig $IFACE upup ip link set $IFACE promisc ondown ip link set $IFACE promisc offdown ifconfig $IFACE down############ Public Bridgeauto eth3iface eth3 inet manualup ifconfig $IFACE upup ip link set $IFACE promisc ondown ip link set $IFACE promisc offdown ifconfig $IFACE down
  17. 17. #virsh net-destroy default#virsh net-undefine default#vi /etc/libvirt/libvirtd.conflisten_tls = 0listen_tcp = 1auth_tcp = “none”#vi /etc/init/libvirt-bin.confenv libvirtd_opts=”-d -l”# vi /etc/default/libvirt-binlibvirtd_opts=”-d -l”# service libvirt-bin restart#vi /etc/default/openvswitch-switchBRCOMPAT=yes#aptitude purge ebtables#apt-get install -y openvswitch-datapath-source#apt-get install -y quantum-server quantum-plugin-openvswitch#module-assistant auto-install openvswitch-datapath#service openvswitch-switch start#lsmod |grep br#rmmod bridge#service openvswitch-switch restart#service openvswitch-controller restart#lsmod |grep br#init 6
  18. 18. Network setup for Compute Nodes• #vi /etc/network/interfaces## Management Networkauto eth0iface eth0 inet staticaddress VMs Networks with OVS in tunnel modeauto eth1iface eth1 inet manualup ifconfig $IFACE upup ip link set $IFACE promisc ondown ip link set $IFACE promisc offdown ifconfig $IFACE down
  19. 19. How to create Quantum Network• Internal Network• Internal Subnet• Router• External Network• External Subnet• Floating IP
  20. 20. Internal Network# quantum net-create pvt_net1 --tenant_id6415b015581c4506a46e97170395a598 --provider:network_type gre --provider:segmentation_id 1 --shared True# quantum net-create pvt_net2 --tenant_id6415b015581c4506a46e97170395a598 --provider:network_type gre --provider:segmentation_id 2 --shared True
  21. 21. Internal Subnet• quantum subnet-create --tenant_id 6415b015581c4506a46e97170395a598 -- ip_version 4 c92921e3-64a7-468c-8b96- e3acdfc469c0• quantum subnet-create --tenant_id 6415b015581c4506a46e97170395a598 -- ip_version 4 1b61152f-f611-4817-9980- 79636392ab8b
  22. 22. Router# quantum router-create --tenant_id566b4109018540c3b41d8b7f3acc96f2oss_router# quantum router-interface-add a08467a3-6688-4810-8fee-86ad695cfd43 8bf56636-fe18-4386-8018-de86cfa4cec8
  23. 23. External Router# quantum net-create ext_net -- --router:external=True# quantum subnet-create --ip_version 4 --allocation-poolstart=,end= --gateway 6377fc4c-9d0c-4690-976b-09a9ddac9ef6 -- --enable_dhcp=False
  24. 24. FLOATING IP# quantum floatingip-create ext_net# nova list# quantum port-list -- --device_id 1cdc671d-a296-4476-9a75-f9ca1d92fd26# quantum floatingip-associate $FLOATING_ID$PORT_ID# quantum floatingip-show $FLOATING_ID