CN112087516A - 基于Docker虚拟化技术的存储升级方法和装置 - Google Patents

基于Docker虚拟化技术的存储升级方法和装置 Download PDF

Info

Publication number
CN112087516A
CN112087516A CN202010948253.7A CN202010948253A CN112087516A CN 112087516 A CN112087516 A CN 112087516A CN 202010948253 A CN202010948253 A CN 202010948253A CN 112087516 A CN112087516 A CN 112087516A
Authority
CN
China
Prior art keywords
server node
docker
virtual
image file
software
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
Application number
CN202010948253.7A
Other languages
English (en)
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.)
Xsky Beijing Data Technology Corp ltd
Original Assignee
Xsky Beijing Data Technology Corp 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 Xsky Beijing Data Technology Corp ltd filed Critical Xsky Beijing Data Technology Corp ltd
Priority to CN202010948253.7A priority Critical patent/CN112087516A/zh
Publication of CN112087516A publication Critical patent/CN112087516A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于Docker虚拟化技术的存储升级方法和装置。其中,该方法包括:在分布式的服务器节点上部署Docker容器;将Docker镜像文件导入Docker容器关联的服务器节点,其中,Docker镜像文件用于封装预定版本软件;配置服务器节点的虚拟IP,为目标设备提供预定软件版本;替换Docker镜像文件,升级服务器节点上的预定版本软件。本发明解决了相关技术的虚拟化技术伴随着一定程度的虚拟化开销,对性能损耗较大的技术问题。

Description

基于Docker虚拟化技术的存储升级方法和装置
技术领域
本发明涉及存储系统管理技术领域,具体而言,涉及一种基于Docker虚拟化技术的存储升级方法和装置。
背景技术
随着软件技术的进步,同时出于对成本的考量,越来越多的公司尝试用相对廉价且通用的设备去替换掉已有的集中式存储方案,例如,以光纤接口提供大规模存储的设备(Storage Area Network,简称为SAN)、网络挂载存储(Network Attach Storage,简称为NAS)等专用存储,而软硬件分离的软件定义存储(Software Define Storage,简称为SDS)产品也就应运而生。
SDS产品是一种将软件与硬件分离的存储产品,它不要求特定或定制的硬件设备,而是将软件部署在通用的硬件平台上,以软件的形式实现各种存储功能,从而提供质优价廉的存储产品。
NAS是一种传统且流行的存储形式,它运行在以太网络上,不需要额外特定的硬件设备,并且提供服务器信息块(Server Message Block,简称为SMB)、网络文件系统(Network File System,简称为NFS)、文件传输协议(File Transfer Protocol,简称为FTP)等全平台的共享协议,是一种使用非常广泛的存储形式。而它所支持的多种共享协议,也决定了其内部的复杂性,由很多个不同的组件来协同工作而成。
传统的NAS由于软件套件的复杂性,大多是以专业设备的形式交付的,而且升级更新非常麻烦,需要整个系统一起升级,很难做到单独升级某个部件。
而在通常情况下,SDS软件除了部署在全新组建的设备上,也很可能会在客户已有的设备上进行融合部署,而这冗杂在一起的环境也大大增加系统的复杂度以及影响稳定性。例如客户已有特定版本或定制版本的某些软件,恰好与交付的SDS部分软件冲突,而如何解决这些冲突也成为了交付、实施和升级的一大考量。并且,虚拟化技术也伴随着一定程度的虚拟化开销,对性能也有损耗。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种基于Docker虚拟化技术的存储升级方法和装置,以至少解决相关技术的虚拟化技术伴随着一定程度的虚拟化开销,对性能损耗较大的技术问题。
根据本发明实施例的一个方面,提供了一种基于Docker虚拟化技术的存储升级方法,包括:在分布式的服务器节点上部署Docker容器;将Docker镜像文件导入所述Docker容器关联的服务器节点,其中,所述Docker镜像文件用于封装预定版本软件;配置所述服务器节点的虚拟IP,为目标设备提供所述预定软件版本;替换所述Docker镜像文件,升级所述服务器节点上的所述预定版本软件。
可选地,在将Docker镜像文件导入所述Docker容器关联的服务器节点之后,包括:在所述Docker容器启动后,在内部挂载上提供的分布式文件系统作为网络挂载存储的分布式存储的后端;或者,将分布式存储系统提供的基础块存储单元添加到所述Docker容器,作为所述Docker容器的一个标准的块设备,在所述块设备的基础上搭建分布式文件系统。
可选地,在配置所述服务器节点的虚拟IP,为目标设备提供所述预定软件版本之前,包括:启动所述Docker镜像文件关联的Docker容器,其中,所述Docker容器的网络模式设置为预定模式;依据所述预定模式,所述Docker容器直接共享主机的网络命名空间。
可选地,配置所述服务器节点的虚拟IP,为目标设备提供所述预定软件版本包括:配置分布式TDB数据库,其中,配置所述分布式TDB数据库包括以下至少之一:将仲裁锁放置到后端分布式文件系统中、将所述服务器节点的IP信息写入第一文件、将所述虚拟IP和业务网口信息写入第二文件。
可选地,配置所述服务器节点的虚拟IP,为目标设备提供所述预定软件版本包括:在所述服务器节点的心跳丢失时间大于时间阈值的情况下,将所述服务器节点的运行状态标记为掉线状态;或者,在所述服务器节点的周期性执行的健康检查未通过的情况下,将所述服务器节点的运行状态标记为健康异常状态;确定所述掉线状态或者所述健康异常状态对应的所述服务器节点的虚拟IP;将所述虚拟IP切换至将健康的所述服务器节点上;依据健康的所述服务器节点,为所述目标设备提供所述预定软件版本。
可选地,在将所述虚拟IP切换至将健康的所述服务器节点上之后,包括:在所述掉线状态或者所述健康异常状态对应的所述服务器节点的恢复后,所述虚拟IP重新切换至恢复后的所述服务器节点。
可选地,替换所述Docker镜像文件,升级所述服务器节点上的所述预定版本软件包括:停止所述服务器节点上的所述Docker容器;释放所述服务器节点上的虚拟IP,以及通知其他的所述服务器节点接管所述虚拟IP;替换所述Docker镜像文件;重新启动所述Docker容器,升级所述服务器节点上的所述预定软件版本。
根据本发明实施例的另一方面,还提供了一种基于Docker虚拟化技术的存储升级装置,包括:部署模块,用于在分布式的服务器节点上部署Docker容器;导入模块,用于将Docker镜像文件导入所述Docker容器关联的服务器节点,其中,所述Docker镜像文件用于封装预定版本软件;提供模块,用于配置所述服务器节点的虚拟IP,为目标设备提供所述预定软件版本;升级模块,用于替换所述Docker镜像文件,升级所述服务器节点上的所述预定版本软件。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述中任意一项所述的基于Docker虚拟化技术的存储升级方法。
根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述中任意一项所述的基于Docker虚拟化技术的存储升级方法。
在本发明实施例中,采用在分布式的服务器节点上部署Docker容器;将Docker镜像文件导入所述Docker容器关联的服务器节点,其中,所述Docker镜像文件用于封装预定版本软件;配置所述服务器节点的虚拟IP,为目标设备提供所述预定软件版本;替换所述Docker镜像文件,升级所述服务器节点上的所述预定版本软件,通过将Docker镜像文件导入Docker容器关联的服务器节点,以虚拟IP的方式将预定软件版本提供给目标设备,并且可以直接通过替换Docker镜像文件,升级服务器节点上的相关预定版本软件,达到了在线升级并保持业务无中断的目的,从而实现了快捷高效实现网络挂载存储服务,节省虚拟化开销,降低性能损耗的技术效果,进而解决了相关技术的虚拟化技术伴随着一定程度的虚拟化开销,对性能损耗较大的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的基于Docker虚拟化技术的存储升级方法的流程图;
图2是根据本发明实施例的NAS集群的示意图;
图3是根据本发明实施例的NAS集群中的服务器节点处于故障或者离线状态下的示意图;
图4是根据本发明实施例的基于Docker虚拟化技术的存储升级装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种基于Docker虚拟化技术的存储升级方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的基于Docker虚拟化技术的存储升级方法的流程图,如图1所示,该基于Docker虚拟化技术的存储升级方法包括如下步骤:
步骤S102,在分布式的服务器节点上部署Docker容器;
NAS集群可以包括多个服务器节点,图2是根据本发明实施例的NAS集群的示意图,如图2所示,该NAS集群中有1-n个服务器节点,其中,每个服务器节点可以部署Docker容器、FTP、SMB、NFS、虚拟IP等,这些服务器节点对应有1-n个虚拟IP,这些虚拟IP可以使得目标设备从相应的服务器节点获得预定版本软件,进而可以操作这些预定版本软件。其中,上述目标设备包括但不限于网络设备,客户机等。另外,从1个到n个服务器节点都可以任意组成大大小小的集群,灵活高效,方便管理。
步骤S104,将Docker镜像文件导入Docker容器关联的服务器节点,其中,Docker镜像文件用于封装预定版本软件;
上述Docker镜像文件是一种轻量级的虚拟化,它是一种弱隔离技术,Docker容器内系统与宿主机共用内核,只进行了必要的用户态运行环境打包,因此,Docker镜像文件可以做到镜像体积小,实例启动非常快,并且几乎不耗费额外的系统资源。需要说明的是,Docker镜像文件具有不挑环境、交付方便、有隔离无依赖的特点。
作为一种可选的的实施例,可以以Docker镜像文件的方式进行交付,安装部署在所有服务器节点上。在具体实施过程中,例如,可以导入一个几百兆的Docker镜像文件。
上述Docker镜像文件封装有预定版本软件,其中,在具体实施过程中,对于预定版本软件的数量的并不作任何限定。
需要说明的是,上述Docker镜像文件的形式,方便交付和升级。例如,Docker镜像文件体积不大;Docker镜像文件是一个独立完整的包,不是零散的一堆软件;Docker容器能够隔离系统中其他已有的软件,不会与已有的软件产生冲突;Docker容器具有耗资源少启动快速等优点。
步骤S106,配置服务器节点的虚拟IP,为目标设备提供预定软件版本;
上述虚拟IP分配到服务器节点,该服务器节点可以通过该虚拟IP为目标设备提供预定软件版本。
其中,可以采用虚拟IP与分布式文件系统结合的方式,提供完整NAS协议,实现分布式多活NAS存储系统。而对于后端分布式存储系统,可以为有需要的客户定制替换原方案中的Ceph原生提供的分布式文件系统(CephFS)到其他流行的分布式文件系统,例如,一种开源的分布式文件系统(GlusterFS)、一种出自Google的开源的分布式文件系统(GFS2)、一种开源的分布式并行文件系统(Lustre)、一种面向大数据的分布式文件系统(HDFS)等,不影响其他集群逻辑。
作为一种可选的实施例,可以根据服务器节点的健康状态进行虚拟IP的分配和漂移。
在具体实施过程中,NAS集群以分布式文件系统作为后端,分布式TDB数据库(Clusterd TDB database,简称为CTDB)作为集群管理软件,使集群能够自主管理及故障恢复,并以多虚拟IP的方式提供NAS访问地址,实现一种分布式多活的高性能NAS存储系统。
步骤S108,替换Docker镜像文件,升级服务器节点上的预定版本软件。
作为一种可选的实施例,以替换镜像文件的方式进行滚动升级,可在线升级并保持业务无中断。
以分布式的提供了高可用、高性能、大带宽的NAS存储系统,且不限定节点数量为两两成对或奇数偶数个,非常的灵活方便。
需要说明的是,以Docker镜像文件的形式,将整个NAS软件以一个精简且独立的方式交付给客户,运行在客户已有或新建的环境上,既能做到有效隔离,也能做到快速启动,并且后续能够以替换Docker镜像文件的方式平滑简捷地进行在线升级NAS软件。其中,NAS存储有NAS软件,NAS软件可以包括预定版本软件。
通过上述步骤,可以实现采用在分布式的服务器节点上部署Docker容器,再将Docker镜像文件导入Docker容器关联的服务器节点,其中,Docker镜像文件用于封装预定版本软件,进一步地配置服务器节点的虚拟IP,为目标设备提供预定软件版本,以及替换Docker镜像文件,升级服务器节点上的预定版本软件,在上述实施方式中,通过导入Docker容器关联的服务器节点,以虚拟IP的方式将预定软件版本提供给目标设备,并且可以直接通过替换Docker镜像文件,升级服务器节点上的相关预定版本软件,达到了在线升级并保持业务无中断的目的,从而实现了快捷高效实现网络挂载存储服务,节省虚拟化开销,降低性能损耗的技术效果,进而解决了相关技术的虚拟化技术伴随着一定程度的虚拟化开销,对性能损耗较大的技术问题。
可选地,在将Docker镜像文件导入Docker容器关联的服务器节点之后,包括:在Docker容器启动后,在内部挂载上提供的分布式文件系统作为网络挂载存储的分布式存储的后端;或者,将分布式存储系统提供的基础块存储单元添加到Docker容器,作为Docker容器的一个标准的块设备,在块设备的基础上搭建分布式文件系统。
作为一种可选的实施例,由于存储引擎是分布式存储,它能够提供原生的分布式文件系统存储,例如,可以在Docker容器启动后,在内部挂载上提供的分布式文件系统作为网络挂载存储的分布式存储的后端。还可以将分布式存储系统提供的基础块存储单元添加到Docker容器,作为Docker容器的一个标准的块设备,在块设备的基础上搭建分布式文件系统。需要说明的是,在具体实施过程中,对于后端的分布式文件系统不作任何限定,可以满足各种分布式文件系统。
需要说明的是,可以对接多种分布式文件系统的后端,在具体实施过程中,对于多种分布式文件系统的后端不作任何限定。
可选地,在配置服务器节点的虚拟IP,为目标设备提供预定软件版本之前,包括:启动Docker镜像文件关联的Docker容器,其中,Docker容器的网络模式设置为预定模式;依据预定模式,Docker容器直接共享主机的网络命名空间。
作为一种可选的实施例,可以利用Docker镜像文件启动一个Docker容器,其中,网络模式可以选择network=host为预定模式,Docker容器将直接共享主机的网络命名空间,获得无损耗的网络性能,实现最高的物理网卡带宽。在具体实施过程中,对于预定模式并不作任何限定,可以根据应用需要进行选择。
需要说明的是,Docker容器以network=host为预定模式的网络驱动方式运行,不创建额外的虚拟网络,直接共享并使用主机的网络配置和硬件,获得无损的网络性能,提供NAS需要的大带宽、低时延特性。
可选地,配置服务器节点的虚拟IP,为目标设备提供预定软件版本包括:配置分布式TDB数据库,其中,配置分布式TDB数据库包括以下至少之一:将仲裁锁放置到后端分布式文件系统中、将服务器节点的IP信息写入第一文件、将虚拟IP和业务网口信息写入第二文件。
作为一种可选的实施例,采用分布式TDB数据库来管理整个NAS集群,在对CTDB进行简单必要的配置后,CTDB即可自主监控并管理整个NAS集群,进行虚拟IP的分配和漂移,无须外部管理软件的介入。在具体实施过程中,可以将CTDB的仲裁锁放置到后端分布式文件系统中,然后将各个服务器节点的IP信息写入/etc/ctdb/nodes文件,将虚拟IP和业务网口信息写入/etc/ctdb/public_addresses文件,最后可以启动CTDB服务。
其中,将所有NAS网关节点IP信息写入/etc/ctdb/nodes文件,将需要提供的虚拟IP和业务网卡写入/etc/ctdb/public_addresses文件,例如:
#cat/etc/ctdb/nodes
10.252.8.184
10.252.8.136
10.252.8.183
#cat/etc/ctdb/public_addresses
10.252.8.38/24sriov-enp61s0f0
10.252.8.37/24sriov-enp61s0f0
10.252.8.36/24sriov-enp61s0f0
可选地,配置服务器节点的虚拟IP,为目标设备提供预定软件版本包括:在服务器节点的心跳丢失时间大于时间阈值的情况下,将服务器节点的运行状态标记为掉线状态;或者,在服务器节点的周期性执行的健康检查未通过的情况下,将服务器节点的运行状态标记为健康异常状态;确定掉线状态或者健康异常状态对应的服务器节点的虚拟IP;将虚拟IP切换至将健康的服务器节点上;依据健康的服务器节点,为目标设备提供预定软件版本。
作为一种可选的实施例,CTDB会自主监控所有服务器节点的健康状态,图3是根据本发明实施例的NAS集群中的服务器节点处于故障或者离线状态下的示意图,如图3所示,如与某节点心跳丢失超过10秒,则主动标记该节点为掉线状态;或某个节点周期性执行的健康检查不通过,则主动标记该节点为健康异常状态。
需要说明的是,以上两种错误都会让CTDB标记该节点不可用。并且如果之前有给该节点分配虚拟IP,CTDB会自动执行虚拟IP切换,让该虚拟IP漂移至集群中的某个健康节点上,来实现持续地提供NAS服务。
可选地,在将虚拟IP切换至将健康的服务器节点上之后,包括:在掉线状态或者健康异常状态对应的服务器节点的恢复后,虚拟IP重新切换至恢复后的服务器节点。
在具体实施过程中,待错误的服务器节点(也就是掉线状态或者健康异常状态对应的服务器节点)恢复后,CTDB会重新使能其接管虚拟IP的能力。
通过上述实施方式,NAS集群能够自我监测、管理、修复各个节点的状态,自动移除故障节点,并且行虚拟IP的切换和恢复,无需额外组件。
可选地,替换Docker镜像文件,升级服务器节点上的预定版本软件包括:停止服务器节点上的Docker容器;释放服务器节点上的虚拟IP,以及通知其他的服务器节点接管虚拟IP;替换Docker镜像文件;重新启动Docker容器,升级服务器节点上的预定软件版本。
作为一种可选的实施例,在后续升级软件系统版本时,可首先逐个节点的停止Docker容器,被停止容器内的CTDB会主动释放虚拟IP,并通知其他节点接管此虚拟IP;然后替换Docker镜像文件,接着重新启动Docker容器,最后启动Docker容器内的CTDB,即可实现软件版本的升级。因此,通过滚动替换的方式能够使NAS集群持续的提供服务,实现在线升级。
作为一种可选的实施例,Docker容器提供SMB/NFS/FTP三种标准的NAS协议接口,内部包含有定制的samba软件提供SMB协议支持,与宿主机共用nfsd软件提供NFS协议支持,有定制的vsftpd软件提供FTP协议支持,再配合上CTDB分配的虚拟IP,NAS集群可以以分布式多活的方式提供高带宽的NAS存储服务。
实施例2
根据本发明实施例的另一方面,还提供了一种基于Docker虚拟化技术的存储升级装置,图4是根据本发明实施例的基于Docker虚拟化技术的存储升级装置的示意图,如图4所示,该基于Docker虚拟化技术的存储升级装置包括:部署模块42、导入模块44、提供模块46和升级模块48。下面对该基于Docker虚拟化技术的存储升级装置进行详细说明。
部署模块42,用于在分布式的服务器节点上部署Docker容器;导入模块44,连接至上述部署模块42,用于将Docker镜像文件导入Docker容器关联的服务器节点,其中,Docker镜像文件用于封装预定版本软件;提供模块46,连接至上述导入模块44,用于配置服务器节点的虚拟IP,为目标设备提供预定软件版本;升级模块48,连接至上述提供模块46,用于替换Docker镜像文件,升级服务器节点上的预定版本软件。
由上述可知,该实施例中的基于Docker虚拟化技术的存储升级装置,可以采用部署模块42在分布式的服务器节点上部署Docker容器,再利用导入模块将Docker镜像文件导入Docker容器关联的服务器节点,其中,Docker镜像文件用于封装预定版本软件,进一步利用提供模块44配置服务器节点的虚拟IP,为目标设备提供预定软件版本,以及利用升级模块46替换Docker镜像文件,升级服务器节点上的预定版本软件,在上述实施方式中,通过将Docker镜像文件导入Docker容器关联的服务器节点,以虚拟IP的方式将预定软件版本提供给目标设备,并且可以直接通过替换Docker镜像文件,升级服务器节点上的相关预定版本软件,达到了在线升级并保持业务无中断的目的,从而实现了快捷高效实现网络挂载存储服务,节省虚拟化开销,降低性能损耗的技术效果,进而解决了相关技术的虚拟化技术伴随着一定程度的虚拟化开销,对性能损耗较大的技术问题。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,例如,对于后者,可以通过以下方式实现:上述各个模块可以位于同一处理器中;或者,上述各个模块以任意组合的方式位于不同的处理器中。
此处需要说明的是,上述部署模块42、导入模块44、提供模块46和升级模块48对应于实施例1中的步骤S102至S108,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
可选地,在将Docker镜像文件导入Docker容器关联的服务器节点之后,上述装置包括:第一处理模块,用于在Docker容器启动后,在内部挂载上提供的分布式文件系统作为网络挂载存储的分布式存储的后端;或者,第二处理模块,用于将分布式存储系统提供的基础块存储单元添加到Docker容器,作为Docker容器的一个标准的块设备,在块设备的基础上搭建分布式文件系统。
可选地,在配置服务器节点的虚拟IP,为目标设备提供预定软件版本之前,上述装置包括:启动模块,用于启动Docker镜像文件关联的Docker容器,其中,Docker容器的网络模式设置为预定模式;共享模块,用于依据预定模式,Docker容器直接共享主机的网络命名空间。
可选地,上述提供模块包括:配置单元,用于配置分布式TDB数据库,其中,配置分布式TDB数据库包括以下至少之一:将仲裁锁放置到后端分布式文件系统中、将服务器节点的IP信息写入第一文件、将虚拟IP和业务网口信息写入第二文件。
可选地,上述提供模块包括:第一标记单元,用于在服务器节点的心跳丢失时间大于时间阈值的情况下,将服务器节点的运行状态标记为掉线状态;或者,第二标记单元,用于在服务器节点的周期性执行的健康检查未通过的情况下,将服务器节点的运行状态标记为健康异常状态;确定单元,用于确定掉线状态或者健康异常状态对应的服务器节点的虚拟IP;切换单元,用于将虚拟IP切换至将健康的服务器节点上;提供单元,用于依据健康的服务器节点,为目标设备提供预定软件版本。
可选地,在将虚拟IP切换至将健康的服务器节点上之后,上述提供模块包括:恢复单元,用于在掉线状态或者健康异常状态对应的服务器节点的恢复后,虚拟IP重新切换至恢复后的服务器节点。
可选地,上述升级模块包括:停止单元,用于停止服务器节点上的Docker容器;释放单元,用于释放服务器节点上的虚拟IP,以及通知其他的服务器节点接管虚拟IP;替换单元,用于替换Docker镜像文件;升级单元,用于重新启动Docker容器,升级服务器节点上的预定软件版本。
实施例3
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述中任意一项的基于Docker虚拟化技术的存储升级方法。
可选地,在本实施例中,上述计算机可读存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中,上述计算机可读存储介质包括存储的程序。
可选地,在程序运行时控制计算机可读存储介质所在设备执行以下功能:在分布式的服务器节点上部署Docker容器;将Docker镜像文件导入Docker容器关联的服务器节点,其中,Docker镜像文件用于封装预定版本软件;配置服务器节点的虚拟IP,为目标设备提供预定软件版本;替换Docker镜像文件,升级服务器节点上的预定版本软件。
实施例4
根据本发明实施例的另一方面,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行上述中任意一项的基于Docker虚拟化技术的存储升级方法。
本申请实施例提供了一种设备,该设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:在分布式的服务器节点上部署Docker容器;将Docker镜像文件导入Docker容器关联的服务器节点,其中,Docker镜像文件用于封装预定版本软件;配置服务器节点的虚拟IP,为目标设备提供预定软件版本;替换Docker镜像文件,升级服务器节点上的预定版本软件。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:在分布式的服务器节点上部署Docker容器;将Docker镜像文件导入Docker容器关联的服务器节点,其中,Docker镜像文件用于封装预定版本软件;配置服务器节点的虚拟IP,为目标设备提供预定软件版本;替换Docker镜像文件,升级服务器节点上的预定版本软件。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种基于Docker虚拟化技术的存储升级方法,其特征在于,包括:
在分布式的服务器节点上部署Docker容器;
将Docker镜像文件导入所述Docker容器关联的服务器节点,其中,所述Docker镜像文件用于封装预定版本软件;
配置所述服务器节点的虚拟IP,为目标设备提供所述预定软件版本;
替换所述Docker镜像文件,升级所述服务器节点上的所述预定版本软件。
2.根据权利要求1所述的方法,其特征在于,在将Docker镜像文件导入所述Docker容器关联的服务器节点之后,包括:
在所述Docker容器启动后,在内部挂载上提供的分布式文件系统作为网络挂载存储的分布式存储的后端;
或者,
将分布式存储系统提供的基础块存储单元添加到所述Docker容器,作为所述Docker容器的一个标准的块设备,在所述块设备的基础上搭建分布式文件系统。
3.根据权利要求1所述的方法,其特征在于,在配置所述服务器节点的虚拟IP,为目标设备提供所述预定软件版本之前,包括:
启动所述Docker镜像文件关联的Docker容器,其中,所述Docker容器的网络模式设置为预定模式;
依据所述预定模式,所述Docker容器直接共享主机的网络命名空间。
4.根据权利要求1所述的方法,其特征在于,配置所述服务器节点的虚拟IP,为目标设备提供所述预定软件版本包括:
配置分布式TDB数据库,其中,配置所述分布式TDB数据库包括以下至少之一:将仲裁锁放置到后端分布式文件系统中、将所述服务器节点的IP信息写入第一文件、将所述虚拟IP和业务网口信息写入第二文件。
5.根据权利要求1所述的方法,其特征在于,配置所述服务器节点的虚拟IP,为目标设备提供所述预定软件版本包括:
在所述服务器节点的心跳丢失时间大于时间阈值的情况下,将所述服务器节点的运行状态标记为掉线状态;或者,在所述服务器节点的周期性执行的健康检查未通过的情况下,将所述服务器节点的运行状态标记为健康异常状态;
确定所述掉线状态或者所述健康异常状态对应的所述服务器节点的虚拟IP;
将所述虚拟IP切换至将健康的所述服务器节点上;
依据健康的所述服务器节点,为所述目标设备提供所述预定软件版本。
6.根据权利要求5所述的方法,其特征在于,在将所述虚拟IP切换至将健康的所述服务器节点上之后,包括:
在所述掉线状态或者所述健康异常状态对应的所述服务器节点的恢复后,所述虚拟IP重新切换至恢复后的所述服务器节点。
7.根据权利要求1至6中任一项所述的方法,其特征在于,替换所述Docker镜像文件,升级所述服务器节点上的所述预定版本软件包括:
停止所述服务器节点上的所述Docker容器;
释放所述服务器节点上的虚拟IP,以及通知其他的所述服务器节点接管所述虚拟IP;
替换所述Docker镜像文件;
重新启动所述Docker容器,升级所述服务器节点上的所述预定软件版本。
8.一种基于Docker虚拟化技术的存储升级装置,其特征在于,包括:
部署模块,用于在分布式的服务器节点上部署Docker容器;
导入模块,用于将Docker镜像文件导入所述Docker容器关联的服务器节点,其中,所述Docker镜像文件用于封装预定版本软件;
提供模块,用于配置所述服务器节点的虚拟IP,为目标设备提供所述预定软件版本;
升级模块,用于替换所述Docker镜像文件,升级所述服务器节点上的所述预定版本软件。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的基于Docker虚拟化技术的存储升级方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的基于Docker虚拟化技术的存储升级方法。
CN202010948253.7A 2020-09-10 2020-09-10 基于Docker虚拟化技术的存储升级方法和装置 Pending CN112087516A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010948253.7A CN112087516A (zh) 2020-09-10 2020-09-10 基于Docker虚拟化技术的存储升级方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010948253.7A CN112087516A (zh) 2020-09-10 2020-09-10 基于Docker虚拟化技术的存储升级方法和装置

Publications (1)

Publication Number Publication Date
CN112087516A true CN112087516A (zh) 2020-12-15

Family

ID=73736341

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010948253.7A Pending CN112087516A (zh) 2020-09-10 2020-09-10 基于Docker虚拟化技术的存储升级方法和装置

Country Status (1)

Country Link
CN (1) CN112087516A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014445A (zh) * 2021-02-08 2021-06-22 中国工商银行股份有限公司 用于服务器的运维方法、装置、平台及电子设备
CN113467893A (zh) * 2021-07-14 2021-10-01 山石网科通信技术股份有限公司 虚拟机自动化测试方法、装置、存储介质及处理器
CN116112500A (zh) * 2023-02-08 2023-05-12 北京志凌海纳科技有限公司 一种基于故障探测和路由策略的nfs高可用系统及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107547661A (zh) * 2017-10-12 2018-01-05 福建富士通信息软件有限公司 一种高性能且高可用的容器负载均衡实现方法
CN107797807A (zh) * 2016-08-29 2018-03-13 阿里巴巴集团控股有限公司 生成容器的方法、装置、终端、服务器与系统
CN108737468A (zh) * 2017-04-19 2018-11-02 中兴通讯股份有限公司 云平台服务集群、构建方法及装置
CN111104321A (zh) * 2019-12-16 2020-05-05 烽火通信科技股份有限公司 一种基于docker的云平台稳定性测试方法及系统
CN111414180A (zh) * 2020-03-18 2020-07-14 深圳力维智联技术有限公司 终端远程更新方法、设备及计算机可读存储介质
CN111427600A (zh) * 2020-03-20 2020-07-17 成都千立网络科技有限公司 一种基于docker的平台系统部署升级方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107797807A (zh) * 2016-08-29 2018-03-13 阿里巴巴集团控股有限公司 生成容器的方法、装置、终端、服务器与系统
CN108737468A (zh) * 2017-04-19 2018-11-02 中兴通讯股份有限公司 云平台服务集群、构建方法及装置
CN107547661A (zh) * 2017-10-12 2018-01-05 福建富士通信息软件有限公司 一种高性能且高可用的容器负载均衡实现方法
CN111104321A (zh) * 2019-12-16 2020-05-05 烽火通信科技股份有限公司 一种基于docker的云平台稳定性测试方法及系统
CN111414180A (zh) * 2020-03-18 2020-07-14 深圳力维智联技术有限公司 终端远程更新方法、设备及计算机可读存储介质
CN111427600A (zh) * 2020-03-20 2020-07-17 成都千立网络科技有限公司 一种基于docker的平台系统部署升级方法及系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014445A (zh) * 2021-02-08 2021-06-22 中国工商银行股份有限公司 用于服务器的运维方法、装置、平台及电子设备
CN113014445B (zh) * 2021-02-08 2022-11-11 中国工商银行股份有限公司 用于服务器的运维方法、装置、平台及电子设备
CN113467893A (zh) * 2021-07-14 2021-10-01 山石网科通信技术股份有限公司 虚拟机自动化测试方法、装置、存储介质及处理器
CN113467893B (zh) * 2021-07-14 2024-02-02 山石网科通信技术股份有限公司 虚拟机自动化测试方法、装置、存储介质及处理器
CN116112500A (zh) * 2023-02-08 2023-05-12 北京志凌海纳科技有限公司 一种基于故障探测和路由策略的nfs高可用系统及方法
CN116112500B (zh) * 2023-02-08 2023-08-15 北京志凌海纳科技有限公司 一种基于故障探测和路由策略的nfs高可用系统及方法

Similar Documents

Publication Publication Date Title
US11444765B2 (en) Methods and apparatus to manage credentials in hyper-converged infrastructures
US20220019474A1 (en) Methods and apparatus to manage workload domains in virtual server racks
US9720682B2 (en) Integrated software and hardware system that enables automated provisioning and configuration of a blade based on its physical location
CN112087516A (zh) 基于Docker虚拟化技术的存储升级方法和装置
CN111124277B (zh) 一种深度学习数据集缓存方法、系统、终端及存储介质
CN107924336A (zh) 用于虚拟服务器机架部署中的分散式机架体系架构的硬件管理系统
CN106569895A (zh) 一种基于容器的多租户大数据平台构建方法
CN106302771A (zh) 一种基于Docker容器创建的应用的域名配置方法
CN112506617B (zh) Kubernetes集群中边车容器的镜像更新方法及装置
CN113504954B (zh) 调用CSI LVM Plugin插件、动态持久卷供应的方法、系统及介质
US9847903B2 (en) Method and apparatus for configuring a communication system
CN113032085A (zh) 云操作系统的管理方法、装置、服务器、管理系统及介质
US10652100B2 (en) Computer system and method for dynamically adapting a software-defined network
CN109002354B (zh) 一种基于OpenStack的计算资源容量弹性伸缩方法及系统
CN113204353B (zh) 一种大数据平台组件部署方法及装置
CN112084007A (zh) 基于虚拟机技术的nas存储升级方法和装置
CN111158872B (zh) 一种提交并守护spark任务的方法及装置
CN102073523A (zh) 实现软件版本同步的方法及装置
US20170070573A1 (en) Communication device, communication system, and data processing device
CN116126457A (zh) 容器迁移方法和服务器集群
Bekas et al. Cross-layer management of a containerized NoSQL data store
EP3545402B1 (en) Methods for dynamically managing access to logical unit numbers in a distributed storage area network environment and devices thereof
EP3997569A1 (en) Controller for bridging database architectures
CN111444062A (zh) 管理云数据库的主节点和从节点的方法及装置
US20220215001A1 (en) Replacing dedicated witness node in a stretched cluster with distributed management controllers

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
CB02 Change of applicant information

Address after: 100094 101, floors 1-5, building 7, courtyard 3, fengxiu Middle Road, Haidian District, Beijing

Applicant after: Beijing Xingchen Tianhe Technology Co.,Ltd.

Address before: 100097 room 806-1, block B, zone 2, Jinyuan times shopping center, indigo factory, Haidian District, Beijing

Applicant before: XSKY BEIJING DATA TECHNOLOGY Corp.,Ltd.

CB02 Change of applicant information