CN110971631B - 访问ceph集群的方法、装置、服务器及介质 - Google Patents

访问ceph集群的方法、装置、服务器及介质 Download PDF

Info

Publication number
CN110971631B
CN110971631B CN201811152128.4A CN201811152128A CN110971631B CN 110971631 B CN110971631 B CN 110971631B CN 201811152128 A CN201811152128 A CN 201811152128A CN 110971631 B CN110971631 B CN 110971631B
Authority
CN
China
Prior art keywords
block device
ceph cluster
request
block
ceph
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.)
Active
Application number
CN201811152128.4A
Other languages
English (en)
Other versions
CN110971631A (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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology 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 Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201811152128.4A priority Critical patent/CN110971631B/zh
Publication of CN110971631A publication Critical patent/CN110971631A/zh
Application granted granted Critical
Publication of CN110971631B publication Critical patent/CN110971631B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例提供了一种访问ceph集群的方法、装置、服务器及介质,其中,该方法运行于服务器的用户态,方法包括:在接收客户端发送的基于ISCSI协议的第一块设备请求后,将第一块设备请求转换成基于ceph集群所使用协议的第二块设备请求;然后,通过ceph集群提供的块设备接口,向ceph集群发送第二块设备请求;最后,接收ceph集群通过所述块设备接口反馈的对第二块设备请求处理结果,并将所述处理结果发送至所述客户端。该访问过程不需要依赖于虚拟机和qemu实现,可以缩短处理路径和提高处理效率。

Description

访问ceph集群的方法、装置、服务器及介质
技术领域
本发明涉及互联网技术领域,特别是涉及一种访问ceph集群的方法、装置、服务器及介质。
背景技术
现有技术中,基于ISCSI(Internet Small Computer System Interface,互联网小型计算机系统接口)访问ceph集群(ceph cluster,一种开源的分布式存储系统)时,虚拟机和qemu(qemu是纯软件实现的虚拟化模拟器,用于模拟独立运行操作系统的虚拟机)运行于服务器的内核态,ISCSI target(ISCSI目的端)运行于虚拟机的用户态。ceph集群的块设备通过qemu的接口挂载到虚拟机上,作为虚拟机的磁盘,通过虚拟机内核中lio模块将该磁盘映射为ISCSI target,也就是将虚拟机的磁盘以ISCSI块设备的方式映射到网络上,可以供ISCSI initiator(ISCSI发起者)访问,其中,ISCSI initiator运行于客户端。
现有技术中,由于虚拟机和qemu是运行于内核态的,而ISCSI target是运行于用户态的,ISCSI target与qemu之间通过虚拟机进行通信,必须通过两次陷入内核实现,导致处理路径较长,处理效率不高。
发明内容
本发明实施例的目的在于提供一种访问ceph集群的方法、装置、服务器及介质,以缩短处理路径,提高处理效率。具体技术方案如下:
第一方面,本发明实施例提供了一种访问ceph集群的方法,应用于服务器上运行的用户态的应用程序,所述方法包括:
接收客户端发送的基于ISCSI协议的第一块设备请求;
将第一块设备请求转换成基于ceph集群所使用协议的第二块设备请求;
通过ceph集群提供的块设备接口,向ceph集群发送第二块设备请求;
接收ceph集群通过所述块设备接口反馈的对所述第二块设备请求的处理结果;
将所述处理结果发送至所述客户端。
可选的,所述将所述第一块设备请求转换成基于ceph集群所使用协议的第二块设备请求的步骤,包括:
解析所述第一块设备请求,获得解析结果;
根据所述解析结果生成基于ceph集群所使用协议的第二块设备请求。
可选的,所述通过ceph集群提供的块设备接口,向ceph集群发送第二块设备请求的步骤,包括:
基于所述解析结果确定所述块设备接口;
通过所确定的块设备接口,向ceph集群发送第二块设备请求。
可选的,若所述解析结果包含读操作指令,则将ceph集群提供的rbd_read接口确定为所述块设备接口。
可选的,若所述解析结果包含写操作指令,则将ceph集群提供的rbd_write接口确定为所述块设备接口。
第二方面,本发明实施例提供了一种访问ceph集群的装置,应用于服务器上运行的用户态的应用程序,所述装置包括:
第一块设备请求接收模块,用于接收客户端发送的基于ISCSI协议的第一块设备请求;
第一块设备请求转换模块,用于将第一块设备请求转换成基于ceph集群所使用协议的第二块设备请求;
第二块设备请求发送模块,用于通过ceph集群提供的块设备接口,向ceph集群发送第二块设备请求;
处理结果接收模块,用于接收ceph集群通过所述块设备接口反馈的对所述第二块设备请求的处理结果;
处理结果发送模块,用于将所述处理结果发送至所述客户端。
可选的,所述第一块设备请求转换模块具体用于:
解析所述第一块设备请求,获得解析结果;
根据所述解析结果生成基于ceph集群所使用协议的第二块设备请求。
可选的,所述第二块设备请求发送模块具体用于:
基于所述解析结果确定所述块设备接口;
通过所确定的块设备接口,向ceph集群发送第二块设备请求。
可选的,若所述解析结果包含:读操作指令;
则所述第二块设备请求发送模块具体用于:
将ceph集群提供的rbd_read接口确定为所述块设备接口。
可选的,若所述解析结果包含写操作指令,则所述第二块设备请求发送模块具体用于:
将ceph集群提供的rbd_write接口确定为所述块设备接口。
第三方面,本发明实施例提供了一种服务器,包括处理器和存储器,其中:
存储器,用于存放运行在用户态的应用程序;
处理器,用于执行存储器上所存放的应用程序时,实现上述任一访问ceph集群的方法所述的方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,其特征在于,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时实现上述任一访问ceph集群的方法的步骤。
第五方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一访问ceph集群的方法的步骤。
第六方面,本发明实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述任一访问ceph集群的方法的步骤。
本发明实施例提供的一种访问ceph集群的方法、装置、服务器及介质,其中,该方法应用于服务器上运行的用户态的应用程序,方法包括:在接收客户端发送的基于ISCSI协议的第一块设备请求后,将第一块设备请求转换成基于ceph集群所使用协议的第二块设备请求;然后,通过ceph集群提供的块设备接口,向ceph集群发送第二块设备请求;最后,接收ceph集群通过所述块设备接口反馈的处理结果,并将所述处理结果发送至所述客户。在这个访问过程中,可以直接将基于ISCSI协议的第一块设备请求转化为基于ceph集群所使用协议的第二块设备请求,并直接通过块设备接口发送给ceph集群,以使ceph集群处理第二块设备请求后反馈处理结果,从而完成访问过程。该访问过程不需要依赖于虚拟机和qemu实现,因此,可以缩短处理路径和提高处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中一种访问ceph集群的方法的流程示意图;
图2为本发明实施例提供的一种访问ceph集群的方法的流程示意图;
图3为本发明实施例提供的一种访问ceph集群的方法的交互示意图;
图4为本发明实施例提供的一种访问ceph集群的装置的结构示意图;
图5为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面首先对现有技术中访问ceph集群的方法进行说明,如图1所示,具体访问方式如下:
S101、客户端通过ISCSI initiator向服务器的ISCSI target发送io(Input/Output,输入/输出)请求;
S102、服务器通过ISCSI target将接收到的io请求发送至虚拟机;
S103、虚拟机通过内核将io请求转换成对虚拟机磁盘的io请求,并触发S104;
S104、服务器通过内核通知qemu处理对虚拟机磁盘的io请求;
S105、qemu通过ceph集群提供的块设备接口将该io请求发送至ceph集群,使得ceph集群处理该io请求,并向qemu反馈处理结果;
S106、qemu向虚拟机发送处理结果;
S107、虚拟机向服务器的ISCSI target发送处理结果;
S108、服务器的ISCSI target向客户端的ISCSI initiator发送处理结果。
现有技术中,由于虚拟机和qemu是运行于内核态的,而ISCSI target是运行于用户态的,ISCSI target与qemu之间通过虚拟机进行通信,必须通过两次陷入内核实现。由上可知,借助虚拟机和qemu实现基于ISCSI访问ceph集群的方法,处理路径较长,处理效率不高。为了解决该技术问题,本发明实施例提供了一种访问ceph集群的方法、装置、服务器及介质。
参照图2,本发明实施例提供的一种访问ceph集群的方法,应用于服务器上运行的用户态的应用程序,该方法可以包括如下步骤:
S201、接收客户端发送的基于ISCSI协议的第一块设备请求。
其中,第一块设备请求可以是io请求,基于ISCSI协议的io请求是ISCSI命令请求,即ISCSI io请求,io请求包括但不限于写操作请求和读操作请求等。
运行于服务器的用户态的应用程序可以包括ISCSI target和ISCSI target-rbd,在客户端可以配置ISCSI initiator,本步骤可以按照如下方式实现:
ISCSI target接收客户端的ISCSI initiator发送的基于ISCSI协议的第一块设备请求;
ISCSI target-rbd接收ISCSI target转发的基于ISCSI协议的第一块设备请求。
另外,针对ISCSI target-rbd可以开启多个工作线程,在ISCSI target-rbd接收到ISCSI target转发的基于ISCSI协议的第一块设备请求后,可以确定一个空闲的工作线程,用于执行S202和S203等步骤。这样就可以并行处理第一块设备请求,从而可以提高访问ceph集群的效率。
S202、将第一块设备请求转换成基于ceph集群所使用协议的第二块设备请求;基于ceph集群所使用协议的第二块设备请求具体是ceph rbd请求。ceph集群所使用协议是一种基于TCP的私有协议,是可以预先获知的协议。
本步骤可以按照以下方式实现:
(1)、解析第一块设备请求,获得解析结果;
解析结果可以包括:操作参数,以及操作指令。其中,操作指令可以包括以下指令中的任一种:读操作指令、写操作指令、关闭操作指令和打开操作指令。操作参数是指用于ceph集群完成解析结果中各操作指令所需的参数,例如,操作地址,需要写入的数据等。
(2)、根据解析结果生成基于ceph集群所使用协议的第二块设备请求。
(3)、将生成的第二块设备请求作为转换后的第二块设备请求。
S203、通过ceph集群提供的块设备接口,向ceph集群发送第二块设备请求。
将第二块设备请求中操作参数传递给所确定的接口,以实现通过所确定的接口将基于ceph集群所使用协议的第二块设备请求发送至ceph集群。
ceph集群接收到第二块设备请求后,处理该请求,在根据第二块设备请求所包含的操作参数中的操作地址,查找到ceph集群提供的块设备中操作地址对应的位置后,将所需写入的数据写入相应位置,或从相应位置读取所需的数据。
本步骤所采用的ceph集群提供的块设备接口是通过以下方式确定的:
基于所述解析结果确定所述块设备接口。
具体的,若解析结果包括读操作指令,则根据读操作指令确定ceph集群提供的、读操作指令对应的rbd_read接口;若解析结果包括写操作指令,则根据写操作指令确定ceph集群提供的、写操作指令对应的rbd_write接口;若解析结果包括关闭操作指令,则根据关闭操作指令确定ceph集群提供的、写操作指令对应的rbd_close接口,若解析结果包括打开操作指令,则根据打开操作指令确定ceph集群提供的、写操作指令对应的rbd_open接口。
S204、接收ceph集群通过块设备接口反馈的对第二块设备请求的处理结果。
S205、将处理结果发送至客户端。
示例性的,ISCSI target-rbd完成一次读操作请求的过程如下:
(1)、使用ceph集群提供的rados_ioctx_create接口创建操作ceph集群的块设备的io上下文;io上下文是指一个独立的用于处理io请求的环境,是用于隔离不同的io请求处理过程的。
(2)、使用ceph集群提供的rbd_open接口打开ceph集群的块设备;
(3)、使用ceph集群提供的rbd_read接口,将读操作请求作为参数传递给rbd_read接口,通过rbd_read接口完成对ceph集群的块设备中存储的数据的读操作请求;
(4)、使用ceph集群提供的rbd_close接口关闭ceph集群的块设备;
(5)、使用ceph集群提供的rados_ioctx_destroy接口完成关闭操作ceph集群的块设备的io上下文。
ISCSI target-rbd完成一次写操作请求的过程如下:
(1)、使用ceph集群提供的rados_ioctx_create接口创建操作ceph集群的块设备的io上下文;
(2)、使用ceph集群提供的rbd_open接口打开ceph集群的块设备;
(3)、使用ceph集群提供的rbd_write接口,将写操作请求作为参数传递给rbd_write接口,通过rbd_write接口完成对ceph集群的块设备中存储的数据的写操作请求;
(4)、使用ceph集群提供的rbd_close接口关闭ceph集群的块设备;
(5)、使用ceph集群提供的rados_ioctx_destroy接口完成关闭操作ceph集群的块设备的io上下文。
应用图2所示实施例,在这个访问过程中,可以直接将基于ISCSI协议的第一块设备请求转化为基于ceph集群所使用协议的第二块设备请求,并直接将第二块设备请求通过块设备接口发送给ceph集群,以使ceph集群处理第二块设备请求后反馈处理结果,从而完成访问过程。该访问过程不需要依赖于虚拟机和qemu实现,因此,可以缩短处理路径和提高处理效率。
示例性的,参照图3,上述访问ceph集群的方法实施例中,运行于服务器的用户态的应用程序可以包括ISCSI target程序和ISCSI target-rbd程序。
该访问ceph集群的方法具体可以包括如下步骤:
S301、ISCSI initiator向ISCSI target发送基于ISCSI协议的第一块设备请求。
S302、ISCSI target向ISCSI target-rbd转发基于ISCSI协议的第一块设备请求。
S303、ISCSI target-rbd解析第一块设备请求,获得解析结果,将解析后的第一块设备请求和解析结果添加到工作队列中;其中,操作指令可以包括以下指令中的任一种:读操作指令、写操作指令、关闭操作指令和打开操作指令。操作参数是指用于ceph集群完成解析结果中各操作指令所需的参数,例如,操作地址,需要写入的数据等。
S304、当轮询到第一块设备请求后,ISCSI target-rbd从针对ISCSI target-rbd开启的多个工作线程中确定一个空闲的工作线程。
S305、所确定的ISCSI target-rbd的工作线程根据解析结果确定ceph集群提供的接口。具体的,若解析结果包括读操作指令,则根据读操作指令确定ceph集群提供的、读操作指令对应的rbd_read接口;若解析结果包括写操作指令,则根据写操作指令确定ceph集群提供的、写操作指令对应的rbd_write接口;若解析结果包括关闭操作指令,则根据关闭操作指令确定ceph集群提供的、写操作指令对应的rbd_close接口,若解析结果包括打开操作指令,则根据打开操作指令确定ceph集群提供的、写操作指令对应的rbd_open接口。
S306、所确定的ISCSI target-rbd的工作线程将第一块设备请求转换成基于ceph集群所使用协议的第二块设备请求。基于ISCSI协议的第一块设备请求是ISCSI命令请求,基于ceph集群所使用协议的第二块设备请求具体是ceph rbd请求。
S307、所确定的ISCSI target-rbd的工作线程通过ceph集群提供的块设备接口,向ceph集群发送第二块设备请求;具体的,所确定的ISCSI target-rbd的工作线程将转化后的第二块设备请求所包含的操作参数传递给ceph集群中ceph提供的librbd库函数接口。
S308、ceph集群处理第二块设备请求,获得处理结果;
S309、ceph集群通过所确定的块设备接口向ISCSI target-rbd发送处理结果;
S310、ISCSI target-rbd将所接收到的处理结果发送给ISCSI target;
S311、ISCSI target将接收到的处理结果发送给ISCSI initiator。
应用图3所示实施例,在这个访问过程中,可以直接将基于ISCSI协议的第一块设备请求转化为基于ceph集群所使用协议的第二块设备请求,并直接将第二块设备请求通过块设备接口发送给ceph集群,以使ceph集群处理第二块设备请求后反馈处理结果,从而完成访问过程。该访问过程不需要依赖于虚拟机和qemu实现,因此,可以缩短处理路径和提高处理效率。
基于上述方法实施例相同的发明思路,本发明实施例还提供了一种访问ceph集群的装置,应用于服务器上运行的用户态的应用程序,参照图4,该装置包括:
第一块设备请求接收模块41,用于接收客户端发送的基于ISCSI协议的第一块设备请求;
第一块设备请求转换模块42,用于将第一块设备请求转换成基于ceph集群所使用协议的第二块设备请求;
第二块设备请求发送模块43,用于通过ceph集群提供的块设备接口,向ceph集群发送第二块设备请求;
处理结果接收模块44,用于接收ceph集群通过块设备接口反馈的对第二块设备请求的处理结果;
处理结果发送模块45,用于将所述处理结果发送至所述客户端。
可选的,第一块设备请求转换模块42具体用于:
解析第一块设备请求,获得解析结果;
根据解析结果生成基于ceph集群所使用协议的第二块设备请求。
可选的,所述第二块设备请求发送模块43具体用于:
基于所述解析结果确定所述块设备接口;
通过所确定的块设备接口,向ceph集群发送第二块设备请求。
进一步的,若所述解析结果包含:读操作指令;
则所述第二块设备请求发送模块43具体用于:
将ceph集群提供的rbd_read接口确定为所述块设备接口。
另外,若所述解析结果包含写操作指令,则所述第二块设备请求发送模块43具体用于:
将ceph集群提供的rbd_write接口确定为所述块设备接口。
应用图4所示实施例,在这个访问过程中,可以直接将基于ISCSI协议的第一块设备请求转化为基于ceph集群所使用协议的第二块设备请求,并直接将第二块设备请求通过块设备接口发送给ceph集群,以使ceph集群处理第二块设备请求后反馈处理结果,从而完成访问过程。该访问过程不需要依赖于虚拟机和qemu实现,因此,可以缩短处理路径和提高处理效率。
本发明实施例还提供了一种服务器,如图5所示,包括处理器210和存储器220,其中,
存储器220,用于存放计算机程序;
处理器210,用于执行存储器220上所存放的程序时,实现如下步骤:
接收客户端发送的基于ISCSI协议的第一块设备请求;
将第一块设备请求转换成基于ceph集群所使用协议的第二块设备请求;
通过ceph集群提供的块设备接口,向ceph集群发送第二块设备请求;
接收ceph集群通过所述块设备接口反馈的对所述第二块设备请求的处理结果;
将所述处理结果发送至所述客户端。
关于该方法各个步骤的具体实现以及相关解释内容可以参见上述图2所示的方法实施例,在此不做赘述。
另外,处理器210执行存储器220上所存放的程序而实现的应用设置方法的其他实现方式,与前述方法实施例部分所提及的实现方式相同,这里也不再赘述。
上述服务器可以具备有实现上述服务器与其他设备之间通信的通信接口。
上述的处理器210,通信接口,存储器220通过通信总线完成相互间的通信,此处所提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
存储器220可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器210可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在这个访问过程中,可以直接将基于ISCSI协议的第一块设备请求转化为基于ceph集群所使用协议的第二块设备请求,并直接将第二块设备请求通过块设备接口发送给ceph集群,以使ceph集群处理第二块设备请求后反馈处理结果,从而完成访问过程。该访问过程不需要依赖于虚拟机和qemu实现,因此,可以缩短处理路径和提高处理效率。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一的访问ceph集群的方法。
在这个访问过程中,可以直接将基于ISCSI协议的第一块设备请求转化为基于ceph集群所使用协议的第二块设备请求,并直接将第二块设备请求通过块设备接口发送给ceph集群,以使ceph集群处理第二块设备请求后反馈处理结果,从而完成访问过程。该访问过程不需要依赖于虚拟机和qemu实现,因此,可以缩短处理路径和提高处理效率。
在本发明提供的再一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一访问ceph集群的方法的方法步骤。
在这个访问过程中,可以直接将基于ISCSI协议的第一块设备请求转化为基于ceph集群所使用协议的第二块设备请求,并直接将第二块设备请求通过块设备接口发送给ceph集群,以使ceph集群处理第二块设备请求后反馈处理结果,从而完成访问过程。该访问过程不需要依赖于虚拟机和qemu实现,因此,可以缩短处理路径和提高处理效率。
在本发明提供的再一实施例中,还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述任一访问ceph集群的方法的方法步骤。
在这个访问过程中,可以直接将基于ISCSI协议的第一块设备请求转化为基于ceph集群所使用协议的第二块设备请求,并直接将第二块设备请求通过块设备接口发送给ceph集群,以使ceph集群处理第二块设备请求后反馈处理结果,从而完成访问过程。该访问过程不需要依赖于虚拟机和qemu实现,因此,可以缩短处理路径和提高处理效率。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、系统、服务器、计算机可读存储介质、计算机程序产品以及计算机程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (12)

1.一种访问ceph集群的方法,其特征在于,应用于服务器上运行的用户态的应用程序,所述方法包括:
接收客户端发送的基于ISCSI协议的第一块设备请求;
将第一块设备请求转换成基于ceph集群所使用协议的第二块设备请求;其中,ceph集群所使用协议是一种基于传输控制协议TCP的私有协议,基于ceph集群所使用协议的第二块设备请求为ceph rbd请求;
通过ceph集群提供的块设备接口,向ceph集群发送第二块设备请求;
接收ceph集群通过所述块设备接口反馈的对所述第二块设备请求的处理结果;
将所述处理结果发送至所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一块设备请求转换成基于ceph集群所使用协议的第二块设备请求的步骤,包括:
解析所述第一块设备请求,获得解析结果;
根据所述解析结果生成基于ceph集群所使用协议的第二块设备请求。
3.根据权利要求2所述的方法,其特征在于,所述通过ceph集群提供的块设备接口,向ceph集群发送第二块设备请求的步骤,包括:
基于所述解析结果确定所述块设备接口;
通过所确定的块设备接口,向ceph集群发送第二块设备请求。
4.根据权利要求3所述的方法,其特征在于,若所述解析结果包含读操作指令,则将ceph集群提供的rbd_read接口确定为所述块设备接口。
5.根据权利要求3所述的方法,其特征在于,若所述解析结果包含写操作指令,则将ceph集群提供的rbd_write接口确定为所述块设备接口。
6.一种访问ceph集群的装置,其特征在于,应用于服务器上运行的用户态的应用程序,所述装置包括:
第一块设备请求接收模块,用于接收客户端发送的基于ISCSI协议的第一块设备请求;
第一块设备请求转换模块,用于将第一块设备请求转换成基于ceph集群所使用协议的第二块设备请求;其中,ceph集群所使用协议是一种基于TCP的私有协议,基于ceph集群所使用协议的第二块设备请求为ceph rbd请求;
第二块设备请求发送模块,用于通过ceph集群提供的块设备接口,向ceph集群发送第二块设备请求;
处理结果接收模块,用于接收ceph集群通过所述块设备接口反馈的对所述第二块设备请求的处理结果;
处理结果发送模块,用于将所述处理结果发送至所述客户端。
7.根据权利要求6所述的装置,其特征在于,所述第一块设备请求转换模块用于:
解析所述第一块设备请求,获得解析结果;
根据所述解析结果生成基于ceph集群所使用协议的第二块设备请求。
8.根据权利要求7所述的装置,其特征在于,所述第二块设备请求发送模块用于:
基于所述解析结果确定所述块设备接口;
通过所确定的块设备接口,向ceph集群发送第二块设备请求。
9.根据权利要求8所述的装置,其特征在于,若所述解析结果包含:读操作指令;
则所述第二块设备请求发送模块用于:
将ceph集群提供的rbd_read接口确定为所述块设备接口。
10.根据权利要求8所述的装置,其特征在于,若所述解析结果包含写操作指令,则所述第二块设备请求发送模块用于:
将ceph集群提供的rbd_write接口确定为所述块设备接口。
11.一种服务器,其特征在于,包括处理器和存储器,其中:
存储器,用于存放运行在用户态的应用程序;
处理器,用于执行存储器上所存放的应用程序时,实现权利要求1-5任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
CN201811152128.4A 2018-09-29 2018-09-29 访问ceph集群的方法、装置、服务器及介质 Active CN110971631B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811152128.4A CN110971631B (zh) 2018-09-29 2018-09-29 访问ceph集群的方法、装置、服务器及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811152128.4A CN110971631B (zh) 2018-09-29 2018-09-29 访问ceph集群的方法、装置、服务器及介质

Publications (2)

Publication Number Publication Date
CN110971631A CN110971631A (zh) 2020-04-07
CN110971631B true CN110971631B (zh) 2022-07-05

Family

ID=70027620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811152128.4A Active CN110971631B (zh) 2018-09-29 2018-09-29 访问ceph集群的方法、装置、服务器及介质

Country Status (1)

Country Link
CN (1) CN110971631B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102065071A (zh) * 2009-11-17 2011-05-18 北京同有飞骥科技股份有限公司 一种支持多传输协议的存储设备
CN106453360A (zh) * 2016-10-26 2017-02-22 上海爱数信息技术股份有限公司 基于iSCSI协议的分布式块存储数据访问方法及系统
CN106527985A (zh) * 2016-11-02 2017-03-22 郑州云海信息技术有限公司 一种基于ceph的存储交互装置及存储系统
CN106681650A (zh) * 2015-11-10 2017-05-17 中国电信股份有限公司 虚拟卷访问方法和虚拟化系统
CN108206779A (zh) * 2016-12-16 2018-06-26 北京金山云网络技术有限公司 一种集群访问系统、方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100094847A1 (en) * 2008-10-10 2010-04-15 Malan Steven J Method and apparatus for multiple-protocol access to object-based storage
US10528290B2 (en) * 2017-02-23 2020-01-07 Arrikto Inc. Multi-platform data storage system supporting containers of virtual storage resources

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102065071A (zh) * 2009-11-17 2011-05-18 北京同有飞骥科技股份有限公司 一种支持多传输协议的存储设备
CN106681650A (zh) * 2015-11-10 2017-05-17 中国电信股份有限公司 虚拟卷访问方法和虚拟化系统
CN106453360A (zh) * 2016-10-26 2017-02-22 上海爱数信息技术股份有限公司 基于iSCSI协议的分布式块存储数据访问方法及系统
CN106527985A (zh) * 2016-11-02 2017-03-22 郑州云海信息技术有限公司 一种基于ceph的存储交互装置及存储系统
CN108206779A (zh) * 2016-12-16 2018-06-26 北京金山云网络技术有限公司 一种集群访问系统、方法及装置

Also Published As

Publication number Publication date
CN110971631A (zh) 2020-04-07

Similar Documents

Publication Publication Date Title
US20190332368A1 (en) Per request computer system instances
CN110096338A (zh) 智能合约执行方法、装置、设备及介质
US10572623B2 (en) Back-pressure in virtual machine interface
US20170153899A1 (en) Fast-booting application image
JP2022510121A (ja) 量子コンピューティング・シミュレーションにおける測定のためのゲート融合
CN107463499A (zh) Adb远程连接方法、装置、设备及存储介质
US9497268B2 (en) Method and device for data transmissions using RDMA
CN111194437B (zh) 使用存储中代码执行的数据处理卸载
CN107526620B (zh) 一种用户态输入输出设备配置方法及装置
CN113010470B (zh) 边缘节点远程控制系统、方法、设备及存储介质
US20210109720A1 (en) Interpreter for interpreting a data model algorithm and creating a data schema
CN109522222A (zh) 一种用于教育云平台的异常捕获方法及装置
CN111309432A (zh) 一种故障演练方法、装置及系统
CN110971631B (zh) 访问ceph集群的方法、装置、服务器及介质
US20140047213A1 (en) Method and system for memory overlays for portable function pointers
JP5031032B2 (ja) プログラムコード変換に関してプロセスファイルシステムを管理する方法及び装置
US8862785B2 (en) System and method for redirecting input/output (I/O) sequences
JP7427775B2 (ja) ストアドプロシージャの実行方法、装置、データベースシステム及び記憶媒体
US8291377B2 (en) External configuration of processing content for script
US10372516B2 (en) Message processing
EP3791274B1 (en) Method and node for managing a request for hardware acceleration by means of an accelerator device
CN112711527A (zh) 一种实时进程的调试方法、装置、目标机和存储介质
US20200151118A1 (en) Method and apparatus for offloading file i/o based on remote direct memory access using unikernel
CN108255534B (zh) Pc端应用处理方法、处理装置、电子设备和存储介质
CN111046430B (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
GR01 Patent grant