
最近讨论VPC,讨论经典网络,讨论云平台网络实现讨论的如火如荼。笔者也凑个热闹,这次终于鼓起勇气,说说Azure网络的实现。
在解构网络之前,我们来看看最近刚出的下一代数据中心网络报告,其实各家云厂商的实现都是大同小异,我们通过这份报告亦能管中窥豹,互相借鉴着来理解。
本篇我们分 2 部分来说Azure网络。 Azure网络总体架构和diagnostic机制 Azure网络实现细则和 data flow
虚拟交换机,网络加速卡,leaf/spine节点,跨数据中心互联。大家该有的元素,一样不缺。 在这样大规模的网络环境下,其实我们的管理也碰到过许多的问题。比如超大量的路径,ASICS,交换机测试要求。“灰色失败”,追寻99.995% 的latency问题。
目前 Azure Cloud Switch 已经开源,可以参考这个:Microsoft showcases the Azure Cloud Switch (ACS). Fault mitigation机制,根据link和switch情况,自动剔除和修复fabric
Azure的物理机延迟监控应用,可以测量DC/cluster之间的 l atency情况,报告或生成对应方案。Azure 工程师也可以通过这个系统定位到哪些 rack 直接可能有潜在的问题。
如之前提到的报告所说,SDN/网络的整体分析和大数据处理也是非常重要的一点。在Azure上,我们使用Azure Storage 和 Analysis 服务来快速找到问题原因。
这样一整套的服务和应用措施,就是Azure网络的管理系统---亦就是Azure switch cloud os +DC Networking monitoring/manager。 这里吐个槽, 微软在开源上其实贡献了非常多云和管理工具,相比之下,某 A 系公司完全在利用开源,完全没有付出。这可能也出乎了很多用户所想吧。 说完整体,我们在来说说实现细节。
篇幅有限,基于为了把事情说的简单明了,我决定放弃一部分技术细节。说说整体的flow。 聊 Azure Network 就必须说一个东西,VFP。 目前在Azure和 Hyperv 网络上,我们有2个标准,即Hyper-V Network Virtualization HNV1 和HNV2。HNV2就是目前2016以及Azure 网络所使用的技术,HNV2使用的了Azure virtual filtering (vfp) 来与 Hyper-v Switch交互。他们构建起了整个SDN栈。所有创建的 Vnet的规则,是通过 Network Controller 来管理 Host Agent,完成隔离交互。
换句话说,每个虚拟网络都存在1 或多个虚拟子网。一个虚拟网络下自主隔离了里面的VM,让他们只能在这个虚拟网络下和别的VM进行交流。在传统情景下,这种隔离是通过vlan和IP地址802.1q tag/vlan tag来分离的,但在 Hnv模式下,我们使用 Nvgre或者 Vxlan来加密网络,创建 Overlay 网络来交互。如之前云舒大大所说,现在市面上大多都是通过这样实现的。
另外,每个虚拟网络还有一个独立 Routing Domain ID(RDID)在主机上,这个 ID会 map Azure Resource ID,帮助 Azure Network Controller来识别网络。这部分资源会被识别成URI。
感兴趣的朋友可以点击链接获得更好的阅读体验。 https://school.azure.cn/blog/26?wt.mc_id=Azure_Community_GNE_BBS_V2EX_CloudComputing