本发明实施例涉及计算机技术领域,特别涉及一种CDN管理系统、方法及装置。
背景技术:
CDN(Content Delivery Network,内容分发网络)是通过在网络各处设置CDN节点,使得用户能够就近接入CDN节点所提供的互联网服务的技术。该互联网服务可以是视频点播服务、文件下载服务等。
在现有技术中,CDN系统包括:位于中央的互联网数据中心(Internet Data Center,IDC)和设置在网络边缘的多个CDN节点。其中,IDC中存储有全量的内容数据,每个CDN节点中存储有部分被加速的内容数据,也即CDN节点中存储的内容数据是全量内容数据的子集,网络边缘通常是指距离用户仅为一跳距离的网络位置,方便用户对内容数据的就近访问。在具体实现时,CDN节点的数量较多,能达到几百个甚至上千个,但每个CDN节点的规模较小,比如每个CDN节点中包括几十台业务服务器。
对于CDN节点中的业务服务器,主要通过人工现场操作来实现管理,比如对业务服务器的开机、关机、重启、重装操作系统等常规管理操作均由人工现场操作。但由于CDN节点的数量较多,且不同的CDN节点的分布位置不同,比如一些CDN节点设置在北京、一些CDN节点设置在深圳,另外一些CDN节点设置在美国,仅靠人工现场操作对CDN节点进行管理的效率非常低。
技术实现要素:
为了解决现有技术中仅靠人工现场操作对CDN节点进行管理的效率非常低的问题,本发明实施例提供了一种CDN管理系统、方法及装置。所述技术方案如下:
第一方面,提供了一种内容分发网络CDN管理系统,所述系统包括中央控制器和N个CDN节点,N为正整数;每个所述CDN节点包括节点控制器、至少一个业务服务器和交换机;
所述中央控制器用于接收任务调用请求;根据所述任务调用请求生成管理任务;将所述管理任务发送给所述节点控制器;所述任务调用请求用于请求对所述CDN节点中的所述业务服务器进行远程管理;
所述节点控制器用于接收所述中央控制器发送的所述管理任务;执行所述管理任务。
第二方面,提供了一种内容分发网络CDN管理方法,所述方法包括:
接收任务调用请求,所述任务调用请求用于请求对CDN节点中的业务服务器进行远程管理,所述CDN节点包括节点控制器和至少一个业务服务器;
根据所述任务调用请求生成管理任务;
将所述管理任务发送给所述节点控制器,所述节点控制器用于执行所述管理任务。
第三方面,提供了一种内容分发网络CDN管理方法,用于CDN节点的节点控制器中,所述CDN节点包括所述节点控制器和至少一个业务服务器,所述方法包括:
接收中央控制器发送的管理任务,所述管理任务是所述中央控制器根据任务调用请求所生成的,所述任务调用请求用于请求对所述CDN节点中的所述业务服务器进行远程管理;
执行所述管理任务。
第四方面,提供了一种内容分发网络CDN管理装置,所述装置包括:
接收模块,用于接收任务调用请求,所述任务调用请求用于请求对CDN节点中的业务服务器进行远程管理,所述CDN节点包括节点控制器和至少一个业务服务器;
生成模块,用于根据所述接收模块接收的所述任务调用请求生成管理任务;
发送模块,用于将所述生成模块生成的所述管理任务发送给所述节点控制器,所述节点控制器用于执行所述管理任务。
第五方面,提供了一种内容分发网络CDN管理装置,用于CDN节点的节点控制器中,所述CDN节点包括所述节点控制器和至少一个业务服务器,所述装置包括:
接收模块,用于接收中央控制器发送的管理任务,所述管理任务是所述中央控制器根据任务调用请求所生成的,所述任务调用请求用于请求对所述CDN节点中的所述业务服务器进行远程管理;
执行模块,用于执行所述接收模块接收的所述管理任务。
本发明实施例提供的技术方案带来的有益效果是:
通过中央控制器接收对CDN节点中的业务服务器进行远程管理的任务调用请求,根据任务调用请求生成管理任务,将管理任务发送给节点控制器,节点控制器执行该管理任务。由于在对业务服务器进行管理操作时,是由中央控制器通过任务调用请求对业务服务器进行远程管理,而不需要人工现场操作,从而在CDN节点的数量多且分布位置比较分散时,提高对CDN节点的管理效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本发明一个示例性实施例提供的CDN管理系统的示意图;
图1B是本发明一个实施例中提供的业务服务器的架构示意图;
图2是本发明一个实施例中提供的CDN管理方法的方法流程图;
图3A是本发明另一个实施例中提供的CDN管理方法的方法流程图;
图3B是本发明再一个实施例中提供的CDN管理方法的方法流程图;
图3C是本发明再一个实施例中提供的CDN管理方法的方法流程图;
图3D是本发明一个实施例中提供的操作系统部署的原理图;
图3E是本发明一个实施例中提供的CDN管理方法的原理图;
图4是本发明一个实施例中提供的CDN管理装置的结构方框图;
图5是本发明另一个实施例中提供的CDN管理装置的结构方框图;
图6是本发明一个实施例中提供的服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1A是本发明一个示例性实施例提供的CDN管理系统的示意图,如图1A所示,该CDN管理系统100包括:中央控制器110和N个CDN节点120,N为正整数。
中央控制器110包括API(Application Programming Interface,应用程序编程接口)模块111和处理模块112。API模块111提供有用于远程管理的预设API接口。处理模块112具备对管理任务的管控调度能力。
可选地,CDN管理系统100还包括:运维客户端130,运维客户端130是由运维人员所使用的前台客户端。API模块111用于接收运维客户端130发送的任务调用请求,并将接收到的任务调用请求经解析后转发至处理模块112。
可选地,任务调用请求可以由运维人员通过运维客户端130向API模块111发送,也可以通过中央控制器110自行执行脚本文件来生成任务调用请求。
可选地,CDN管理系统100还包括:IDC 140,IDC 140中存储有全量的业务数据,比如,在线视频数据。CDN节点120中存储的是IDC 140中存储的业务数据的子集,比如,热点视频数据。可选地,CDN管理系统100中包括至少一个IDC 140。中央控制器110可以设置在任意的IDC 140上,也可以设置在其他设备上,还可以设置为一个单独的设备,本实施例不对中央控制器110的部署位置进行限定。
可选地,中央控制器110的数量允许超过1个,各个中央控制器110可以设置在不同的位置。
可选地,CDN管理系统100还包括:负载均衡设备160。负载均衡设备160用于将任务调用请求分摊给各个中央控制器110。比如,负载均衡设备160在转发任务调用请求时,若检测到一个中央控制器110正在处理任务调用请求,则将需要转发的任务调用请求转发给其他处于空闲状态的中央控制器110。
每个CDN节点120包括:节点控制器121、至少一个业务服务器122和交换机123。节点控制器121以及各个业务服务器122连接至交换机123,节点控制器121通过交换机123与中央控制器110逻辑相连。可选地,节点控制器121是运行在其中一个业务服务器122上的后台程序。节点控制器121用于管理所属CDN节点120中的各个业务服务器122。比如,一个CDN节点120中包括50台业务服务器122,其中一台业务服务器122上安装有节点控制器121,则安装有节点控制器121的业务服务器122能够管理其余49台业务服务器122。
可选地,安装有节点控制器121的业务服务器122除了具备管理业务服务器122的能力,也具备执行业务的能力。
可选地,为了保证CDN管理系统100的稳定性,每个CDN节点120中允许设置主用、备用两个节点控制器121,当主用节点控制器121正常工作时,备用节点控制器121不需要工作;当主用节点控制器121不能正常工作时,主备交换,由原来的备用节点控制器121提供服务。
可选地,中央控制器110和节点控制器121使用的是不同运营商的网络,当中央控制器110向节点控制器121传输文件时,由于存在跨运营商网络通信的问题,文件的传输速度可能较慢。因此,CDN管理系统100中还包括:CDN加速服务器150。CDN加速服务器150用于为中央控制器110和节点控制器121之间跨运营商网络的文件传输提供CDN加速服务。
通常,为了避免业务网络上的业务过多造成业务网络拥堵的问题,CDN管理系统100通过带外网络执行对业务服务器122的开机、关机、重启、进入PXE(preboot execute environment,预启动执行环境)、PING(Packet Internet Groper,因特网包探索器)探测、SSH(Secure Shell,安全外壳协议)探测的管理任务,CDN管理系统100通过业务网络执行对业务服务器122的操作系统安装、密码修改、操作系统定制化的管理任务。带外网络是独立于业务网络的专用网络通道,与带外网络对应的,业务网络还可以被称为带内网络。CDN管理系统100通过带外网络对业务服务器122的开机、关机、重启和进入PXE的管理任务进行传输,可以不影响带内网络上的业务。
结合参考图1B,其示出了业务服务器122的架构示意图。如图1B所示,业务服务器122的架构组成包括:BMC(Baseboard Management Controller,基板管理控制器)122a、NIC(Network Interface Card,网络适配器)122b、总线控制器122c、处理器122d、存储器122e。
BMC 122a是一个单片机,能够为业务服务器122提供带外管理功能。BMC122a具有独立网口122f,用于连接带外网络。NIC 122b具有共享网口122g,用于连接业务网络。由于带外网络和业务网络相互独立,使用不同的网口,搭建带外网络需要带外交换机,从而增加了交换机123的数量,使得成本和网络复杂度增加。为了降低成本和网络复杂度,业务服务器122可以开启边频带模式,使得BMC 122a能够使用NIC 122b的共享网口122g,也就使得带外网络和业务网络共享一个网口,实现带外网络和业务网络的物理上的复用。
业务服务器122开启边频带模式需要由人工对业务服务器122和交换机123进行预设置,预设置的具体操作包括:
1、对业务服务器122的预设置:
(1)技术人员通过BIOS(Basic Input Output System,基本输入输出系统)或在BMC的web管理界面中将IPMI(Intelligent Platform Management Interface,智能平台管理接口)访问方式修改为share(共享模式)。IPMI的访问方式设置成share后,BMC 122a和NIC 122b共享使用共享网口122g。
(2)技术人员为共享网口122g单独分配一个VLAN(Virtual Local Area Network,虚拟局域网)标签和IP地址,以便于从共享网口122g发送的数据能够从业务网络中分离出来。
(3)技术人员为BMC 122a配置一个VLAN100的标签。BMC 122a在配置VLAN100的标签后,业务服务器122能够发送携带有VLAN100标签的数据,VLAN100标签用于指示该数据通过带外网络传输。
对于需要通过业务网络传输的操作系统部署的管理任务,技术人员配置一个VLAN10的标签,用于区分在业务网络上传输的其他任务。
2、对与业务服务器122连接的交换机123的预设置:
(1)交换机123开启802.1q(虚拟局域网)协议,配置与共享网口122g相同的VLAN标签。
(2)交换机123配置带外(标签为VLAN100)和操作系统部署(标签为VLAN10)的DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)relay(中继代理),该DHCP relay被配置为指向业务服务器122所在的CDN节点120的节点控制器121,用于将业务服务器122发送的DHCP请求转发给节点控制器121。
(3)交换机123端口配置成trunk模式,交换机123在trunk模式下,允许通过多个VLAN的数据,并允许VLAN10和VLAN100之间的通信。
在图1A所示的CDN管理系统100搭建完成的情况下,CDN管理系统100可以通过中央控制器110和节点控制器121根据运维客户端130发送的任务调用请求对CDN节点120中的业务服务器122进行远程管理,具体实现请参见图2所述的步骤。
图2是本发明一个实施例中提供的CDN管理方法的方法流程图,该CDN管理方法以应用在图1A所示的CDN管理系统100中举例说明。如图2所示,该CDN管理方法包括:
步骤201,中央控制器接收任务调用请求。
任务调用请求用于请求对CDN节点中的业务服务器进行远程管理,CDN节点包括节点控制器和至少一个业务服务器。远程管理是指从远端控制CDN节点中的业务服务器进行开机、关机、重启和操作系统部署等操作。
可选地,任务调用请求可以由运维人员通过运维客户端发送的,也可以通过中央控制器自行执行脚本文件来生成任务调用请求。
可选地,任务调用请求中至少包括CDN节点的标识、业务服务器的标识。CDN节点的标识用于确定出中央控制器需要控制的节点控制器在那个CDN节点中。业务服务器的标识用于指示需要被远程管理的业务服务器,比如:业务服务器的标识包括业务服务器的序列号。
步骤202,中央控制器根据任务调用请求生成管理任务。
中央控制器根据任务调用请求查找对应的节点控制器、任务指令和业务服务器的管理IP地址。可选地,中央控制器还查找管理任务的类型、默认的用户名和密码等参数。然后,中央控制器将任务指令、业务服务器的管理IP地址、管理任务的类型、默认的用户名和密码等打包成管理任务。
步骤203,中央控制器将管理任务发送给节点控制器。
根据中央控制器查找到的与任务调用请求对应的节点控制器,中央控制器将打包好的管理任务发送给对应的节点控制器。
步骤204,节点控制器接收中央控制器发送的管理任务。
节点控制器接收到中央控制器发送的管理任务后,对管理任务进行解析,获取到管理任务中的任务指令和与管理任务相关的参数,比如业务服务器的管理IP地址。
步骤205,节点控制器执行管理任务。
节点控制器根据解析到的任务指令和与管理任务相关的参数执行管理任务。
可选地,在执行某些管理任务时,节点控制器需要向对应的业务服务器传输镜像文件或脚本文件,然后向该业务服务器发送执行指令控制业务服务器执行传输的镜像文件或脚本文件,比如:节点控制器执行的管理任务为操作系统安装任务。
综上所述,本发明实施例提供的CDN管理方法,通过中央控制器接收对CDN节点中的业务服务器进行远程管理的任务调用请求,根据任务调用请求生成管理任务,将管理任务发送给节点控制器,节点控制器执行该管理任务。由于在对业务服务器进行管理操作时,是由中央控制器通过任务调用请求对业务服务器进行远程管理,而不需要人工现场操作,从而在CDN节点的数量多且分布位置比较分散时,提高对CDN节点的管理效率。
为了便于中央控制器的统一管理,节点控制器为业务服务器分配带外管理IP地址和部署管理IP地址,并将分配的带外管理IP地址和部署管理IP地址上报给中央控制器进行存储和管理,具体请参见如图3A所示的步骤。
图3A是本发明另一个实施例中提供的CDN管理方法的方法流程图,该CDN管理方法以应用在图1A所示的CDN管理系统100中举例说明。如图3A所示,该CDN管理方法包括:
步骤301,业务服务器向节点控制器发送DHCP请求。
由于与业务服务器连接的交换机预先配置了带外和操作系统部署的DHCP relay,该DHCP relay被配置为指向业务服务器所在的CDN节点的节点控制器,用于将业务服务器发送的DHCP请求转发给该节点控制器。
业务服务器在通电后,会自动发送DHCP请求,该DHCP请求通过交换机的DHCP relay机制后,被转发给业务服务器所在CDN节点中的节点控制器。
可选地,业务服务器发送的DHCP请求中包含该业务服务器的标识,比如:业务服务器的序列号。
步骤302,节点控制器接收业务服务器发送的DHCP请求。
可选地,DHCP请求中包含业务服务器的标识,比如:业务服务器的序列号。
步骤303,节点控制器根据DHCP请求向业务服务器分配管理IP地址。
管理IP地址与业务服务器提供业务时的IP地址不同。
可选地,节点控制器作为DHCP服务器可以分配带外管理IP地址,也可以分配部署管理IP地址。
可选地,步骤303可以包括以下步骤:
S1,节点控制器从第一虚拟局域网对应的第一IP网段中,向业务服务器分配带外管理IP地址。
第一IP网段即带外专用的IP网段,比如192.168.0.0/24。分配的带外管理IP地址可以为192.168.0.5/24。
带外管理IP地址是用于执行第一类任务指令时的IP地址,第一类任务指令包括:开机指令、关机指令、重启指令、进入PXE指令、PING探测指令和SSH探测指令中的至少一种。
S2,节点控制器从第二虚拟局域网对应的第二IP网段中,向业务服务器分配部署管理IP地址。
第二IP网段即部署专用的IP网段,比如192.168.1.0/24。分配的部署管理IP地址可以为192.168.1.4/24。
部署管理IP地址是用于执行第二类任务指令时的IP地址,第二类任务指令包括:操作系统的安装指令、操作系统的密码修改指令和操作系统的定制化指令中的至少一种。
步骤304,节点控制器向中央控制器发送业务服务器的管理IP地址。
可选地,当管理IP地址为带外管理IP地址时,节点控制器向中央控制器发送带外管理IP地址,以业务服务器的标识+业务服务器的带外管理IP地址的格式发送,或者以CDN节点的标识+业务服务器的标识+业务服务器的带外管理IP地址的格式发送,又或者以节点控制器的标识+业务服务器的标识+业务服务器的带外管理IP地址的格式发送。
可选地,当管理IP地址为部署管理IP地址时,由于节点控制器在操作系统部署过程中会主动上报业务服务器的信息,因此节点控制器向中央控制器发送部署管理IP地址,可以不携带业务服务器的标识。发送的格式可以为:CDN节点的标识+业务服务器的部署管理IP地址,还可以为:节点控制器的标识+业务服务器的部署管理IP地址。
步骤305,中央控制器接收节点控制器上报的业务服务器的管理IP地址。
中央控制器在接收到节点控制器上报的业务服务器的管理IP地址后,将业务服务器的管理IP地址进行存储。
可选地,当节点控制器上报的管理IP地址为带外管理IP地址时,中央控制器需要存储带外管理IP地址和业务服务器的标识的对应关系;当节点控制器上报的管理IP地址为部署管理IP地址时,中央控制器可以存储业务服务器的部署管理IP地址,不一定要存储业务服务器的标识。
在实际应用中,为了使中央控制器中存储的管理IP地址及时更新,节点控制器会定期将业务服务器的管理IP地址上报给中央控制器进行存储管理,比如一天上报一次。
需要说明的是,步骤304和步骤305中的中央控制器是指中央控制器的处理模块。
由于任务调用请求所请求执行的管理任务包括第一管理任务和第二管理任务,第一管理任务包含第一类任务指令和带外管理IP地址,第二管理任务包含第二类任务指令和部署管理IP地址。当管理任务为第一管理任务时请参见图3B所示的步骤,当管理任务为第二管理任务时,请参见图3C所示的步骤。
图3B是本发明再一个实施例中提供的CDN管理方法的方法流程图,该CDN管理方法以应用在图1A所示的CDN管理系统100中举例说明。如图3B所示,该CDN管理方法包括:
步骤306,API模块接收运维客户端发送的任务调用请求。
中央控制器包括API模块和处理模块,API模块提供有用于远程管理的预设API接口。
可选地,任务调用请求可以由运维人员通过运维客户端向API模块发送,也可以通过中央控制器自行执行脚本文件来生成任务调用请求。
步骤307,API模块检测运维客户端的IP地址是否属于白名单IP地址。
白名单IP地址是预先存储的对该中央控制器具备操作权限的运维客户端的IP地址。为了检测运维客户端是否具备对中央控制器的操作权限,需要检测运维客户端的IP地址是否属于白名单IP地址,从而确定出中央控制器是否需要响应该运维客户端发送的任务调用请求。
步骤308,若API模块检测到运维客户端的IP地址属于白名单IP地址,则API模块确定任务调用请求为有效的任务调用请求。
当运维客户端的IP地址属于白名单IP地址时,表明该运维客户端具备对中央控制器的操作权限,从而确定该运维客户端发送的任务调用请求为有效的任务调用请求。
作为步骤307的另一个分支,当API模块检测到运维客户端的IP地址不属于白名单IP地址,则API模块确定任务调用请求为无效的任务调用请求,中央控制器不对该任务调用请求进行响应。
步骤309,API模块将任务调用请求发送给处理模块。
API模块将有效的任务调用请求经过解析后发送给中央控制器的处理模块,若任务调用请求为无效的任务调用请求,则API模块不对该任务调用请求进行转发。
步骤310,处理模块查询与任务调用请求对应的任务指令和业务服务器的管理IP地址。
处理模块中预先存储与各种任务调用请求对应的任务指令,比如开机对应开机指令,关机对应关机指令,重启对应重启指令,操作系统部署对应操作系统的安装指令、密码修改指令、定制化指令等。
由于中央控制器的处理模块预先存储了业务服务器的标识和对应的管理IP地址,以及对应的节点控制器或对应的CDN节点的标识,根据API模块解析出的业务服务器的标识,能够查找到对应的业务服务器的管理IP地址以及CDN节点或节点控制器的标识。
步骤311,处理模块生成携带有第一类任务指令和带外管理IP地址的第一管理任务。
第一类任务指令包括:开机指令、关机指令、重启指令、进入PXE指令、PING探测指令、SSH探测指令中的至少一种。PING探测用于测试网络是否连接,SSH探测用于测试能否登录业务服务器。
可选地,处理模块在生成第一管理任务时,生成与第一管理任务对应的任务状态。
步骤312,处理模块将第一管理任务发送给节点控制器。
步骤313,节点控制器接收处理模块发送的第一管理任务。
步骤314,节点控制器从第一管理任务中解析得到第一类任务指令和带外管理IP地址。
步骤315,节点控制器根据第一类任务指令和带外管理IP地址执行第一管理任务。
步骤316,节点控制器直接读取第一管理任务的执行结果。
节点控制器通过运行脚本或工具执行第一管理任务,在执行完之后,可以直接读脚本或工具的执行结果。执行结果包括第一管理任务是否成功执行,以及成功执行后的输出内容,输出内容比如开机后的显示内容。
步骤317,节点控制器向处理模块发送第一管理任务的执行结果。
步骤318,处理模块接收节点控制器上报的第一管理任务的执行结果。
步骤319,处理模块根据第一管理任务的执行结果,记录第一管理任务的任务状态。
可选地,与步骤311对应的,若处理模块中存储有第一管理任务原本的任务状态,则处理模块记录第一管理任务的任务状态时,将原本的任务状态修改替换为已成功执行。比如:中央控制器中存储的序列号为00112233的业务服务器的原本的关机任务的任务状态为未执行,然后通过节点控制器执行第一管理任务后,将序列号为00112233的业务服务器关机,节点控制器将第一管理任务的执行结果上报给中央控制器的处理模块,中央控制器的处理模块将序列号为00112233的业务服务器的任务状态修改为已成功关机。
在中央控制器的API模块接收到第一管理任务的任务调用请求后,节点控制器负责第一管理任务的执行,中央控制器的处理模块负责对第一管理任务执行的任务状态进行记录。节点控制器在执行完第一管理任务后将执行结果反馈给中央控制器的处理模块,由中央控制器的处理模块存储记录。
由于第一管理任务的执行流程中通常包含一个步骤,因此中央控制器的处理模块只需要记录下第一管理任务的任务状态即可。
图3C是本发明再一个实施例中提供的CDN管理方法的方法流程图,该CDN管理方法以应用在图1A所示的CDN管理系统100中举例说明。如图3C所示,该CDN管理方法包括:
步骤320,API模块接收运维客户端发送的任务调用请求。
步骤321,API模块检测运维客户端的IP地址是否属于白名单IP地址。
步骤322,若API模块检测到运维客户端的IP地址属于白名单IP地址,则API模块确定任务调用请求为有效的任务调用请求。
步骤323,API模块将任务调用请求发送给处理模块。
步骤324,处理模块查询与任务调用请求对应的任务指令和业务服务器的管理IP地址。
步骤320至步骤324与步骤306至步骤310类似,这里就不再赘述。
步骤325,处理模块生成携带有第二类任务指令和部署管理IP地址的第二管理任务。
第二类任务指令包括:操作系统的安装指令、操作系统的密码修改指令和操作系统的定制化指令中的至少一种。
可选地,处理模块在生成第二管理任务时,生成与第二管理任务对应的任务状态。
步骤326,处理模块将第二管理任务发送给节点控制器。
步骤327,节点控制器接收处理模块发送的第二管理任务。
步骤328,节点控制器从第二管理任务中解析得到第二类任务指令和部署管理IP地址。
步骤329,节点控制器根据第二类任务指令和部署管理IP地址执行第二管理任务。
节点控制器在执行第二管理任务的过程中,若需要控制与部署管理IP地址对应的业务服务器运行对应的脚本文件,则节点控制器将脚本文件传输给业务服务器,并向业务服务器发送脚本文件的执行指令,控制对应的业务服务器运行该脚本文件。
步骤330,在第二类任务指令是操作系统的安装指令时,节点控制器根据部署管理IP地址向业务服务器发送预存的镜像文件和安装指令。
可选地,镜像文件至少包括PXE的镜像文件、迷你操作系统(minios)的镜像文件和业务系统的镜像文件中的至少一种。
在节点控制器中会预先存储有镜像文件,若节点控制器在执行第二管理任务的过程中,需要与第二管理任务中的部署管理IP地址对应的业务服务器安装镜像文件,则会将预先存储的镜像文件发送给对应的业务服务器,并向业务服务器发送该镜像文件的安装指令,控制业务服务器安装该镜像文件。
比如,当节点控制器在执行第二管理任务的过程中,需要对应的业务服务器安装PXE,则节点控制器将PXE的镜像文件传输给对应的业务服务器,并发送PXE的镜像文件的安装指令,控制对应的业务服务器安装PXE的镜像文件;当节点控制器在执行第二管理任务的过程中,需要对应的业务服务器安装minios,则节点控制器将minios的镜像文件传输给对应的业务服务器,并发送minios的镜像文件的安装指令,控制对应的业务服务器安装minios的镜像文件;当节点控制器在执行第二管理任务的过程中,需要对应的业务服务器安装业务系统的镜像文件,则节点控制器将业务系统的镜像文件传输给对应的业务服务器,并发送业务系统的镜像文件的安装指令,控制对应的业务服务器安装业务系统的镜像文件。
步骤331,业务服务器根据安装指令将镜像文件安装为操作系统。
业务服务器将镜像文件安装为操作系统,包括将PXE的镜像文件安装为PXE,将minios的镜像文件安装为minios,将业务系统的镜像文件安装为业务系统。
步骤332,在第二类任务指令是操作系统的密码修改指令时,节点控制器根据部署管理IP地址向业务服务器发送预存的第一脚本文件和密码修改指令。
第一脚本文件是用于密码修改的脚本文件。
可选地,第一脚本文件中包含指令的用户名密码。
由于在业务服务器进入PXE时使用的是中央控制器发送的默认的用户名和密码,为了操作系统的安全性,需要对默认的用户名和密码进行修改。
步骤333,业务服务器根据密码修改指令运行第一脚本文件。
业务服务器通过运行第一脚本文件将默认的用户名和密码修改为指定的用户名和密码。
步骤334,在第二类任务指令是操作系统的定制化指令时,节点控制器根据部署管理IP地址向业务服务器发送预存的第二脚本文件和定制化指令。
第二脚本文件是用于定制化操作系统的脚本文件。
可选地,对操作系统的定制化包括安装某些预定的应用程序。
可选地,第二脚本文件包括预定的应用程序的安装包。
步骤335,业务服务器根据定制化指令运行第二脚本文件。
可选地,业务服务器通过运行第二脚本文件安装预定的应用程序。
步骤336,业务服务器向节点控制器发送第二类任务指令的执行结果。
对于第二类任务指令,业务服务器在执行完第二类任务指令后,将第二类任务指令的执行结果返回给节点控制器。
业务服务器对第二类任务指令的执行结果通常只包括一个步骤的执行结果。比如:在步骤331中,业务服务器安装完操作系统后,向节点控制器返回操作系统已成功安装的结果;又比如,在步骤333中,业务服务器在运行完第一脚本文件后,向节点控制器返回第一脚本文件已运行成功的结果;再比如,在步骤335中,业务服务器在运行完第二脚本文件后,向节点控制器返回第二脚本文件已运行成功的结果。
步骤337,节点控制器根据第二类任务指令的执行结果向处理模块发送第二管理任务的执行结果。
与步骤336对应的,节点控制器向中央控制器的处理模块发送的第二管理任务的执行结果也只包括一个步骤的执行结果。比如:当第二管理任务包括操作系统的安装指令时,第二管理任务的执行结果中包括操作系统以成功安装的结果;又比如,当第二管理任务包括操作系统的密码修改指令时,第二管理任务的执行结果中包括操作系统的密码已成功修改的结果;再比如,当第二管理任务中包括操作系统的定制化指令时,第二管理任务的执行结果包括操作系统已成功定制化的结果。
步骤338,处理模块接收节点控制器上报的第二管理任务的执行结果。
步骤339,处理模块根据第二管理任务的执行结果,检测操作系统是否部署完毕。
由于操作系统的部署通常包括多个流程,节点控制器在每执行完一个第二管理任务后,都会将第二管理任务的执行结果上报给中央控制器的处理模块,由中央控制器的处理模块确定是否需要执行下一个第二管理任务。
在实际应用中,当第二管理任务的执行结果为操作系统已安装完毕或操作系统的密码已成功修改时,表明操作系统尚未部署完毕;当第二管理任务的执行结果为操作系统已成功定制化时,表明操作系统部署完毕。
步骤340,若操作系统未部署完毕,则处理模块根据第二管理任务的结果,生成下一个第二管理任务。
作为步骤339的另一个分支,若中央控制器的处理模块检测到操作系统已部署完毕,则不再向节点控制器发送下一个第二管理任务。
可选地,与步骤325对应的,若处理模块中原本存储有第二管理任务的任务状态时,处理模块需要对原本的任务状态进行更新。
在一种可能的实现中,当步骤339中第二管理任务的执行结果为操作系统已安装完毕时,中央控制器的处理模块生成携带有操作系统的密码修改指令和带外管理IP地址的下一个第二管理任务;当步骤339中的第二管理任务的执行结果为操作系统的密码已成功修改时,中央控制器的处理模块生成携带有操作系统的定制化指令和带外管理IP地址的下一个第二管理任务;当步骤339中的第二管理任务的执行结果为操作系统已成功定制化时,中央控制器的处理模块不再生成下一个第二管理任务。
在另一种可能的实现中,当步骤339中第二管理任务的执行结果为操作系统已安装完毕时,中央控制器的处理模块生成携带有操作系统的定制化指令和带外管理IP地址的下一个第二管理任务;当步骤339中的第二管理任务的执行结果为操作系统已成功定制化时,中央控制器的处理模块生成携带有操作系统的密码修改指令和带外管理IP地址的下一个第二管理任务;当步骤339中的第二管理任务的执行结果为操作系统的密码已成功修改时,中央控制器的处理模块不再生成下一个第二管理任务。
在另一种可能的实现中,当步骤339中第二管理任务的执行结果为操作系统已安装完毕时,中央控制器的处理模块生成携带有操作系统的密码修改指令和带外管理IP地址的下一个第二管理任务;当步骤339中的第二管理任务的执行结果为操作系统的密码已成功修改时,中央控制器的处理模块不再生成下一个第二管理任务。
本实施例对于步骤330、步骤332、步骤334的执行次数以及执行的先后顺序不进行限定。
步骤341,处理模块向节点控制器发送下一个第二管理任务。
步骤342,节点控制器接收处理模块发送的下一个第二管理任务。
对于下一个第二管理任务的执行请参照步骤328至步骤335。
需要说明的是,在步骤331、步骤333、步骤335之后,都需要执行步骤336至步骤339。也就是说,在操作系统部署任务中,每执行完一个第二管理任务,都需要向中央控制器的处理模块反馈执行结果,由中央控制器的处理模块判断是否需要执行下一个第二管理任务,直到操作系统部署完毕。
结合图3B和图3C中提供的CDN管理方法,对于操作系统的部署,主要包括以下步骤:
1、通过第一任务指令对业务服务器关机。
2、通过第一任务指令让业务服务器进入PXE。
3、等待业务服务器进入PXE。
4、通过第二任务指令进行RAID采集和修改。
5、通过第二任务指令安装minios。
6、通过第二任务指令在minios基础上进行操作系统安装,包括配置修改等。
7、操作系统安装完成后通过第一任务指令进行Ping探测,通过第一任务指令进行SSH探测,通过第二任务指令进行密码修改。
8、通过第二任务指令执行后置脚本,完成定制化配置,包括安装应用程序等。
操作系统在部署过程中,节点控制器会将业务服务器的状态和系统信息定期上报给中央控制器。业务服务器的状态包括进入PXE状态、安装minios状态、安装业务系统状态等;系统信息包括业务服务器的网卡、内存等数据。
示例性的,图3D示出了操作系统部署的原理图。如图3D所示,首先执行S301,带外关机;然后执行S302,带外进PXE;然后执行S303,等待进入PXE;接着执行S304,判断是否进入PXE;若S304的判断结果为是,则执行S305,RAID检查;然后执行S307,判断RAID是否一致;若S307的判断结果为否,则执行S308,RAID修改;然后执行S309,minios安装;若S307的判断结果为是,则直接执行S309;在S309之后,执行S310,等待进入minios;然后执行S311,判断是否进入minios;若S311的判断结果为是,则执行S312,OS安装;然后执行S314,等待系统启动;接着执行S315,PING检查;然后执行S316,SSH检查;然后执行S317,密码修改;然后执行S318,后置任务,后置任务执行完之后,操作系统部署成功。若S304的执行结果为否,执行S306,判断是否超时;若S306判断结果为是,则操作系统部署失败;若S306判断结果为否,跳到S303执行;若S311的判断结果为否,则执行S313,判断是否超时;若S313的判断结果为是,则操作系统部署失败;若S313的判断结果为否,跳到S310执行。
对于图3B和图3C中的CDN管理方法,在图3E所述的CDN管理方法的原理图中进行示例性的说明。如图3E所示,中央控制器110的API模块111执行S319,参数校验,IP白名单检测;S319检测为IP白名单,则执行S320,任务转发;然后中央控制器110的处理模块112执行S321,节点控制器的选取、命令匹配以及关键参数打包;然后处理模块112执行S323,任务调度,节点控制器121接收处理模块112的任务调度,执行S324,IPMI/SSH;业务服务器122执行S325,输出结果返回;节点控制器121执行S326,结果上报给处理模块112;处理模块112执行S322,任务状态记录;然后处理模块112执行S327,判断是否是部署类任务;若S327的判断结果为否,则执行S328,更新任务状态;若S327的判断结果为是,则执行S329,判断是否部署完毕;若S329的判断结构为是,则执行S328,更新任务状态;若S329的判断结果为否,则继续执行S330,任务调度。S330之后的流程与S323之后的流程相同。
综上所述,本发明实施例提供的CDN管理方法,通过中央控制器接收对CDN节点中的业务服务器进行远程管理的任务调用请求,根据任务调用请求生成管理任务,将管理任务发送给节点控制器,节点控制器执行该管理任务。由于在对业务服务器进行管理操作时,是由中央控制器通过任务调用请求对业务服务器进行远程管理,而不需要人工现场操作,从而在CDN节点的数量多且分布位置比较分散时,提高对CDN节点的管理效率。
另外,通过节点控制器为业务服务器分配管理IP地址,并将业务服务器的管理IP地址发送给中央控制器进行存储,使得中央控制器在接收到任务调用请求时,将管理任务发送给对应的节点控制器,节点控制器在执行管理任务时能够向对应的业务服务器发送脚本文件和执行脚本文件的执行指令,控制业务服务器根据执行指令执行脚本文件。
另外,通过将不同的任务指令生成不同的管理任务,对于带外管理任务通过带外网络传输,对于部署管理任务,通过业务网络传输,不会造成业务网络的拥堵。
另外,针对第二管理任务,通过在第二管理任务执行完毕后,节点控制器将执行结果上报给中央控制器,由中央控制器检测是否需要发送下一个第二管理任务,使得中央控制器对CDN节点的业务服务器实现全自动化的操作系统部署。
通过检测发送任务调用请求的运维客户端的IP地址是否为白名单IP地址,使得CDN管理系统能够安全有效的进行远程管理。
需要补充说明的是,由于安装操作系统需要镜像文件或脚本文件,节点控制器在执行操作系统部署任务时需要向目标业务服务器传输镜像文件或脚本文件,因此节点控制器中需要保存镜像文件或脚本文件。由于CDN节点较多,导致CDN管理系统对于节点控制器中的镜像文件和脚本文件的维护效率较低,因此CDN管理系统对节点控制器采用定期同步机制,具体请参见以下步骤中的描述:
s1,节点控制器每隔预定时间间隔向中央控制器请求检测镜像文件、第一脚本文件和第二脚本文件是否更新。
其中,镜像文件是用于安装操作系统的镜像文件,第一脚本文件是用于进行密码修改的镜像文件,第二脚本文件是用于定制化操作系统的镜像文件。
s2,当镜像文件、第一脚本文件和第二脚本文件中的至少一种更新时,节点控制器向中央控制器请求获取更新的镜像文件、第一脚本文件和第二脚本文件中的至少一种。
s3,中央控制器在接收到节点控制器获取更新的镜像文件、第一脚本文件和第二脚本文件中的至少一种的请求时,通过CDN加速服务器向节点控制器发送镜像文件、第一脚本文件和第二脚本文件中的至少一种。
由于镜像文件和脚本文件的数据包较大,并且中央控制器和节点控制器有可能使用的是不同的运营商网络,当中央控制器向节点控制器传输镜像文件和脚本文件是需要跨运营商网络时,传输速度通常较慢,为了加快镜像文件和脚本文件的传输,中央控制器通过CDN加速服务器向节点控制器发送镜像文件和脚本文件。
图4是本发明一个实施例中提供的CDN管理装置的结构方框图,该CDN管理装置以应用在图1A所示的CDN管理系统100中举例说明。如图4所示,该CDN管理装置包括:接收模块410、生成模块420和发送模块430。
接收模块410,用于实现上述步骤201、步骤305、步骤309、步骤318、步骤323、步骤338以及其他任意隐含或公开的与接收相关的功能。
生成模块420,用于实现上述步骤202、步骤340以及其他任意隐含或公开的与生成相关的功能。
发送模块430,用于实现上述步骤203、步骤312、步骤326、步骤341、步骤s3以及其他任意隐含或公开的与发送相关的功能。
可选地,生成模块420,包括:查询单元和生成单元。
查询单元,用于实现上述步骤310、步骤324以及其他任意隐含或公开的与查询相关的功能。
生成单元,用于实现上述步骤311、步骤325以及其他任意隐含或公开的与生成相关的功能。
可选地,该CDN管理装置还包括:记录模块和检测模块。
记录模块,用于实现上述步骤319以及其他任意隐含或公开的与记录相关的功能。
检测模块,用于实现上述步骤339以及其他任意隐含或公开的与检测相关的功能。
可选地,接收模块410,包括:接收单元、检测单元和确定单元。
接收单元,用于实现上述步骤306、步骤320以及其他任意隐含或公开的与接收相关的功能。
检测单元,用于实现上述步骤307、步骤321以及其他任意隐含或公开的与检测相关的功能。
确定单元,用于实现上述步骤308、步骤322以及其他任意隐含或公开的与确定相关的功能。
综上所述,本发明实施例提供的CDN管理装置,通过中央控制器接收对CDN节点中的业务服务器进行远程管理的任务调用请求,根据任务调用请求生成管理任务,将管理任务发送给节点控制器,节点控制器根据管理任务控制目标业务服务器执行该管理任务。由于在对业务服务器进行管理操作时是通过任务调用请求对业务服务器进行远程管理,而不需要人工现场操作,使得对数量多、分布位置不同的CDN节点进行管理的效率提高。
需要说明的是:上述实施例中提供的CDN管理装置在管理CDN时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将中央控制器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的CDN管理装置与CDN管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是本发明另一个实施例中提供的CDN管理装置的结构方框图,该CDN管理装置以应用在图1A所示的CDN管理系统100中举例说明。如图5所示,该CDN管理装置包括:接收模块510和执行模块520。
接收模块510,用于实现上述步骤204、步骤301、步骤302、步骤313、步骤327、步骤336、步骤342以及其他任意隐含或公开的与接收相关的功能。
执行模块520,用于实现上述步骤205以及其他任意隐含或公开的与执行相关的功能。
可选地,该CDN管理装置还包括:分配模块、发送模块、检测模块、获取模块和读取模块。
分配模块,用于实现上述步骤303以及其他任意隐含或公开的与分配相关的功能。
发送模块,用于实现上述步骤304、步骤317、步骤337以及其他任意隐含或公开的与发送相关的功能。
检测模块,用于实现上述步骤s1以及其他任意隐含或公开的与检测相关的功能。
获取模块,用于实现上述步骤s2以及其他任意隐含或公开的与获取相关的功能。
读取模块,用于实现上述步骤316以及其他任意隐含或公开的与读取相关的功能。
可选地,分配模块,包括:第一分配单元和第二分配单元。
第一分配单元,用于实现上述步骤S1以及其他任意隐含或公开的与分配相关的功能。
第二分配单元,用于实现上述步骤S2以及其他任意隐含或公开的与分配相关的功能。
可选地,控制模块,包括:解析单元和执行单元。
解析单元,用于实现上述步骤314、步骤328以及其他任意隐含或公开的与解析相关的功能。
执行单元,用于实现上述步骤315、步骤329、步骤330、步骤331、步骤332、步骤333、步骤334、步骤335以及其他任意隐含或公开的与执行相关的功能。
综上所述,本发明实施例提供的CDN管理装置,通过中央控制器接收对CDN节点中的业务服务器进行远程管理的任务调用请求,根据任务调用请求生成管理任务,将管理任务发送给节点控制器,节点控制器根据管理任务控制目标业务服务器执行该管理任务。由于在对业务服务器进行管理操作时是通过任务调用请求对业务服务器进行远程管理,而不需要人工现场操作,使得对数量多、分布位置不同的CDN节点进行管理的效率提高。
需要说明的是:上述实施例中提供的CDN管理装置在管理CDN时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将节点控制器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的CDN管理装置与CDN管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例还提供了一种CDN管理系统,该CDN管理系统包括中央控制器和N个CDN节点,N为正整数;每个CDN节点包括节点控制器、至少一个业务服务器和交换机。
中央控制器包括如图4所示的CDN管理装置,节点控制器包括如图5所示的CDN管理装置。
图6是本发明一个实施例中提供的服务器的结构示意图。该服务器可以是图1A所示的业务服务器122,也可以是CDN加速服务器150。具体来讲:服务器600包括中央处理单元(CPU)601、包括随机存取存储器(RAM)602和只读存储器(ROM)603的系统存储器604,以及连接系统存储器604和中央处理单元601的系统总线605。所述服务器600还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)606,和用于存储操作系统613、应用程序614和其他程序模块615的大容量存储设备607。
所述基本输入/输出系统606包括有用于显示信息的显示器608和用于用户输入信息的诸如鼠标、键盘之类的输入设备609。其中所述显示器608和输入设备609都通过连接到系统总线605的输入/输出控制器610连接到中央处理单元601。所述基本输入/输出系统606还可以包括输入输出控制器610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入/输出控制器610还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备607通过连接到系统总线605的大容量存储控制器(未示出)连接到中央处理单元601。所述大容量存储设备607及其相关联的计算机可读介质为服务器600提供非易失性存储。也就是说,所述大容量存储设备607可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器604和大容量存储设备607可以统称为存储器。
根据本发明的各种实施例,所述服务器600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器600可以通过连接在所述系统总线605上的网络接口单元611连接到网络612,或者说,也可以使用网络接口单元611来连接到其他类型的网络或远程计算机系统(未示出)。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质存储有一个或者一个以上程序,该一个或者一个以上程序被一个或者一个以上的处理器用来执行上述CDN管理方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。