OpenStack Days China 2016 华为蔡智源&丁音:分布式DC面临的挑战及解决之道_9579401

2020-02-27 144浏览

  • 1.分布式DC面临的挑战及解决之道 How we meet the challenges brought by Distributed Data Center Zhiyuan Cai, Yin Ding Huawei
  • 2.Original Central DC Central DataCenter Central DataCenter Long path, limited uplink bandwidth, bad experience for uplink in centralized cloud
  • 3.Distributed DC Central DataCenter Edge DataCenter Central DataCenter Edge data center clouds to place VNF/App/storage close to end user for better user experience Edge DataCenter Edge DataCenter
  • 4.Challenges • Resource provision – How to schedule an OpenStack instance to create VM, volume • Networking – How to connect VMs in different OpenStack instances • Scaling – How to scale OpenStack cloud
  • 5.Meet Tricircle • Tricircle provides an OpenStack API gateway and networking automation to allow multiple OpenStack instances, spanning in one site or multiple sites or in hybrid cloud, to be managed as a single OpenStack cloud.
  • 6.Tricircle provides OpenStack federation affinity OpenStack API pod table Tricircle pod_id, pod_name, pod_az_name, dc_name, az_name, release, resource_affinity_tag OpenStack API DC1 DC2 DC3 AZ1 Kubernetes Kubernetes bottom OpenStack bottom OpenStack bottom OpenStack OpenStack API AZ2 bottom OpenStack AZ3 Kubernetes Kubernetes bottom OpenStack bottom OpenStack bottom OpenStack bottom OpenStack
  • 7.Tricircle provides cross OpenStack network automation Router SEG, Net1@AZ1 VM1 VM2 OpenStack VM3 VM4 VM5 VM6 SEG, Net2@AZ1 VM7 VM8 VM9 OpenStack ● One AZ may contain more than one OpenStack ● Networking should be taken good care of to not ruin user’s expectation ○ VM1 and VM6 should be able to communicate with each other since they are both in Net1 ○ VM1 and VM8 should be able to communicate with each other via Router
  • 8.Tricircle provides modularized scaling Tricircle 1000 (compute nodes) -> 2000 API Server Message Bus Network Node Compute Node OpenStack -> 50000 API Server DB Message Bus API Server DB .... Network Node Message Bus Network Node Compute Node Compute Node OpenStack OpenStack AZ1 ● ● ● ● DB Capability expansion is headache Utilize tested and verified building block for capacity expansion Treat one OpenStack as one building block Tricircle provides API to create a new pod(one OpenStack instance) AZ2
  • 9.Architecture of Tricircle New components of Tricircle Tricircle Restful OpenStack API Nova API Gateway Neutron API Tricircle Plugin Cinder API Gateway Admin API XJob DB Message Bus bottom OpenStack ( Pod ) bottom OpenStack Nova Nova Cinder Cinder Neutron Neutron Message bus, Async. XJob RPC API for cross OpenStack functionalities like networking, volume migration DB Access for pod management, resource routing
  • 10.Example – VM & volume colocation (1) User sends VM create request specifying availability zone parameter as AZ1 (2) AZ1 has two pods, Nova API gateway schedules one pod(Pod1) and bind this user to that pod in AZ1 (3) Nova API gateway sends request to Pod1 (4) Nova API gateway caches routing information 5 1 API Cell Nova API GW Cinder API GW Neutron API 8 4 2 6 routing DB 3 Tricircle 7 AZ1 OpenStack Pod1 Nova,Cinder,Neutron,Glance Controllers Message Bus Compute Nodes DB OpenStack Pod2 Nova,Cinder,Neutron,Glance Controllers Message Bus Compute Nodes (5) User sends volume create request specifying availability zone parameter as AZ1 (6) Query DB to get user-pod binding information (7) Cinder API gateway sends request to Pod1 (8) Cinder API gateway caches routing information DB resource routing table Id, top_id, bottom_id, pod_id, project_id, resource_type pod binding table id, project_id, pod_id
  • 11.Example - network automation 2. create VM1(Network1, AZ1) 1. create Network1 Tricircle Nova API-GW Neutron API Tricircle Plugin 4. update Network1(segment1 = Network1-1@AZ1) L2GW Driver 5. create Port1 for VM1 3. create Network1-1 6. create VM1(Port1, Network1-1) bottom OpenStack Network1-1 VM 1 VxLAN1 bottom OpenStack L2GW 1 L2GW 2
  • 12.Example - network automation 7. create VM2(Network1, AZ2) Nova API-GW Tricircle 9. update Network1 (segment2 = Network1-2@AZ2) Neutron API Tricircle Plugin L2GW Driver 10. create Port2 for VM2 8. create Network1-2 11. create VM2(Port2, Network1-2) bottom OpenStack Network1-1 VM 1 VxLAN1 bottom OpenStack L2GW 1 L2GW 2 Network1-2 VxLAN2 VM 2
  • 13.Example - network automation Tricircle Nova API-GW Neutron API Tricircle Plugin L2GW Driver XJob 13. create L2GW local connection 14. create L2GW remote connection 15. populate remote mac/IP information 13. create L2GW local connection 14. create L2GW remote connection 15. populate remote mac/IP information bottom OpenStack Network1-1 VM 1 VxLAN1 12. start async job to configure Network1-1 and Network1-2 for L2 Networking bottom OpenStack L2GW 1 L2 Networking (EVPN) L2GW 2 Network1-2 VxLAN2 VM 2
  • 14.Welcome to join us • Wiki ofTricircle:–https://wiki.openstack.org/wiki/Tricircle• Play andcontribute:–https://github.com/openstack/tricircle• Designdocument:–https://docs.google.com/document/d/18kZZ1snMOCD9IQvUKI5NVDzSASpw-QKj7l2zNqMEd3g review fromhttp://stackalytics.com/commit
  • 15.Cloud Native OpenStack • Cloud Nativeapplications:– Applications or Services that are containerpackaged, dynamically scheduled and microservices oriented • Container on OpenStack Challenges – Network – Storage
  • 16.Popular Cloud Providers VM + Container Network Container Storage Orchestration of (Mix use of PM/VM/Container Cluster) Amazon Google Microsoft All VPC Network Overlay Overlay Host Mount Volumns/ EBS volume GCE provide Persistent volume No No No Rackspace Redhat Overlay Overlay hostPath Ceph,Gluster, NFS(iscsi) No No
  • 17.Our Approach •Kuryr:– One NetworkManagement:VM + Container •Fuxi:– Connect containers with OpenStack Cinder
  • 18.Networking with Kuryr Container Container Kubernetes Plugin Kubernetes Plugin Kuryr Kuryr Eth 容器VM主机 Eth OVS Eth Eth OVS Physical Machine Hypervisor Physical Machine Neutron Server
  • 19.Network • create VM, Container on the same Network no matter Containers in VM or Bare Metal Network VM1 VM2 container1 VM3 VM4 container3 container2 container4 OpenStack
  • 20.With TriCircle Network Automation Router SEG, Net1@AZ1 VM1 VM2 VM3 VM4 VM5 container1 VM6 VM7 container3 container2 VM8 SEG, Net2@AZ1 container4 Kubernetes OpenStack VM9 Kubernetes OpenStack ● Networking has be taken good care of ○ Container1, container2 and container3 should be able to communicate with each other since they are both in Net1 ○ Container3 and Container4 should be able to communicate with each other via Router
  • 21.Storage • In OpenStack, a Kubernetes volume – uses hostPath volume mounts a file or directory from the host node’s file system. • With Fuxi – Simply mounts Cinder volume to the host for kubelet Kubernetes Master Fuxi Host Dir Host kubelet Volume iscsi vbs Docker Container Cinder Volume Storage Volume rdb
  • 22.What we achieve • Bring Container as the First-Class resource in OpenStack • One network management • Stateful Container with persistent storage in OpenStack
  • 23.Q&A Placeholder Footer Copy / BU Logo or Name Goes Here
  • 24.Thanks Placeholder Footer Copy / BU Logo or Name Goes Here