弹性块存储数据的方法、装置、系统和存储介质与流程

文档序号:16399898发布日期:2018-12-25 20:03阅读:235来源:国知局
本发明涉及存储
技术领域
:,尤其涉及一种弹性块存储的方法、装置、系统和存储介质。
背景技术
:随着企业云计算平台的快速发展,对利用块存储进行各类虚拟机和应用数据的存储需求越来越大。当前,弹性块存储技术方案是开源的方案,该方案可以为用户提供块高级别的高速数据存储服务。用户可使用块存储设备在虚拟机或物理机上以卷的方式写入数据或者读取数据。在当前的开源方案中,首先将ceph(分布式文件系统)卷映射为本地硬盘,然后通过小型计算机系统接口(internetsmallcomputersysteminterface,iscsi)服务将本地硬盘(由ceph映射而来)映射成逻辑单元号(logicalunitnumber,lun),再通过iscsi协议对外提供弹性块设备。在现有的弹性块存储方案主要存在如下缺点:1)通过ceph映射而来的本地硬盘存在出现逻辑错误的风险。2)在方案的实现过程中多一次映射操作,增加了系统性能消耗,增加服务响应时延。如何提高存储准确率和减小存储时延,成为业界亟待解决的技术问题。技术实现要素:为了解决存储准确率低和存储时延的问题,本发明实施例提供了一种弹性块存储的方法、装置、系统和存储介质。第一方面,提供了一种弹性块存储数据的方法。该方法包括以下步骤:将ceph设置为存储数据的系统,ceph的通信协议为rbd协议;接收基于iscsi协议的与ceph进行弹性块存储数据的请求;根据请求,将rbd协议与iscsi协议进行转换;按照转换后的相同的协议进行弹性块存储数据的操作。第二方面,提供了一种弹性块存储数据的装置。该装置包括:系统设置单元,用于将ceph设置为存储数据的系统,ceph的通信协议为rbd协议;请求接收单元,用于接收基于iscsi协议的与ceph进行弹性块存储数据的请求;协议转换单元,用于根据请求,将rbd协议与iscsi协议进行转换;数据存储单元,用于按照转换后的相同的协议进行弹性块存储数据的操作。第三方面,提供了一种弹性块存储数据的系统。该系统包括:ceph和存储网关,ceph用于存储数据,并通过rbd协议向存储网关进行弹性块存储数据的操作;存储网关用于将ceph的rbd协议转换为iscsi协议,并通过iscsi协议与ceph进行弹性块存储数据的操作。第四方面,提供了一种弹性块存储数据的装置。该装置包括:存储器,用于存放程序;处理器,用于执行所述存储器存储的程序,所述程序使得所述处理器执行上述各方面所述的方法。第五方面,提供了一种计算机可读存储介质。该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。由此,本发明实施例通过将ceph作为存储数据的系统,可以利用ceph优秀的可靠性和可扩展性,来提升存储效率。另外,本发明实施例通过将rbd协议与iscsi协议进行转换,并按照转换后的相同的协议进行弹性块存储数据的操作,一方面可以避免了由于ceph映射而来的本地硬盘出现的逻辑错误的风险,有效减少了故障发生率,提升系统的稳定性;另一方面,可以通过减少一次映射,从而减少了系统性能消耗并缩短了服务响应时延。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明一实施例的弹性块存储的系统组网示意图;图2是本发明一实施例的弹性块存储的方法的流程示意图;图3是本发明一实施例的协议转换的示意图;图4是本发明一实施例的弹性块存储数据的装置结构示意图;图5是本发明一实施例的弹性块存储数据的装置框架示意图;图6是本发明一实施例的弹性块存储数据的系统的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1是本发明一实施例的弹性块存储的系统组网示意图。如图1所示,该组网主要包括:虚拟服务器(server)111、server112、server113、server114和server115,存储网关(iscsi网关)121、iscsi网关122,监控机(monitor)123、monitor124和monitor125,存储结点131、存储结点132、存储结点133和存储结点134。其中,server111、server112、server113、server114和server115可以是提供应用(app)服务的应用服务器。应用服务器通过app访问底层存储,进行读取和写入数据等操作。网关(gateway)又称网间连接器、协议转换器。iscsi网关121和iscsi网关122可以负责将ceph的rbd协议转换为iscsi协议,然后通过iscsi协议对外弹性块存储服务。iscsi网关121和iscsi网关122可以相互冗余备份。iscsi网关121和iscsi网关122均可以包括lrbd集群管理模块。本系统可以采用linux系统的输入输出设备(linux-io,lio)作为iscsi网关。lrbd集群管理模块的开发语言可以为python2.7。lrbd可以是进行集群管理的工具,该工具以targetcli软件包为基础,集群中每个iscsi网关都可以部署该工具。应该理解,图1中的各个设备的数目仅仅是示意性的。根据实现需要,进行灵活调整,例如,为该系统提供网络环境,用以在各种电子设备之间提供通信链路的介质。具体的,网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等。本实施例可以部署用于公共(或者客户端)和后端的单独的10gbe网络,还提供一定数量的额外ram(如果使用缓存分层)。另外,利用iscsi网关可以部署用于客户端和后端单独的10gbe网络。下面各实施例均可以应用于本实施例的组网的场景下。图2是本发明一实施例的弹性块存储的方法的流程示意图。如图2所示,该方法包括以下步骤:s210,将ceph设置为存储数据的系统,ceph的通信协议为rbd协议;s220,接收基于iscsi协议的与ceph进行弹性块存储数据的请求;s230根据请求,将rbd协议与iscsi协议进行转换;s240,按照转换后的相同的协议进行弹性块存储数据的操作。在步骤s210中,ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。ceph能够在维护可移植操作系统接口(portableoperatingsysteminterface,posix)兼容性的同时加入了复制和容错功能。由ceph作为数据的最终存储系统,不仅可以解决现有的将ceph映射为本地硬盘而带来的本地硬盘出现逻辑错误的问题,而且可以提升存储的可靠性。在s220中,该请求可以是向ceph写入数据的请求,也可以是从ceph读取数据的请求,此方面内容不做限制。在s230中,将rbd协议与iscsi协议进行转换可以将不同的协议进行统一。在s240中,当请求是向ceph写入数据的请求时,转换后的相同的协议可以是rbd协议。当请求是从ceph读取数据的请求时,转换后的相同的协议可以是iscsi协议。由此,按照转换后的相同的协议进行弹性块存储数据的操作可以增加操作的可靠性。由此,本发明实施例通过将ceph作为存储数据的系统,可以利用ceph优秀的可靠性和可扩展性,来提升存储效率。另外,本发明实施例通过将rbd协议与iscsi协议进行转换,并按照转换后的相同的协议进行弹性块存储数据的操作,一方面可以避免了由于ceph映射而来的本地硬盘出现的逻辑错误的风险,有效减少了故障发生率,提升系统的稳定性;另一方面,可以通过减少一次映射,从而减少了系统性能消耗并缩短了服务响应时延。作为一个可选实施例,s230可以包括以下步骤:s231,当请求是向ceph写入数据的请求时,可以将iscsi协议转换为rbd协议;s232,当请求是从ceph读取数据的请求时,可以将rbd协议转换为iscsi协议。图3是本发明一实施例的协议转换的示意图。如图3所示,当请求是向ceph340写入数据的请求时,可以运行iscsi启动程序(initiator)310,运行iscsi目标驱动程序(targetdriver)320,将iscsi协议转换为rbd协议,再对内核模块330(target_core_rbd.ko)进行升级更新,然后ceph340与ceph集群350进行数据交互,完成数据写入操作。当请求是向ceph340读取数据的请求时,可以运行iscsi启动程序(initiator)310,运行iscsi目标驱动程序(targetdriver)320,将rbd协议转换为iscsi协议,再对内核模块330(target_core_rbd.ko)进行升级更新,然后ceph340与ceph集群350进行数据交互,完成数据读取操作。参见图3,协议转换的主要实现步骤可以如下所示:步骤1,所有流入和流出ceph集群350的数据都必须进行协议转换。在本实施例中,协议转换这个功能必然会消耗大量的cpu资源。因此,该功能的最佳运行模式就是作为内核模块在内核空间运行,如此设计可以降低对cpu的消耗,并减少数据访问的时延。该方案主要实现了对内核模块330(target_core_rbd.ko)进行升级更新。步骤2,在linux内核编译文件和配置文件中添加rbd作为lio后端的配置项。步骤3,补丁解决rbd内存泄露的问题。具体的,可以通过在target_core_rbd.c源文件以及头文件target_core_rbd.h中分别新增内容,解决写操作的内存页分配和统计的问题,同时修改tcm_rbd_dev的结构。修改target_core_rbd.c源文件,处理pr信息内存泄露,以修改这些内容来适配存储网关集群。步骤4,在exportliorbd后端存储ceph镜像操作相关功能实现的相关数据信息。步骤5,增加固定预留(persistentreservation)释放功能。步骤6,工具开发。例如,对将rbd协议存储通过iscsi协议对外提供的操作配置工具是targetcli。由于开源版本不支持rbd后端存储类型,所以需要修改targetcli工具,在其中添加rbd类型的后端存储支持。由此,本发明实施例通过将ceph作为存储数据的系统,可以利用ceph优秀的可靠性和可扩展性,来提升存储效率。另外,本发明实施例通过将rbd协议与iscsi协议进行转换,并按照转换后的相同的协议进行弹性块存储数据的操作,一方面可以避免了由于ceph映射而来的本地硬盘出现的逻辑错误的风险,有效减少了故障发生率,提升系统的稳定性;另一方面,可以通过减少一次映射,从而减少了系统性能消耗并缩短了服务响应时延。作为另一个可选实施例,rbd协议与iscsi协议进行转换的运行模式可以为:调用linux操作系统的内核,让rbd协议与iscsi协议进行转换的操作在内核的空间中运行的模式。因为协议转换这个功能必然会消耗大量的cpu资源,所以本实施例通过较佳的运行模式可以降低对cpu的消耗,并减少数据访问的时延。作为另一个可选实施例,可以在图2的基础上增加如下步骤:将lio设置为iscsi网关;在iscsi网关中部署lrbd工具,lrbd工具基于targetcli软件包管理由多个ceph组成的ceph集群。该步骤可以增加在接收基于iscsi协议的与ceph进行弹性块存储数据的请求(即s220)之前。其中,lrbd可以是进行集群管理的工具,该工具以targetcli为基础。集群中每个iscsi网关都可以部署该工具。对开源lrbd工具,其主要更新步骤分为以下4步:步骤1,添加对rbd后端存储类型支持;步骤2,确保单个iscsilun在多个网关上wwn的一致性;步骤3,添加lrbd重新加载(reload)服务;步骤4、修正按lun进行target查找的故障。在一些实施例中,可以在图2的基础上增加如下步骤:根据rbd协议将ceph集群镜像为rbd镜像;建立rbd镜像与iscsilun的映射关系。由此,可以实现存储网关之间的多服务器多活的方式,从而满足实际生产环境。具体的,生产环境中存储网关以多服务器多活的方式的实现步骤如下:步骤1,解决采用集中化的方式管理cephrbd镜像;步骤2,实现rbd镜像与iscsilun的映射关系;步骤3,实现将相关配置保存到ceph集群中去。需要说明的是,在不冲突的情况下,本领域的技术人员可以按实际需要将上述的操作步骤的顺序进行灵活调整,或者将上述步骤进行灵活组合等操作。为了简明,不再赘述各种实现方式。另外,各实施例的内容可以相互参考引用。图4是本发明一实施例的弹性块存储数据的装置结构示意图。如图4所示,该装置可以包括:系统设置单元410、请求接收单元420、协议转换单元430和数据存储单元440。其中,系统设置单元410可以用于将ceph设置为存储数据的系统,ceph的通信协议为rbd协议;请求接收单元420可以用于接收基于iscsi协议的与ceph进行弹性块存储数据的请求;协议转换单元430可以用于根据请求,将rbd协议与iscsi协议进行转换;数据存储单元440可以用于按照转换后的相同的协议进行弹性块存储数据的操作。由此,本发明实施例通过将ceph作为存储数据的系统,可以利用ceph优秀的可靠性和可扩展性,来提升存储效率。另外,本发明实施例通过将rbd协议与iscsi协议进行转换,并按照转换后的相同的协议进行弹性块存储数据的操作,一方面可以避免了由于ceph映射而来的本地硬盘出现的逻辑错误的风险,有效减少了故障发生率,提升系统的稳定性;另一方面,可以通过减少一次映射,从而减少了系统性能消耗并缩短了服务响应时延。在一些实施例中,协议转换单元430可以包括:第一转换模块和第二转换模块。其中,第一转换模块可以用于当请求是向ceph写入数据的请求时,将iscsi协议转换为rbd协议;第二转换模块可以用于当请求是从ceph读取数据的请求时,将rbd协议转换为iscsi协议。在一些实施例中,协议转换单元430的运行模式可以为:调用linux操作系统的内核,让rbd协议与iscsi协议进行转换的操作在内核的空间中运行的模式。作为图4所示实施例的第一变形实施例,可以在图4的基础上增加:网关设置单元和集群管理单元。其中,网关设置单元可以用于将lio设置为iscsi网关;集群管理单元可以用于在iscsi网关中部署lrbd工具,lrbd工具基于targetcli软件包管理由多个ceph组成的ceph集群。作为图4所示实施例的第二变形实施例,可以在图4的基础上增加:集群镜像单元和关系映射单元。其中,集群镜像单元可以用于根据rbd协议将ceph集群镜像为rbd镜像;关系映射单元可以用于建立rbd镜像与iscsilun的映射关系。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。需要说明的是,上述各实施例的装置可作为上述各实施例的用于各实施例的方法中的执行主体,可以实现各个方法中的相应流程,实现相同的技术效果,为了简洁,此方面内容不再赘述。图5是本发明一实施例的弹性块存储数据的装置框架示意图。如图5所示,该框架可以包括中央处理单元(cpu)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储部分508加载到随机访问存储器(ram)503中的程序而执行如下操作:将分布式文件系统ceph设置为存储数据的系统,ceph的通信协议为rbd协议;接收基于iscsi协议的与ceph进行弹性块存储数据的请求;根据请求,将rbd协议与iscsi协议进行转换;按照转换后的相同的协议进行弹性块存储数据的操作。在ram503中,还存储有框架操作所需的各种程序和数据。cpu501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。以下部件连接至i/o接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至i/o接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。图6是本发明一实施例的弹性块存储数据的系统结构示意图。如图6所示,该系统可以包括:ceph601、存储网关602和管理控制台603。其中,ceph601可以用于存储数据,并通过rbd协议向存储网关进行弹性块存储数据的操作;存储网关602可以用于将ceph的rbd协议转换为iscsi协议,并通过iscsi协议与ceph进行弹性块存储数据的操作;管理控制台603可以用于对ceph和存储网关进行存管理控制。在一些实施例中,管理控制台603还用于以下操作中的一种或者两种以上的操作:硬盘的创建操作、硬盘的删除操作、对由ceph组成的ceph集群的管理操作。在一些实施例中,该系统也可以包括:ceph601、存储网关602,相应的,上述管理控制台603的功能也随之失去。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1