发明内容
有鉴于此,本申请提供一种虚拟设备端口迁移的方法和接口板,能够在节省内存占用的情况下,实现端口虚拟设备端口的迁移。
为解决上述技术问题,本发明的技术方案是这样实现的:
一种虚拟设备端口迁移的方法,应用于交换机的任一接口板上,所述接口板包括多个芯片,所述接口板将各芯片的所有端口作为一个端口组,当创建VD时,以端口组为单位为创建的各VD添加端口,当所述各VD中第一VD的任一端口组的端口迁移到第二VD时,包括:
所述接口板获知迁移所述第一VD的所述端口组的端口时,将所述第一VD对应的全局数据进行备份,并根据当前备份的全局数据删除所述端口组对应的芯片上的全局数据;
获知为所述第二VD添加所述端口组的端口时,将所述第二VD对应的全局数据进行备份,并根据当前备份的全局数据在所述端口组对应的芯片上下发全局数据。
一种接口板,可应用于包括多个接口板的交换机上,所述接口板包括多个芯片,所述接口板包括:创建单元、配置单元、获知单元、备份单元和处理单元;
所述创建单元,用于创建VD;
所述配置单元,用于将所述各芯片的所有端口作为一个端口组,当所述创建单元创建VD时,以端口组为单位为创建的各VD添加端口;
所述获知单元,用于获知迁移任一端口组的端口;获知添加任一端口组的端口;
所述备份单元,用于当所述获知单元获知迁移所述创建VD中的第一VD的所述端口组的端口时,将所述第一VD对应的全局数据进行备份;当所述获知单元获知为所述创建的VD中的第二VD添加所述端口组的端口时,将所述第二VD对应的全局数据进行备份;
所述处理单元,用于当所述获知单元获知迁移所述第一VD的所述端口组的端口,且所述备份单元将所述第一VD对应的全局数据进行备份时,根据当前备份的全局数据删除所述端口组对应的芯片上的全局数据;当所述获知单元获知为所述第二VD添加所述端口组的端口,且所述备份单元将所述第二VD对应的全局数据进行备份时,根据当前备份的全局数据在所述端口组对应的芯片上下发全局数据。
综上所述,本申请通过将各芯片的所有端口作为一个端口组,以端口组为单位为各VD分配端口,任一端口组的端口迁移时,将该端口组的所有端口看做一个整体,备份迁移前所在VD的全局数据,将该端口组所对应的芯片上的全局数据删除,再备份迁移后的VD的全局数据,根据当前备份的全局数据在所述端口组对应的芯片上下发全局数据,能够在节省内存占用的情况下,实现端口虚拟设备端口的迁移。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
本发明实施例中提出一种虚拟设备端口迁移的方法,该应用于交换机的任一接口板上,所述接口板包括多个芯片,该接口板将各芯片的所有端口作为一个端口组,当创建VD时,以端口组为单位为创建的各VD添加端口,即一个芯片的所有端口只属于一个VD,但是一个VD可以包括多个芯片的端口。以各VD中任意两个VD分别为第一VD和第二VD的端口迁移为例。
参见图1,图1为本发明实施例中第一VD的任一端口组的端口迁移到第二VD的方法流程图。具体步骤为:
步骤101,接口板获知迁移第一VD的任一端口组的端口时,将所述第一VD对应的全局数据进行备份,并根据当前备份的全局数据删除所述端口组对应的芯片上的全局数据。
为第一VD分配的端口组可以为一个也可以为多个,在具体实现时,当第一VD分配的端口组为多个,且要迁移多个端口组时,同迁移一个端口组的操作类似,这里无论第一VD分配了几个端口组,以迁移一个端口组为例来描述端口组迁移的过程。无论分配几个端口组,VD的各芯片上的全局数据都是一样的,因此本步骤中,需要备份的全局数据为第一VD的全局数据。
步骤102,接口板获知为所述第二VD添加所述端口组的端口时,将所述第二VD对应的全局数据进行备份,并根据当前备份的全局数据在所述端口组对应的芯片上下发全局数据。
当所述端口组的端口要分配给第二VD时,将第二VD的全局数据下发到该端口组对应的芯片。
参见图2,图2为本发明具体实施例中第一VD的任一端口组的端口迁移到第二VD的方法流程图。具体步骤为:
步骤201,在接口板上创建第一VD和第二VD时,接口板将其上各芯片的所有端口作为一个端口组,并以端口组为单位为第一VD和第二VD添加端口。
假设该接口板上有10芯片,则有10个端口组,分别为:端口组1、端口组2......端口组10,创建了5个VD,分别为第一VD、第二VD......第五VD,以其中两个VD:第一VD和第二VD为例,将端口组1和端口组2所对应的端口分配给第一VD,将端口组3对应的端口分配给第二VD,其他VD的端口分配类似这里不再详细赘述。
步骤202,接口板分别绑定记录第一VD和第二VD的标识、对应的端口组标识、全局数据和分配的各端口的端口配置。
对于第一VD绑定记录的内容为:第一VD标识、端口组1、端口组1中各端口的端口配置、端口组2、端口组2中各端口的端口配置,以及第一VD的全局数据;
对于第二VD绑定记录的内容为:第二VD标识、端口组3、端口组3中各端口的端口配置、以及第二VD的全局数据。
步骤203,当获知迁移第一VD的任一端口组的端口时,根据记录的所述端口组的各端口的端口配置删除所述端口组对应芯片上的端口配置,获知所述端口组中各端口拔出。
假设迁移的是端口组1,则根据记录的端口配置将端口组1所对应的芯片上的端口配置。本发明具体实施例中,只有上层平台记录一份全局数据和端口配置,驱动并不需要记录,节省了内存。当将要进行端口迁移时,驱动将将要进行的迁移通知上层平台,上层平台只记录了VD与端口之间的关系,即能够识别端口,因此可以直接将端口组所对应的芯片上的端口配置删除。
步骤204,接口板根据所述绑定记录获知所述第一VD的标识对应的全局数据,并将该全局数据进行备份,根据当前备份的全局数据删除所述端口组对应的芯片上的全局数据,并将当前备份的全局数据删除。
上层平台不能识别端口组对应的芯片,不知道需删除哪个芯片上的全局数据,只能将整个VD的全局数据都删除,因此,本发明具体实施例中通过将上层平台中记录的全局数据进行备份,根据备份的数据在所述端口组中对应的芯片上的全局数据删除。具体实现时将端口组1所对应的芯片上的全局数据删除,而端口组2所对应的芯片上的全局数据不变。
步骤205,接口板对第一VD的所述端口组的各端口的调用进行统计。
步骤206,预设时间内,确定所述统计的结果是否不变,如果是,执行步骤207,否则,执行步骤205。
步骤205和步骤206通过对端口组1的各端口的调用进行统计,来确定端口组1所对应的芯片上的全局数据是否完全删除,其中预设时间根据具体情况设定,如10s。
步骤207,接口板获知为所述第二VD添加所述端口组的端口时,根据所述绑定记录获知所述第二VD的标识对应的全局数据,将该全局数据进行备份,根据当前备份的全局数据在所述端口组对应的芯片上下发全局数据,并将当前备份的全局数据删除。
同上删除实现类似,上层平台不知道端口组所在的芯片,将第二VD的全局数据备份,驱动通过备份的数据在所述端口组对应的芯片上下发全局数据。
本步骤中在具体实现时,可以将全局数据分段备份,可以备份一段数据,根据该备份的一段数据删除芯片上的数据,删除芯片上的数据结束时,即可以将备份的数据删除。
步骤208,接口板下发各所述端口组中各端口的端口配置,获知所述端口组中各端口插入,并更新对应的绑定记录。
本步骤中获知端口组中各端口插入时,记录的端口信息应该进行相应的更新,更新后第一VD和第二VD绑定记录的内容如下:
对于第一VD更新后绑定记录的内容为:第一VD标识、端口组2、端口组2中各端口的端口配置,以及第一VD的全局数据;
对于第二VD更新后绑定记录的内容为:第二VD标识、端口组1、端口组1中各端口的端口配置、端口组3、端口组3中各端口的端口配置、以及第二VD的全局数据。
本发明具体实施例中基于同样的发明构思,还提出一种接口板,可应用于包括多个接口板的交换机上,所述接口板包括多个芯片。参见图3,图3为本发明具体实施例中基于上述方法技术的接口板结构示意图。该接口板包括:创建单元301、配置单元302、获知单元303、备份单元304和处理单元305。
创建单元301,用于创建VD。
配置单元302,用于将所述各芯片的所有端口作为一个端口组,当创建单元301创建VD时,以端口组为单位为创建的各VD添加端口。
获知单元303,用于获知迁移任一端口组的端口;获知添加任一端口组的端口。
备份单元304,用于当获知单元303获知迁移所述创建VD中的第一VD的所述端口组的端口时,将所述第一VD对应的全局数据进行备份;当获知单元303获知为所述创建的VD中的第二VD添加所述端口组的端口时,将所述第二VD对应的全局数据进行备份。
处理单元305,用于当获知单元303获知迁移所述第一VD的所述端口组的端口,且备份单元304将所述第一VD对应的全局数据进行备份时,根据当前备份的全局数据删除所述端口组对应的芯片上的全局数据;当获知单元303获知为所述第二VD添加所述端口组的端口,且备份单元304将所述第二VD对应的全局数据进行备份时,根据当前备份的全局数据在所述端口组对应的芯片上下发全局数据。
较佳地,
配置单元302,进一步用于以端口组为单位为创建的各VD添加端口时,绑定记录所述VD标识、对应端口组标识和全局数据。
备份单元304,用于根据配置单元302的绑定记录获知所述第一VD的标识对应的全局数据,并将该全局数据进行备份;根据配置单元302的绑定记录获知所述第二VD的标识对应的全局数据,并将该全局数据进行备份。
较佳地,
处理单元305,进一步用于当获知单元303获知迁移所述第一VD的所述端口组的端口时,根据记录的所述端口组的各端口的端口配置删除所述端口组对应芯片上的端口配置,并获知所述端口组中各端口拔出;当执行所述根据备份的全局数据在所述端口组对应的芯片上下发全局数据操作之后,在所述端口组对应的芯片上下发各所述端口组中各端口的端口配置,获知所述端口组中各端口插入。
较佳地,
配置单元302,进一步用于绑定记录各端口组标识和该端口组中各端口的端口配置;当处理单元305获知所述端口组中各端口插入时,更新所述端口组对应的绑定记录。
较佳地,
备份单元304,进一步用于处理单元305根据当前备份的全局数据删除所述端口组对应的芯片上的全局数据时,将当前备份的全局数据删除;当处理单元305根据当前备份的全局数据在所述端口组对应的芯片上下发全局数据时,将当前备份的全局数据删除。
较佳地,
该接口板进一步包括:确定单元306。
确定单元306,用于在处理单元305根据当前备份的全局数据删除所述端口组对应的芯片上的全局数据之后,获知单元304获知为所述第二VD添加所述端口组的端口之前,对所述第一VD的所述端口组的各端口的调用进行统计,预设时间内,若所述统计的结果相同,则触发获知单元304执行所述获知为所述第二VD添加所述端口组的端口操作;否则继续统计,直到预设时间内统计结果不变,触发获知单元304执行所述获知为所述第二VD添加所述端口组的端口操作。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
综上所述,本发明具体实施例中通过将各芯片的所有端口作为一个端口组,以端口组为单位为各VD分配端口,任一端口组的端口迁移时,将该端口组的所有端口看做一个整体,备份迁移前所在VD的全局数据,将该端口组所对应的芯片上的全局数据删除,再备份迁移后的VD的全局数据,根据当前备份的全局数据在所述端口组对应的芯片上下发全局数据,能够在节省内存占用的情况下,实现端口虚拟设备端口的迁移。
并增加判断机制,保证所述端口组对应的芯片上的迁移前的VD的全局数据完全删除,再下发迁移后的VD的全局数据。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。