[go: up one dir, main page]

CN114741090A - 一种集群设备软件管理方法及装置 - Google Patents

一种集群设备软件管理方法及装置 Download PDF

Info

Publication number
CN114741090A
CN114741090A CN202210324817.9A CN202210324817A CN114741090A CN 114741090 A CN114741090 A CN 114741090A CN 202210324817 A CN202210324817 A CN 202210324817A CN 114741090 A CN114741090 A CN 114741090A
Authority
CN
China
Prior art keywords
source
synchronization
sub
software
node
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.)
Granted
Application number
CN202210324817.9A
Other languages
English (en)
Other versions
CN114741090B (zh
Inventor
尹淇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN202210324817.9A priority Critical patent/CN114741090B/zh
Publication of CN114741090A publication Critical patent/CN114741090A/zh
Application granted granted Critical
Publication of CN114741090B publication Critical patent/CN114741090B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种集群设备软件管理方法及装置,涉及嵌入式设备应用领域。该方法的步骤包括:步骤A、将每种设备的软件包拆分为多个子软件包,将所有子软件包按照统一的格式进行放置,每个子软件包的目录名唯一;步骤B、创建设备软件包,设备软件包的目录信息包括具体设备信息,每条具体设备信息均会关联所需的子软件包的放置位置;步骤C、将所述设备软件包和所有子软件包进行部署形成下载源,供集群设备进行下载和同步。本发明不仅降低了存储需求,而且统一了存储形式,本地存储与服务端存储形态保持一致,通过同步机制管理,便于维护。与此同时,本发明还实现了无论部署在哪里任何服务端的管理模式完全一样,简化了管理流程。

Description

一种集群设备软件管理方法及装置
技术领域
本发明涉及嵌入式设备应用领域,具体涉及一种集群设备软件管理方法及装置。
背景技术
目前对集群设备软件管理的主要方案是由管理端连接每一个受管设备,告知受管设备需要从哪里获得软件版本,指挥每一端设备的动作,上述方案的要点为:管理端需要对每一端受管设备发起动作;不同类型的设备,需要指定不同的发布源。
管理端为不同设备准备了不同的发布源,以此来对每一种设备进行独立管理(例如下载、升级等),每个发布源中存在该设备完整的设备软件包。但是,格式和发布位置也不同、并且存在重复资源的多个设备软件包,不仅会占用管理端大量的储存空间,也会加大管理端的管理难度(难以统一管理)。
发明内容
针对现有技术中存在的缺陷,本发明解决的技术问题为:对集群设备进行软件管理时,如何优化管理端储存空间,同时降低管理端的管理难度。
为达到以上目的,本发明提供的集群设备软件管理方法,包括以下步骤:
步骤A、将每种设备的软件包拆分为多个子软件包,将所有子软件包按照统一的格式进行放置,每个子软件包的目录名唯一;
步骤B、创建设备软件包,设备软件包的目录信息包括具体设备信息,每条具体设备信息均会关联所需的子软件包的放置位置;
步骤C、将所述设备软件包和所有子软件包进行部署形成下载源,供集群设备进行下载和同步。
在上述技术方案的基础上,设备同步之前还包括以下步骤:判断当前节点设备是否为边缘节点,若是,将该节点设备配置为仅管理本地节点数据;否则将该节点设备作为下游节点设备的服务端,并向上游设备请求并缓存下游节点设备所需的资源。
在上述技术方案的基础上,所述向上游设备请求并缓存下游节点设备所需的资源的方式包括以下2种中的任意一种:
(1)为当前节点设备设置指定大小的缓存区,用于放置下游节点设备所需的资源;下游节点申请资源时,当前节点设备判断该资源大小是否大于缓存区的剩余容量,若是,清空缓存区后,向上游设备申请下游节点设备所需的资源并同步至缓存区,否则直接向上游设备申请下游节点设备所需的资源并同步至缓存区,以供下游节点设备下载;
(2)缓存指定下游节点设备所需的资源。
在上述技术方案的基础上,设备同步之前,对每个节点设备还需要进行以下设置:
(1)添加同步源,同步源包括远端源和本地同步源,远端源包括步骤C中的下载源;本地同步源包括本地的指定路径或者外部存储器路径;
(2)选择同步源:即指定某一个同步源作为首选源使用,当远端源数据与本地内部存储数据同步后,首选源自动切换为本地同步源;
(3)检查同步源:判断首选源与本地同步源是否同步,若是,则无需进行同步,否则显示首选源中与本设备相关的软件版本信息,并在首选源中选择某一个版本,作为下一次启动使用的版本;
(4)本地源管理服务:当节点设备仅同步自身设备所需资源时,配置自身设备同步所需要的信息;当节点设备为下游节点的服务器时,配置下游设备同步所需的信息。
在上述技术方案的基础上,步骤A中将所述每种设备的软件包拆分为多个子软件包的规则包括:根据每种设备使用的CPU架构、芯片和功能,将每种设备的软件包拆分为多个子软件包;子软件包中存在用于获得软件包完整的信息的描述文件;子软件包的目录名为自身的hash值;步骤B中设备软件包的描述信息包括2级子目录,第一级为产品、第二级为具体设备信息,每条具体设备信息均以S1中的hash值关联所需的子软件包。
本发明提供的集群设备软件管理装置,包括软件包拆分模块、设备软件包创建模块和下载服务器;
软件包拆分模块用于:将每种设备的软件包拆分为多个子软件包,将所有子软件包按照统一的格式进行放置,每个子软件包的目录名唯一;
设备软件包创建模块用于:创建设备软件包,设备软件包的目录信息包括具体设备信息,每条具体设备信息均会关联所需的子软件包的放置位置;
下载服务器用于:将所述设备软件包和所有子软件包进行部署形成下载源,供集群设备进行下载和同步。
在上述技术方案的基础上,该装置还包括设置于每个节点设备上的软件源管理模块,其用于:在设备同步之前,判断当前节点设备是否为边缘节点,若是,将该节点设备配置为仅管理本地节点数据;否则将该节点设备作为下游节点设备的服务端,并向上游设备请求并缓存下游节点设备所需的资源。
在上述技术方案的基础上,所述软件源管理模块向上游设备请求并缓存下游节点设备所需的资源的方式包括以下2种中的任意一种:
(1)为当前节点设备设置指定大小的缓存区,用于放置下游节点设备所需的资源;下游节点申请资源时,当前节点设备判断该资源大小是否大于缓存区的剩余容量,若是,清空缓存区后,向上游设备申请下游节点设备所需的资源并同步至缓存区,否则直接向上游设备申请下游节点设备所需的资源并同步至缓存区,以供下游节点设备下载;
(2)缓存指定下游节点设备所需的资源。
在上述技术方案的基础上,所述软件源管理模块在设备同步之前,还用于:
(1)添加同步源,同步源包括远端源和本地同步源,远端源包括步骤C中的下载源;本地同步源包括本地的指定路径或者外部存储器路径;
(2)选择同步源:即指定某一个同步源作为首选源使用,当远端源数据与本地内部存储数据同步后,首选源自动切换为本地同步源;
(3)检查同步源:判断首选源与本地同步源是否同步,若是,则无需进行同步,否则显示首选源中与本设备相关的软件版本信息,并在首选源中选择某一个版本,作为下一次启动使用的版本;
(4)本地源管理服务:当节点设备仅同步自身设备所需资源时,配置自身设备同步所需要的信息;当节点设备为下游节点的服务器时,配置下游设备同步所需的信息。
在上述技术方案的基础上,所述软件包拆分模块将每种设备的软件包拆分为多个子软件包的规则包括:根据每种设备使用的CPU架构、芯片和功能,将每种设备的软件包拆分为多个子软件包;子软件包中存在用于获得软件包完整的信息的描述文件;子软件包的目录名为自身的hash值;所述设备软件包创建模块创建的设备软件包的描述信息包括2级子目录,第一级为产品、第二级为具体设备信息,每条具体设备信息均以所述hash值关联所需的子软件包。
与现有技术相比,本发明的优点在于:
(1)与现有技术中针对每一种设备各提供一个下载源相比,本发明能够将所有统一格式的子软件包和设备软件包汇总起来一同管理,从而只提供一个下载源。
在此基础上,本发明不仅降低了存储需求,任何设备的任何版本发布均只需要提供“增量文件”,展开到上述下载源路径上;而且统一了存储形式,本地存储与服务端存储形态保持一致,通过同步机制管理,便于维护。与此同时,本发明还实现了无论部署在哪里任何服务端的管理模式完全一样,差异仅在于本地缓存大小,简化了管理流程。
综上所述,本发明不仅显著节省了管理端的储存空间,而且大幅度降低了管理端的管理难度。
(2)本发明的核心节点能够自动作为下游节点服务端,与核心节点相连的中心站可根据下游实际需要配置服务能力,边缘节点将相邻上游节点作为服务端。因此,本发明显著降低了管理端的负荷,保证了数据传输速率。
附图说明
图1为本发明实施例中节点设备之间的同步顺序示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1所示,本发明实施例中集群设备软件管理方法,包括以下步骤:
S1:开发软件包管理方案:根据每种设备使用的CPU架构(相同或相异,即arch)、芯片(芯片驱动)和功能(软件模块),将每种设备的“完整软件包”拆分为多个“子软件包”,子软件包中存在描述文件以便于获得软件包完整的信息;子软件包内部结构可采用开源方案,也可以采用私有方案,具体结构不属于本发明保护围。
S2:由于不同设备,可能使用同种功能、同种芯片,对应的软件模块、硬件驱动有较强一致性,拆分的多个软件包得统一管理;因此将所有子软件包按照统一的格式进行放置,每个子软件包的目录名唯一,目录名优选为自身hash值命名。
优选的,本实施例中子软件包的格式为下文树形结构,从该树形结构可知,子软件包剥离了设备如何使用软件,仅仅提供了软件的内容。下文S3中会给出“这些平铺的软件如何使用”。
Figure BDA0003571382340000061
Figure BDA0003571382340000071
S3:创建设备软件包,每种产品对应一个设备软件包,设备软件包的描述信息包括2级子目录,第一级为产品、第二级为具体设备信息(例如设备型号及其特定的发布版本);在上述目录下,基于该设备内部的组织结构,给出各种设备的具体描述信息,该描述信息针对每一种特定硬件发布。
本实施例中设备软件包的具体格式为:
Figure BDA0003571382340000072
与此同时,第二级子目录中的每条具体设备信息均会关联所需的子软件包的放置位置,关联方式优选为:以每个子软件包的hash值进行关联,即描述信息内包括该设备所使用的所有已经过验证的、且可达成该设备完整功能的软件包的hash值。每一个hash值均有一个子软件包与之对应,例如:
[pkglist]
KERNEL_HASH_OF_PKG
BOOTSTRAP_HASH_OF_PKG
SOMEFUNCTION_HASH_OF_PKG
S4:将上述设备软件包和所有子软件包进行部署形成下载源,供集群设备进行下载和同步。具体实现方式可以为:配置核心服务器提供软件下载服务,软件下载服务可以通过ftp、sftp、http、https等通用方法,也可独立开发自定义的传输协议;核心服务器提供下载的软件即为上述下载源。
此处现有技术和本发明的对比为:
现有技术中升级设备A和B两端不一样的设备:
升级设备A
->telnet ip_of_ptn-seriesA-1
->update ip_of_server/path_to_/ptn-seriesA-type-version1
升级设备B
->telnet ip_of_ptn-seriesB-1
->update ip_of_server/path_to_/ptn-seriesB-type-verions1
本发明升级设备A和B两端不一样的设备,只需要下面步骤,其中set_remote_service可以是在网络构建的时候根据实际网络拓扑设置一次即可。
->telnet ip_of_ptn_the_first_node
->show_service
1,localmirror=HIDDEN_PATH
2,localexternalmirror=/path_to_external_disk
3,remotemirror=ftp://ip_of_server/path_to_service_root
->select_service 3
->sync
由此可知,与现有技术中针对每一种设备各提供一个下载源相比,本发明能够将所有统一格式的子软件包和设备软件包汇总起来一同管理,从而只提供一个下载源,进而不仅显著节省了管理端的储存空间,而且降低了管理端的管理难度。
S5:在每个节点设备(即受管设备)上进行管理配置,具体为:判断当前节点设备是否为边缘节点:
若是,则说明该节点设备通常性能和存储能力有限,也没有下游节点,对于这种设备,配置为仅管理本地节点数据,无需作为下游设备服务端。例如以下配置数据,localseries设置为本端节点,server_service及slave_series均设置为空:
[sync_config]
product=ptn
localseries=seriesA
server_service=
slave_series=
若不是,说明存在下游节点设备,此时将当前节点设备作为下游节点设备的服务端,并向上游设备请求并缓存下游节点设备所需的资源,以便下游节点设备进行下载;根据当前节点设备的性能的不同,可采用以下2种缓存方式:
(1)通常情况下核心设备的性能更强,本地运算能力、存储资源均非常丰富,在作为下游节点设备的服务端时,对本端的冲击较小。此时当前节点设备设置指定大小的缓存区,用于放置下游节点设备所需的资源。下游节点申请资源时,当前节点设备判断该资源大小是否大于缓存区的剩余容量,若是,清空缓存区后,向上游设备申请下游节点设备所需的资源并同步至缓存区,否则直接向上游设备申请下游节点设备所需的资源并同步至缓存区,以供下游节点设备下载。
例如,将当前节点设备设置为使用“自动模式”,参考下面内容,即将本地服务设置为自动:
[sync_config]
server_service=auto
server_cache=400M
slave_series=
这样配置后,下游节点申请资源时,由本节点的本地源管理服务确认下游节点所需资源后,将对应资源同步到节点,此时slave_series可以不配置,但需要配置server_cache,表示下游节点向本端节点申请的数据缓存大小。如上文例中所示设置为400M,下游节点设备向本端节点设备申请的数据总大小超过400M、或者大于server_cache的剩余容量时,需要本端节点自动启动垃圾回收,将已经不再使用的文件回收以便于获取新的未传输的文件。
(2)对于复杂的组网环境,非核心节点也可能使用较高性能、规格的设备,受限于设备成本等压力,可能存储资源并不能够承担下游所有节点的服务端责任,此时根据当前设备节点的性能缓存指定下游节点设备所需的资源,即允许使用手工配置模式,参考下面配置数据service_service设置为手动,允许做下游两种设备的缓存。
[sync_config]
server_service=manual
slave_series=ptn/seriesB,otn/seriesX
这样配置时,表示本端仅缓存两种设备的资源,在除上述设备的其他下游节点向本节点申请资源时,不做同步操作。
S5的设置原理和效果为:现有技术中每个节点设备均从管理端申请资源,这会急剧增大管理端的负荷,进而严重影响数据传输速率。而参见S5可知,本发明将除了边缘节点之外的所有节点设备作为下游节点设备的服务器,从而实现下游节点设备从相邻的上游节点设备上申请资源,如此显著降低了管理端的负荷,保证了数据传输速率。
与此同时,为了实现S5的流程,对每个节点设备还需要进行以下设置:
(1)添加同步源:即设置同步方式,同步路径可以为远端同步路径(即远端源,该路径为S4中的下载源或者上游节点的资源下载路径),设置为远端源时,可以取得新的软件版本以同步至本地源;同步路径也可以为本地的指定路径或者外部存储器路径。在未设置远端源时,仅显示产品节点本地的同步源;在设置了远端源时,显示所有的服务器信息。
(2)选择同步源:即指定某一个同步源(远端源或者本地源)作为“首选源”使用,通常为网管;基于本地以太网口的远端同步源,可以是独立服务器;基于设备本地的外部存储器如优盘。选择远端源是“临时”生效的,当远端源数据与本地内部存储数据同步后,自动切换为本地同步源。
(3)检查同步源:判断首选源与本地同步源是否同步,若是,则无需进行同步,否则显示首选源中与本设备相关的软件版本信息,并在首选源中选择某一个版本,作为下一次启动使用的版本,当该版本同步至本地后,设置为下一次启动使用的版本。。此外,若本地当前指定的同步源的完整性或可靠性存在问题,则本地同步过程暂不启动。
(4)本地源清理:仅保留当前使用的版本相关的所有包,将没有继续保存必要行的包清理以节约空间。
(5)本地源管理服务:当节点设备仅同步自身设备所需资源时,配置自身设备同步所需要的信息;当节点设备为下游节点的服务器时,确认下游设备的类型,并配置下游设备同步所需的信息。
同步数据的方法取决于“源”的类型:例如本地源可直接访问可插拔存储器,则同步过程使用拷贝命令即可;远端源为本地以太网口可见的ftp或http服务器,则同步过程可使用wget命令取得对应文件。
实际操作时,每个节点设备上设置的软件源管理模块来执行S5的所有流程,软件源管理模块根据自身的设备类型做整机设备软件管理,其中,产品形态作为固定属性植入设备本地存储器中,而远端源作为活动配置允许修改。与此同时,软件源管理模块在设备管理侧和设备侧的部署差异仅仅在于上文提到的同步配置信息,管理侧的配置信息中的slave_series包含所有已支持设备。
S6:根据S5的配置进行节点设备同步。
通过上文可知,同步时存在多种路径可选择,允许设置包括workstation或任意设备节点作为服务端使用。当设备节点设置workstation作为同步源时,设备从workstation同步软件包。这个过程与传统升级方式相似。任意节点同步完数据后,该节点能够作为其他设备的同步源使用;在上述使用方式的情况下,workstation与下游节点之间的带宽得到有效利用,同样的数据仅需要从workstation传输一次。
例如参见图1所示,workstation与Node1节点1(Node1)直连,节点1设置workstation为同步源,将数据同步到本地后,基于本地同步源切换软件版本;节点5经过与节点1之间的带内业务通道,与workstation相连,节点5与节点1类型相同,可设置节点1为同步源;若节点5与节点1类型并不相同,通常直接设置workstation为同步源;因为本专利方案软件包维护形式任何设备的软件全部用一个方法维护,节点5与节点1类型并不相同时,也可设置节点1作为节点5的同步源,本地源管理服务能够将workstation上与节点5相关的资源全部下沉到节点1,由于本方案的软件包管理机制,即使节点1与节点5类型并不相同,也存在大量重复的软件包,对于节点1的存储空间冲击不大,前文的配置样例中,设置缓存大小为400M,在节点5与节点1之间的软件包差异小于400M时,节点1将完全缓存完节点5中所有需要的文件。当节点5与节点1之间的软件包差异大于400M时,节点1需要启动垃圾回收动作清理缓存,便于其他未传输的的文件能够缓存到本地——因为缓存中的数据节点5已经完全获取了,已不再需要。
下面通过一个具体实施例具体说明本发明的方法。
本实施例中的集群设备硬件情况为:该集群设备中,有多种不同处理单元,不同处理单元功能上存在相同或相异的地方,并且使用的处理器不尽相同。所使用到的处理器包括:arm、arm64、ppc64。基于这个硬件环境,有以下的实施内容。
第一,对应上文S1,将软件打散形成多个子软件包,那么对于一个设备可形成很多子软件包,比如系统级的:
rootfs.pkg、kernle.pkg,上层应用级的:service.pkg,由于存在不同的架构,上述包在命名时何如架构的名称形成如下形态:
rootfs_arm.pkg、kernel_arm.pkg、service_arm.pkg;
rootfs_ppc64.pkg、kernel_ppc64.pkg…
第二,对应上文S2~S4,在核心服务器上配置下载服务,以下面的形态组织服务端文件:
Figure BDA0003571382340000131
Figure BDA0003571382340000141
profile-board描述文件按照上文S3中的格式组织,在此不做不赘述。
第三,对应上文S5,开发设备软件源管理模块,完成下面的功能,供软件管理使用:
set_service:添加同步源。
show_service:显示源服务器配置信息。
select_service:选择同步源。
check_service:检查同步源完整性,以及与本地同步源是否同步。可配置完整性检查不过时,可循环检测直至完整性检查通过。
show_versions:显示同步源。
select_version:选择启动版本。
service_gc:gc=garbage clean,本地源清理。
在服务端的目录结构形成规范的情况下,设备软件刷新至所需版本的方法为:
使用set_service添加远端同步源,使用select_service将远端源设置为首选源;此时使用show_service可以看到同步源设置为了远端同步源;远端同步源上此时可能存在多个版本,使用show_versions查看远端同步源中的多个版本信息;使用select_version选择一个版本作为下一次所需要使用的版本,此时如果选定的版本在远端源上,将该远端源的所有内容同步到本地路径上,然后自动执行set_service将本地源设置为同步源,此时由于远端源对应版本已经同步到本地源,远端源信息可以不再保留;此时如下面执行过程所示,使用show_service可以看到同步后同步源切回本地路径:
下面为使用本地控制台进行控制的示例:
->表示控制台提示符,#表示上面一行的注释。
->show_service
#显示服务端配置
1,localmirror=HIDDEN_PATH
#1为本地镜像,通常本地镜像是隐藏保护的,不提供路径查看
2,remotemirror=ftp://ip_of_server/path_to_service_root
#2为远端镜像路径,path_to_service_root是服务端提供的路径
->select_service 2
#选择第二个服务端为首选服务端
->show_service
#再次查看服务端配置,此时可以看到首选服务端已经切换为远端服务器
1,remotemirror=ftp://ip_of_server/path_to_service_root
2,localmirror=HIDDEN_PATH
->check_service 1
#检查首选服务端,提示与本地并未同步
Remotemirror not syncd
->sync
#执行同步动作
->show_service
#执行同步后再查看服务端,会发现首选服务端已经切换为了本地源
1,localmirror=HIDDEN_PATH
2,remotemirror=ftp://ip_of_server/path_to_service_root
->check_service 2
#此时检查远端服务端,会看到远端源与本地源已经同步了
Remotemirror synced
设备重新启动后,将使用上述流程中指定的版本。
在服务端或设备端,可能存在多次设备的升级动作,为了节省空间,在一定时间后,可以执行service_gc做本地源清理。
对于服务侧,本地源清理通常为保留当前所有设备的最新版本,具体为:
Figure BDA0003571382340000161
Figure BDA0003571382340000171
对于设备侧,清理通常为保留当前正在使用的版本,具体为:
Figure BDA0003571382340000172
在profile中引用所有引用到的HASH值对应的目录均保留,未引用到的目录均清除以节约空间。
第四,具体使用时,设置设备节点同步服务端数据,下文中的IP_OF_WORK_[X]表示配置为某一节点的IP:
NODE1配置为:
[mirrorlist]
IP_OF_WORK_STATION
NODE2配置为:
[mirrorlist]
IP_OF_NODE1
NODE3配置为:
[mirrorlist]
IP_OF_NODE1
NODE4配置为:
[mirrorlist]
IP_OF_NODE1
NODE5配置为:
[mirrorlist]
IP_OF_NODE1
NODE6配置为:
[mirrorlist]
IP_OF_NODE5
NODE7配置为:
[mirrorlist]
IP_OF_NODE5
NODE8配置为:
[mirrorlist]
IP_OF_NODE5
任意节点启动同步时,首先需要使用check_service检查同步源的完整性可靠性,由于对于节点8,由于设置了从节点5同步,需要检查节点5。而很可能启动同步时,节点5还未正式准备好数据,需要等待。check_service在检查完整性、可靠性通过后,才可进行后续的同步动作。
本发明实施例中的集群设备软件管理装置,包括软件包拆分模块、设备软件包创建模块和下载服务器。
软件包拆分模块用于:将每种设备的软件包拆分为多个子软件包,将所有子软件包按照统一的格式进行放置,每个子软件包的目录名唯一;软件包拆分模块将每种设备的软件包拆分为多个子软件包的规则包括:根据每种设备使用的CPU架构、芯片和功能,将每种设备的软件包拆分为多个子软件包;子软件包中存在用于获得软件包完整的信息的描述文件;子软件包的目录名为自身的hash值。
设备软件包创建模块用于:创建设备软件包,设备软件包的目录信息包括具体设备信息,每条具体设备信息均会关联所需的子软件包的放置位置;具体来说,设备软件包的描述信息包括2级子目录,第一级为产品、第二级为具体设备信息,每条具体设备信息均以所述hash值关联所需的子软件包。
下载服务器用于:将所述设备软件包和所有子软件包进行部署形成下载源,供集群设备进行下载和同步。
该装置还包括设置于每个节点设备上的软件源管理模块,其用于:在设备同步之前,判断当前节点设备是否为边缘节点,若是,将该节点设备配置为仅管理本地节点数据;否则将该节点设备作为下游节点设备的服务端,并向上游设备请求并缓存下游节点设备所需的资源。
软件源管理模块向上游设备请求并缓存下游节点设备所需的资源的方式包括以下2种中的任意一种:
(1)为当前节点设备设置指定大小的缓存区,用于放置下游节点设备所需的资源;下游节点申请资源时,当前节点设备判断该资源大小是否大于缓存区的剩余容量,若是,清空缓存区后,向上游设备申请下游节点设备所需的资源并同步至缓存区,否则直接向上游设备申请下游节点设备所需的资源并同步至缓存区,以供下游节点设备下载;
(2)缓存指定下游节点设备所需的资源。
软件源管理模块在设备同步之前,还用于:
(1)添加同步源,同步源包括远端源和本地同步源,远端源包括步骤C中的下载源;本地同步源包括本地的指定路径或者外部存储器路径;
(2)选择同步源:即指定某一个同步源作为首选源使用,当远端源数据与本地内部存储数据同步后,首选源自动切换为本地同步源;
(3)检查同步源:判断首选源与本地同步源是否同步,若是,则无需进行同步,否则显示首选源中与本设备相关的软件版本信息,并在首选源中选择某一个版本,作为下一次启动使用的版本;
(4)本地源管理服务:当节点设备仅同步自身设备所需资源时,配置自身设备同步所需要的信息;当节点设备为下游节点的服务器时,配置下游设备同步所需的信息。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机可读存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
如本领域普通技术人员公知的,术语计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
示例性的,计算机可读存储介质可以是前述实施例的电子设备的内部存储单元,例如电子设备的硬盘或内存。计算机可读存储介质也可以是电子设备的外部存储设备,例如电子设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。
以上仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种集群设备软件管理方法,其特征在于,该方法包括以下步骤:
步骤A、将每种设备的软件包拆分为多个子软件包,将所有子软件包按照统一的格式进行放置,每个子软件包的目录名唯一;
步骤B、创建设备软件包,设备软件包的目录信息包括具体设备信息,每条具体设备信息均会关联所需的子软件包的放置位置;
步骤C、将所述设备软件包和所有子软件包进行部署形成下载源,供集群设备进行下载和同步。
2.如权利要求1所述的集群设备软件管理方法,其特征在于,设备同步之前还包括以下步骤:判断当前节点设备是否为边缘节点,若是,将该节点设备配置为仅管理本地节点数据;否则将该节点设备作为下游节点设备的服务端,并向上游设备请求并缓存下游节点设备所需的资源。
3.如权利要求2所述的集群设备软件管理方法,其特征在于,所述向上游设备请求并缓存下游节点设备所需的资源的方式包括以下2种中的任意一种:
(1)为当前节点设备设置指定大小的缓存区,用于放置下游节点设备所需的资源;下游节点申请资源时,当前节点设备判断该资源大小是否大于缓存区的剩余容量,若是,清空缓存区后,向上游设备申请下游节点设备所需的资源并同步至缓存区,否则直接向上游设备申请下游节点设备所需的资源并同步至缓存区,以供下游节点设备下载;
(2)缓存指定下游节点设备所需的资源。
4.如权利要求2所述的集群设备软件管理方法,其特征在于,设备同步之前,对每个节点设备还需要进行以下设置:
(1)添加同步源,同步源包括远端源和本地同步源,远端源包括步骤C中的下载源;本地同步源包括本地的指定路径或者外部存储器路径;
(2)选择同步源:即指定某一个同步源作为首选源使用,当远端源数据与本地内部存储数据同步后,首选源自动切换为本地同步源;
(3)检查同步源:判断首选源与本地同步源是否同步,若是,则无需进行同步,否则显示首选源中与本设备相关的软件版本信息,并在首选源中选择某一个版本,作为下一次启动使用的版本;
(4)本地源管理服务:当节点设备仅同步自身设备所需资源时,配置自身设备同步所需要的信息;当节点设备为下游节点的服务器时,配置下游设备同步所需的信息。
5.如权利要求1至4任一项所述的集群设备软件管理方法,其特征在于,步骤A中将所述每种设备的软件包拆分为多个子软件包的规则包括:根据每种设备使用的CPU架构、芯片和功能,将每种设备的软件包拆分为多个子软件包;子软件包中存在用于获得软件包完整的信息的描述文件;子软件包的目录名为自身的hash值;步骤B中设备软件包的描述信息包括2级子目录,第一级为产品、第二级为具体设备信息,每条具体设备信息均以S1中的hash值关联所需的子软件包。
6.一种集群设备软件管理装置,其特征在于,该装置包括软件包拆分模块、设备软件包创建模块和下载服务器;
软件包拆分模块用于:将每种设备的软件包拆分为多个子软件包,将所有子软件包按照统一的格式进行放置,每个子软件包的目录名唯一;
设备软件包创建模块用于:创建设备软件包,设备软件包的目录信息包括具体设备信息,每条具体设备信息均会关联所需的子软件包的放置位置;
下载服务器用于:将所述设备软件包和所有子软件包进行部署形成下载源,供集群设备进行下载和同步。
7.如权利要求6所述的集群设备软件管理装置,其特征在于:该装置还包括设置于每个节点设备上的软件源管理模块,其用于:在设备同步之前,判断当前节点设备是否为边缘节点,若是,将该节点设备配置为仅管理本地节点数据;否则将该节点设备作为下游节点设备的服务端,并向上游设备请求并缓存下游节点设备所需的资源。
8.如权利要求7所述的集群设备软件管理装置,其特征在于:所述软件源管理模块向上游设备请求并缓存下游节点设备所需的资源的方式包括以下2种中的任意一种:
(1)为当前节点设备设置指定大小的缓存区,用于放置下游节点设备所需的资源;下游节点申请资源时,当前节点设备判断该资源大小是否大于缓存区的剩余容量,若是,清空缓存区后,向上游设备申请下游节点设备所需的资源并同步至缓存区,否则直接向上游设备申请下游节点设备所需的资源并同步至缓存区,以供下游节点设备下载;
(2)缓存指定下游节点设备所需的资源。
9.如权利要求7所述的集群设备软件管理装置,其特征在于:所述软件源管理模块在设备同步之前,还用于:
(1)添加同步源,同步源包括远端源和本地同步源,远端源包括步骤C中的下载源;本地同步源包括本地的指定路径或者外部存储器路径;
(2)选择同步源:即指定某一个同步源作为首选源使用,当远端源数据与本地内部存储数据同步后,首选源自动切换为本地同步源;
(3)检查同步源:判断首选源与本地同步源是否同步,若是,则无需进行同步,否则显示首选源中与本设备相关的软件版本信息,并在首选源中选择某一个版本,作为下一次启动使用的版本;
(4)本地源管理服务:当节点设备仅同步自身设备所需资源时,配置自身设备同步所需要的信息;当节点设备为下游节点的服务器时,配置下游设备同步所需的信息。
10.如权利要求6至9任一项所述的集群设备软件管理装置,其特征在于:所述软件包拆分模块将每种设备的软件包拆分为多个子软件包的规则包括:根据每种设备使用的CPU架构、芯片和功能,将每种设备的软件包拆分为多个子软件包;子软件包中存在用于获得软件包完整的信息的描述文件;子软件包的目录名为自身的hash值;所述设备软件包创建模块创建的设备软件包的描述信息包括2级子目录,第一级为产品、第二级为具体设备信息,每条具体设备信息均以所述hash值关联所需的子软件包。
CN202210324817.9A 2022-03-29 2022-03-29 一种集群设备软件管理方法及装置 Active CN114741090B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210324817.9A CN114741090B (zh) 2022-03-29 2022-03-29 一种集群设备软件管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210324817.9A CN114741090B (zh) 2022-03-29 2022-03-29 一种集群设备软件管理方法及装置

Publications (2)

Publication Number Publication Date
CN114741090A true CN114741090A (zh) 2022-07-12
CN114741090B CN114741090B (zh) 2025-03-18

Family

ID=82280393

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210324817.9A Active CN114741090B (zh) 2022-03-29 2022-03-29 一种集群设备软件管理方法及装置

Country Status (1)

Country Link
CN (1) CN114741090B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1913692A (zh) * 2006-08-16 2007-02-14 华为技术有限公司 按配置下载设备软件的方法
CN107678755A (zh) * 2017-09-13 2018-02-09 北京京东尚科信息技术有限公司 安装包打包的方法、装置、电子设备和计算机可读介质
US20180219972A1 (en) * 2017-02-02 2018-08-02 Microsoft Technology Licensing, Llc Joint servicing of software packages
CN112486531A (zh) * 2020-11-24 2021-03-12 航天信息股份有限公司 一种设备类应用软件的更新方法及系统
CN113741952A (zh) * 2020-05-29 2021-12-03 华为技术有限公司 一种软件包管理方法、装置、设备及介质
CN114070846A (zh) * 2021-11-25 2022-02-18 安天科技集团股份有限公司 Linux操作系统下软件包仓库的同步方法以及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1913692A (zh) * 2006-08-16 2007-02-14 华为技术有限公司 按配置下载设备软件的方法
US20180219972A1 (en) * 2017-02-02 2018-08-02 Microsoft Technology Licensing, Llc Joint servicing of software packages
CN107678755A (zh) * 2017-09-13 2018-02-09 北京京东尚科信息技术有限公司 安装包打包的方法、装置、电子设备和计算机可读介质
CN113741952A (zh) * 2020-05-29 2021-12-03 华为技术有限公司 一种软件包管理方法、装置、设备及介质
CN112486531A (zh) * 2020-11-24 2021-03-12 航天信息股份有限公司 一种设备类应用软件的更新方法及系统
CN114070846A (zh) * 2021-11-25 2022-02-18 安天科技集团股份有限公司 Linux操作系统下软件包仓库的同步方法以及装置

Also Published As

Publication number Publication date
CN114741090B (zh) 2025-03-18

Similar Documents

Publication Publication Date Title
US20210255992A1 (en) System And Method For Policy Based Synchronization Of Remote And Local File Systems
US9992274B2 (en) Parallel I/O write processing for use in clustered file systems having cache storage
CN104253866B (zh) 虚拟网络功能网元的软件部署方法、系统及相关设备
US10657108B2 (en) Parallel I/O read processing for use in clustered file systems having cache storage
CN110147411A (zh) 数据同步方法、装置、计算机设备及存储介质
US9921821B2 (en) Updating web resources
US9733919B2 (en) Updating web resources
CN103177082B (zh) 主服务器、从服务器、索引同步系统和索引同步方法
CN105224466A (zh) 一种基于Docker的集成测试方法及系统
US20120102220A1 (en) Routing traffic in an online service with high availability
CN105763345A (zh) 一种网元升级管理方法、装置及系统
CN102122248A (zh) 通信设备的线卡软件管理方法
EP4050850A1 (en) Service upgrading method, device and system
CN104636441B (zh) 网络文件系统实现方法和装置
CN113590020B (zh) 用于数据管理的方法、设备和计算机程序产品
Blomer et al. The CernVM file system
CN114995961A (zh) 一种请求调度方法、装置及存储介质
Wallin et al. Automating network and service configuration using {NETCONF} and {YANG}
CN114741090A (zh) 一种集群设备软件管理方法及装置
CN115189931A (zh) 一种分布式密钥管理方法、装置、设备、存储介质
CN103516767A (zh) 软件跨云部署机制及系统
CN102298527A (zh) 一种cpe并行升级版本的方法及实现系统
CN115826679A (zh) 一种kubernetes集群中时钟源管理的方法、系统、设备及存储介质
US8112762B2 (en) Blade server and service start method therefore
CN110058970A (zh) 一种灾难风险模型下的双虚拟机准同步撤离方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant