CN114003342A - 一种分布式存储方法、装置、电子设备及存储介质 - Google Patents
一种分布式存储方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114003342A CN114003342A CN202111282906.3A CN202111282906A CN114003342A CN 114003342 A CN114003342 A CN 114003342A CN 202111282906 A CN202111282906 A CN 202111282906A CN 114003342 A CN114003342 A CN 114003342A
- Authority
- CN
- China
- Prior art keywords
- scsi
- iscsi
- distributed storage
- command
- virtual machine
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种分布式存储方法、装置、电子设备及存储介质,用于改善单点故障对分布式存储服务的稳定性影响较大的问题。该方法包括:接收虚拟机发送的iSCSI数据包;通过访问者对象的iSCSI目标进程将iSCSI数据包解析为SCSI命令,并将SCSI命令存储至访问者对象的环形队列中,SCSI命令是针对虚拟机对应的逻辑单元号的逻辑块设备进行操作的命令;通过访问者对象的调度者进程从环形队列中读取和处理SCSI命令,获得SCSI处理命令;向分布式存储系统发送SCSI处理命令,以使分布式存储系统返回SCSI处理命令对应的操作结果。
Description
技术领域
本申请涉及大数据、云计算和分布式存储的技术领域,具体而言,涉及一种分布式存储方法、装置、电子设备及存储介质。
背景技术
小型计算机系统接口(SmallComputer System Interface,SCSI)是一种用于计算机及其周边设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。SCSI标准定义命令、通信协议以及实体的电气特性,最大部分的应用是在存储设备上(例如硬盘、磁带机),除外,SCSI可以连接的设备包括有扫描仪、光学设备(例如CD和DVD)、打印机等等。
因特网小型计算机系统接口(Internet Small Computer System Interface,iSCSI),又称为因特网协议的存储局域网络(Internet Protocol-Storage Area Network,IP-SAN),是一种基于传输控制协议或互联网协议(Transmission Control Protocol/Internet Protocol,TCP/IP)及SCSI-3协议下的存储技术,由互联网工程任务组提出并成为正式的标准。iSCSI具体采用客户端-服务器架构形式,位于客户端的称为iSCSIInitiator,位于服务端的称为iSCSI Target。
目前,针对多个虚拟机提供分布式存储服务的思路的都是,使用一个iSCSI目标进程(即iSCSI Target进程)为多个虚拟机提供服务,即需要代替多个虚拟机对各自虚拟机的逻辑单元号(LogicalUnit Number,LUN)的逻辑块设备进行操作。然而,在具体的实践过程中发现,当这一个iSCSI目标进程出现故障时,就无法为多个虚拟机提供服务。此时的iSCSI目标进程成为所有虚拟机存储的单点故障,该单点故障对分布式存储服务的稳定性影响较大。
发明内容
本申请实施例的目的在于提供一种分布式存储方法、装置、电子设备及存储介质,用于改善单点故障对分布式存储服务的稳定性影响较大的问题。
本申请实施例提供了一种分布式存储方法,包括:接收虚拟机发送的iSCSI数据包;通过访问者对象的iSCSI目标进程将iSCSI数据包解析为SCSI命令,并将SCSI命令存储至访问者对象的环形队列中,SCSI命令是针对虚拟机对应的逻辑单元号的逻辑块设备进行操作的命令;通过访问者对象的调度者进程从环形队列中读取和处理SCSI命令,获得SCSI处理命令;向分布式存储系统发送SCSI处理命令,以使分布式存储系统返回SCSI处理命令对应的操作结果。在上述的实现过程中,通过将一个iSCSI目标进程与一个虚拟机对应的逻辑单元号的逻辑块设备关联为一个访问者对象,即一个iSCSI目标进程只代替一个虚拟机对一个虚拟机对应的逻辑单元号的逻辑块设备进行操作,从而将iSCSI目标进程与逻辑单元号的逻辑块设备之间的耦合性降低,有效地降低了单点故障的影响,从而在超融合系统中提升虚拟机访问分布式存储系统的稳定性。
可选地,在本申请实施例中,在向分布式存储系统发送SCSI处理命令之后,还包括:接收分布式存储系统发送的SCSI处理命令对应的操作结果;通过访问者对象的调度者进程将操作结果封装为SCSI命令,并将SCSI命令存储至环形队列中;通过访问者对象的iSCSI目标进程从环形队列中读取SCSI命令,并将SCSI命令封装为iSCSI数据包;向虚拟机发送iSCSI数据包。在上述的实现过程中,在iSCSI Target进程为虚拟机提供服务时,虚拟机通过iSCSI Initiator访问的iSCSI目标进程是1比1的,当iSCSI Target进程或Dispatcher进程出现异常时,影响范围控制在同一个Accessor对象内部,虚拟机不共用同一个访问者(Accessor)对象,因此其他虚拟机的正常使用不会受到影响。
可选地,在本申请实施例中,接收虚拟机发送的iSCSI数据包,包括:从预先创建的对象池中获取访问者对象;通过访问者对象的iSCSI目标进程接收虚拟机发送的数据请求,并将数据请求解封装为iSCSI数据包。在上述的实现过程中,通过访问者(Accessor)对象池与创建对象的复杂操作逻辑相互剥离的方式,并以对象池的形式为多个虚拟机提供服务(一个访问者对象中的iSCSI目标进程只为一个虚拟机提供服务),使得不必每次需要使用时都反复的创建和销毁访问者对象,从而可以有效地降低了单点故障的影响,在超融合系统中提升虚拟机访问分布式存储系统的稳定性。
可选地,在本申请实施例中,上述的环形队列是可数据持久化的队列。
本申请实施例还提供了一种分布式存储装置,包括:iSCSI数据接收模块,用于接收虚拟机发送的iSCSI数据包;iSCSI数据解析模块,用于通过访问者对象的iSCSI目标进程将iSCSI数据包解析为SCSI命令,并将SCSI命令存储至访问者对象的环形队列中,SCSI命令是针对虚拟机对应的逻辑单元号的逻辑块设备进行操作的命令;SCSI命令获得模块,用于通过访问者对象的调度者进程从环形队列中读取和处理SCSI命令,获得SCSI处理命令;SCSI命令发送模块,用于向分布式存储系统发送SCSI处理命令,以使分布式存储系统返回SCSI处理命令对应的操作结果。
可选地,在本申请实施例中,分布式存储装置,还包括:操作结果发送模块,用于接收分布式存储系统发送的SCSI处理命令对应的操作结果;SCSI命令存储模块,用于通过访问者对象的调度者进程将操作结果封装为SCSI命令,并将SCSI命令存储至环形队列中;iSCSI数据封装模块,用于通过访问者对象的iSCSI目标进程从环形队列中读取SCSI命令,并将SCSI命令封装为iSCSI数据包;iSCSI数据发送模块,用于向虚拟机发送iSCSI数据包。
可选地,在本申请实施例中,iSCSI数据接收模块,包括:访问者对象获取模块,用于从预先创建的对象池中获取访问者对象;iSCSI数据解封模块,用于通过访问者对象的iSCSI目标进程接收虚拟机发送的数据请求,并将数据请求解封装为iSCSI数据包。
可选地,在本申请实施例中,环形队列是可数据持久化的队列。
本申请实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面描述的方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上面描述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请实施例的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出的本申请实施例提供的超融合系统的架构示意图;
图2示出的本申请实施例提供的分布式存储方法的流程示意图;
图3示出的本申请实施例提供的向虚拟机反馈操作结果的流程示意图;
图4示出的本申请实施例提供的分布式存储装置的结构示意图;
图5示出的本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请实施例的详细描述并非旨在限制要求保护的本申请实施例的范围,而是仅仅表示本申请实施例的选定实施例。基于本申请实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。
在介绍本申请实施例提供的分布式存储方法之前,先介绍本申请实施例中所涉及的一些概念:
虚拟机(Virtual Machine,VM),是指计算机科学中的一种特殊的软件,虚拟机可以在计算机平台和终端用户之间创建一种环境,而终端用户则是基于这个虚拟机所创建的环境来操作软件,虚拟机可以像真实机器一样运行计算机的软件程序。
超融合基础架构(Hyper-Converged Infrastructure,HCI),是一种集成了存储设备及虚拟运算的信息基础架构框架。在这样的架构环境中,同一厂商的服务器与存储等硬件单元,搭配虚拟化软件,被集成在一个机箱之中。
超融合系统是指采用超融合基础架构(HCI)来管理存储相关的软件和硬件,通常应用于虚拟存储设备。超融合系统采用以虚拟机(VM)为中心的策略将存储管理、数据保护和网络集成到一个盒子,从而为用户提供虚拟机的相关服务。
软件定义网络(Software Defined Network,SDN)是一种新型网络架构,SDN利用OpenFlow协议将路由器的控制平面从数据平面中分离,以软件方式实现,从而使得将分散在各个网络设备上的控制平面进行集中化管理,该架构可使网络管理员在不改动硬件设备的前提下,以中央控制方式用程序重新规划网络,为控制网络流量提供了新方案,也为核心网络和应用创新提供了良好平台。
逻辑单元号(LogicalUnit Number,LUN),是指一个逻辑存储设备的设备标识号,即按逻辑上的空间需求使用的存储设备标识号,可以是指从分布式存储系统中划分的一段存储空间资源,通常可以按照容量空间来划分LUN。
需要说明的是,本申请实施例提供的分布式存储方法可以被电子设备执行,这里的电子设备是指具有执行计算机程序功能的设备终端或者服务器,设备终端例如:智能手机、个人电脑、平板电脑、个人数字助理或者移动上网设备等。服务器是指通过网络提供计算服务的设备,相对于服务器上运行的虚拟机来桌,该服务器又被称为物理服务器,物理服务器可以采用x86服务器或者非x86服务器,非x86服务器包括:大型机、小型机和UNIX服务器。
下面介绍该分布式存储方法适用的应用场景,这里的应用场景包括但不限于:使用该分布式存储方法增强云计算相关产品的功能,此处的云计算相关产品具体例如:超融合系统、桌面云和企业云等等;其中,超融合系统是指数据中心的软件定义基础架构,此处的软件定义基础架构例如软件定义磁盘、软件定义网络(SDN)等等。
请参见图1示出的本申请实施例提供的超融合系统的架构示意图;在介绍分布式存储方法之前,先介绍分布式存储方法可以适用的超融合系统,超融合系统可以包括多个服务器;每个服务器上均运行着至少一个访问者对象(Accessor),一个访问者对象中只包括一个iSCSI目标进程(Target Process)、一个环形队列(Ring Queue)和一个调度者(Dispatcher)进程。其中,该iSCSI目标进程与调度者进程通过环形队列相互通信(接收和发送SCSI命令),该iSCSI目标进程只针对一个逻辑单元号(LUN)的逻辑块设备进行操作(例如增加或者减少该逻辑块设备的空间)。
上述的超融合系统还可以包括至少一个虚拟机,虚拟机可以运行在上面的服务器上(例如为用户提供虚拟机服务或者虚拟机中的云桌面服务等等),当然也可以不运行在上面的服务器上,直接运行在用户的终端设备上。当虚拟机直接运行在用户的终端设备上时,服务器可以为用户的终端设备上运行的虚拟机直接提供服务,即终端设备上的虚拟机可以直接使用iSCSI协议经过互联网与服务器上的访问者对象相互通信,也就是说,终端设备可以直接通过虚拟机与服务器相互发送iSCSI数据包。当虚拟机运行在服务器上时,服务器上的虚拟机可以直接使用iSCSI协议经过内核协议栈与服务器上的访问者对象相互通信。
上述的虚拟机中可以运行iSCSI的客户端(即iSCSI Initiator),用户可以通过操作iSCSI Initiator来创建虚拟磁盘(例如虚拟SCSI设备)。与此同时,上述的iSCSI目标进程(Target Process)是iSCSI的服务端,因此,iSCSI Initiator与访问者对象的iSCSI目标进程(Target Process)可以通过iSCSI协议相互通信。
上述的超融合系统还可以包括分布式存储系统,分布式存储系统是将分散的多个存储设备(例如多个磁盘)以一个虚拟弹性可扩展的整体进行管理的系统。也就是说,上面的服务器直连的磁盘可以被分布式存储系统管理,也可以不被分布式存储系统所管理。当服务器直连的磁盘被分布式存储系统管理时,访问者对象与分布式存储系统是采用TCP/IP协议相互通信的。当服务器直连的磁盘没有被分布式存储系统管理时,就是服务器与该磁盘直接通过SCSI协议相互通信。
请参见图2示出的本申请实施例提供的分布式存储方法的流程示意图;该分布式存储方法的主要思路是,通过将一个iSCSI目标进程与一个虚拟机对应的逻辑单元号的逻辑块设备关联为一个访问者对象,即一个iSCSI目标进程只代替一个虚拟机对一个虚拟机对应的逻辑单元号的逻辑块设备进行操作,从而将iSCSI目标进程与逻辑单元号的逻辑块设备之间的耦合性降低,有效地降低了单点故障的影响,从而在超融合系统中提升虚拟机访问分布式存储系统的稳定性。上述的分布式存储方法可以包括:
步骤S110:电子设备接收虚拟机发送的iSCSI数据包。
上述步骤S110的实施方式有很多种,包括但不限于如下几种:
第一种实施方式,通过对象池中的访问者对象直接来接收,该实施方式可以包括:从预先创建的对象池中获取访问者对象。通过访问者对象的iSCSI目标进程接收虚拟机发送的数据请求,并将数据请求解封装为iSCSI数据包。通过访问者(Accessor)对象池与创建对象的复杂操作逻辑相互剥离的方式,并以对象池的形式为多个虚拟机提供服务(一个访问者对象中的iSCSI目标进程只为一个虚拟机提供服务),使得不必每次需要使用时都反复的创建和销毁访问者对象,从而可以有效地降低了单点故障的影响,在超融合系统中提升虚拟机访问分布式存储系统的稳定性。
第二种实施方式,创建访问者对象,然后使用创建的访问者对象来接收,该实施方式可以包括:先创建访问者对象的所需资源(例如:创建iSCSI目标进程和调度者进程,以及向系统申请分配环形队列和LUN的逻辑块设备),然后,根据iSCSI目标进程的进程ID、调度者进程的进程ID、环形队列的地址信息和LUN构建访问者对象,然后使用创建的访问者对象通过iSCSI协议来接收虚拟机发送的数据请求,并将数据请求解封装为iSCSI数据包。
可以理解的是,在iSCSI Target进程为虚拟机提供服务时,虚拟机通过iSCSIInitiator访问的iSCSI目标进程是1比1的,当iSCSI Target进程或Dispatcher进程出现异常时,影响范围控制在同一个Accessor对象内部,虚拟机不共用同一个访问者(Accessor)对象,因此其他虚拟机的正常使用不会受到影响。
在步骤S110之后,执行步骤S120:电子设备通过访问者对象的iSCSI目标进程将iSCSI数据包解析为SCSI命令,并将SCSI命令存储至访问者对象的环形队列中。
iSCSI目标进程(iSCSI target process)是访问者(Accessor)者对象中用于将iSCSI数据包解析为SCSI命令的进程。其中,此处的iSCSI目标进程还可以用于管理与iSCSIInitiator的连接,创建或者删除LUN的逻辑块设备和环形队列(Ring Queue)等等。
上述的步骤S120的实施方式例如:电子设备通过访问者对象的iSCSI目标进程将iSCSI数据包解析为用于操作目标LUN的逻辑块设备的SCSI命令,并将SCSI命令存储至访问者对象的环形队列中;具体例如:此处的目标LUN的逻辑块设备可以理解为用户需要操作的一块虚拟磁盘,那么当用户操作虚拟磁盘(例如增加或者减少磁盘空间),就需要翻译为某个硬件磁盘加入到该虚拟磁盘,或者,某个硬件磁盘从该虚拟磁盘中删除等等SCSI命令,该SCSI命令是指针对虚拟机对应的逻辑单元号的逻辑块设备进行操作的命令。上述的环形队列(Ring Queue)可以是可数据持久化的队列,具体可以采用超高速存储设备(例如IntelOptane或者三星Z-SSD)来实现环形队列的数据持久化。
在步骤S120之后,执行步骤S130:电子设备通过访问者对象的调度者进程从环形队列中读取和处理SCSI命令,获得SCSI处理命令。
上述步骤S130的实施方式例如:电子设备通过访问者对象的调度者进程从环形队列中读取和解析SCSI命令,还可以对SCSI命令进行细一系列的处理操作,这些处理操作例如:每秒输入输出操作数(Input/Output Operations Per Second,IOPS)限制、网络独立硬盘冗余阵列(Redundant Array of Independent Disks,RAID)、纠删码特性和缓存(Cache)特性等等相关处理操作,在解析出的SCSI命令经过这些处理操作之后,获得处理后的SCSI处理命令。
在步骤S130之后,执行步骤S140:电子设备向分布式存储系统发送SCSI处理命令,以使分布式存储系统返回SCSI处理命令对应的操作结果。
上述步骤S140的实施方式例如:电子设备通过TCP/IP协议向分布式存储系统发送SCSI处理命令,分布式存储系统在接收到SCSI处理命令之后,根据SCSI处理命令对存储设备(例如管理的多个磁盘)进行操作,获得操作结果;然后,分布式存储系统向电子设备发送SCSI处理命令对应的操作结果。
在上述的实现过程中,通过将一个iSCSI目标进程与一个虚拟机对应的逻辑单元号的逻辑块设备关联为一个访问者对象,即一个iSCSI目标进程只代替一个虚拟机对一个虚拟机对应的逻辑单元号的逻辑块设备进行操作,从而将iSCSI目标进程与逻辑单元号的逻辑块设备之间的耦合性降低,有效地降低了单点故障的影响,从而在超融合系统中提升虚拟机访问分布式存储系统的稳定性。
请参见图3示出的本申请实施例提供的向虚拟机反馈操作结果的流程示意图;可选地,在电子设备向分布式存储系统发送SCSI处理命令之后,还可以向虚拟机反馈操作结果,当然也可以让虚拟机来主动查询操作结果。此处以主动向虚拟机反馈操作结果为例进行说明,可以包括:
步骤S210:电子设备接收分布式存储系统发送的SCSI处理命令对应的操作结果。
步骤S220:电子设备通过访问者对象的调度者进程将操作结果封装为SCSI命令,并将SCSI命令存储至环形队列中。
上述步骤S210至步骤S220的实施方式例如:在分布式存储系统向电子设备发送SCSI处理命令对应的操作结果之后,电子设备可以通过TCP/IP协议接收分布式存储系统发送的SCSI处理命令对应的操作结果,并通过访问者对象的调度者进程将操作结果封装为SCSI命令,并将SCSI命令写入(即存储至)环形队列(Ring)中。该环形队列(Ring)是用于临时存储SCSI命令的,该环形队列(Ring)可以采用持久化或者非持久化的环形队列,当然,该环形队列(Ring)除了以共享内存的非持久化Ring的方式实现,还可以采用超高速存储设备(如IntelOptane,三星Z-SSD)的数据持久化Ring来实现,通过持久化的环形队列可以有效地改善异常宕机,导致少量数据丢失和虚拟机文件系统需要修复的问题。
步骤S230:电子设备通过访问者对象的iSCSI目标进程从环形队列中读取SCSI命令,并将SCSI命令封装为iSCSI数据包。
步骤S240:电子设备向虚拟机发送iSCSI数据包。
上述步骤S230至步骤S240的实施方式例如:电子设备通过访问者对象的iSCSI目标进程从环形队列中读取SCSI命令,并将SCSI命令封装为数据响应的iSCSI数据包,然后,电子设备通过TCP/IP协议向虚拟机发送数据响应的iSCSI数据包。可以理解的是,此处的数据响应的iSCSI数据包是与上面虚拟机发送的数据请求对应的,即电子设备向虚拟机发送数据请求对应的数据响应。
在上述的实现过程中,通过访问者对象的调度者进程将操作结果封装为SCSI命令,并将SCSI命令存储至环形队列中;然后,通过访问者对象的iSCSI目标进程从环形队列中读取SCSI命令,并将SCSI命令封装为iSCSI数据包。在iSCSI Target进程为虚拟机提供服务时,虚拟机通过iSCSI Initiator访问的iSCSI目标进程是1比1的,当iSCSI Target进程或Dispatcher进程出现异常时,影响范围控制在同一个Accessor对象内部,虚拟机不共用同一个访问者(Accessor)对象,因此其他虚拟机的正常使用不会受到影响。
请参见图4示出的本申请实施例提供的分布式存储装置的结构示意图;本申请实施例提供了一种分布式存储装置300,包括:
iSCSI数据接收模块310,用于接收虚拟机发送的iSCSI数据包。
iSCSI数据解析模块320,用于通过访问者对象的iSCSI目标进程将iSCSI数据包解析为SCSI命令,并将SCSI命令存储至访问者对象的环形队列中,SCSI命令是针对虚拟机对应的逻辑单元号的逻辑块设备进行操作的命令。
SCSI命令获得模块330,用于通过访问者对象的调度者进程从环形队列中读取和处理SCSI命令,获得SCSI处理命令。
SCSI命令发送模块340,用于向分布式存储系统发送SCSI处理命令,以使分布式存储系统返回SCSI处理命令对应的操作结果。
可选地,在本申请实施例中,分布式存储装置,还包括:
操作结果发送模块,用于接收分布式存储系统发送的SCSI处理命令对应的操作结果。
SCSI命令存储模块,用于通过访问者对象的调度者进程将操作结果封装为SCSI命令,并将SCSI命令存储至环形队列中。
iSCSI数据封装模块,用于通过访问者对象的iSCSI目标进程从环形队列中读取SCSI命令,并将SCSI命令封装为iSCSI数据包。
iSCSI数据发送模块,用于向虚拟机发送iSCSI数据包。
可选地,在本申请实施例中,iSCSI数据接收模块,包括:
访问者对象获取模块,用于从预先创建的对象池中获取访问者对象。
iSCSI数据解封模块,用于通过访问者对象的iSCSI目标进程接收虚拟机发送的数据请求,并将数据请求解封装为iSCSI数据包。
可选地,在本申请实施例中,上述的环形队列还可以是可数据持久化的队列。
应理解的是,该装置与上述的分布式存储方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operating system,OS)中的软件功能模块。
请参见图5示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备400,包括:处理器410和存储器420,存储器420存储有处理器410可执行的机器可读指令,机器可读指令被处理器410执行时执行如上的方法。
本申请实施例还提供了一种计算机可读存储介质430,该计算机可读存储介质430上存储有计算机程序,该计算机程序被处理器410运行时执行如上的方法。
其中,计算机可读存储介质430可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请实施例提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以和附图中所标注的发生顺序不同。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这主要根据所涉及的功能而定。
另外,在本申请实施例中的各个实施例的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。
Claims (10)
1.一种分布式存储方法,其特征在于,包括:
接收虚拟机发送的iSCSI数据包;
通过访问者对象的iSCSI目标进程将所述iSCSI数据包解析为SCSI命令,并将所述SCSI命令存储至所述访问者对象的环形队列中,所述SCSI命令是针对所述虚拟机对应的逻辑块设备进行操作的命令;
通过所述访问者对象的调度者进程从所述环形队列中读取和处理所述SCSI命令,获得SCSI处理命令;
向分布式存储系统发送所述SCSI处理命令,以使所述分布式存储系统返回所述SCSI处理命令对应的操作结果。
2.根据权利要求1所述的方法,其特征在于,在所述向分布式存储系统发送所述SCSI处理命令之后,还包括:
接收所述分布式存储系统发送的所述SCSI处理命令对应的操作结果;
通过所述访问者对象的调度者进程将所述操作结果封装为SCSI命令,并将所述SCSI命令存储至所述环形队列中;
通过所述访问者对象的iSCSI目标进程从所述环形队列中读取所述SCSI命令,并将所述SCSI命令封装为iSCSI数据包;
向所述虚拟机发送所述iSCSI数据包。
3.根据权利要求1所述的方法,其特征在于,所述接收虚拟机发送的iSCSI数据包,包括:
从预先创建的对象池中获取所述访问者对象;
通过所述访问者对象的iSCSI目标进程接收所述虚拟机发送的数据请求,并将所述数据请求解封装为所述iSCSI数据包。
4.根据权利要求1-3任一所述的方法,其特征在于,所述环形队列是可数据持久化的队列。
5.一种分布式存储装置,其特征在于,包括:
iSCSI数据接收模块,用于接收虚拟机发送的iSCSI数据包;
iSCSI数据解析模块,用于通过访问者对象的iSCSI目标进程将所述iSCSI数据包解析为SCSI命令,并将所述SCSI命令存储至所述访问者对象的环形队列中,所述SCSI命令是针对虚拟机对应的逻辑块设备进行操作的命令;
SCSI命令获得模块,用于通过所述访问者对象的调度者进程从所述环形队列中读取和处理所述SCSI命令,获得SCSI处理命令;
SCSI命令发送模块,用于向分布式存储系统发送所述SCSI处理命令,以使所述分布式存储系统返回所述SCSI处理命令对应的操作结果。
6.根据权利要求5所述的装置,其特征在于,所述分布式存储装置,还包括:
操作结果发送模块,用于接收所述分布式存储系统发送的所述SCSI处理命令对应的操作结果;
SCSI命令存储模块,用于通过所述访问者对象的调度者进程将所述操作结果封装为SCSI命令,并将所述SCSI命令存储至所述环形队列中;
iSCSI数据封装模块,用于通过所述访问者对象的iSCSI目标进程从所述环形队列中读取所述SCSI命令,并将所述SCSI命令封装为iSCSI数据包;
iSCSI数据发送模块,用于向所述虚拟机发送所述iSCSI数据包。
7.根据权利要求5所述的装置,其特征在于,所述iSCSI数据接收模块,包括:
访问者对象获取模块,用于从预先创建的对象池中获取所述访问者对象;
iSCSI数据解封模块,用于通过所述访问者对象的iSCSI目标进程接收所述虚拟机发送的数据请求,并将所述数据请求解封装为所述iSCSI数据包。
8.根据权利要求5-7任一所述的装置,其特征在于,所述环形队列是可数据持久化的队列。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如权利要求1至4任一所述的方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至4任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111282906.3A CN114003342A (zh) | 2021-11-01 | 2021-11-01 | 一种分布式存储方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111282906.3A CN114003342A (zh) | 2021-11-01 | 2021-11-01 | 一种分布式存储方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114003342A true CN114003342A (zh) | 2022-02-01 |
Family
ID=79926147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111282906.3A Pending CN114003342A (zh) | 2021-11-01 | 2021-11-01 | 一种分布式存储方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114003342A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115599563A (zh) * | 2022-11-29 | 2023-01-13 | 北京卡普拉科技有限公司(Cn) | 串行i/o访问的并行i/o控制方法、装置及设备 |
-
2021
- 2021-11-01 CN CN202111282906.3A patent/CN114003342A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115599563A (zh) * | 2022-11-29 | 2023-01-13 | 北京卡普拉科技有限公司(Cn) | 串行i/o访问的并行i/o控制方法、装置及设备 |
CN115599563B (zh) * | 2022-11-29 | 2023-06-13 | 北京卡普拉科技有限公司 | 串行i/o访问的并行i/o控制方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776174B2 (en) | Managing hosted resources across different virtualization platforms | |
US10999157B1 (en) | Remote cloud-based monitoring of storage systems | |
US10831583B2 (en) | Reporting errors to a data storage device | |
US11093148B1 (en) | Accelerated volumes | |
US10558649B2 (en) | Database server system monitoring | |
US8595839B2 (en) | Selecting one of a plurality of scanner nodes to perform scan operations for an interface node receiving a file request | |
US20180020077A1 (en) | Live migration of containers based on geo-location | |
US20120102455A1 (en) | System and apparatus for hosting applications on a storage array via an application integration framework | |
US9477429B2 (en) | Block storage gateway module, method for providing access to block storage, mediator system and mediating method for storage, cloud storage system, and content delivery apparatus | |
US11178197B2 (en) | Idempotent processing of data streams | |
US11194629B2 (en) | Handling expiration of resources allocated by a resource manager running a data integration job | |
US10402252B1 (en) | Alternative event reporting for peripheral devices | |
CN113411363A (zh) | 一种镜像文件的上传方法、相关设备及计算机存储介质 | |
CN114003342A (zh) | 一种分布式存储方法、装置、电子设备及存储介质 | |
US20170228293A1 (en) | Providing integrity for data sets backed-up from client systems to objects in a network storage | |
US11354204B2 (en) | Host multipath layer notification and path switchover following node failure | |
CN114661420B (zh) | 基于Kubernetes容器平台的应用保护方法、装置及系统 | |
US11526286B1 (en) | Adaptive snapshot chunk sizing for snapshots of block storage volumes | |
US11768622B2 (en) | Differential snapshot without array support | |
US11194738B2 (en) | Implementing management commands utilizing an in-band interface | |
US11287982B2 (en) | Associating data management policies to portions of data using connection information | |
US10686754B2 (en) | In-band LDAP over FICON | |
US20240201856A1 (en) | Provide host applications ability to dynamically manage application specific functionality on storage application | |
US11526499B2 (en) | Adaptively updating databases of publish and subscribe systems using optimistic updates | |
US20230022330A1 (en) | Blockchain-enabled storage array |
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 |