选择区域语言: EN CN HK

MDC技术白皮书

Copyright © 2016 杭州华三通信技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,

并不得以任何形式传播。本文档中的信息可能变动,恕不另行通知。

H3C_彩色.emf

 



概述

1.1  MDC产生背景

随着虚拟化服务器技术在数据中心的应用,用户对网络设备的虚拟化也提出要求。例如某公司新增一个业务部门,可以通过服务器搭建后台的应用,同时也需要对服务器连接的网络设备进行系列配置,重新购买部属网络设备会带来预算费用的增加。可以将已部属的设备划分出一个虚拟网络设备来承担数据转发功能,划分出来的逻辑网络设备可以单独组网、单独配置,对已部属网络没有任何影响。划分出的逻辑网络设备具有物理设备的所有业务功能,也可以托管给该业务部门进行单独管理。

将一台物理网络设备通过软件虚拟化成多台逻辑网络设备的技术称为MDCmultitenant device contexts,多租户设备环境)技术,虚拟化出来的逻辑网络设备称为MDC

1.2  MDC技术优点

MDC技术是一种1:N虚拟化技术(将一台物理设备虚拟成多台逻辑设备)。从软件上看,MDC将网络设备操作系统的数据平面、控制平面、管理平面进行了完全的虚拟化,各用户态进程在MDC内独立启动运行,各MDC虽然共用一个内核,但内核中MDC间数据也是分离的;在硬件上,不仅可以将端口、单板划分给独立的逻辑设备使用,对每个MDC占有的存储空间、可使用的CPU等资源也进行了划分。使得MDC非常接近于一个单独的物理设备。

MDC上具有完全的设备功能,有独立的软件环境和数据,有独立的硬件资源。可以像重启一台物理设备一样,单独重启一个MDC,而不影响物理设备上其他MDC的正常运行。

MDC技术带来的好处是复用、隔离、易管理:

·              一个物理设备上的多个MDC共用物理设备的资源,使物理资源能得到最大利用。物理接口、CPU、内存、磁盘资源能在各MDC间通过命令行进行分配。

·              每个MDC相互隔离,对于网络数据只能通过分配的接口从外部连线进行转发。每个MDC有独立的控制平面,在MDC内能独立进行路由计算;有独立的二层、三层、MPLS等转发表项;有独立的管理平面,每个MDC能独立控制用户权限。

·              系统启动时创建缺省MDC,可以通过缺省MDCDefault MDC)的管理员来配置管理其他MDCOther MDC,本文中称为非缺省MDC),包括创建、启动、停止、删除非缺省MDC。缺省MDC能通过软件实现的MDC间的配置控制通道登录到其他MDC管理这个MDC。用户也可以直接登录到非缺省MDC上进行配置,所有的配置也只影响该MDC内业务。

MDC技术实现

2.1  技术概述

MDC作为一台独立的逻辑设备,在对用户提供的网络业务层面上,需要尽量做到虚拟化,每个MDC内的业务相互隔离,互不影响,给用户带来独立设备的体验。MDC的软件架构如1所示,Comware V7的模块化实现,保证每个MDC可以分别运行自己的控制协议进程,各MDC的控制平面完全隔离,独立运行。

对于系统的稀缺硬件资源,各MDC间可通过命令行分配协调,来达到资源最有效的利用。Comware V7采用了操作系统级虚拟化技术。在操作系统内核模拟出跑应用程序的容器,操作系统级别的进程管理、内存管理、磁盘管理基于每个MDC进行了虚拟化管理。

对一些属于非业务层面的设备资源,可以只在缺省MDC中进行管理,无需进行虚拟化,由设备管理员进行维护。对比目前的1:NHypervisorBare-metal技术,所有MDC共享内核空间,操作系统级的虚拟化调度性能上最好,耗费资源最少。

图1 Comware V7模块化体系结构

 

2.2  分布式设备的MDC技术

