CN104378394B - 一种服务器集群文件的更新方法及装置 - Google Patents
一种服务器集群文件的更新方法及装置 Download PDFInfo
- Publication number
- CN104378394B CN104378394B CN201310354110.3A CN201310354110A CN104378394B CN 104378394 B CN104378394 B CN 104378394B CN 201310354110 A CN201310354110 A CN 201310354110A CN 104378394 B CN104378394 B CN 104378394B
- Authority
- CN
- China
- Prior art keywords
- queue
- subqueue
- server host
- server
- business
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了一种服务器集群文件的更新方法及装置;方法包括:将待更新的应用关联的各服务器主机分别按照该服务器主机所属的业务分组分入子队列,各子队列中属于一个机房的服务器主机相邻排列;将各业务子队列按任意顺序连接为一个总队列;将所述总队列中的各服务器主机均匀分配到不同更新队列中;对各更新队列分批执行文件更新操作。本申请能够减小服务器集群文件在更新时对线上业务产生的影响。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种服务器集群文件的更新方法及装置。
背景技术
对于业务规模庞大的网站,单个应用(即一组采用文件内容,提供相同的一个或多个业务功能的服务模块的统称)使用较大规模的服务器分布在多个机房对外提供服务,同时因为需要在高并发量业务访问的时候优先保证核心业务的使用,会对单个应用划分多个业务分组,隔离不同应用对该服务的调用,避免相互影响。当应用因业务功能升级需要对所在的服务器集群更新时,一般会导致服务器不能提供对外服务一些时间。因此在这样的应用格局下,会根据当时服务器的负载情况,动态调整更新的服务器分批数,需要在尽量短的时间内更新完成,且又不影响用户的正常访问。
现有的技术方案可供参考的比较少,业界涉及此类切片更新情况,一般有以下实现方法:
一种是一个一个机房的发布,一般是停一个机房,更新一个机房,这样的影响面较大,特别在一些机房数较少、机房服务器数量或配置高低分布不均匀的情况下,极容易对业务的支撑能力产生影响;
另一种是顺序或随机打乱主机分布,直接切片为几部分发布,这样仍有可能导致某个业务分组被分在同一批里进行更新操作,而导致访问可能受到影响。
发明内容
本申请要解决的技术问题是如何减小服务器集群文件在更新时对线上业务产生的影响。
为了解决上述问题,本申请提供了一种服务器集群文件的更新方法,包括:
将待更新的应用关联的各服务器主机分别按照该服务器主机所属的业务分组分入子队列,各子队列中属于一个机房的服务器主机相邻排列;
将各业务子队列按任意顺序连接为一个总队列;
将所述总队列中的各服务器主机均匀分配到不同更新队列中;
对各更新队列分批执行文件更新操作。
可选地,将所述总队列中的各服务器主机均匀分配到不同更新队列中的步骤包括:
分别用所述总队列中的各服务器主机在该总队列中的序号对N取模;
将所述总队列中的各服务器主机分配到取模的结果所表示的更新队列中;所述N为更新的批次数。
可选地,将待更新的应用关联的各服务器主机分别按照该服务器主机所属的业务分组分入子队列,各子队列中属于一个机房的服务器主机相邻排列的步骤包括:
将待更新的应用关联的服务器主机,按照各服务器主机所属的机房排序成一个初始队列;
从所述初始队列中将属于每个业务分组的服务器主机从所述初始队列中提取出,形成各个业务子队列,提取后剩下的主机形成通用子队列;各子队列中服务器主机按照这些服务器主机在初始队列中的顺序进行排列。
可选地,将各业务子队列按任意顺序连接为一个总队列的步骤是指:
将各个业务子队列相连接后再连接到通用子队列后形成所述总队列。
本申请还提供了一种服务器集群文件的更新装置,包括:
分组单元,用于将待更新的应用关联的各服务器主机分别按照该服务器主机所属的业务分组分入子队列,各子队列中属于一个机房的服务器主机相邻排列;
连接单元,用于将各业务子队列按任意顺序连接为一个总队列;
分配单元,用于将所述总队列中的各服务器主机均匀分配到不同更新队列中;
更新单元,用于对各更新队列分批执行文件更新操作。
可选地,所述分配单元包括:
取模模块,用于分别用所述总队列中的各服务器主机在该总队列中的序号对N取模;
分配模块,用于将所述总队列中的各服务器主机分配到取模的结果所表示的更新队列中;所述N为更新的批次数。
可选地,所述分组单元包括:
排列模块,用于将待更新的应用关联的服务器主机,按照各服务器主机所属的机房排序成一个初始队列;
提取模块,用于从所述初始队列中将属于每个业务分组的服务器主机从所述初始队列中提取出,形成各个业务子队列,提取后剩下的主机形成通用子队列;各子队列中服务器主机按照这些服务器主机在初始队列中的顺序进行排列。
可选地,所述连接单元将各业务子队列按任意顺序连接为一个总队列是指:
所述连接单元将各个业务子队列相连接后再连接到通用子队列后形成所述总队列。
本申请的至少一个备选方案可以将应用关联的所有服务器主机均匀的将放置在各个更新的批次中(均匀程度:无论服务器总数多少,服务器更新数量最多的批次和最少的批次数量相差不超过1台),避免出现服务的终止,保证服务的持续性,最大程度减少因文件更新对线上业务产生影响,同时对应用的部署架构无要求;更新的分批数可根据业务需要动态调整,由于每批更新的服务器主机较为平均,避免了对线上业务的支撑能力产生波动;而且无论应用关联的服务器主机属于单个或多个机房、有或没有业务分组的情况都可以适用。本申请的优化方案给出了均匀分配服务器主机到各更新批次的各种具体实现方式。当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有优点。
附图说明
图1为实施例一中服务器集群文件的更新方法的流程示意图;
图2a为实施例一中例子里各服务器主机的示意图;
图2b为实施例一中例子里初始队列的示意图;
图2c为实施例一中例子里总队列的示意图;
图2d为实施例一中例子里分2批更新时各更新队列的示意图;
图2e为实施例一中例子里分3批更新时各更新队列的示意图;
图2f为实施例一中例子里分4批更新时各更新队列的示意图。
具体实施方式
下面将结合附图及实施例对本申请的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本申请实施例以及实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在一个典型的配置中,服务器集群中的主机可包括多个处理器(CPU)、一个或多个输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
实施例一、一种服务器集群文件的更新方法,如图1所示,包括:
S101、将待更新的应用关联的各服务器主机分别按照该服务器主机所属的业务分组分入子队列,各子队列中属于一个机房的服务器主机相邻排列;
S102、将各业务子队列按任意顺序连接为一个总队列;
S103、将所述总队列中的各服务器主机均匀分配到不同更新队列中;
S104、对各更新队列分批执行文件更新操作。
本申请可以在如下几种业务场景要求同时存在的情况下因业务功能升级需要分批进行文件更新时,最大程度减小对线上业务所产生的影响:
横跨多个服务器机房的应用,不能出现单个机房的服务器全部下线(即应用停止提供对外服务)进行文件更新操作;这将导致业务访问故障;
应用所在的服务器内部存在多个业务分组,分别对不同的应用提供服务,不能更新时,出现单个业务分组的所有服务器都下线进行文件更新操作,这将导致业务故障。
本实施例中,所述子队列包括各业务分组中的服务器主机组成的子队列(后文称为业务子队列),以及不属于任何业务分组的服务器主机组成的子队列(后文称为通用子队列),通用子队列可能不存在(比如不存在不属于任何业务分组的服务器主机时);如果没有业务分组,则子队列只包括通用子队列。
本实施例中,当待更新的应用关联的各服务器主机属于多个机房时,各子队列中的服务器主机是按照机房排序的,比如一个子队列中,先是第一个机房中的各服务器主机,接着是第二个机房中的各服务器主机,以此类推。在各子队列中,各机房的排列顺序是任意的,属于一个机房的服务器主机的排列顺序也是任意的。其中,各机房的排列顺序在不同的子队列中可以是相同的,比如各子队列中都先是甲机房的服务器主机,然后是乙机房的,最后是丙机房的。
本实施例中,所述任意顺序可以指临时的、随机的顺序,也可以指预先设定好的顺序,但具体设定成什么样的顺序可以是任意的。
本实施例的一种备选方案中,步骤S103具体可以包括:
分别用所述总队列中的各服务器主机在该总队列中的序号对N取模;
将所述总队列中的各服务器主机分配到取模的结果所表示的更新队列中;所述N为更新的批次数。
比如分2批更新N就为2,建2个更新队列;分3批更新N就为3,建3个更新队列,以此类推。取模可能得到的结果共有N种:0~N-1,分别表示N个更新队列。该备选方案中是按照如同发扑克牌一般的形式进行分配,将总队列中的第1台服务器主机发到第1个更新队列,第2台发到第2个更新队列,以此类推,将所有的主机分配到更新队列中即告分批完成。
本实施例的一种备选方案中,步骤S101具体可以包括:
将待更新的应用关联的服务器主机,按照各服务器主机所属的机房排序成一个初始队列;
从所述初始队列中将属于每个业务分组的服务器主机从所述初始队列中提取出,形成各个业务子队列,提取后剩下的主机形成通用子队列;各子队列中服务器主机按照这些服务器主机在初始队列中的顺序进行排列。
该备选方案的一种实施方式中,步骤S102可以将各个业务子队列相连接后再连接到通用子队列的后面,形成所述总队列。
该实施方式中,总队列以通用子队列打头,后面依次跟随各业务子队列;而在其它实施方式中,各业务子队列和通用子队列在总队列中也可以采用其它顺序排列。
其它备选方案中,步骤S101中也可以先将各服务器主机分配到相应的子队列中,然后再对子队列中的服务器主机按照机房排序;还可以依次在各机房的服务器主机中分别提取出各业务分组、以及不属于任何业务分组的服务器主机放入相应的子队列。其它的执行顺序也是允许的,只要最后形成内部按照机房排列服务器主机、对应于不同业务分组(包括通用)的子队列即可。
下面用一个具体例子进行说明,如图2a所示,假设共有3个机房,共有12个服务器主机(后文简称主机);其中机房A包括主机1、2、3、4,在图中是以六边形图块表示;机房B包括主机5、6、7、8,在图中以矩形图块表示,机房C包括主机9、10、11、12,在图中以椭圆图块表示。其中,主机4、5、12属于业务分组a,在图中以内有横线图块表示;主机2、7、9属于业务分组b,在图中以内有竖线的图块表示;在图中以空白图块表示不属于任何业务分组的主机。
首先,按照机房A、B、C的顺序排列各主机,得到如图2b所示的初始队列:主机1、2、3、4、5、6、7、8、9、10、11、12。
接着,提取出主机4、5、12形成业务子队列a,提取出主机2、7、9形成业务子队列b,剩下的主机1、3、6、8、10、11形成通用子队列。
按照通用子队列、业务子队列a、业务子队列b的顺序连接得到如图2c所示的总队列:主机1、3、6、8、10、11、4、5、12、2、7、9。这些主机在总队列中的序号依次为1~12(或0~11亦可)。
当分2批更新时,有2个更新队列,分别对应于取模结果“1”和“0”,如图2d所示,第一个更新队列包括:主机1、6、10、4、12、7;第二个更新队列包括:主机3、8、11、5、2、9。
当分3批更新时,有3个更新队列,分别对应于取模结果“1”、“2”和“0”,如图2e所示,第一个更新队列包括:主机1、8、4、2;第二个更新队列包括:主机3、10、5、7;第三个更新队列包括:主机6、11、12、9。
当分4批更新时,有4个更新队列,分别对应于取模结果“1”、“2”、“3”和“0”,如图2f所示,第一个更新队列包括:主机1、10、12;第二个更新队列包括:主机3、11、2;第三个更新队列包括:主机6、4、7;第四个更新队列包括:主机8、5、9。
可见,无论分为多少个更新批次,各机房或各业务分组的服务器主机都不会出现在一个更新批次中的情况,从而避免了在更新时出现访问故障。
实施例二、一种服务器集群文件的更新装置,包括:
分组单元,用于将待更新的应用关联的各服务器主机分别按照该服务器主机所属的业务分组分入子队列,各子队列中属于一个机房的服务器主机相邻排列;
连接单元,用于将各业务子队列按任意顺序连接为一个总队列;
分配单元,用于将所述总队列中的各服务器主机均匀分配到不同更新队列中;
更新单元,用于对各更新队列分批执行文件更新操作。
本实施例的一种备选方案中,所述分配单元具体可以包括:
取模模块,用于分别用所述总队列中的各服务器主机在该总队列中的序号对N取模;
分配模块,用于将所述总队列中的各服务器主机分配到取模的结果所表示的更新队列中;所述N为更新的批次数。
本实施例的一种备选方案中,所述分组单元可以包括:
排列模块,用于将待更新的应用关联的服务器主机,按照各服务器主机所属的机房排序成一个初始队列;
提取模块,用于从所述初始队列中将属于每个业务分组的服务器主机从所述初始队列中提取出,形成各个业务子队列,提取后剩下的主机形成通用子队列;各子队列中服务器主机按照这些服务器主机在初始队列中的顺序进行排列。
本实施例的一种备选方案中,所述连接单元将各业务子队列按任意顺序连接为一个总队列可以是指:
所述连接单元将各个业务子队列相连接后再连接到通用子队列后形成所述总队列。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
当然,本申请还可有其他多种实施例,在不背离本申请精神及其实质的情况下,熟悉本领域的技术人员当可根据本申请作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请的权利要求的保护范围。
Claims (8)
1.一种服务器集群文件的更新方法,包括:
将待更新的应用关联的各服务器主机分别按照该服务器主机所属的业务分组分入子队列,各子队列中属于一个机房的服务器主机相邻排列;
将各业务子队列按任意顺序连接为一个总队列;
将所述总队列中的各服务器主机均匀分配到不同更新队列中,分配时将总队列中的各服务器主机按照排列顺序依次分配到不同更新队列中;
对各更新队列分批执行文件更新操作。
2.如权利要求1所述的方法,其特征在于,将所述总队列中的各服务器主机均匀分配到不同更新队列中的步骤包括:
分别用所述总队列中的各服务器主机在该总队列中的序号对N取模;
将所述总队列中的各服务器主机分配到取模的结果所表示的更新队列中;所述N为更新的批次数。
3.如权利要求1或2所述的方法,其特征在于,将待更新的应用关联的各服务器主机分别按照该服务器主机所属的业务分组分入子队列,各子队列中属于一个机房的服务器主机相邻排列的步骤包括:
将待更新的应用关联的服务器主机,按照各服务器主机所属的机房排序成一个初始队列;
从所述初始队列中将属于每个业务分组的服务器主机从所述初始队列中提取出,形成各个业务子队列,提取后剩下的主机形成通用子队列;各子队列中服务器主机按照这些服务器主机在初始队列中的顺序进行排列。
4.如权利要求3所述的方法,其特征在于,将各业务子队列按任意顺序连接为一个总队列的步骤是指:
将各个业务子队列相连接后再连接到通用子队列后形成所述总队列。
5.一种服务器集群文件的更新装置,其特征在于,包括:
分组单元,用于将待更新的应用关联的各服务器主机分别按照该服务器主机所属的业务分组分入子队列,各子队列中属于一个机房的服务器主机相邻排列;
连接单元,用于将各业务子队列按任意顺序连接为一个总队列;
分配单元,用于将所述总队列中的各服务器主机均匀分配到不同更新队列中,分配时将总队列中的各服务器主机按照排列顺序依次分配到不同更新队列中;
更新单元,用于对各更新队列分批执行文件更新操作。
6.如权利要求5所述的装置,其特征在于,所述分配单元包括:
取模模块,用于分别用所述总队列中的各服务器主机在该总队列中的序号对N取模;
分配模块,用于将所述总队列中的各服务器主机分配到取模的结果所表示的更新队列中;所述N为更新的批次数。
7.如权利要求5或6所述的装置,其特征在于,所述分组单元包括:
排列模块,用于将待更新的应用关联的服务器主机,按照各服务器主机所属的机房排序成一个初始队列;
提取模块,用于从所述初始队列中将属于每个业务分组的服务器主机从所述初始队列中提取出,形成各个业务子队列,提取后剩下的主机形成通用子队列;各子队列中服务器主机按照这些服务器主机在初始队列中的顺序进行排列。
8.如权利要求7所述的装置,其特征在于,所述连接单元将各业务子队列按任意顺序连接为一个总队列是指:
所述连接单元将各个业务子队列相连接后再连接到通用子队列后形成所述总队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310354110.3A CN104378394B (zh) | 2013-08-14 | 2013-08-14 | 一种服务器集群文件的更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310354110.3A CN104378394B (zh) | 2013-08-14 | 2013-08-14 | 一种服务器集群文件的更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104378394A CN104378394A (zh) | 2015-02-25 |
CN104378394B true CN104378394B (zh) | 2018-01-02 |
Family
ID=52557049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310354110.3A Active CN104378394B (zh) | 2013-08-14 | 2013-08-14 | 一种服务器集群文件的更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104378394B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729135B (zh) * | 2016-08-11 | 2021-03-16 | 创新先进技术有限公司 | 按序进行并行数据处理的方法和装置 |
CN108156208B (zh) * | 2016-12-02 | 2022-02-25 | 阿里巴巴集团控股有限公司 | 一种应用程序数据的发布方法、装置和系统 |
CN106803790B (zh) * | 2016-12-06 | 2019-09-17 | 浙江大华技术股份有限公司 | 一种集群系统的升级控制方法及装置 |
CN108845868A (zh) * | 2018-04-28 | 2018-11-20 | 华为技术有限公司 | 一种任务下发方法和装置 |
CN108923985A (zh) * | 2018-07-16 | 2018-11-30 | 四川长虹网络科技有限责任公司 | 分布式网络管理系统中批量升级网络设备的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739263A (zh) * | 2008-11-11 | 2010-06-16 | 英业达股份有限公司 | 在多机集群系统中实现操作系统升级的方法及装置 |
CN102508820A (zh) * | 2011-11-25 | 2012-06-20 | 中国人民解放军国防科学技术大学 | 一种基于gpu的消除云方程并行求解过程中数据相关的方法 |
CN102811136A (zh) * | 2011-06-01 | 2012-12-05 | 南京中兴新软件有限责任公司 | 软件升级系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8521853B2 (en) * | 2007-06-29 | 2013-08-27 | Alcatel Lucent | Apparatus and method for server network management to provide zero planned retrofit downtime |
US20090083745A1 (en) * | 2007-09-25 | 2009-03-26 | Jinmei Shen | Techniques for Maintaining Task Sequencing in a Distributed Computer System |
-
2013
- 2013-08-14 CN CN201310354110.3A patent/CN104378394B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739263A (zh) * | 2008-11-11 | 2010-06-16 | 英业达股份有限公司 | 在多机集群系统中实现操作系统升级的方法及装置 |
CN102811136A (zh) * | 2011-06-01 | 2012-12-05 | 南京中兴新软件有限责任公司 | 软件升级系统及方法 |
CN102508820A (zh) * | 2011-11-25 | 2012-06-20 | 中国人民解放军国防科学技术大学 | 一种基于gpu的消除云方程并行求解过程中数据相关的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104378394A (zh) | 2015-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104378394B (zh) | 一种服务器集群文件的更新方法及装置 | |
CN105468473B (zh) | 数据迁移方法及数据迁移装置 | |
EP3594798A1 (en) | Data storage method and device | |
CN103914213B (zh) | 一种用于消除页面抖动的方法和装置 | |
WO2015149514A1 (zh) | 一种虚拟机的部署方法及装置 | |
CN103001793B (zh) | 一种acl管理方法及装置 | |
CN108829738A (zh) | 一种ceph中数据存储方法及装置 | |
CN109471725A (zh) | 资源分配方法、装置和服务器 | |
CN108900434A (zh) | 数据收集分发方法及装置 | |
CN107665212A (zh) | 一种实现法院分案的方法及装置 | |
CN107463593A (zh) | 库存扣减方法及其设备 | |
CN108241531A (zh) | 一种在集群中为虚拟机分配资源的方法和装置 | |
CN108574645A (zh) | 一种队列调度方法及装置 | |
CN107704573A (zh) | 一种与业务耦合的智能缓存方法 | |
CN107070645A (zh) | 比较数据表的数据的方法和系统 | |
CN104182295B (zh) | 一种数据备份方法及装置 | |
CN108156208A (zh) | 一种应用程序数据的发布方法、装置和系统 | |
CN107992351A (zh) | 一种硬件资源分配方法及装置、电子设备 | |
CN104657216B (zh) | 一种资源池的资源分配方法及装置 | |
CN104700255B (zh) | 多进程处理方法、装置和系统 | |
CN109241057A (zh) | 一种用于分布式系统的数字id生成方法 | |
CN106205484B (zh) | Led显示屏带载配置方法及装置 | |
CN108171606A (zh) | 区块链资产的分配方法及装置 | |
CN110019229B (zh) | 数据库配置系统 | |
CN106855821A (zh) | 一种分布式事务处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |