CN114003341A - 分布式存储服务的升级方法、装置、电子设备及存储介质 - Google Patents

分布式存储服务的升级方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114003341A
CN114003341A CN202111282904.4A CN202111282904A CN114003341A CN 114003341 A CN114003341 A CN 114003341A CN 202111282904 A CN202111282904 A CN 202111282904A CN 114003341 A CN114003341 A CN 114003341A
Authority
CN
China
Prior art keywords
new
updated
visitor object
iscsi target
visitor
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
CN202111282904.4A
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.)
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Original Assignee
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software 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 Beijing Topsec Technology Co Ltd, Beijing Topsec Network Security Technology Co Ltd, Beijing Topsec Software Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN202111282904.4A priority Critical patent/CN114003341A/zh
Publication of CN114003341A publication Critical patent/CN114003341A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种分布式存储服务的升级方法、装置、电子设备及存储介质。包括:获取新iSCSI目标进程和新调度者进程,利用新iSCSI目标进程和新调度者进程替换待更新iSCSI目标进程和待更新调度者进程;向待更新访问者对象发送IO重定向指令,以开启IO重定向通道,并通过IO重定向通道将环形队列中的SCSI命令以及从分布式存储返回的SCSI命令发送给新调度者进程;向虚拟机发送IO路径切换指令,以使虚拟机根据IO路径切换指令断开与待更新iSCSI目标进程的通信,并建立与新iSCSI目标进程的通信;将环形队列迁移到新访问者对象中,以完成对待更新访问者对象的更新。本申请不会影响物理服务器中虚拟机的正常工作。

Description

分布式存储服务的升级方法、装置、电子设备及存储介质
技术领域
本申请涉及超融合系统技术领域,具体而言,涉及一种分布式存储服务的升级方法、装置、电子设备及存储介质。
背景技术
超融合系统包含存储管理软件和商用硬件,通常应用虚拟存储设备。超融合系统中包括多个物理服务器,物理服务器上的所有物理刺痛由分布式存储系统统一管理和抽象成一个存储资源池。每台物理服务器都启用一个iSCSI Target(tgtd)进程作为分布式存储系统的接入服务。虚拟机使用的虚拟磁盘作为iSCSI Initiator通过iSCSI协议连接iSCSITarget上的LUN。逻辑单元号LUN作为一个逻辑存储设备,是从分布式存储系统中划分的一段存储资源,通常是按照容量空间划分LUN。
现有的针对分布式存储服务进行升级后,需要对iSCSI Target(tgtd)进程进行重启,从而导致虚拟机工作受影响。
发明内容
本申请实施例的目的在于提供一种分布式存储服务的升级方法、装置、电子设备及存储介质,用以解决在对分布式存储服务进行升级时,需要重启iSCSI Target进程导致对物理服务器中的所有的虚拟机工作受影响的技术问题。
第一方面,本申请实施例提供一种分布式存储服务的升级方法,包括:获取新访问者对象的新iSCSI目标进程和新调度者进程,并利用所述新iSCSI目标进程和所述新调度者进程替换待更新访问者对象中的待更新iSCSI目标进程和待更新调度者进程;向所述待更新访问者对象发送IO重定向指令,以使所述待更新访问者对象中的待更新调度者进程开启IO重定向通道,并通过所述IO重定向通道将环形队列中存储系统的SCSI命令以及从分布式存储返回的SCSI命令发送给所述新调度者进程;向虚拟机发送IO路径切换指令,以使所述虚拟机根据所述IO路径切换指令断开与所述待更新访问者对象中的待更新iSCSI目标进程的通信,并建立与所述新iSCSI目标进程的通信;将所述待更新访问者对象中的环形队列迁移到新访问者对象中,以完成对所述待更新访问者对象的更新。
本申请实施例在对访问者对象进行更新时,先替换新版本的程序,然后开启IO重定向通道,将存储在环形队列中的SCSI命令发送给新调度者进程,再将环形队列迁移到新访问者对象中,以完成对访问者对象的更新,不需要重启物理服务器中所有虚拟机对应的进程,不会影响物理服务器中虚拟机的正常工作。
在任一实施例中,所述获取新访问者对象的新iSCSI目标进程和新调度者进程,并利用所述新iSCSI目标进程和所述新调度者进程替换待更新访问者对象中的待更新iSCSI目标进程和待更新调度者进程,包括:获取所述新iSCSI目标进程对应的二进制程序和新调度者进程对应二进制程序;利用所述新iSCSI目标进程的二进制程序替换所述待更新iSCSI目标进程的二进制程序;利用所述新调度者进程的二进制程序替换所述待更新调度者进程的二进制程序;启动所述新iSCSI目标进程和所述新调度者进程。
本申请实施例通过用新iSCSI目标进程的二进制程序替换待更新iSCSI目标进程的二进制程序,用新调度者进程的二进制程序替换待更新调度者进程的二进制程序,以实现对访问者对象中的进程进行更新。
在任一实施例中,所述将所述待更新访问者对象中的环形队列迁移到新访问者对象中,包括:将所述待更新访问者对象中环形队列对应的地址添加到所述新访问者对象的环形队列中。以实现对环形队列的迁移,并且这种迁移不会影响物理服务器中虚拟机的正常工作。
在任一实施例中,在向所述待更新访问者对象发送IO重定向指令之后,所述方法还包括:若所述待更新调度者进程中的SCSI处理命令全部处理完成,以及所述待更新访问者对象中的环形队列中的所述SCSI命令全部发送给所述新调度者进程,则关闭所述IO重定向通道。
在任一实施例中,在完成对所述待更新访问者对象的更新之后,所述方法还包括:将所述待更新访问者对象进行删除处理。由于待更新访问者是基于老版本的二进制启动的,无法再次复用,因此,将其删除处理,降低了对内存的占用。
在任一实施例中,在完成对所述待更新访问者对象的更新之后,所述方法还包括:接收所述虚拟机发送的iSCSI数据包;通过新访问者对象的iSCSI目标进程将所述iSCSI数据包解析为SCSI命令,并将所述SCSI命令存储至所述新访问者对象的环形队列中,所述SCSI命令是针对目标逻辑单元号的逻辑块设备进行操作的命令;通过所述新访问者对象的新调度者进程从所述环形队列中读取和处理所述SCSI命令,获得SCSI处理命令;向分布式存储系统发送所述SCSI处理命令,以使所述分布式存储系统返回所述SCSI处理命令对应的操作结果。本申请实施例中虚拟机通过iSCSI Initiator访问的iSCSI目标进程是1比1的,当iSCSI Target进程或调度者进程出现异常时,影响范围控制在同一个访问者对象内部,虚拟机不共用访问者对象,因此其他虚拟机的正常使用,不会受到影响。
第二方面,本申请实施例提供一种分布式存储服务的升级装置,包括:获取模块,用于获取新访问者对象的新iSCSI目标进程和新调度者进程,并利用所述新iSCSI目标进程和所述新调度者进程替换待更新访问者对象中的待更新iSCSI目标进程和待更新调度者进程;重定向模块,用于向所述待更新访问者对象发送IO重定向指令,以使所述待更新访问者对象中的待更新调度者进程开启IO重定向通道,并通过所述IO重定向通道将环形队列中存储系统的SCSI命令以及从分布式存储返回的SCSI命令发送给所述新调度者进程;切换模块,用于向虚拟机发送IO路径切换指令,以使所述虚拟机根据所述IO路径切换指令断开与所述待更新访问者对象中的待更新iSCSI目标进程的通信,并建立与所述新iSCSI目标进程的通信;迁移模块,用于将所述待更新访问者对象中的环形队列迁移到新访问者对象中,以完成对所述待更新访问者对象的更新。
第三方面,本申请实施例提供一种物理服务器,包括:处理器、存储器和总线,其中,所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法。
第四方面,本申请实施例提供一种非暂态计算机可读存储介质,包括:所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法。
第五方面,本申请实施例提供一种分布式存储系统,包括多个第三方面所述的物理服务器,多个所述物理服务器中的存储器由所述系统统一管理。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为对比方案提供的一种超融合系统架构图;
图2为本申请实施例提供的新的超融合系统框架示意图;
图3为本申请实施例提供的一种分布式存储服务的升级方法流程示意图;
图4为本申请实施例提供的另一种分布式存储服务的升级方法示意图;
图5为本申请实施例提供的一种分布式存储服务的升级装置结构示意图;
图6为本申请实施例提供的电子设备实体结构示意图。
具体实施方式
为便于理解,对本申请实施例中所涉及到的相关特征进行解释:
超融合基础架构(Hyper-Converged Infrastructure,HCI),是一种集成了存储设备及虚拟运算的信息基础架构框架。在这样的架构环境中,同一厂商的服务器与存储等硬件单元,搭配虚拟化软件,被集成在一个机箱之中。
超融合系统是指采用超融合基础架构(HCI)来管理存储相关的软件和硬件,通常应用于虚拟存储设备。超融合系统采用以虚拟机(Virtual Machine,VM)为中心的策略将存储管理、数据保护和网络集成到一个盒子,从而为用户提供虚拟机的相关服务。
iSCSI(Internet Small Computer System Interface):是一种基于TCP/IP网络以及SCSI-3的存储协议,由互联网工程任务组IETF提出并成为正式的标准。iSCSI为客户端-服务器架构形式,位于客户端的称为iSCSI Initiator,位于服务端的称为iSCSITarget(iSCSI目标进程)。
iSCSI Initiator(iSCSI发起者进程)创建虚拟SCSI设备,并接收该SCSI设备写入或读取的IO请求,这些请求经过SCSI协议封装,统称为SCSI命令。之后将SCSI命令/数据块封装成iSCSI包,接着再封装成TCP包、IP报文,并通TCP/IP网络发送。
iSCSI Target与iSCSI Initiator建立TCP连接,并接收Initiator发送的请求,解封装后得到iSCSI包、SCSI命令,最终解析SCSI命令,并将数据落地存储。
TGT是在Linux系统中使用比较广泛的iSCSI Target的软件。TGT完全在用户态实现iSCSI服务端,避免STGT和LIO的纯内核态实现,当服务端出现漏洞(bug),容易导致内核崩溃。在分布式存储系统中,需要多种高级功能如IOPS限制,网络RAID,纠删码特性,Cache,采用TGT框架增加,可以避免内核开发,提升稳定性。
逻辑单元号(Logical Unit Number,LUN),是指一个逻辑存储设备的设备标识号,即按逻辑上的空间需求使用的存储设备标识号,可以是指从分布式存储系统中划分的一段存储空间资源,通常可以按照容量空间来划分LUN。
图1为对比方案提供的一种超融合系统架构图,如图1所示,超融合系统包括多个物理服务器,每个物理服务器中包括至少一个虚拟机和至少一个磁盘,所有的物理服务器对应的磁盘有超融合系统统一管理。每台物理服务器都启用一个iSCSI Target(tgtd)进程作为分布式存储系统的接入服务,每个虚拟机对应一个逻辑单元号,逻辑单元号LUN作为一个逻辑存储设备,是从分布式存储系统中划分的一段存储资源,通常是按照容量空间划分LUN。虚拟机中的虚拟磁盘作为iSCSI Initiator,通过iSCSI协议连接iSCSI Target上的LUN。
由于同一台物理服务器上的虚拟机共享一个iSCSI Target(tgtd)进程,在对iSCSI Target(tgtd)进程进行升级时,需要对该进程进行重启,从而会影响到该物理服务器上所有虚拟机的正常工作。
为了解决该技术问题,本申请实施例提供一种分布式存储服务的升级方法,该方法通过将iSCSI目标进程和调度者进程进行更新,然后开启IO重定向通道,使得环形队列中的SCSI命令发送给新调度者进程,再向虚拟机发送IO路径切换指令,使得虚拟机访问新的访问者对象,在环形队列中的SCSI命令全部发送给新调度者进程中后,将环形队列迁移到新访问者对象中,从而完成了使用新访问者对象替换原来的访问者对象,实现了对原来的访问者对象的升级。在整个升级过程中,不会停止对业务的处理,因此,不会影响虚拟机的正常工作。
由于该升级方法是基于新的超融合系统框架下的,因此,在介绍升级方法之前,先对新的超融合系统框架进行描述,图2为本申请实施例提供的新的超融合系统框架示意图,如图2所示,该超融合系统可以包括多个物理服务器;每个物理服务器上均运行着至少一个虚拟机,每个虚拟机对应一个访问者对象(Accessor)。虚拟机通过使用iSCSI协议经过内核协议栈与服务器上的访问者对象相互通信。一个访问者对象中包括一个iSCSI目标进程(Target Process)、一个环形队列(Ring Queue)和一个调度者(Dispatcher)进程。
其中,该iSCSI目标进程与调度者进程通过环形队列相互通信(接收和发送SCSI命令),该iSCSI目标进程只针对一个逻辑单元号(LUN)的逻辑块设备进行操作(例如增加或者减少该逻辑块设备的空间)。
环形队列用于临时存储SCSI命令,目的是通过持久化环形队列解决异常宕机导致少量数据丢失和虚拟机文件系统需要修复的问题。环形队列通常是基于共享内存实现。本申请实施例中的环形队列结构除了共享内存的非持久化环形队列实现,还引入超高速存储设备(如Intel Optane,三星Z-SSD)的数据持久化环形队列实现。
当物理服务器出现宕机、断电等导致需要重启的异常,虚拟机出现崩溃、卡死等需要重启的异常时,如果基于内存的非持久化环形队列中有数据,将导致丢失少量数据,可能同时造成虚拟机的虚拟磁盘需要修复文件系统,无法正常启动。非持久化环形队列可以避免这种问题,当虚拟机重启时,将环形队列中的数据从超高速存储设备中取出,刷到分布式存储后,LUN再开始提供服务,虚拟机将从LUN读取操作系统数据,启动系统。
上述的超融合系统还可以包括分布式存储系统,分布式存储系统是将分散的多个存储设备(例如多个磁盘)以一个虚拟弹性可扩展的整体进行管理的系统。也就是说,上面的物理服务器直连的磁盘可以被分布式存储系统管理,也可以不被分布式存储系统所管理。当物理服务器直连的磁盘被分布式存储系统管理时,访问者对象与分布式存储系统是采用传输控制协议/因特网互联协议(Transmission Control Protocol/InternetProtocol,TCP/IP)相互通信的。当物理服务器直连的磁盘没有被分布式存储系统管理时,就是物理服务器与该磁盘直接通过SCSI协议相互通信。
本申请实施例提供的超融合系统中,虚拟机通过iSCSI Initiator访问的iSCSITarget是1比1的,当iSCSI Target进程或Dispatcher进程出现异常时,影响范围控制在同一个Accessor对象内部,虚拟机不共用Accessor对象,因此其他虚拟机的正常使用,不会受到影响。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
图3为本申请实施例提供的一种分布式存储服务的升级方法流程示意图,如图3所示,该方法应用于上述实施例提供的新的超融合系统中的升级模块,该升级模块为新的超融合系统中的一个功能模块,该方法包括:
步骤301:获取新访问者对象的新iSCSI目标进程和新调度者进程,并利用所述新iSCSI目标进程和所述新调度者进程替换待更新访问者对象中的待更新iSCSI目标进程和待更新调度者进程。
其中,新访问者对象是待更新访问者对象的升级版本,本申请实施例的目的是对待更新访问者对象进行更新升级,即用新访问者对象代替待更新访问者对象。新访问者对象包括新iSCSI目标进程和新调度者进程,可以理解的是,新iSCSI目标进程和新调度者进程为预先创建好的。在接收到新iSCSI目标进程和新调度者进程后,利用新iSCSI目标进程替换待更新iSCSI目标进程,利用新调度者进程替换待更新调度者进程。
应当说明的是,环形队列不需要重新创建,在新iSCSI目标进程替换待更新iSCSI目标进程,以及新调度者进程替换待更新调度者进程后,启动新访问者对象所需的进程,新iSCSI目标进程和新调度者进程指向待更新访问者对象中的环形队列,也就是说,新iSCSI目标进程和新调度者进程与待更新访问者对象中的环形队列通信。
步骤302:向所述待更新访问者对象发送IO重定向指令,以使所述待更新访问者对象中的待更新调度者进程开启IO重定向通道,并通过所述IO重定向通道将环形队列中存储系统的SCSI命令以及从分布式存储返回的SCSI命令发送给所述新调度者进程。
在具体的实施过程中,升级模块向待更新访问者对象发送IO重定向指令,该指令用于使待更新调度者进程开启IO重定向通道。在开启IO重定向通道后,待更新调度者进程从环形队列中获取临时存储的SCSI命令,通过IO重定向通道将环形队列中临时存储的SCSI命令,以及自身从分布式存储中接收的SCSI命令都发送给新调度者进程。
步骤303:向虚拟机发送IO路径切换指令,以使所述虚拟机根据所述IO路径切换指令断开与所述待更新访问者对象中的待更新iSCSI目标进程的通信,并建立与所述新iSCSI目标进程的通信。
在具体的实施过程中,由于物理服务器中的每一个虚拟机与一个访问者对象对应,因此,升级模型向与待更新访问者对象对应的虚拟机发送IO路径切换指令,从而使得虚拟机端在与待更新iSCSI目标进程的通信,并建立与新iSCSI目标进程的通信,从而使得虚拟机利用iSCSI协议通过iSCSI Initiator访问新访问者对象中新iSCSI目标进程的LUN。
步骤304:将所述待更新访问者对象中的环形队列迁移到新访问者对象中,以完成对所述待更新访问者对象的更新。
在具体的实施过程中,在确定环形队列中SCSI命令都转移给新更新调度者进程调度者后,将环形队列从待更新访问者对象中释放,并纳入到新访问者对象中。具体实现方式可以是将待更新访问者对象中环形队列的地址删除,并将删除的地址写入新访问者对象中。
本申请实施例在对访问者对象进行更新时,先替换新版本的程序,然后开启IO重定向通道,将存储在环形队列中的SCSI命令发送给新调度者进程,再将环形队列迁移到新访问者对象中,以完成对访问者对象的更新,不需要重启物理服务器中所有虚拟机对应的进程,不会影响物理服务器中虚拟机的正常工作。
在上述实施例的基础上,通过如下方式实现对待更新iSCSI目标进程和待更新调度者进程的升级:
获取新iSCSI目标进程对应的二进制程序和新调度者进程对应二进制程序;可以理解的是,上述二进制程序都是预先由编写好的。
利用新iSCSI目标进程的二进制程序替换待更新iSCSI目标进程的二进制程序;利用新调度者进程的二进制程序替换所述待更新调度者进程的二进制程序;
在替换完成后,启动新iSCSI目标进程和所述新调度者进程。
本申请实施例通过用新iSCSI目标进程的二进制程序替换待更新iSCSI目标进程的二进制程序,用新调度者进程的二进制程序替换待更新调度者进程的二进制程序,以实现对访问者对象中的进程进行更新。
在上述实施例的基础上,在向所述待更新访问者对象发送IO重定向指令之后,所述方法还包括:
若所述待更新调度者进程中的SCSI处理命令全部处理完成,以及所述待更新访问者对象中的环形队列中的所述SCSI命令全部发送给所述新调度者进程,则关闭所述IO重定向通道。
在具体的实施过程中,如果待更新调度者进程中的SCSI处理命令全部处理完成,并且待更新访问者对象中的环形队列中的SCSI命令全部发送给所述新调度者进程,则说明待更新访问者对象中没有要执行的命令了,此时可以将IO重定向通道关闭。
图4为本申请实施例提供的另一种分布式存储服务的升级方法示意图,如图4所示:
步骤①:将新Accessor对象的二进制程序(如iSCSI Target和Dispatcher的二进制程序)替换操作系统中待更新Accessor对象的二进制程序,替换完成后,启动新Accessor对象所需要的进程,但Ring无需创建,而是指向待更新Accessor对象的Ring。
步骤②:超融合系统的升级模块通知待更新Accessor对象的待更新Dispatcher进程打开IO重定向通道,将从Ring中获取的SCSI命令和分布式存储返回的SCSI命令都转发给新Accessor对象的新Dispatcher进程处理。
步骤③:超融合的升级模块通知虚拟机切换IO路径到新Accessor对象,将访问新iSCSI Target对象的LUN。
步骤④:待更新Accessor对象被接管切换后,将不再提供服务,并且将Ring中的命令快速下发,通过IO重定向通道交给新Accessor对象的新Dispatcher进程处理。
步骤⑤:等待待更新Accessor对象待更新Dispatcher进程正在处理的命令和Ring中的命令重定向都完成后,将关闭IO重定向通道。
步骤⑥:待更新Accessor对象释放Ring,新Accessor对象将Ring纳入管理。
步骤⑦:待更新Accessor对象中的进程是基于老版本的二进制启动,无法再次复用,需要关闭所有进程,销毁其资源。
在上述实施例的基础上,在完成对所述待更新访问者对象的更新之后,所述方法还包括:
将所述待更新访问者对象进行删除处理。
在具体的实施过程中,在完成新访问者对象替换待更新访问者对象后,由于待更新访问者对象中的待更新iSCSI目标进程和待更新调度者进程是基于老版本的二进制程序启动的,因此没有办法再次复用。为了降低对内存的占用,将待更新访问者对象中的待更新iSCSI目标进程和待更新调度者进程关闭,并销毁其资源。
在上述实施例的基础上,在完成对所述待更新访问者对象的更新之后,虚拟机与分布式存储系统的数据交互方法是通过新访问者对象实现,具体方法如下步骤:
步骤1:接收虚拟机发送的iSCSI数据包;
步骤2:通过与虚拟机通信连接的新访问者对象的iSCSI目标进程将iSCSI数据包解析为SCSI命令,并将SCSI命令存储至新访问者对象的环形队列中,可以理解的是,SCSI命令是针对目标逻辑单元号的逻辑块设备LUN进行操作的命令。
步骤3:通过新访问者对象的新调度者进程从环形队列中读取和处理SCSI命令,获得SCSI处理命令;
步骤4:向分布式存储系统发送SCSI处理命令,分布式存储系统在接收到该SCSI处理命令后,对SCSI处理命令进行处理,并向新调度者进程返回处理结果,新调度者进程在接收到该处理结果后,将该处理结果打包成SCSI命令,并再次写入环形队列中。
图5为本申请实施例提供的一种分布式存储服务的升级装置结构示意图,该装置可以是电子设备上的模块、程序段或代码。应理解,该装置与上述图3方法实施例对应,能够执行图3方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。所述装置包括:获取模块501、重定向模块502、切换模块503和迁移模块504,其中:
获取模块501用于获取新访问者对象的新iSCSI目标进程和新调度者进程,并利用所述新iSCSI目标进程和所述新调度者进程替换待更新访问者对象中的待更新iSCSI目标进程和待更新调度者进程;重定向模块502用于向所述待更新访问者对象发送IO重定向指令,以使所述待更新访问者对象中的待更新调度者进程开启IO重定向通道,并通过所述IO重定向通道将环形队列中存储系统的SCSI命令以及从分布式存储返回的SCSI命令发送给所述新调度者进程;切换模块503用于向虚拟机发送IO路径切换指令,以使所述虚拟机根据所述IO路径切换指令断开与所述待更新访问者对象中的待更新iSCSI目标进程的通信,并建立与所述新iSCSI目标进程的通信;迁移模块504用于将所述待更新访问者对象中的环形队列迁移到新访问者对象中,以完成对所述待更新访问者对象的更新。
在上述实施例的基础上,获取模块501具体用于:
获取所述新iSCSI目标进程对应的二进制程序和新调度者进程对应二进制程序;
利用所述新iSCSI目标进程的二进制程序替换所述待更新iSCSI目标进程的二进制程序;
利用所述新调度者进程的二进制程序替换所述待更新调度者进程的二进制程序;
启动所述新iSCSI目标进程和所述新调度者进程。
在上述实施例的基础上,迁移模块504具体用于:
将所述待更新访问者对象中环形队列对应的地址添加到所述新访问者对象的环形队列中。
在上述实施例的基础上,该装置还包括通道关闭模块,用于:
若所述待更新调度者进程中的SCSI处理命令全部处理完成,以及所述待更新访问者对象中的环形队列中的所述SCSI命令全部发送给所述新调度者进程,则关闭所述IO重定向通道。
在上述实施例的基础上,该装置还包括删除模块,用于:
将所述待更新访问者对象进行删除处理。
在上述实施例的基础上,该装置还包括命令处理模块,用于:
接收所述虚拟机发送的iSCSI数据包;
通过新访问者对象的iSCSI目标进程将所述iSCSI数据包解析为SCSI命令,并将所述SCSI命令存储至所述新访问者对象的环形队列中,所述SCSI命令是针对目标逻辑单元号的逻辑块设备进行操作的命令;
通过所述新访问者对象的新调度者进程从所述环形队列中读取和处理所述SCSI命令,获得SCSI处理命令;
向分布式存储系统发送所述SCSI处理命令,以使所述分布式存储系统返回所述SCSI处理命令对应的操作结果。
图6为本申请实施例提供的电子设备实体结构示意图,如图6所示,所述电子设备,包括:处理器(processor)601、存储器(memory)602和总线603;其中,
所述处理器601和存储器602通过所述总线603完成相互间的通信;
所述处理器601用于调用所述存储器602中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:获取新访问者对象的新iSCSI目标进程和新调度者进程,并利用所述新iSCSI目标进程和所述新调度者进程替换待更新访问者对象中的待更新iSCSI目标进程和待更新调度者进程;向所述待更新访问者对象发送IO重定向指令,以使所述待更新访问者对象中的待更新调度者进程开启IO重定向通道,并通过所述IO重定向通道将环形队列中存储系统的SCSI命令以及从分布式存储返回的SCSI命令发送给所述新调度者进程;向虚拟机发送IO路径切换指令,以使所述虚拟机根据所述IO路径切换指令断开与所述待更新访问者对象中的待更新iSCSI目标进程的通信,并建立与所述新iSCSI目标进程的通信;将所述待更新访问者对象中的环形队列迁移到新访问者对象中,以完成对所述待更新访问者对象的更新。
处理器601可以是一种集成电路芯片,具有信号处理能力。上述处理器601可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器602可以包括但不限于随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)等。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取新访问者对象的新iSCSI目标进程和新调度者进程,并利用所述新iSCSI目标进程和所述新调度者进程替换待更新访问者对象中的待更新iSCSI目标进程和待更新调度者进程;向所述待更新访问者对象发送IO重定向指令,以使所述待更新访问者对象中的待更新调度者进程开启IO重定向通道,并通过所述IO重定向通道将环形队列中存储系统的SCSI命令以及从分布式存储返回的SCSI命令发送给所述新调度者进程;向虚拟机发送IO路径切换指令,以使所述虚拟机根据所述IO路径切换指令断开与所述待更新访问者对象中的待更新iSCSI目标进程的通信,并建立与所述新iSCSI目标进程的通信;将所述待更新访问者对象中的环形队列迁移到新访问者对象中,以完成对所述待更新访问者对象的更新。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取新访问者对象的新iSCSI目标进程和新调度者进程,并利用所述新iSCSI目标进程和所述新调度者进程替换待更新访问者对象中的待更新iSCSI目标进程和待更新调度者进程;向所述待更新访问者对象发送IO重定向指令,以使所述待更新访问者对象中的待更新调度者进程开启IO重定向通道,并通过所述IO重定向通道将环形队列中存储系统的SCSI命令以及从分布式存储返回的SCSI命令发送给所述新调度者进程;向虚拟机发送IO路径切换指令,以使所述虚拟机根据所述IO路径切换指令断开与所述待更新访问者对象中的待更新iSCSI目标进程的通信,并建立与所述新iSCSI目标进程的通信;将所述待更新访问者对象中的环形队列迁移到新访问者对象中,以完成对所述待更新访问者对象的更新。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种分布式存储服务的升级方法,其特征在于,包括:
获取新访问者对象的新iSCSI目标进程和新调度者进程,并利用所述新iSCSI目标进程和所述新调度者进程替换待更新访问者对象中的待更新iSCSI目标进程和待更新调度者进程;
向所述待更新访问者对象发送IO重定向指令,以使所述待更新访问者对象中的待更新调度者进程开启IO重定向通道,并通过所述IO重定向通道将环形队列中存储系统的SCSI命令以及从分布式存储返回的SCSI命令发送给所述新调度者进程;
向虚拟机发送IO路径切换指令,以使所述虚拟机根据所述IO路径切换指令断开与所述待更新访问者对象中的待更新iSCSI目标进程的通信,并建立与所述新iSCSI目标进程的通信;
将所述待更新访问者对象中的环形队列迁移到新访问者对象中,以完成对所述待更新访问者对象的更新。
2.根据权利要求1所述的方法,其特征在于,所述获取新访问者对象的新iSCSI目标进程和新调度者进程,并利用所述新iSCSI目标进程和所述新调度者进程替换待更新访问者对象中的待更新iSCSI目标进程和待更新调度者进程,包括:
获取所述新iSCSI目标进程对应的二进制程序和新调度者进程对应二进制程序;
利用所述新iSCSI目标进程的二进制程序替换所述待更新iSCSI目标进程的二进制程序;
利用所述新调度者进程的二进制程序替换所述待更新调度者进程的二进制程序;
启动所述新iSCSI目标进程和所述新调度者进程。
3.根据权利要求1所述的方法,其特征在于,所述将所述待更新访问者对象中的环形队列迁移到新访问者对象中,包括:
将所述待更新访问者对象中环形队列对应的地址添加到所述新访问者对象的环形队列中。
4.根据权利要求1所述的方法,其特征在于,在向所述待更新访问者对象发送IO重定向指令之后,所述方法还包括:
若所述待更新调度者进程中的SCSI处理命令全部处理完成,以及所述待更新访问者对象中的环形队列中的所述SCSI命令全部发送给所述新调度者进程,则关闭所述IO重定向通道。
5.根据权利要求1所述的方法,其特征在于,在完成对所述待更新访问者对象的更新之后,所述方法还包括:
将所述待更新访问者对象进行删除处理。
6.根据权利要求1所述的方法,其特征在于,在完成对所述待更新访问者对象的更新之后,所述方法还包括:
接收所述虚拟机发送的iSCSI数据包;
通过新访问者对象的iSCSI目标进程将所述iSCSI数据包解析为SCSI命令,并将所述SCSI命令存储至所述新访问者对象的环形队列中,所述SCSI命令是针对目标逻辑单元号的逻辑块设备进行操作的命令;
通过所述新访问者对象的新调度者进程从所述环形队列中读取和处理所述SCSI命令,获得SCSI处理命令;
向分布式存储系统发送所述SCSI处理命令,以使所述分布式存储系统返回所述SCSI处理命令对应的操作结果。
7.一种分布式存储服务的升级装置,其特征在于,包括:
获取模块,用于获取新访问者对象的新iSCSI目标进程和新调度者进程,并利用所述新iSCSI目标进程和所述新调度者进程替换待更新访问者对象中的待更新iSCSI目标进程和待更新调度者进程;
重定向模块,用于向所述待更新访问者对象发送IO重定向指令,以使所述待更新访问者对象中的待更新调度者进程开启IO重定向通道,并通过所述IO重定向通道将环形队列中存储系统的SCSI命令以及从分布式存储返回的SCSI命令发送给所述新调度者进程;
切换模块,用于向虚拟机发送IO路径切换指令,以使所述虚拟机根据所述IO路径切换指令断开与所述待更新访问者对象中的待更新iSCSI目标进程的通信,并建立与所述新iSCSI目标进程的通信;
迁移模块,用于将所述待更新访问者对象中的环形队列迁移到新访问者对象中,以完成对所述待更新访问者对象的更新。
8.一种物理服务器,其特征在于,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-6任一项所述的方法。
9.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令被计算机运行时,使所述计算机执行如权利要求1-6任一项所述的方法。
10.一种分布式存储系统,其特征在于,包括多个如权利要求8所述的物理服务器,多个所述物理服务器中的存储器由所述系统统一管理。
CN202111282904.4A 2021-11-01 2021-11-01 分布式存储服务的升级方法、装置、电子设备及存储介质 Pending CN114003341A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111282904.4A CN114003341A (zh) 2021-11-01 2021-11-01 分布式存储服务的升级方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111282904.4A CN114003341A (zh) 2021-11-01 2021-11-01 分布式存储服务的升级方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114003341A true CN114003341A (zh) 2022-02-01

Family

ID=79926149

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111282904.4A Pending CN114003341A (zh) 2021-11-01 2021-11-01 分布式存储服务的升级方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114003341A (zh)

Similar Documents

Publication Publication Date Title
CN114341792B (zh) 存储集群之间的数据分区切换
KR102236522B1 (ko) 정보를 처리하기 위한 방법 및 장치
US9760408B2 (en) Distributed I/O operations performed in a continuous computing fabric environment
CN109791471B (zh) 虚拟化外围装置处的非易失性存储装置
CN112486585B (zh) 恢复fpga芯片中的逻辑的方法、系统和fpga设备
US11231919B2 (en) Live updates of stateful components
JPWO2017145272A1 (ja) データ移行方法及び計算機システム
US10095616B2 (en) Garbage collection for virtual environments
CN114647537A (zh) 用于备份和恢复的方法
CN107003880B (zh) 内核更新方法和装置、计算机设备
US11137995B2 (en) Updating firmware of a microcontroller
US8738873B2 (en) Interfacing with a point-in-time copy service architecture
CN112631994A (zh) 数据迁移方法及系统
US10761892B2 (en) Method and electronic device for executing data reading/writing in volume migration
CN114003341A (zh) 分布式存储服务的升级方法、装置、电子设备及存储介质
US11675916B2 (en) Method and system for limiting data accessibility in composed systems
CN114003342A (zh) 一种分布式存储方法、装置、电子设备及存储介质
KR20190069134A (ko) 응용 프로그램간 파일 공유 장치 및 방법
US10891226B1 (en) Virtual address space dump in a computer system
CN110781133B (zh) 一种row快照方法、系统、设备及计算机可读存储介质
CN113722147A (zh) 一种保持业务连接方法及相关设备
US10712952B1 (en) Metadata caches in a reliable distributed computing system
CN113206760B (zh) 用于vrf资源分配的接口配置更新方法、装置与电子设备
US11194499B2 (en) Caching meihod for hybrid cloud storage running dev/test on public cloud
US11768612B2 (en) System and method for distributed deduplication in a composed system

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