典型的分布式设备模型(含IRF)包括多块主控板和多块接口板。

支持虚拟化后,每块单板都需要支持多个MDC的运行。所有的主控板上都创建并启动MDC。接口板通过配置来启动某些MDC,通过配置对接口资源进行分配。

2所示,每个节点上运行的MDC虚拟化环境称MDC-OSMDC-OS是该节点上支持虚拟化的所有进程和数据的总和。所有节点的MDC-OS组成一台分布式的MDC

图2 分布式环境下的MDC布局

 

用户登录该MDC后,也只能对该MDC内的资源进行配置,即对存在MDC-OS的单板进行配置管理。进行数据同步时也只会在该MDC内的各MDC-OS单板间同步数据,与此MDC不相关的单板不会收到此MDC的任何信息。

可以通过命令配置在某块单板上停止某个MDC,这时,在这个单板上只保留些非虚拟化进程资源,同步少量的数据。

3所示,数据只在MDC所属的单板间进行同步,可以将I/O单板只划分给某个MDC。由于该单板上的资源只为一个MDC所有,这样I/O单板能达到作为单独物理设备时的规格。

图3 MDC的数据同步

 

Comware V7I/O单板的完全虚拟化的实现,让I/O单板上的所有MDC进程和数据隔离。如4所示,当I/O单板的process1-io发生异常进行进程重启等修复过程时,对MDC-OS2上的process1-io没有任何影响。在对各MDC进行CPU资源分配后,对于MDC1process1-io受到攻击CPU负载比较高时,MDC-OS2上的process1-io还是可以继续处理报文,不受影响。

图4 I/O单板的进程虚拟化

 

2.3  MDC实现的功能介绍

2.3.1  缺省MDC和非缺省MDC

设备支持MDC功能后,整台物理设备就是一个MDC,称为缺省MDC。当用户登录物理设备时,实际登录的就是缺省MDC。用户在物理设备上的配置实质就是对缺省MDC的配置。缺省MDC的名称为Admin,编号为1。缺省MDC不需要创建,不能删除。缺省MDC拥有对整台物理设备的所有权限,它可以使用和管理设备所有的硬件资源。缺省MDC下可以创建/删除非缺省MDC,给非缺省MDC分配接口、CPU资源、磁盘空间。

与缺省MDC相对应的是非缺省MDC,非缺省MDC下不可再创建/删除非缺省MDC,它只能使用缺省MDC分配给自己的硬件资源,并在缺省MDC指定的硬件资源限制范围内工作,不能抢占其他MDC或者系统剩余的硬件资源。

2.3.2  MDC管理状态和资源配置

MDC管理操作分为4类:创建MDC、启动MDC、停止MDC、删除MDCMDC管理操作都只能在缺省MDC上,由具有network-admin用户角色的用户执行。

·              MDC的创建:创建完成的MDC状态为inactive,此状态MDC并没有启动,同样也不能切换到该MDC进行配置。只是为资源配置提供了承载实体。缺省MDC将非共享资源分配给创建的MDC后,将不能再使用该资源。MDC的创建相当于将板和接口资源组成一台逻辑设备。

·              MDC的启动:启动完成的MDC状态为active,此状态下的MDC可以提供服务。用户可以登录该MDC进行配置。MDC启动过程类似物理设备的启动,上面章节描述的MDC-OS环境开始建立,MDC内的进程开始初始化,并完成MDC的配置恢复。也同时完成分配给该MDC的接口使能动作。启动后的MDC将对分配的资源进行使用,当再次将这些资源分配给其他MDC时,用户需要确保该资源不再被使用。MDC的启动相当于将已经组成的逻辑设备上电启动。

·              MDC的停止:该操作只能对启动完成的MDC执行,和MDC的启动相反动作,执行完成后MDC状态为inactive,停止MDC后将删除MDC-OS环境,该MDC内的所有进程将不再提供服务。但MDC的停止并没有释放分配的资源,停止后可以通过启动来重新恢复MDC的运行。MDC的停止相当于将组成的逻辑设备下电。

·              MDC的删除:删除操作完成后MDC将不存在。删除操作可以在MDC状态为activeinactive时执行,对于MDC状态为active时执行,该操作会分解两步动作,先进行MDC停止,再进行MDC删除。删除MDC后,该MDC所占用的资源将归还给缺省MDC

具有network-admin用户角色的用户可给MDC分配如下资源:

·              接口板资源:一块接口板可以承载多个MDC,通过location slot命令在该接口板上运行MDC。在进行接口板资源分配时,如果MDC状态为inactive,接口板上也只是进行MDC创建动作,相关的MDC-OS不会启动;如果MDC状态为active,接口板将创建MDC-OS,并将已经划分给该MDC的接口资源使能提供服务。
缺省MDC默认在所有接口板都启动,如果业务部属时需要将接口板所有资源都分配给其他MDC,可以将缺省MDC在该接口板停止,此时缺省MDC在该接口板上只保留最基本的非虚拟化进程业务,占用最少的CPU和内存资源。

·              接口资源:接口作为最关键的物理设备资源,可以在缺省MDC和非缺省MDC间分配。通过allocate interface命令可以将某个接口分配给需要的MDC。建议在MDCinactive时将接口资源配置好,这样减少资源分配带来的系统振荡。同时考虑到新插入单板需要分配给非缺省MDC,也支持当MDCactive时的接口资源分配。接口分配后,系统会重新在目的MDC内创建该接口,接口下的配置恢复到缺省情况。

·              CPU资源:当某个MDC内有大量的计算,需要分配比较多的CPU资源,可以通过limit-resource cpu weight命令进行配置,该配置会影响到该MDC内的MDC-OS运行的节点。CPU资源具有可抢占性,如果某个MDC虽然分配了比较少的CPU资源,当有突发的大量计算任务时,而其他MDC比较空闲,该MDCCPU利用率可能到达很高;当其他MDC也同时有大量计算任务时,将按配置的比率在各MDC间进行调度。

·              内存资源:创建MDC后,缺省不会对该MDC使用的内存资源进行限制,它和缺省MDC共用所有的内存资源。limit-resource memory命令可以在各MDC间进行内存资源配置,也可以限制缺省MDC的内存使用。

·              磁盘资源:创建MDC后,会在磁盘介质中创建对应的MDC目录,存放该MDC的配置文件、日志文件等掉电不丢失的数据,缺省不会对该MDC进行磁盘资源限制,它和缺省MDC共用所有磁盘资源。limit-resource disk命令可以限制某个MDC的磁盘使用限额。

2.4  MDC内的二层转发功能

MDC对于二层转发的三要素(二层端口、二层转发表MACVLAN)都进行了虚拟化,每个MDC都有独立的二层端口、独立的MAC表项和独立的VLAN

每个MDC可以创建相同编号的VLAN,如5所示,MDCAMDCB中都可以创建VLAN2,有独立的二层端口分别为P1P2PCMACMACA,从P1P2端口分别接入设备。PCMACMACA,从P1P2端口分别接入设备:

·              由于P1属于MDCA,在MDCA中将形成到MAC表项:MACA-VLAN2-P1。由于P1属于MDCA,该表项将在MDCA中进行MAC同步,同步到所有MDCA内的有VLAN2端口所在的IO单板上。

·              PCP2接入到MDCB中,也同样形成到MAC表项:MACA-VLAN2-P2,此表项并没有和MDCA的表项冲突,而是独立一张MAC表项。同样也会同步到所有MDCB内的有VLAN2端口所在的IO单板上。对于IO3单板,由于无MDCB端口,则无需对表项MACA-VLAN2-P2进行同步。

图5 MDC的二层转发

 

由于IO单板对于本板上没有的MDC表项不进行同步,将IO单板单独属于一个MDC后,该单板上学习到的MAC表项规格能达到作为单独物理设备时的规格。

