MDC技术白皮书
Copyright © 2019 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
随着虚拟化服务器技术在数据中心的应用,用户对网络设备的虚拟化也提出要求。例如某公司新增一项业务,他们通过虚拟服务器搭建后台应用,同时需要对服务器连接的网络设备进行系列配置,重新购买、部署网络设备会增加预算费用。可以将现有设备划分出一个虚拟网络设备来承担新业务的接入和数据转发,划分出来的虚拟网络设备可以单独组网、单独配置,对已部署网络没有任何影响。划分出的虚拟网络设备具有物理网络设备的所有业务功能,也可以托管给业务部门单独管理。
将物理网络设备通过虚拟化技术划分成多台虚拟网络设备的技术称为MDC(Multitenant Device Context,多租户设备环境)技术,这些虚拟网络设备称为MDC。
MDC具有以下优点:
· 复用:同一物理设备上创建的所有MDC共用物理设备的物理接口、CPU、内存、磁盘资源,管理员可以根据需要为MDC分配资源,或者将一个MDC的资源收回分配给其它MDC,使这些资源能得到最大利用。
· 隔离:每台MDC拥有自己专属的软硬件资源,独立运行、独立转发、独立提供业务。创建、启动、重启、删除一台MDC,不会影响其它MDC的运行。
· 易管理:多台MDC集成在一台物理设备上,配置界面统一,可由一人维护,也可为每个MDC分派管理员,免去维护多台物理设备的烦恼,还可以节省机房空间。
设备支持MDC功能后,整台物理设备就是一个MDC,称为缺省MDC。当用户登录物理设备时,实际登录的就是缺省MDC。用户在物理设备上的配置实质就是对缺省MDC的配置。缺省MDC的名称为Admin,编号为1。缺省MDC不需要创建,不能删除。缺省MDC拥有对整台物理设备的所有权限,它可以使用和管理设备所有的硬件资源。缺省MDC下可以创建/删除非缺省MDC。
与缺省MDC相对应的是非缺省MDC,非缺省MDC下不可再创建/删除非缺省MDC。
创建完成的非缺省MDC状态为inactive,此状态下的MDC并没有启动。MDC的创建相当于组建了一台具有硬件基础的虚拟设备。
对于系统的稀缺硬件资源,各MDC间可通过命令行分配协调,来达到资源最有效的利用。缺省MDC上可以给非缺省MDC分配的硬件资源包括接口、CPU资源、磁盘空间和内存空间。MDC创建后:
· 缺省情况下,设备上所有资源均属于缺省MDC。非缺省MDC仅具有主控板的使用权限,不具有物理接口和业务板的使用权限。必须为非缺省MDC分配物理接口和业务板,否则非缺省MDC上将没有物理接口,不能转发业务报文。
· 可以根据需要在各MDC间进行业务板、接口、CPU、磁盘和内存空间的合理、灵活分配。
¡ 业务板资源:一块业务板可以分配给多个MDC使用,这些MDC共享该业务板上的资源。
¡ 接口资源:接口作为最关键的物理设备资源,可以在缺省MDC和非缺省MDC间分配。建议在MDC启动前将接口资源配置好,以减少资源分配带来的系统震荡。同时,为了能将新插入的业务板分配给非缺省MDC,设备也支持在MDC运行状态下将接口分配给MDC。
¡ CPU资源:所有的MDC共享设备的CPU资源。CPU资源具有可抢占性。如果某个MDC分配了较少的CPU资源,当有突发的任务需要CPU处理,而其他MDC任务较少时,该MDC可抢占使用空闲的CPU;当其他MDC同时也有大量任务需要CPU处理时,将按配置的比率在各MDC间进行CPU调度。以免某个MDC过多的占用CPU,而导致其他MDC无法运行。
¡ 内存资源:所有的MDC共享设备的内存空间。为了防止一个MDC过多的占用内存,而导致其他MDC无法正常运行业务,可以限制MDC对内存的使用。
¡ 磁盘资源:创建MDC后,会在磁盘介质中创建对应的MDC目录,存放该MDC的配置文件、日志文件等掉电不丢失的数据。所有的MDC共享设备的磁盘空间。为了防止一个MDC过多的占用磁盘空间,而导致其他MDC无法保存配置文件、系统日志等,可以限制MDC对磁盘空间的使用。
MDC的启动相当于将已经组成的虚拟设备上电启动,MDC启动过程类似物理设备的启动。在MDC启动过程中,MDC操作系统(MDC-OS)环境开始建立,MDC内的进程开始初始化,并完成MDC的配置恢复。启动完成的MDC状态为active,此状态下的MDC可以提供服务,可登录该MDC配置该MDC的运行参数。
典型的分布式设备包括多块主控板和多块接口板。创建并启动MDC后,所有主控板、分配给该MDC的业务板上都创建并启动MDC。如图1所示,每个单板上运行的MDC虚拟化环境称为MDC-OS,MDC-OS是该单板上支持虚拟化的所有进程和数据的总和。所有单板的MDC-OS组成一台分布式的MDC。
用户登录该MDC后,只能对该MDC内的资源进行配置,即对存在MDC-OS的单板进行配置管理。进行数据同步时也只会在该MDC内的各MDC-OS单板间同步数据,与此MDC不相关的单板不会收到此MDC的任何信息。如图2所示,数据只在MDC所属的单板间进行同步。可以将I/O单板只划分给某个MDC,由于该单板上的资源只归一个MDC所有,这样I/O单板能达到作为单独物理设备时的规格。
图2 MDC的数据同步
MDC将网络设备操作系统的数据平面、控制平面、管理平面进行了完全的虚拟化,各用户态进程在MDC内独立启动运行,各MDC虽然共用一个内核,但内核中MDC间数据也是分离的,从而实现每个MDC内的业务相互隔离,互不影响,给用户带来独立设备的体验。MDC的软件架构如图3所示,Comware V7的模块化实现,保证每个MDC可以分别运行自己的控制协议进程,各MDC的控制平面完全隔离,独立运行。
图3 Comware V7模块化体系结构
Comware V7对I/O单板的完全虚拟化的实现,让I/O单板上的所有MDC进程和数据隔离。如图4所示,当I/O单板的process1-io发生异常进行进程重启等修复过程时,MDC-OS2上的process1-io不会受到任何影响。在对各MDC进行CPU资源分配后,MDC1的process1-io受到攻击、CPU负载比较高时,MDC-OS2上的process1-io还是可以继续处理报文,不受影响。
图4 I/O单板的进程虚拟化
MDC对于二层转发的三要素(二层端口、二层转发表、VLAN)都进行了虚拟化,每个MDC都有独立的二层端口、独立的二层转发表和独立的VLAN。
每个MDC可以创建相同编号的VLAN。如图5所示:
· MDC1拥有独享的二层端口P1、P3、P5、P6;MDC2拥有独享的二层端口P2、P4。
· MDC1和MDC2中都可以创建VLAN2。
· PC1的MAC地址为MACA;PC2的MAC地址为MACB。
PC1从P1端口接入设备,由于P1属于MDC1,MDC1中将生成一张MAC地址表,并添加表项MACA-VLAN2-P1。该表项会在MDC1中同步,同步到MDC1内允许VLAN2报文通过的接口板I/O1、I/O2和I/O3上。
PC2从P4端口接入设备,由于P4属于MDC2,MDC2中将生成一张MAC地址表,并添加表项MACB-VLAN2-P4。该表项会在MDC2中同步,同步到MDC2内允许VLAN2报文通过的接口板I/O1和I/O2上。对于I/O3单板,由于无MDC2端口,则无需同步表项MACB-VLAN2-P4。
图5 MDC的二层转发
二层协议如MSTP、LACP等都支持虚拟化,每个MDC作为独立设备分配不同的桥MAC参与MSTP计算。如需将不同MDC中的接口聚合,需要配置跨设备聚合功能。
MDC相对VPN,做了更彻底地操作系统级别的隔离,安全性和操作维护的方便性都有更进一步的提高。各MDC独享VPN资源,如图6所示:
· 不同的MDC内可以有相同编号的VPN实例。
· 不同VPN内可以有相同的私网IP。
· 每个MDC的每个VPN中都各自管理本VPN的三层转发表项(FIB)。
物理设备支持的VPN实例的最大数增加为:MDC最大规格数 × VPN最大规格数。
由于硬件资源限制,划分MDC后,物理设备支持的VPN实例的最大数可能达不到“MDC最大规格数 × VPN最大规格数”,请以设备实际情况为准。
图6 MDC的三层转发
另外,通过合理部署MDC,可以在表项隔离的同时,每个MDC内也获得比较大的表项规格。如图7所示,三层应用较多的MDC1和MDC2,占用FIB表项较多,可将接口板仅分配给该MDC,其他MDC的FIB表项不会同步到此接口板,不会占用该接口板的FIB表项规格。如果MDC4也需要较多的三层转发表项,通过查询发现I/O2、I/O6、I/O7这几块接口板上的FIB表项规格剩余较多,可优先将MDC4部署在这几块接口板上。
图7 MDC的FIB规格
缺省MDC和非缺省MDC之间存在内联接口,其效果相当于Console口。如果用户当前已经登录了缺省MDC,通过内联接口可登录非缺省MDC,借用用户和缺省MDC之间的物理连接和会话连接来访问非缺省MDC。此时,命令行视图将从缺省MDC的系统视图切换到指定MDC的用户视图。
用户第一次登录MDC时,必须使用内联接口登录非缺省MDC。
MDC技术实现了对以太网管理接口的虚拟化。用户创建MDC时,系统会为每个非缺省MDC创建虚拟以太网管理接口,这些虚拟以太网管理接口共用物理以太网管理接口的通道资源。每个虚拟以太网管理接口都有独立的MAC。用户通过内联接口登录非缺省MDC后,可以为每个MDC的管理以太网接口配置不同的IP地址。用户通过和不同的IP地址建立连接来对各MDC进行管理。如图8所示,MDC2的用户通过和MDC2的虚拟以太网管理接口建立连接,来对该MDC2进行管理。
用户通过内联接口登录非缺省MDC,在MDC上创建VLAN接口并配置IP地址,将VLAN接口和物理接口绑定,或者直接给三层以太网接口配置IP地址,完成路由配置后,可以通过非缺省MDC的物理接口使用Telnet或SSH等方式登录非缺省MDC。
如图8所示,每个MDC都支持命令行、Web、SNMP、Netconf等配置方式。这些配置方式的使用方法和效果同物理设备。
每个MDC有独立的配置文件,能独立保存本MDC的配置和进行配置恢复。MDC内的用户可以对本MDC进行单独的重启操作,重启后MDC采用自己的配置文件进行配置恢复。
如图8所示,每个MDC在运行过程中,各自独立生成、输出Syslog。用户进行业务部署时,可以将多个MDC的Syslog信息输出到一台日志服务器中,也可以独立部署。
一些设备相关的系统事件,如重启整台设备等,在所有MDC内都会产生Syslog消息;一些单板相关的系统事件,如插入单板、拔出单板、重启单板等,在拥有这些单板使用权限的MDC内都会产生Syslog消息。
用户登录MDC后,只能看到当前MDC产生的Syslog,无法看到其他MDC的Syslog。管理员如需查看某个MDC的Syslog,请登录到该MDC查看。
Comware基于用户角色对用户进行权限管理。为用户赋予用户角色后,该用户登录设备后可执行指定范围内的操作。
如图9所示,支持MDC的网络设备缺省支持4种用户角色,针对虚拟化有两级权限划分:
· 物理设备级
¡ network-admin:可操作系统所有功能和资源,有创建、删除MDC等权限。
¡ network-operator:可执行系统所有功能和资源的相关显示命令;可执行切换MDC命令,登录到MDC后可以执行MDC内的资源相关的显示命令。
· MDC级
¡ mdc-admin:可操作该MDC所有功能和资源,不能创建、删除MDC,不能切换MDC。
¡ mdc-operator:可执行该MDC所有功能和资源的相关显示命令。
每个MDC都可以独立添加用户进行权限管理。MDC的管理用户只能登录到对应的MDC,对该MDC进行控制,而对其他MDC没有管理权限。当对一个MDC进行管理时,不会影响其他MDC的运行。由于管理用户只对一个MDC进行控制,也简化了管理环境,降低了维护难度。
该操作只能对启动完成的MDC执行,和MDC的启动相反,执行停止操作后MDC状态为inactive。停止MDC后将删除MDC-OS环境,该MDC内的所有进程将不再提供服务。但MDC的停止并没有释放分配的资源,停止后可以通过启动来重新恢复MDC的运行。MDC的停止相当于将组成的虚拟设备下电。
删除操作完成后MDC将不存在。删除操作可以在MDC状态为active和inactive时执行。对于active状态的MDC,执行删除操作会先停止MDC,再删除MDC删除。删除MDC后,该MDC所占用的资源将归还给缺省MDC。
IRF是一种N:1虚拟化技术,使用它可以将多台物理设备虚拟成一台虚拟设备。MDC是一种1:N的虚拟化技术。将这两种虚拟技术配合使用,可以达到多虚多的效果。即将多个设备通过IRF技术形成一个大的虚拟设备,再通过MDC技术将该虚拟设备进一步虚拟成多个MDC使用,如图10所示。
图10 IRF+MDC效果示意图
这两个技术一起使用,可以:
· 最大限度的整合设备资源,将多台设备按照组网需要虚拟成多台虚拟设备使用,提高设备的使用效率。
· 同时获得两种技术的优点。例如使得每个MDC同时获得IRF的主备主控板保护,相对于使用单个设备组网,提高了可用性。
· 提高系统的扩展性和使用的灵活性。在已经使用MDC的设备上,通过叠加IRF技术,可以在不改变网络部署的情况下扩展设备的端口数、带宽及处理能力。而在已经使用IRF技术的场合,直接在IRF的基础上使用MDC功能,部署新的网络,对现有网络不会产生任何影响
统一部署IRF和MDC后,IRF内所有的资源都可以在这些MDC间分配。不同物理设备的接口板可以分给同一MDC,进行报文转发时报文能通过IRF链路到达另一台物理设备上该MDC内的接口,等效于同一台物理设备上的转发。当跨成员设备的转发流量很大时,会给IRF链路带来压力。此时,请部署多条IRF链路来分担MDC的跨框转发流量,如图11所示:
· 缺省MDC中的IRF链路用于转发IRF的控制协议报文以及所有MDC的跨框流量。
· 非缺省MDC中的IRF链路,仅转发本MDC的跨框流量。
不同型号的设备由于硬件差异,对IRF链路的部署要求以及跨框流量的处理策略可能不同,请以设备的实际情况为准。
图11 IRF+MDC组网环境IRF链路部署示意图
Comware V7采用进程级GR技术来实现进程级的高可靠性。即每个进程在运行过程中备份状态和数据,进程重启时,与此进程相关的软硬件均不删除此进程的相关数据,待进程重新运行,恢复自身数据后,与相关软、硬件进行数据平滑,继续运行,保证运行状态一致。整个重启过程中业务不中断,系统其他部分功能不受影响,邻居设备不感知此过程。异常重启的服务只在重启期间不提供服务,重启后马上恢复服务。
在MDC中配置业务后,MDC系统会运行对应的进程:一个主进程(Active)和多个备进程(Standby),主备进程分别分布在不同的主控板节点上。各MDC内的进程隔离,使得MDC内的进程级主备倒换时,不影响其他MDC的进程布局。如图12和图13所示,MDC1的Process1主进程在node2上,MDC2的Process1主进程在node1上。MDC1内的Process2进程进行了主备倒换后,不影响MDC2的进程布局。
图12 MDC内的进程布局
同一物理设备上的所有MDC共用一份启动文件,运行相同的软件版本。MDC的升级操作只在缺省MDC进行,升级成功后,各个MDC均完成升级。如图14所示,MDC升级流程同物理设备的升级流程:
(1) 先对备用主控板进行升级,备用主控板升级完成之后,当选成新的主用主控板,替代原主用主控板工作。
(2) 原主用主控板重启升级,连带升级业务板。最终完成整台物理设备以及所有MDC的升级。
升级过程中如果出现异常也可以回滚到升级前的状态。
图14 MDC的ISSU升级
MDC的应用十分广泛,比如提供设备出租和业务托管、应用于实验教学等。
如图15所示,LAN 1、LAN 2和LAN 3是三个不同公司的局域网,它们通过同一台物理设备Device连接到外网。通过虚拟化技术,能让一台设备当三台设备使用。具体做法是,在Device上创建三台MDC:Device A、Device B和Device C,分别负责LAN 1、LAN 2、LAN 3的网络接入和控制。LAN 1、LAN 2、LAN 3的网络管理员可以(也只能)分别登录到自己的接入设备进行配置、保存、重启等操作,不会影响其它网络的使用,其效果等同于LAN 1、LAN 2和LAN 3分别通过各自的网关Gateway 1、Gateway 2、Gateway 3接入Internet。
图15 MDC典型应用组网图
如图16所示,某公司有两台设备已经组成了IRF。现要求创建两台独立的虚拟设备(MDC A和MDC B),分给该公司的A、B两个部门,用作接入公司网络的网关。通过MDC技术,可以使得各部门独享设备的表项资源,并且可以根据各部门的业务需求分配设备的内存、CPU资源。例如,A部门业务活跃,需要更多的CPU资源和内存资源;B部门人员和服务器较多,需要更多的接口资源。
图16 IRF+MDC综合应用组网图