CN115102966A - 节点管理方法、装置、设备与计算机可读存储介质 - Google Patents
节点管理方法、装置、设备与计算机可读存储介质 Download PDFInfo
- Publication number
- CN115102966A CN115102966A CN202210629286.4A CN202210629286A CN115102966A CN 115102966 A CN115102966 A CN 115102966A CN 202210629286 A CN202210629286 A CN 202210629286A CN 115102966 A CN115102966 A CN 115102966A
- Authority
- CN
- China
- Prior art keywords
- role
- node
- target nodes
- target
- command
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种节点管理方法、装置、设备与计算机可读存储介质,属于图像处理技术领域。本发明通过安全外壳协议SSH连接和管理目标节点,并通过密钥分发完成管理节点与目标节点之间互信访问,管理节点基于SSH连接和SCP命令,将一个或多个文件从指定的N个目标节点复制到M个第二目标节点,从而不需要管理节点直接将一个或多个文件复制到指定的目标节点,而是通过指定N个目标节点代替管理节点来复制,管理节点只需要将一个或多个文件复制到N个目标节点,剩下的复制任务就不用管理节点由直接执行,能够提高文件复制的效率,同时减少管理节点的带宽占用。
Description
技术领域
本发明涉及运维技术领域,尤其涉及节点管理方法、装置、设备与计算机可读存储介质。
背景技术
随着企业规模的扩大以及数据量累积,在互联网企业服务器数量越来越多。而当到达几百台,上千台服务器之后,服务器日常管理也逐渐繁杂。
最近几年陆续出现比较主流的方式一般是通过基于Ruby或Python语言实现批量部署的自动化运维工具,然而这些自动化运维工具通常只能实现批量部署程序或者批量运行命令等,在实现文件复制的时候需要一一进行拷贝,文件复制效率低。
发明内容
本发明的主要目的在于提供一种节点管理方法、装置、设备与计算机可读存储介质,旨在解决现有运维管理方法文件批量复制效率低的问题。
为实现上述目的,本发明提供一种节点管理方法,所述节点管理方法包括以下步骤:
基于安全外壳协议SSH连接管理目标节点,并通过密钥分发完成所述目标节点之间互信访问;
当接收到安全复制SCP命令时,基于所述SSH连接,将一个或多个文件复制到所述SCP命令指定的N个第一目标节点,通过所述第一目标节点将所述一个或多个文件复制到M个第二目标节点,其中,N大于或等于1的整数,M为大于或等于N的整数。
可选地,所述当接收到安全复制SCP命令时,基于所述SSH连接,将一个或多个文件复制到所述SCP命令指定的N个第一目标节点,通过所述第一目标节点将所述一个或多个文件复制到M个第二目标节点的步骤包括:
当接收到安全复制SCP命令时,基于所述SSH连接,向所述SCP命令指定的N个第一目标节点发送一个或多个文件,并定义存有所述文件的目标节点为第一角色,未存有所述文件的目标节点为第二角色;
获取元数据信息,所述元数据信息包括:各节点信息、节点间关系、节点角色信息;
获取所述SCP命令对应的部署脚本,所述部署脚本描述要求将所述M个第二目标节点全部转化为所述第一角色;
基于所述元数据信息和所述部署脚本,循环执行选取所述第一角色和所述第二角色,通过所述第一角色发送所述文件给所述第二角色,将所述第二角色变为第一角色,并更新节点角色信息的步骤,直到所述第二角色全部转化为所述第一角色时完成所述SCP命令。
可选地,所述选取所述第一角色和所述第二角色,通过所述第一角色发送所述文件给所述第二角色,将所述第二角色变为第一角色的步骤包括:
选取所述第一角色和所述第二角色,并进行组队;
当组队后,通过所述第一角色为所述文件计算MD5标识码;
通过所述第一角色将所述文件和所述MD5标识码发送给所述第二角色;
当所述第二角色接收到所述文件和所述MD5标识码后,通过MD5算法对所述第二角色接收到的文件进行散列计算,得到校验码;
判断所述校验码与所述MD5标识码是否一致;
若是,则确定已将所述第二角色变为第一角色。
可选地,基于安全外壳协议SSH连接管理目标节点,并通过密钥分发完成所述目标节点之间互信访问的步骤包括:
获取参与SSH会话的目标节点的配置文件,所述目标节点包括一个或多个;
为用户创建非对称密钥对,并将所述非对称密钥对中的第一公钥存储到所述用户的授权公钥文件中;
分发管理节点的第二公钥给所述目标节点,建立与所述目标节点的连接,并更新所述用户的已知节点文件;
基于所述授权公钥文件、所述已知节点文件、所述第二公钥实现所述目标节点之间的互信访问。
可选地,所述基于安全外壳协议SSH连接管理目标节点,并通过密钥分发完成所述目标节点之间互信访问的步骤之前,所述方法包括:
以预设方式对所述参与SSH会话的所述目标节点进行分类,得到主机集群;
获取每类主机集群中对应的所述目标节点的IP地址或主机名,并为每一类主机集群生成对应的所述配置文件。
可选地,所述基于安全外壳协议SSH连接管理目标节点,并通过密钥分发完成所述目标节点之间互信访问的步骤之后,所述方法还包括:
获取用户的指定命令,基于所述SSH连接控制指定命令对应的目标节点执行指令。
可选地,所述获取用户的指定命令,基于所述SSH连接控制所述指定命令对应的目标节点执行指令的步骤包括:
检测所述用户是否在命令行上指定命令;
若否,则进入交互模式,获取用户在交互模式中输入所述主机可执行的命令,得到所述指定命令;
基于所述SSH连接和用户的指定命令,控制所述目标节点执行指令。
此外,为实现上述目的,本发明还提供一种节点管理装置,所述装置包括:
连接模块,用于基于安全外壳协议SSH连接管理目标节点,并通过密钥分发完成所述目标节点之间互信访问;
执行模块,用于当接收到安全复制SCP命令时,基于所述SSH连接,将一个或多个文件复制到所述SCP命令指定的N个第一目标节点,通过所述第一目标节点将所述一个或多个文件复制到M个第二目标节点,其中,N大于或等于1的整数,M为大于或等于N的整数。
可选地,所述执行模块还用于:
当接收到安全复制SCP命令时,基于所述SSH连接,向所述SCP命令指定的N个第一目标节点发送一个或多个文件,并定义存有所述文件的目标节点为第一角色,未存有所述文件的目标节点为第二角色;
获取元数据信息,所述元数据信息包括:各节点信息、节点间关系、节点角色信息;
获取所述SCP命令对应的部署脚本,所述部署脚本描述要求将所述M个第二目标节点全部转化为所述第一角色;
基于所述元数据信息和所述部署脚本,循环执行选取所述第一角色和所述第二角色,通过所述第一角色发送所述文件给所述第二角色,将所述第二角色变为第一角色,并更新节点角色信息的步骤,直到所述第二角色全部转化为所述第一角色时完成所述SCP命令。
可选地,所述执行模块还用于:
选取所述第一角色和所述第二角色,并进行组队当组队后,通过所述第一角色为所述文件计算MD5标识码;
通过所述第一角色将所述文件和所述MD5标识码发送给所述第二角色;
当所述第二角色接收到所述文件和所述MD5标识码后,通过MD5算法对所述第二角色接收到的文件进行散列计算,得到校验码;
判断所述校验码与所述MD5标识码是否一致;
若是,则确定已将所述第二角色变为第一角色。
可选地,所述连接模块还用于:
获取参与SSH会话的目标节点的配置文件,所述目标节点包括一个或多个;
为用户创建非对称密钥对,并将所述非对称密钥对中的第一公钥存储到所述用户的授权公钥文件中;
分发管理节点的第二公钥给所述目标节点,建立与所述目标节点的连接,并更新所述用户的已知节点文件;
基于所述授权公钥文件、所述已知节点文件、所述第二公钥实现所述目标节点之间的互信访问。
可选地,所述连接模块还用于:
以预设方式对所述参与SSH会话的所述目标节点进行分类,得到主机集群;
获取每类主机集群中对应的所述目标节点的IP地址或主机名,并为每一类主机集群生成对应的所述配置文件。
可选地,所述执行模块还用于:
获取用户的指定命令,基于所述SSH连接控制指定命令对应的目标节点执行指令。
可选地,所述执行模块还用于:
检测所述用户是否在命令行上指定命令;
若否,则进入交互模式,获取用户在交互模式中输入所述主机可执行的命令,得到所述指定命令;
基于所述SSH连接和用户的指定命令,控制所述目标节点执行指令。
此外,为实现上述目的,本发明还提供一种节点管理设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的节点管理程序,所述节点管理程序配置为实现如上所述的节点管理方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有节点管理程序,所述节点管理程序被处理器执行时实现如上所述的节点管理方法的步骤。
本发明实施例提出的节点管理方法、装置、设备与计算机可读存储介质,通过管理节点,以安全外壳协议SSH方式连接管理目标节点,并通过密钥分发完成目标节点之间互信访问,进一步地管理节点基于SSH连接和SCP命令,将一个或多个文件复制到指定的N个第一目标节点,通过第一目标节点将一个或多个文件复制到M个第二目标节点,从而不需要管理节点直接将一个或多个文件复制到指定的目标节点,而是通过指定N个目标节点代替管理节点来复制,管理节点只需要将一个或多个文件复制到N个目标节点,剩下的复制任务就不用管理节点直接执行,从而能够提高文件复制的效率,还能减少管理节点的带宽占用。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的节点管理设备的结构示意图;
图2为本发明节点管理方法第一实施例的流程示意图;
图3为本发明节点管理方法一实施例通过密钥分发完成不同节点互信访问的示意图;
图4为本发明节点管理方法一实施例中步骤S30的细化流程示意图;
图5为本发明节点管理方法一实施例中文件复制的流程示意图a;
图6为本发明节点管理方法一实施例中文件复制的流程示意图b;
图7为本发明节点管理方法一实施例中文件复制的流程示意图c;
图8为本发明节点管理方法一实施例中文件复制的流程示意图d;
图9为本发明节点管理方法一实施例中文件复制的流程示意图e;
图10为本发明节点管理方法一实施例中步骤S10的细化流程示意图;
图11为本发明节点管理装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的管理设备结构示意图。
如图1所示,该节点管理设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对节点管理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及节点管理程序。
在图1所示的节点管理设备中,网络接口1004主要用于与其他设备进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明节点管理设备中的处理器1001、存储器1005可以设置在节点管理设备中,所述节点管理设备通过处理器1001调用存储器1005中存储的节点管理程序,并执行本发明实施例提供的节点管理方法。
本发明实施例提供了一种节点管理方法,参照图2,图2为本发明节点管理方法第一实施例的流程示意图。
本实施例中,所述节点管理方法应用于管理节点,所述节点管理方法包括:
步骤S10,基于安全外壳协议SSH连接管理目标节点,并通过密钥分发完成所述目标节点之间互信访问;
步骤S20,当接收到安全复制SCP命令时,基于所述SSH连接,将一个或多个文件复制到所述SCP命令指定的N个第一目标节点,通过所述第一目标节点将所述一个或多个文件复制到M个第二目标节点,其中,N大于或等于1的整数,M为大于或等于N的整数。
本实施例节点管理方法用于中运维管理系统中,运维管理系统为一种分布式系统,在系统中包括多台设备,该多台设备协同工作,共同对外提供数据存储或其他功能。采用Python作为可视化脚本编写及执行工具,通过建立管理节点和分布式节点之间的SSH连接,并通过密钥交换,在通讯的时候不用额外手动输入密码,可以便捷地进行通讯。管理人员下发安全复制SCP命令给管理节点,管理节点会将需要复制的一个或多个文件通过指定的N个目标节点发送给其余需要复制文件的目标节点,这些文件可以是软件、文档、升级包等等。目标节点也即被管理节点。因此,本实施例节点管理方法旨在解决相关技术中存在所有分布式节点都依靠管理节点直接分发文件才能完成文件复制任务而导致的性能瓶颈问题,同时,应用本实施例节点管理方法由于无需人工手动进行一一部署,节约了时间成本和人力成本大量的人力成本,有效提高了大规模分布式系统中的软件部署效率。
以下将对各个步骤进行详细说明:
步骤S10,基于安全外壳协议SSH连接管理目标节点,并通过密钥分发完成所述目标节点之间互信访问;
在一实施例中,通过管理节点对不同类型主机集群进行SSH连接,其中,SSH为Secure Shell安全外壳协议,专为远程登录会话和其他网络服务提供安全性的协议。SSH采用了非对称加密技术(RSA)加密了所有传输的数据,保证了连接的安全。但是每次使用SSH登陆需要输入密码,为了方便,可以使用密钥免密码登陆。首先,创建一对密匙,并把公匙放在需要访问的节点(服务器)上。此时,在.ssh目录中会生成3个文件,其中id_rsa为私钥文件,id_rsa.pub为公钥文件。ssh会把每个访问过计算机的公钥(public key)都记录在known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免系统受到DNS Hijack之类的攻击。之后在远程服务器中添加本地生成的公钥(id_rsa),则之后再登陆和传输文件的时候就不需要再多次填写密码了。
其中,节点可以是工作站、客户、网络用户或个人计算机,还可以是服务器、打印机和其他网络连接的设备。需要说明的是,在实际应用中节点多为服务器或主机,在下文中,以主机作为节点的一种实施例进行说明,也即可以认为下文中出现的主机即为节点。
参照图3,图3为本发明节点管理方法一实施例通过密钥分发完成不同节点互信访问的示意图。管理主机,也即管理节点,可以给单独的主机(节点)发送shell密钥,也可以给一个集群主机(节点)发shell密钥,也可以给多个不同应用类型的集群主机发送shell密钥,从而实现一个节点、一个或多个集群内多个节点与管理节点的通讯。
步骤S20,当接收到安全复制SCP命令时,基于所述SSH连接,将一个或多个文件复制到所述SCP命令指定的N个第一目标节点,通过所述第一目标节点将所述一个或多个文件复制到M个第二目标节点,其中,N大于或等于1的整数,M为大于或等于N的整数。
在一实施例中,管理节点接收下发的安全复制SCP命令。通过SCP命令可以实现从本地复制文件到远程或者从远程复制文件到本地。其中,SCP是securecopy的缩写,SCP是linux系统下基于SSH登陆进行安全的远程文件拷贝命令。通常进行拷贝时需要知道被拷贝主机(或服务器)的ip号,以及对方的密钥。管理节点能够远程与被管理节点(目标节点)通过安全外壳协议SSH连接,并通过密钥分发完成同一类型主机集群内不同节点之间互信访问后,通过SCP进行文件的批量复制,能大大提高远程拷贝文件的效率。需要说明的是,N会小于管理节点所管理的总目标节点的总数。其中M为大于或等于N的整数,每一个第一目标节点可以对应一个第二目标节点,也可以每个第一目标节点对应多个,实现管理节点通过少量第一目标节点实现对更大量的第二目标节点的管理。本实施例不需要从管理节点往一一往被管理节点上去拷,而是从管理节点向个别主机(N个第一目标节点)拷,并定义直接拷贝后拥有待拷贝文件的主机为第一角色,定义未拷贝文件的主机为第二角色,初始的第二角色的数量为M个,通过第一角色给第二角色拷贝文件,使第二角色在拥有待拷贝文件后转变为第一角色,反复进行第一角色选取和与第二角色匹配的步骤,直到完成全部拷贝任务。需要说明的是,只需要下发一个命令给管理节点,管理节点在接收到命令后,会根据命令中的要求匹配第一角色和第二角色,整个过程由管理节点管理,能够大大减少用户所需要操作的步骤。相比于传统的点对点复制方式,能减少管理节点的带宽占用。例如:以传统点对点方式向100台电脑复制文件,则管理节点需要同时向100台电脑进行文件发送任务,而以本实施例的方式则只需要管理节点先向几台指定的电脑发送文件,例如5台,当这5台电脑收到文件后就成为系统定义的第一角色,根据部署脚本,这5台电脑会根据相关配置文件与对应的电脑进行通讯,并由这5台电脑向其他电脑(第二角色)发送文件,例如由5台分别向25台发送文件,相当于一个第一角色对应5个第二角色,并由一个第一角色实现5台电脑的文件拷贝,进而可以再由25台电脑分别向其余70台电脑发送文件,则相比于传统的点对点发送方式,只需要占用少量带宽就能完成文件拷贝任务,并且能够显著提高批量分发的效率。
本实施例基于管理节点实现,管理节点随时动态获取的每个节点的密钥,使得用户可以使用SSH连接到每个目标节点。管理节点允许用户使用SCP在一个命令中批量复制一个或多个文件到N个第一目标节点,再通过第一目标节点将文件发送给M个第二目标节点,从而大大提高了将文件批量分发至目标节点的效率。
进一步地,基于本发明节点管理方法第一实施例,提出本发明节点管理方法第二实施例。
参照图4,图4为本发明节点管理方法一实施例中步骤S20的细化流程示意图,在第二实施例中,所述当接收到安全复制SCP命令时,基于所述SSH连接,将一个或多个文件复制到所述SCP命令指定的N个第一目标节点,通过所述第一目标节点将所述一个或多个文件复制到M个第二目标节点的步骤包括:
步骤S21,当接收到安全复制SCP命令时,基于所述SSH连接,向所述SCP命令指定的N个第一目标节点发送一个或多个文件,并定义存有所述文件的目标节点为第一角色,未存有所述文件的目标节点为第二角色;
步骤S22,获取元数据信息,所述元数据信息包括:各节点信息、节点间关系、节点角色信息;
步骤S23,获取所述SCP命令对应的部署脚本,所述部署脚本描述要求将所述M个第二目标节点全部转化为所述第一角色;
步骤S24,基于所述元数据信息和所述部署脚本,循环执行选取所述第一角色和所述第二角色,通过所述第一角色发送所述文件给所述第二角色,将所述第二角色变为第一角色,并更新节点角色信息的步骤,直到所述第二角色全部转化为所述第一角色时完成所述SCP命令。
在本实施例中,通过定义第一角色和第二角色,并将第一角色和第二角色进行配对,动态地将第一角色和第二角色角色互换将文件从管理主机复制到所有的多台目标节点(主机)。
以下将对各个步骤进行详细说明:
步骤S21,当接收到安全复制SCP命令时,基于所述SSH连接,向所述SCP命令指定的N个第一目标节点发送一个或多个文件,并定义存有所述文件的目标节点为第一角色,未存有所述文件的目标节点为第二角色;
在一实施例中,首先根据SSH命令向对应的目标节点发送文件。为了快速地进行文件复制(数据分发),会由管理节点向指定部分的第一目标节点先下发文件,再由第一目标节点去分发文件。通常第一目标节点的数量N较少,但是N至少为1个,也即N大于等于1,通过对少量的目标节点直接发送一个或多个文件能够减少管理节点带宽占用。
步骤S22,获取元数据信息,所述元数据信息包括:各节点信息、节点间关系、节点角色信息;
在一实施例中,获取元数据信息。各节点信息指的是各节点是什么,地址,名称等等。节点间关系,指的是在分布式系统中节点之间的主从、主次关系,例如:某个节点是下属于哪一个节点的。节点角色信息,指的是节点属于什么角色,需要说明的是,节点角色信息在任务执行过程是是会发生变化的,例如发生角色转变时,会实时更新节点角色信息,方便管理节点后续进行角色匹配。通常使用etcd存储平台各节点信息、节点间关系、节点角色信息等的元数据信息。etcd是一个非常可靠的kv存储系统,常在分布式系统中存储着关键的数据。
步骤S23,获取所述SCP命令对应的部署脚本,所述部署脚本描述要求将所述M个第二目标节点全部转化为所述第一角色;
在一实施例中,根据SCP命令获取其对应的部署脚本,部署脚本是声明式命令,定义了需要将M个第二目标节点全部变成第一角色,则管理节点会根据这个部署脚本去执行任务。可以理解的,在第一目标节点还没有开始复制的时候,第二目标节点全都是第二角色。其中,部署脚本还可以将M个目标节点进行划分,将其分为多个区域,则可以分区域选取对应区域内的第二角色,并将其转化为第一角色。其中,部署脚本包括了hosts文件,是目标节点进行数据下发所必需的文件,包括不同目标节点的关系以及实现目标节点之间通讯所要的密码文件等。
步骤S24,基于所述元数据信息和所述部署脚本,循环执行选取所述第一角色和所述第二角色,通过所述第一角色发送所述文件给所述第二角色,将所述第二角色变为第一角色,并更新节点角色信息的步骤,直到所述第二角色全部转化为所述第一角色时完成所述SCP命令。
在一实施例中,根据元数据信息和部署脚本,通过管理节点将第一角色和第二角色进行动态角色互换,将第二角色变为第一角色后,再找新的第二角色,将其变成第一角色,直到需要复制文件的所有第二目标节点都变成第二角色,认为是完成SCP命令。可以理解的,元数据信息记载了目标节点之间的关系、目标节点的角色信息,部署脚本规定了执行任务,因此当获取到元数据信息和部署脚本后,管理节点可以进行第一角色的选择,当然部署脚本中也规定了初始第一角色数量,包括每次选取几组第一角色和第二角色等等。在执行了一次将第二角色变为第一角色的步骤后,第二目标节点的角色信息就会发生变化,因此需要进行更新,这样就不会出现重复选择的情况。
进一步地,在一实施例中,所述选取所述第一角色和所述第二角色,通过所述第一角色发送所述文件给所述第二角色,将所述第二角色变为第一角色的步骤包括:
步骤S241,选取所述第一角色和所述第二角色,并进行组队;
步骤S242,当组队后,通过所述第一角色为所述文件计算MD5标识码;
步骤S243,通过所述第一角色将所述文件和所述MD5标识码发送给所述第二角色;
步骤S244,当所述第二角色接收到所述文件和所述MD5标识码后,通过MD5算法对所述第二角色接收到的文件进行散列计算,得到校验码;
步骤S245,判断所述校验码与所述MD5标识码是否一致;
步骤S246,若是,则确定已将所述第二角色变为第一角色。
在一实施例中,选取第一角色和所述第二角色,并进行组队。具体地,可以对目标节点进行划区域管理,例如分发了一个文件给第一目标节点1,第一目标节点1所属区域里共有10个目标,其余9个为第二目标节点,则将第一目标节点1做为第一角色,其余第二目标节点作为第二角色,一一组队进行文件复制。例如:目标节点1与目标节点2组队,目标节点1将文件发给目标节点2,则目标节点2确认接收到文件后变为了第一角色,此时可以将目标节点1与目标节点3组队,目标节点2与目标节点4组队,继续进行文件复制任务,直到该区域内的第二目标节点都变为第一角色,也即完成文件复制。
进一步地,在进行文件传输的时候会为文件计算其唯一标识码——MD5码,通常只需要由主管理节点计算一次MD5标识码,再下发给N个目标节点即可。MD5是一种公开的加密算法,通过对接收的传输数据执行散列运算来检查数据的正确性。如果发送方发送的文件MD5码和接收方接收到文件后使用同样方式计算得到的MD5码相同,则说明文件在传输过程中没有被更改、或者传输的是正确文件,则当第二角色接收到文件后就变为了第一角色。
举例对本实施例节点管理方法进行说明:首先定义本机具备该复制内容的主机定义为M,本机不具备该复制内容的主机定义为S(即未完成复制任务的主机),用户可以同时通过动态M和S角色互换将文件从管理主机(节点)复制到所有的多台主机,实现过程如下:
通过声明式API算法下发Deployment到Master部件(也即管理节点)。Deployment描述要求区域内将角色S全部转化为角色M。所谓“声明式”,指的就是只需要提交一个定义好的API对象来“声明”,表示所期望的最终状态是什么样子就可以了。
Master部件(管理节点)在区域内进行选对,将一个M和一个S角色组队。组队后,角色M将角色S变为角色M。一直循环,直到达到部署脚本Deployment定义的终结状态(图示如附图5~9,图5~9分别为本发明节点管理方法一实施例中文件复制的流程示意图a~e)。
a、如图5所示,Master部件命中一组主机(两台)【M(IP1)、S(IP4)】。
b、如图6所示,主机M(IP1)执行复制任务,目标是将S(IP4)转变为M(IP4)。
c、如图7所示,Master部件命中两组主机【M(IP1)、S(IP2)】【M(IP4)、S(IP10)】
d、如图8所示,主机M(IP1)执行复制任务,目标是将S(IP2)转变为M(IP2)。主机M(IP4)执行复制任务,目标是将S(IP10)转变为M(IP10)
e、如图9所示,循环执行,最终将所有节点的角色转变为M。
本实施例通过SSH将管理节点与各目标节点相连,并且目标节点之间能够实现通讯,则在接收到SCP命令后,通过对部分目标节点(第一目标节点)下发一个或多个文件使其变为最初始一批N个第一角色,并根据元数据信息和SCP命令,进一步地选取第二角色与第一角色进行匹配,并且由第一角色将文件传输给第二角色,使其变为拥有文件的第一角色,循环执行将第二角色变为第一角色的步骤,最终将一个或多个文件从指定的N个目标节点复制到M个第二目标节点,实现文件的高效批量复制。
进一步地,基于本发明管理方法的在前实施例,提出本发明管理方法的第三实施例。
参照图10,图10为本发明节点管理方法一实施例中步骤S10的细化流程示意图,所述基于安全外壳协议SSH连接管理目标节点,并通过密钥分发完成所述目标节点之间互信访问的步骤包括:
步骤S11,获取参与SSH会话的目标节点的配置文件,所述目标节点包括一个或多个;
在一实施例中,获取需要连接的目标节点的配置文件。可以理解的,由于需要进行SSH通讯,因此必不可少的是所要连接的网络地址(IP),还可以包括访问服务器中文件时需要的用户名、密码信息等。目标节点可以是一个或者多个,也可以是一群节点所构成的节点集群。
步骤S12,通过所述管理节点为用户创建非对称密钥对,并将所述非对称密钥对中的第一公钥存储到所述用户的授权公钥文件中;
在一实施例中,管理节点为当前用户创建一个RSA标识密钥对(如果尚不存在)。RSA算法的密钥分为公钥和私钥,两者内容不同,用途也不同。公钥用于加密,一般交给客户端使用;私钥用于解密,一般由服务器管理。可以在你的.ssh目录下看到两个文件,id_rsa就是你的私钥,而id_ras.pub则是你的公钥,该密钥对中的公钥被添加到当前用户的authorized_keys文件中。第一次连接远程节点时我们可以发现我们本地的.ssh/目录下多了一个文件known_hosts(已知主机),里面有我们刚刚连接的服务器的信息。known_hosts的作用就是记录你曾经远程连接过的机器信息,也就是说我可以随时通过添加主机(节点)IP来连接,更新用户的known_hosts。
步骤S13,分发管理节点的第二公钥给所述目标节点,建立与所述目标节点的连接,并更新所述用户的已知节点文件;
在一实施例中,将管理节点的第二公钥分发给所需要建立通讯的目标节点。可以理解的,当目标节点拥有公钥后就能与管理节点进行免密通讯,因此需要将第二公钥分发给目标节点。
步骤S14,基于所述授权公钥文件、所述已知节点文件、所述第二公钥实现所述目标节点之间的互信访问;
在一实施例中,管理节点将用户的第二公钥发给目标节点后,通过获取authorized_keys(授权公钥文件)、known_hosts(已知节点文件)和id_rsa.pub(第二公钥)文件以进行设置,可以实现所有目标节点之间的互信访问。并且管理节点可以随时动态指定的每台主机的主机密钥更新当前用户的known_hosts(已知节点文件)。
进一步地,在一实施例中,所述基于安全外壳协议SSH连接管理目标节点,并通过密钥分发完成所述目标节点之间互信访问的步骤之前,所述方法包括:
步骤S15,以预设方式对所述参与SSH会话的所述目标节点进行分类,得到主机集群;
在一实施例中,以预设方式对参与SSH会话的目标节点进行分类,得到主机集群。具体地,预设方式可以根据实际需求进行选择,例如将所有服务器是MySQL数据库的作为一类,得到对应的主机集群。具体地,可以使用通配符来实现分组。
步骤S16,获取每类主机集群中对应的所述目标节点的IP地址或主机名,并为每一类主机集群生成对应的所述配置文件。
在一实施例中,获取各类主机集群中每一个目标节点的IP或者主机名,并对应生成配置文件。需要为每一类生成一个hosts文件(配置文件),通过获取每一类中每一个主机的IP地址,并将其写在一个hosts文件中,可以在后续下发指令的时候下发到某一类的节点,实现批量命令部署。其中,主机名可以在SSH配置中直接定义。
进一步地,在一实施例中,所述基于安全外壳协议SSH连接管理目标节点,并通过密钥分发完成所述目标节点之间互信访问的步骤之后,所述方法还包括:
步骤S30,获取用户的指定命令,基于所述SSH连接控制指定命令对应的目标节点执行指令。
在一实施例中,基于SSH连接,可以批量地对目标节点执行命令。具体地,将命令发送给以实现连接的目标节点,类似文件复制,可以将指令先发送给一部分目标节点,再由这部分目标节点将指令下发,例如文件收集指令,可以基于分布式的目标节点管理,一层一层地将文件收集汇总到管理节点。需要说明的是,用户的指定命令可以有多种,并且用户的指令命令也可以是脚本,通过管理节点可以更简洁的进行批量主机自动升级、应用自动部署等,极大的降低应用部署与管理成本,提高业务敏捷性。能够使得使用者自己定制批量完成对主机执行脚本、命令,实现对多台主机的各种批量运维操作。
进一步地,在一实施例中,所述获取用户的指定命令,基于所述SSH连接控制所述指定命令对应的目标节点执行指令的步骤包括:
步骤S31,检测所述用户是否在命令行上指定命令;
步骤S32,若否,则进入交互模式,获取用户在交互模式中输入所述主机可执行的命令,得到所述指定命令;
步骤S33,基于所述SSH连接和用户的指定命令,控制所述目标节点执行指令。
在一实施例中,管理节点(master)允许用户使用SSH(安全shell)一次在多台主机(S)上运行bash shell命令。bash shell是一个命令解释器,它在操作系统的最外层,负责用户程序与内核进行交互操作的一种接口,将用户输入的命令翻译给操作系统,并将处理后的结果输出至屏幕。使用shell可以实现对Linux系统的大部分管理,例如:文件管理、用户管理、权限管理、磁盘管理、网络管理、软件管理、应用管理。
在本实施例中,允许用户在命令行上指定一个命令(或者脚本)来执行单个命令(或者脚本),指定参与SSH会话的主机或主机名列表的文件。
如果用户没有在命令行上指定命令,则可以省略该命令以进入交互模式。交互模式中,在命令提示符处,允许用户像在常规bash终端命令行中那样友好的输入命令,并且该命令将在会话涉及的所有主机(节点)上执行。
本实施例中阐述了建立SSH连接的详细步骤,通过密钥交换实现了用户与管理节点之间的通讯,并且通过管理节点与目标节点之间的密钥交换,可以最终实现用户对目标节点的管理;并且管理节点(master)提供了一种轻量化的同时对多台主机批量执行命令的能力。用户无需提前编写命令,而是可以随时对所选主机执行任何命令,并实时查看命令输出,主机输出界面更友好。
本发明还提供一种管理装置。如图11所示,图11是本发明节点管理装置一实施例的功能模块示意图。
本发明节点管理装置包括:
连接模块10,用于基于安全外壳协议SSH连接管理目标节点,并通过密钥分发完成所述目标节点之间互信访问;
执行模块20,用于当接收到安全复制SCP命令时,基于所述SSH连接,将一个或多个文件复制到所述SCP命令指定的N个第一目标节点,通过所述第一目标节点将所述一个或多个文件复制到M个第二目标节点,其中,N大于或等于1的整数,M为大于或等于N的整数。
可选地,所述执行模块还用于:
当接收到安全复制SCP命令时,基于所述SSH连接,向所述SCP命令指定的N个第一目标节点发送一个或多个文件,并定义存有所述文件的目标节点为第一角色,未存有所述文件的目标节点为第二角色;
获取元数据信息,所述元数据信息包括:各节点信息、节点间关系、节点角色信息;
获取所述SCP命令对应的部署脚本,所述部署脚本描述要求将所述M个第二目标节点全部转化为所述第一角色;
基于所述元数据信息和所述部署脚本,循环执行选取所述第一角色和所述第二角色,通过所述第一角色发送所述文件给所述第二角色,将所述第二角色变为第一角色,并更新节点角色信息的步骤,直到所述第二角色全部转化为所述第一角色时完成所述SCP命令。
可选地,所述执行模块还用于:
选取所述第一角色和所述第二角色,并进行组队当组队后,通过所述第一角色为所述文件计算MD5标识码;
通过所述第一角色将所述文件和所述MD5标识码发送给所述第二角色;
当所述第二角色接收到所述文件和所述MD5标识码后,通过MD5算法对所述第二角色接收到的文件进行散列计算,得到校验码;
判断所述校验码与所述MD5标识码是否一致;
若是,则确定已将所述第二角色变为第一角色。
可选地,所述连接模块还用于:
获取参与SSH会话的目标节点的配置文件,所述目标节点包括一个或多个;
通过所述管理节点为用户创建非对称密钥对,并将所述非对称密钥对中的第一公钥存储到所述用户的授权公钥文件中;
将所述管理节点的第二公钥分发给所述目标节点,建立所述管理节点与所述目标节点的连接,并更新所述用户的已知节点文件;
基于所述授权公钥文件、所述已知节点文件、所述第二公钥实现所述目标节点之间的互信访问。
可选地,所述连接模块还用于:
以预设方式对所述参与SSH会话的所述目标节点进行分类,得到主机集群;获取每类主机集群中对应的所述目标节点的IP地址或主机名,并为每一类主机集群生成对应的所述配置文件。
可选地,所述执行模块还用于:
获取用户的指定命令,基于所述SSH连接控制指定命令对应的目标节点执行指令。
可选地,所述执行模块还用于:
检测所述用户是否在命令行上指定命令;
若否,则进入交互模式,获取用户在交互模式中输入所述主机可执行的命令,得到所述指定命令;
基于所述SSH连接和用户的指定命令,控制所述目标节点执行指令。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有管理程序,所述管理程序被处理器执行时实现如上所述的管理方法的步骤。
其中,在所述处理器上运行的管理程序被执行时所实现的方法可参照本发明管理方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个拉曼光谱数据处理”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种节点管理方法,其特征在于,所述节点管理方法应用于管理节点,所述节点管理方法包括以下步骤:
基于安全外壳协议SSH连接管理目标节点,并通过密钥分发完成所述目标节点之间互信访问;
当接收到安全复制SCP命令时,基于所述SSH连接,将一个或多个文件复制到所述SCP命令指定的N个第一目标节点,通过所述第一目标节点将所述一个或多个文件复制到M个第二目标节点,其中,N大于或等于1的整数,M为大于或等于N的整数。
2.如权利要求1所述的节点管理方法,其特征在于,所述当接收到安全复制SCP命令时,基于所述SSH连接,将一个或多个文件复制到所述SCP命令指定的N个第一目标节点,通过所述第一目标节点将所述一个或多个文件复制到M个第二目标节点的步骤包括:
当接收到安全复制SCP命令时,基于所述SSH连接,向所述SCP命令指定的N个第一目标节点发送一个或多个文件,并定义存有所述文件的目标节点为第一角色,未存有所述文件的目标节点为第二角色;
获取元数据信息,所述元数据信息包括:各节点信息、节点间关系、节点角色信息;
获取所述SCP命令对应的部署脚本,所述部署脚本描述要求将所述M个第二目标节点全部转化为所述第一角色;
基于所述元数据信息和所述部署脚本,循环执行选取所述第一角色和所述第二角色,通过所述第一角色发送所述文件给所述第二角色,将所述第二角色变为第一角色,并更新节点角色信息的步骤,直到所述第二角色全部转化为所述第一角色时完成所述SCP命令。
3.如权利要求2所述的节点管理方法,其特征在于,所述选取所述第一角色和所述第二角色,通过所述第一角色发送所述文件给所述第二角色,将所述第二角色变为第一角色的步骤包括:
选取所述第一角色和所述第二角色,并进行组队;
当组队后,通过所述第一角色为所述文件计算MD5标识码;
通过所述第一角色将所述文件和所述MD5标识码发送给所述第二角色;
当所述第二角色接收到所述文件和所述MD5标识码后,通过MD5算法对所述第二角色接收到的文件进行散列计算,得到校验码;
判断所述校验码与所述MD5标识码是否一致;
若是,则确定已将所述第二角色变为第一角色。
4.如权利要求1所述的节点管理方法,其特征在于,所述基于安全外壳协议SSH连接管理目标节点,并通过密钥分发完成所述目标节点之间互信访问的步骤包括:
获取参与SSH会话的目标节点的配置文件,所述目标节点包括一个或多个;
为用户创建非对称密钥对,并将所述非对称密钥对中的第一公钥存储到所述用户的授权公钥文件中;
分发管理节点的第二公钥给所述目标节点,建立与所述目标节点的连接,并更新所述用户的已知节点文件;
基于所述授权公钥文件、所述已知节点文件、所述第二公钥实现所述目标节点之间的互信访问。
5.如权利要求4所述的节点管理方法,其特征在于,所述基于安全外壳协议SSH连接管理目标节点,并通过密钥分发完成所述目标节点之间互信访问的步骤之前,所述方法包括:
以预设方式对所述参与SSH会话的所述目标节点进行分类,得到主机集群;
获取每类主机集群中对应的所述目标节点的IP地址或主机名,并为每一类主机集群生成对应的所述配置文件。
6.如权利要求1所述的节点管理方法,其特征在于,所述基于安全外壳协议SSH连接管理目标节点,并通过密钥分发完成所述目标节点之间互信访问的步骤之后,所述方法还包括:
获取用户的指定命令,基于所述SSH连接控制所述指定命令对应的目标节点执行指令。
7.如权利要求6所述的节点管理方法,其特征在于,所述获取用户的指定命令,基于所述SSH连接控制所述指定命令对应的目标节点执行指令的步骤包括:
检测所述用户是否在命令行上指定命令;
若否,则进入交互模式,获取用户在交互模式中输入所述主机可执行的命令,得到所述指定命令;
基于所述SSH连接和用户的指定命令,控制所述目标节点执行指令。
8.一种节点管理装置,其特征在于,所述装置包括:
连接模块,用于基于安全外壳协议SSH连接管理目标节点,并通过密钥分发完成所述目标节点之间互信访问;
执行模块,用于当接收到安全复制SCP命令时,基于所述SSH连接,将一个或多个文件复制到所述SCP命令指定的N个第一目标节点,通过所述第一目标节点将所述一个或多个文件复制到M个第二目标节点,其中,N大于或等于1的整数,M为大于或等于N的整数。
9.一种节点管理设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的节点管理程序,所述节点管理程序配置为实现如权利要求1至7中任一项所述的节点管理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有节点管理程序,所述节点管理程序被处理器执行时实现如权利要求1至7任一项所述的节点管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210629286.4A CN115102966A (zh) | 2022-06-01 | 2022-06-01 | 节点管理方法、装置、设备与计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210629286.4A CN115102966A (zh) | 2022-06-01 | 2022-06-01 | 节点管理方法、装置、设备与计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115102966A true CN115102966A (zh) | 2022-09-23 |
Family
ID=83288981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210629286.4A Pending CN115102966A (zh) | 2022-06-01 | 2022-06-01 | 节点管理方法、装置、设备与计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115102966A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1595908A (zh) * | 2004-07-06 | 2005-03-16 | 天津百维软件科技有限公司 | 计算机数据批量快速复制的方法 |
CN110231915A (zh) * | 2019-05-29 | 2019-09-13 | 南昌大学 | 数据管理方法、系统、装置、计算机设备及存储介质 |
CN112306962A (zh) * | 2019-07-26 | 2021-02-02 | 杭州海康威视数字技术股份有限公司 | 计算机集群系统中的文件拷贝方法、装置及存储介质 |
CN112995217A (zh) * | 2021-04-29 | 2021-06-18 | 深圳华锐金融技术股份有限公司 | 数据发送方法、系统 |
-
2022
- 2022-06-01 CN CN202210629286.4A patent/CN115102966A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1595908A (zh) * | 2004-07-06 | 2005-03-16 | 天津百维软件科技有限公司 | 计算机数据批量快速复制的方法 |
CN110231915A (zh) * | 2019-05-29 | 2019-09-13 | 南昌大学 | 数据管理方法、系统、装置、计算机设备及存储介质 |
CN112306962A (zh) * | 2019-07-26 | 2021-02-02 | 杭州海康威视数字技术股份有限公司 | 计算机集群系统中的文件拷贝方法、装置及存储介质 |
CN112995217A (zh) * | 2021-04-29 | 2021-06-18 | 深圳华锐金融技术股份有限公司 | 数据发送方法、系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109478149B (zh) | 混合云计算系统中的访问服务 | |
US7136924B2 (en) | Method and system for parallel operation and control of legacy computer clusters | |
CN112035215B (zh) | 节点集群的节点自治方法、系统、装置及电子设备 | |
US8447963B2 (en) | Method and system for simplifying distributed server management | |
RU2648956C2 (ru) | Предоставление устройств в качестве сервиса | |
CN1627679B (zh) | 网络上的安全动态凭证分发 | |
CN109716726B (zh) | 基于云的应用部署中的凭证管理 | |
US8713177B2 (en) | Remote management of networked systems using secure modular platform | |
EP3488584B1 (en) | Usage tracking in hybrid cloud computing systems | |
CN113711536A (zh) | 从区块链网络中提取数据 | |
AU2019302940A1 (en) | Implementing a blockchain-based web service | |
US8948399B2 (en) | Dynamic key management | |
US20080104661A1 (en) | Managing Policy Settings for Remote Clients | |
KR20010041365A (ko) | 보안 조건의 방법당 지정 | |
WO2020253634A1 (zh) | 一种数据处理方法、系统及装置 | |
JP2014171211A (ja) | 情報処理システム | |
JP2024505692A (ja) | ブロックチェーンネットワークに基づくデータ処理方法、装置及びコンピュータ機器 | |
CN110537354B (zh) | 用于配置虚拟专用网关的系统和方法 | |
US11237997B2 (en) | Target driven zoning for ethernet in non-volatile memory express over-fabrics (NVMe-oF) environments | |
US11063982B2 (en) | Object scope definition for enterprise security management tool | |
JP2023100941A (ja) | ネットワークノードによる情報の伝搬 | |
US10979392B2 (en) | Preventing unauthorized access to secure enterprise information systems using a multi-filtering and randomizing control system | |
CN112306970B (zh) | 一种容器镜像仓库的处理方法、装置、设备和存储介质 | |
US11374979B2 (en) | Graph-based policy representation system for managing network devices | |
CN113728348A (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 |