二层协议如MSTPLACP等都支持虚拟化,每个MDC作为独立设备分配不同的桥MAC参与MSTP计算。跨MDC是两台独立的逻辑设备,不能进行LACP聚合。

2.5  MDC内的三层转发功能

MDC相对VPN,做了更彻底的操作系统级别的隔离,安全性和操作维护的方便性都有更进一步的提高,并且MDC内支持多个VPN实例。物理设备支持的VPN实例的最大数增加为:MDC最大规格*VPN最大规格数。

图6 MDC内的三层转发

 

6所示,不同的MDC内可以有相同编号的VPN instance,不同的VPN内可以有相同的私网IP

在每个MDC的每个VPN中都各自管理本VPN的三层转发表项(FIB)。

当端口收到报文时,会根据端口所属的MDC来进行转发,在该MDC内查找该端口所属的VPN,再查询FIB表项,匹配后进行转发。

另外,根据MDC的合理部属,可以在表项隔离的同时,每个MDC内也获得比较大的表项规格,看起来整个物理设备的规格得到了扩大。

图7 MDC内的FIB规格

 

7所示:对于三层应用比较多的MDC-AMDC-B,占用FIB表项比较多,部属在独立的接口板上,此接口板不再加入到其他MDC,这样其他MDCFIB表项也不会同步到此接口板对FIB表项的规格占用。部属MDC-D时,需要比较多的三层转发表项,可以通过查询IO2/IO6/IO7这几个接口板上的FIB表项规格剩余较多,优先将MDC-D部属在这几块接口板上。

2.6  管理非缺省MDC

2.6.1  登录通道

MDC技术实现了对网管口的虚拟化,每创建MDC都有虚拟化的网管接口,这些虚拟网管口共用物理网管口的通道资源;每个虚拟网管口都有独立的MAC,可以对每MDC的网管接口配置不同的IP,用户可以通过和不同的IP地址建立连接来对各MDC进行管理。

8所示,MDC2的用户,通过和MDC2的虚拟网管口建立连接,来对该MDC2进行管理。

图8 虚拟化的网管口通道

 

2.6.2  登录方式

2.6.1  8所示,每个MDC都有独立的CONFIG module,支持命令行、WebSNMP登录方式,可以通过MDC内的虚拟网管口建立连接。

在对MDC进行管理时,无论命令形式,还是WebSNMP方式,都与使用一个独立的设备没有区别,这样方便了用户使用,减少了学习、培训成本。

2.6.3  日志输出

2.6.1  8所示,每个MDC有独立的Syslog信息输出,用户进行业务部属时,可以将多个MDCSyslog信息输出到一台Syslog server中,也可以独立部属。

一些设备相关的系统事件,如板插拔、板重启等,在所有MDC内都会产生Syslog消息。

用户登录到缺省MDC只能看到缺省MDC产生的Syslog,无法看到其他MDCSyslog,通过切换MDC操作,可以登录到其他MDC进行Syslog信息查看。

2.6.4  配置文件

每个MDC有独立的配置文件,能独立保存配置和进行配置恢复。MDC内的用户可以对本MDC进行单独的重启操作,重启后的MDC采用自己的配置文件进行配置恢复。缺省MDC的资源分配命令对非缺省MDC的配置有影响,在进行资源划分时需注意确保该资源在本MDC内已经不在使用。

2.6.5  用户管理

Comware基于用户角色对用户进行权限管理。给用户赋予用户角色后,该用户登录设备后可执行指定范围内的操作。

9所示,支持MDC的网络设备缺省支持4种用户角色,针对虚拟化有两级权限划分:

(1)      物理设备级:

·              network-admin:可操作系统所有功能和资源,有创建删除MDC权限。

·              network-operator:可执行系统所有功能和资源的相关显示命令;可执行切换MDC命令,登录到MDC后可以执行MDC内的资源相关的显示命令。

(2)      MDC级:

·              mdc-admin:可操作该MDC所有功能和资源,不能创建、删除MDC,不能切换MDC

·              mdc-operator可执行该MDC所有功能和资源的相关显示命令。

每个MDC都可以独立添加用户进行权限管理。MDC的管理用户只能登录到对应的MDC,对此MDC进行控制,而对其他MDC没有管理权限。当对一个MDC进行管理时,完全不会影响其他MDC的运行。由于管理用户只对一个MDC进行控制,也简化了管理环境,降低了维护难度。

图9 支持MDC设备的用户角色划分

 

IRF下的MDC功能

IRF是一种通用的N:1虚拟化技术,使用它可以将通过IRF物理端口连接在一起的多台设备虚拟成一台逻辑设备。MDC是一种1:N的虚拟化技术。Comware V7支持两种虚拟技术的混合使用,从而将物理设备虚拟成需要的逻辑设备使用。即将多个设备通过IRF技术形成一个大的虚拟的逻辑设备,再通过MDC技术将该逻辑设备进一步虚拟成多个MDC使用,如10所示。

这两个技术一起使用,可以:

·              最大限度的整合设备资源,将设备按照组网需要虚拟成逻辑设备使用,提高设备的使用效率。

·              同时获得两种技术的优点。例如使得每个MDC同时获得IRF的主备主控板保护,相对于使用单个设备组网,提高了可用性。

·              提高系统的扩展性和使用的灵活性。在已经使用MDC技术的设备上,可以通过IRF技术在不改变网络部署的情况下扩展设备的端口数、带宽及处理能力。而在已经使用IRF技术的场合,再需要使用MDC功能时也无需重新构建网络,可以直接在IRF的基础上使用MDC功能,部署新的网络,对现有网络不产生任何影响。

图10 IRF+MDC效果示意图

 

统一部署IRFMDC后,IRF内所有的资源都可以在这些MDC间分配。不同物理设备的接口板可以分给同一MDC,进行报文转发时报文能通过IRF链路到达另外物理设备上该MDC内的接口,等效于同一台物理设备上的转发。当跨成员设备的转发流量很大时,会给IRF链路带来压力。此时,需要在不同成员设备的同一MDC间部署IRF链路来分担MDC的跨框转发流量,如11所示:

·              缺省MDC中的IRF链路用于转发IRF的控制协议报文以及MDC1的跨框流量。

·              其他非缺省MDC中的IRF链路,仅转发该MDC的跨框流量。

图11 IRF+MDC组网环境IRF链路部署示意图

 

MDC的高可用性和ISSU

4.1  MDC内进程高可用性

Comware V7采用进程级的GR技术,实现进程级的高可用性。即每个进程运行过程中进行备份,重启时,与此进程相关的软硬件均不删除此进程的相关数据,待进程重新运行,恢复自身数据后,与相关软、硬件进行数据平滑,继续运行,保证运行状态一致。整个重启过程中业务不中断,系统其他部分功能不受影响,邻居设备不感知此过程。异常重启的服务只在重启期间不提供服务,重启后马上恢复服务,且不影响重启前正在进行中的服务。

MDC中配置业务后,MDC系统会运行对应的进程:一个主进程(Active)和多个备进程(Standby),分别分布在不同的主控板节点上。各MDC内的进程隔离,使得MDC内的进程级主备倒换时,不影响其他MDC的进程布局。

1213所示,MDC间的主备进程可以独立形成备份,MDC1Process1主进程在node2上,MDC2Process1主进程在node1上。MDC1内的Process2进程进行了主备倒换后,不影响MDC2的进程布局。

图12 MDC内的进程布局

 

图13 进程级主备切换后的进程布局

 

4.2  MDCISSU

同一物理设备上的所有MDC共用一份启动文件,运行相同的软件版本。MDC的升级操作只在缺省MDC进行,升级成功后,各个MDC均完成升级,如14所示。

图14 MDCISSU升级

 

附件下载