存储系统的访问方法、装置、电子设备以及存储介质与流程

文档序号:32312890发布日期:2022-11-23 13:08阅读:95来源:国知局
存储系统的访问方法、装置、电子设备以及存储介质与流程

1.本技术涉及存储技术领域,特别涉及一种存储系统的访问方法、装置、电子设备以及存储介质。


背景技术:

2.多数应用程序都是针对单一系统类型的存储系统所进行的设计,因此,这些应用程序只能够配置一种系统类型的存储系统。而随着存储技术的发展,会产生越来越多的不同系统类型的存储系统,为了区分应用程序配置的存储系统以及没有配置的存储系统,将应用程序所配置的存储系统称为应用程序的原生存储系统,应用程序没有配置的存储系统称为应用程序的非原生存储系统。
3.目前,应用程序能够访问自己的原生存储系统,若原生存储系统的存储性能低,在一些对存储性能有高要求的应用场景下,应用程序就有访问非原生存储系统的需求,但是,由于非原生存储系统和原生存储系统的系统类型不同,导致应用程序无法访问非原生存储系统。


技术实现要素:

4.本技术实施例提供了一种存储系统的访问方法、装置、电子设备以及存储介质,能够使得应用程序访问非原生存储系统。该技术方案如下:
5.第一方面,提供了一种存储系统的访问方法,在一种可能的实现方式中,所述方法包括:
6.监听应用程序的数据访问请求,所述应用程序关联有第一存储系统和第二存储系统,所述第一存储系统为所述应用程序的原生存储系统,所述第二存储系统为所述应用程序的非原生存储系统;
7.若监听到用于指示访问所述第二存储系统的第一数据访问请求,对所述第一数据访问请求的数据格式进行转换,得到第二数据访问请求,所述第二数据访问请求的数据格式满足所述第二存储系统对数据访问请求的数据格式的要求;
8.通过所述第二数据访问请求,访问所述第二存储系统。
9.在一种可能的实现方式中,所述若监听到用于指示访问所述第二存储系统的第一数据访问请求,对所述第一数据访问请求的数据格式进行转换,得到第二数据访问请求包括:
10.若监听到所述第一数据访问请求,基于所述第一数据访问请求的访问类型,对所述第一数据访问请求的数据格式进行转换,得到所述第二数据访问请求。
11.在一种可能的实现方式中,所述若监听到所述第一数据访问请求,基于所述第一数据访问请求的访问类型,对所述第一数据访问请求的数据格式进行转换,得到所述第二数据访问请求包括:
12.若通过第一链接库监听到所述第一数据访问请求,基于所述第一数据访问请求的
访问类型,调用所述第一链接库中与所述访问类型对应的格式转换函数,对所述第一数据访问请求的数据格式进行转换,得到所述第二数据访问请求,所述第一链接库用于访问所述第二存储系统。
13.在一种可能的实现方式中,所述应用程序链接有所述第一链接库和第二链接库,所述第一链接库的调用顺序位于所述第二链接库之前,所述第二链接库用于访问所述第一存储系统。
14.在一种可能的实现方式中,所述监听应用程序的数据访问请求之前,所述方法还包括:
15.若所述第一链接库为动态链接库,通过环境变量ld preload,将所述应用程序与所述第一链接库进行链接,使得所述应用程序在运行的过程中优先调用所述第一链接库。
16.在一种可能的实现方式中,所述监听应用程序的数据访问请求之前,所述方法还包括:
17.若所述第一链接库为静态链接库,在对所述应用程序编译的过程中,先将所述应用程序与所述第一链接库进行链接,再将所述应用程序与所述第二链接库进行链接。
18.在一种可能的实现方式中,所述通过所述第二数据访问请求,访问所述第二存储系统包括:
19.向所述第二存储系统发送所述第二数据访问请求;
20.接收所述第二存储系统基于所述第二数据访问请求返回的第一访问响应;
21.对所述第一访问响应的数据格式进行转换,得到第二访问响应,所述第二访问响应的数据格式满足所述第一存储系统对访问响应的数据格式的要求;
22.向所述应用程序发送所述第二访问响应。
23.在一种可能的实现方式中,所述第一数据访问请求包括所述第二存储系统的系统标识。
24.在一种可能的实现方式中,所述系统标识包括所述第二存储系统的名称或所述第二存储系统的访问路径的路径信息。
25.在一种可能的实现方式中,所述监听应用程序的数据访问请求之后,所述方法还包括:
26.若监听到的所述数据访问请求指示访问所述第一存储系统,通过所述数据访问请求,访问所述第一存储系统。
27.第二方面,提供了一种存储系统的访问装置,用于执行上述存储系统的访问方法。具体地,该访问装置包括用于执行上述第一方面或上述第一方面的任一种可选方式提供的存储系统的访问方法的功能模块。
28.第三方面,提供一种电子设备,该电子设备包括处理器,所述处理器用于执行程序代码,使得电子设备执行以实现如上述存储系统的访问方法所执行的操作。
29.第四方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条程序代码,该程序代码由处理器读取以使电子设备执行如上述存储系统的访问方法所执行的操作。
30.第五方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,电子设备的处理器从计
算机可读存储介质读取该程序代码,处理器执行该程序代码,使得该计算机设备执行上述第一方面或者第一方面的各种可选实现方式中提供的方法。
31.本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
32.图1是本技术实施例提供的一种应用程序关联的存储系统的示意图;
33.图2是本技术实施例提供的一种存储系统的访问方法的系统架构示意图;
34.图3是本技术实施例提供的一种存储系统的访问方法的流程图;
35.图4是本技术实施例提供的另一种数据存储系统的访问方法的流程图;
36.图5是本技术实施例提供的一种在第一存储系统为文件存储系统的情况下访问第二存储系统的示意图;
37.图6是本技术实施例提供的一种在第一存储系统为对象存储系统的情况下访问第二存储系统的示意图;
38.图7是本技术实施例提供的一种在第一存储系统为块存储系统的情况下访问第二存储系统的示意图;
39.图8是本技术实施例提供的一种在第一存储系统为文件存储系统且第二存储系统为对象存储系统obs的情况下访问obs的示意图;
40.图9是本技术实施例提供的一种数据存储系统的访问装置的结构示意图;
41.图10是本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
42.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
43.图1是本技术实施例提供的一种应用程序关联的存储系统的示意图。如图1所示,该应用程序101关联的存储系统包括应用程序的原生存储系统102以及非原生存储系统103,其中,应用程序的非原生存储系统103有至少一个,非原生存储系统103和原生存储系统102的系统类型不同、输入输出(input output,io)接口的接口类型不同。
44.在一种可能的实现方式中,该应用程序通过调用原生存储系统102的io接口,访问原生存储系统102。在另一种可能的实现方式中,该应用程序还能够访问非原生存储系统。
45.例如,用户为应用程序部署存储网关,其中,存储网关为应用程序与非原生存储系统之间的中间设备。应用程序通过存储网关访问非原生存储系统,但是为应用程序部署存储网关,其部署成本高,另外,不同的存储网关适用的非原生存储系统不同,若当前部署的存储网关不支持访问应用程序待访问的非原生存储系统,还需重新部署新的存储网关,即存储网关不具有通用性。
46.再例如,用户通过对应用程序的代码进行显式修改,将应用程序的原生存储系统的io接口修改为非原生存储系统的io接口,从而实现对接不同类型的存储系统。当修改完成后,应用程序通过调用非原生存储系统的io接口,访问非原生存储系统。但是,修改完成后,存储系统不能再访问原生存储系统,且在用户对该应用程序的熟悉程度较高的情况下,
才能完成代码修改,对用户的专业性要求高。另外,对于不同的应用程序或者访问不同的非原生存储系统,都需要重新修改代码,不具备通用性。
47.本技术提供有一种存储系统的访问方法,该方法能够实现应用程序访问非原生系统,且无需部署额外的组件,也无需修改应用程序代码。参见图2所示的本技术实施例提供的一种存储系统的访问方法的系统架构示意图,该系统架构包括业务系统层201、io转换层202以及存储系统层203。
48.其中,业务系统层201包括电子设备中运行的应用程序,该电子设备为服务器或者终端,服务器例如本地服务器或者云服务器。终端包括个人(personal computer)计算机(例如笔记本电脑、平板电脑、台式电脑、超级本等)、具有网络产品界面设计(website user interface,web ui)功能的设备、智能手机、智能电视、智能可穿戴设备、人工智能(artificial intelligence,ai)产品智能汽车以及智能仪器或物联网(internet of things,iot)终端等。
49.如图2所示,应用程序关联的非原生存储系统和原生存储系统位于存储系统层203,该应用程序的原生存储系统为存储系统a,该应用程序的非原生存储系统包括存储系统b和存储系统c,其中,存储系统a、b以及c的io接口的分别为io接口a、b、c。需要说明的是,图2是以存储系统b和c这2个存储系统为应用程序的非原生存储系统为例示出的,应用程序也可能有2个以上的非原生存储系统或者1个非原生存储系统,在此,本技术实施例对应用程序的非原生存储系统的个数不做限定。
50.io转换层202,用于根据应用程序访问的存储系统的系统类型作相应地的适配。例如,若该应用程序调用原生存储系统的io接口,访问的是原生存储系统,则io转换层202不对本次访问作io接口的转换。若该应用程序调用原生存储系统的io接口,访问的是非原生存储系统,则io转换层对本次访问作对应io接口的转换。如图2所示,以访问的非存储系统为存储系统b为例,应用程序通过调用io接口a访问存储系统b,则io转换层202根据存储系统b的系统类型,将应用程序调用的io接口a转换为io接口b,通过调用io接口b访问存储系统b,以保证能够成功访问后端的存储系统,应用程序无需作任何改变,且整个系统也无需部署任何额外的组件。
51.在一种可能的实现方式中,io转换层202位于该应用程序所在的电子设备中,该应用程序的原生存储系统可能位于该电子设备中,也可能不位于该电子设备中,该应用程序的非原生存储系统可能位于该电子设备中,也可能不位于该电子设备中,在此,本技术实施例对应用程序的原生存储系统以及非原生存储系统的部署位置不作限定。
52.下面结合方法实施例,对应用程序访问非原生存储系统的过程作进一步地详细介绍。
53.图3是本技术实施例提供的一种存储系统的访问方法的流程图,该方法由电子设备执行,该方法包括下述步骤。
54.301、电子设备监听应用程序的数据访问请求,该应用程序关联有第一存储系统和第二存储系统,该第一存储系统为该应用程序的原生存储系统,该第二存储系统为该应用程序的非原生存储系统。
55.其中,该应用程序为该电子设备中运行的任一应用程序。第一存储系统有至少一个,第二存储有至少一个,为了便于描述以一个第一存储系统和一个第二存储系统为例,对
第一存储系统和第二存储系统作如下介绍:
56.该第一存储系统包括文件存储系统(cloud file storage system,cfs)、对象存储系统(object-based storage system,obs)、块存储系统(block storage system,bs)或其他类型的存储系统,在此,本技术实施例对第一存储系统的系统类型不做限定。该第二存储系统与该第一存储系统的系统类型不同。例如,该第一存储系统为文件存储系统,第二存储系统为对象存储系统、块存储系统或其他类型的存储系统。不同类型的存储系统所存储的数据的形式不同。例如,文件存储系统存储的数据为文件,块存储系统存储的数据为数据块,对象存储系统存储数据为对象。
57.对于该第一存储系统以及该第二存储系统中的任一存储系统,该存储系统的io接口有至少一种,至少一种io接口与至少一种访问类型一一对应。每种io接口用于实现对存储系统对应访问类型的访问过程。该至少一种io接口包括读接口、删除接口、列举接口、写接口以及其他种类的io接口中的至少一种,其中,读接口对应的访问类型为读取数据,相应地,读接口用于读取该存储系统中存储的数据。删除接口对应的访问类型为删除数据,相应地,删除接口用于删除该存储系统中存储的数据。列举接口对应的访问类型为列举数据,相应地,列举接口用于列举存储系统中存储的数据,写入接口对应的访问类型为写入数据,相应地,写入接口用于向存储系统中写入数据。
58.第一存储系统和第二存储系统中的io接口为软件接口,其中,软件接口可能表现为接口函数,第一存储系统和第二存储系统中对应同一访问类型的io接口的表现方式不同。以第一存储系统为文件存储系统,第二存储系统为对象存储为例,参见表1中列举的文件存储系统和对象存储系统的io接口以及io接口对应的访问类型。
59.表1
60.io接口的种类文件存储系统的io接口对象存储系统的io接口访问类型读接口open()/read()getobject()打开(读取)文件删除接口remove()deleteobject()删除文件列举接口opendir()/readdir()listobject()列举文件写接口create()/write()uploadobject()创建(写入)文件
61.该数据访问请求指示应用程序待访问的存储系统,该数据访问请求包括该存储系统的系统标识,该系统标识包括该存储系统的名称或者该存储系统的访问路径的路径信息。其中,待访问的存储系统为第一存储系统或第二存储系统,若待访问的存储系统为第二存储系统,该电子设备还对该数据访问请求的数据格式进行转换。为了便于描述,将用于指示访问第二存储系统的数据访问请求称为第一数据访问请求,数据转换后的第一数据访问请求称为第二数据访问请求。
62.该数据访问请求基于第一存储系统的某一io接口生成。若该io接口为读接口,则该数据访问请求为读数据请求,用于指示读取待访问存储系统中的数据。若该io接口为删除接口,则该数据访问请求为删除数据请求,用于指示删除待访问存储系统中存储的数据。若该io接口为列举口,则该数据访问请求为列举数据请求,用于指示列举待访问存储系统中存储的数据。若该io接口为写接口,则该数据访问请求为写数据请求,用于指示向待访问存储系统中写入数据。
63.在一种可能的实现方式中,应用程序访问第一存储系统还是访问第二存储系统,
由用户对应用程序进行配置。例如,第一存储系统为应用程序默认待访问的存储系统,在第一存储系统的性能低于第二存储系统的性能的情况下,应用程序有更换存储系统的需求,此时,用户将该应用程序待访问的存储系统由第一存储系统修改为第二存储系统。
64.例如,该电子设备显示应用程序待访问的存储系统的配置界面,用户将第二存储系统的系统标识作为待访问存储系统的系统标识,输入在该配置界面中。电子设备响应于对该配置界面中输入的系统标识的确认操作,将该应用程序待访问的存储系统由第一存储系统修改为第二存储系统。之后,若应用程序调用第一存储系统的io接口,电子设备将第二存储系统的系统标识输入该io接口,通过该io接口,基于输入的系统标识生成该数据访问请求,此时该数据访问请求指示访问第二存储系统。之后,若应用程序有访问第一存储系统或者其他第二存储系统的需求,用户再次将第一存储系统或其他第二存储系统配置为该应用程序待访问的存储系统即可,操作简单,对用户的专业性要求不高。
65.当然,若用户没有将第二存储系统配置为该应用程序待访问的存储系统,若应用程序调用第一存储系统的io接口,电子设备将第一存储系统的系统标识输入该io接口,通过该io接口,基于输入的系统标识生成该数据访问请求,此时该数据访问请求指示访问第一存储系统。
66.302、若监听到用于指示访问该第二存储系统的第一数据访问请求,电子设备对该第一数据访问请求的数据格式进行转换,得到第二数据访问请求,该第二数据访问请求的数据格式满足该第二存储系统对数据访问请求的数据格式的要求。
67.其中,该第一数据访问请求的数据格式为生成该第一数据访问请求的io接口所要求的数据格式,第二数据访问请求为第二存储系统中与该io接口对应同一访问类型的io接口所要求的数据格式。
68.仍以表1为例,假设第一存储系统为文件存储系统,第二存储系统为对象存储系统,若第一数据访问请求由文件存储系统的读接口read()生成,则该第一数据访问请求的数据格式满足read()的要求,而第二数据访问请求的数据格式满足对象存储系统的读接口getobject()的要求。
69.303、电子设备通过该第二数据访问请求,访问该第二存储系统。
70.本技术实施例提供的方法,通过监听应用程序的数据访问请求,在监听到用于访问非原生存储系统的数据访问请求的情况下,通过对数据请求的数据格式进行转换,使得转换后的数据访问请求的数据格式能够满足非原生存储系统的要求,进而能够通过转换后的数据访问请求,访问非原生存储系统。
71.在一种可能的实现方式中,电子设备通过链接库监听该应用程序的数据访问请求,在监听到该数据访问请求后,再决定是否对监听到的数据访问请求进行数据格式的转换。为了进一步说明该过程,参见图4根据本技术实施例提供的另一种数据存储系统的访问方法的流程图,该方法由电子设备执行。
72.401、电子设备通过第一链接库,监听应用程序的数据访问请求,该应用程序关联有第一存储系统和第二存储系统,该第一存储系统为该应用程序的原生存储系统,该第二存储系统为该应用程序的非原生存储系统。
73.其中,该应用程序链接有第一链接库,第一链接库用于监听应用程序的数据访问请求。在一种可能的实现方式中,该第一链接库包括第一存储系统的至少一种io接口,该至
少一种io接口与至少一种访问类型一一对应,例如表1所示的io接口与至少一种访问类型之间的对应关系。
74.应用程序通过第一存储系统的io接口,访问为该应用程序配置的待访问存储系统。例如,若该应用程序按照任一访问类型对待访问的存储系统进行访问,则该应用程序调用该第一链接库中该第一存储系统的与该任一访问类型对应的io接口。若第一链接库中第一存储系统的任一io接口被该应用程序调用,则该电子设备基于该任一io接口,生成该应用程序的数据访问请求,进而能够监听到该数据访问请求。或者,也可以理解为,一旦第一链接库中第一存储系统的任一io接口被该应用程序调用,电子设备就监听到了数据访问请求。
75.下面对电子设备基于该任一接口,生成该应用程序的数据访问请求的过程作如下介绍:
76.在一种可能的实现方式中,电子设备基于该应用程序的访问信息以及该任一io接口,生成该数据访问请求。其中,访问信息指示与待访问的存储系统相关的信息,该访问信息包括该应用程序待访问的存储系统的系统标识以及访问的数据的数据描述信息。其中,数据描述信息包括数据的标识、数据的存储路径或者数据本身等。例如,电子设备将该访问信息输入该任一io接口,由该io接口按照该io接口要求的数据访问请求的数据格式,基于输入的访问信息,生成数据访问请求,输出该数据访问请求。
77.以第一存储系统为文件存储系统,第二存储系统为对象存储系统为例,参见上述表1,文件存储系统中的读接口为read(),read()定义输出的数据生成请求包括待读取数据在文件存储系统中的存储路径。例如,若待访问的存储系统为文件存储系统,待读取数据的数据描述信息为文件test1在文件存储系统中的存储路径(如下述表2所示),相应地,数据生成请求表示为:read(“/home/test/test1.txt”)。若待访问的存储系统为对象存储系统,数据的数据描述信息为对象test1的标识“test/test1.txt”,则电子设备按照文件存储系统对文件的存储路径的格式要求,基于访问信息所指示的对象存储系统以及数据描述信息,以文件名称为对象存储系统的系统标识obs的根文件夹,以对象test1为该根文件夹下的文件,构造对象test1在文件存储系统中的存储路径:obs:://test/test1.txt,相应地,数据访问请求为read(“obs:://test/test1.txt”)。
78.表2
79.文件存储系统中文件的存储路径对象存储系统中对象的存储路径/home/test/test1.txtobs:://test/test1.txt
80.可以理解的是,若应用程序访问的是对象存储系统中的对象test1,由于文件存储系统中并不存在test1,此时,电子设备为该对象test1构造的在文件存储系统中的存储路径并不存在,而是为了适应文件存储系统中的io接口对数据访问请求的数据格式的要求,所构造的存储路径。
81.在另一种可能的实现方式中,该应用程序链接有该第一链接库和第二链接库,该第一链接库的调用顺序位于该第二链接库之前,该第二链接库用于访问该第一存储系统。其中,该第一链接库和第二链接库均包括第一存储系统的至少一种io接口。
82.在访问存储系统时,由于该第一链接库的调用顺序位于该第二链接库之前,则该应用程序优先调用该第一链接库中该第一存储系统的io接口,不再调用第二链接库中第一
存储系统的io接口,进而能够通过第一链接库监听该应用程序的数据访问请求,使得第一链接库在第二链接库之前能够监听到该数据访问请求,从而相对于第二链接库,第一链接库当前获取到了该数据访问请求的控制权,从而避免在访问第二存储系统的情况下,应用程序因调用到第二链接库无法访问第二存储系统的情况,也就避免了出现应用程序访问第二存储系统失败的情况。
83.下面对设置第一链接库和第二链接库的调用顺序的过程作如下介绍:
84.在一种可能的实现方式中,该第一链接库为动态链接库或静态链接库,该第二链接库为动态链接库或静态链接库。
85.若该第一链接库为动态链接库,电子设备通过环境变量ld preload,将该应用程序与该第一链接库进行链接,使得该应用程序在运行的过程中优先调用该第一链接库。其中,ld preload是linux操作系统的一个环境变量,它能影响应用程序运行时的链接,它允许用户定义在应用程序运行前优先加载的动态链接库。可以理解的是,ld preload能够用来有选择性的调用不同动态链接库中的相同函数,通过这个环境变量,使用应用程序优先调用用户期望的函数。
86.以下述的表3为例,若该第一链接库home/test.exe为动态链接库,第二链接库为静态链接库,用户向电子设备提交命令:ld_preload=iotransfer.so./home/test.exe,以显式的设置环境变量ld_preload。当电子设备获取到用户提交的该命令后,基于该命令,将第一链接库链接到应用程序,并将第一链接库的调用顺序调整到该应用程序链接各个静态链接库之前,从而第一链接库的调用顺序位于第二链接库之前。
87.表3
88.链接第一链接库的命令链接第一动态链接库的命令./home/test.exeld_preload=iotransfer.so./home/test.exe
89.若是用户向电子设备提交命令:./home/test.exe,由于该命令没有提高第一链接库的调用顺序的作用,因此,当电子设备获取到用户提交的该命令后,基于该命令,将第一链接库链接到应用程序,且第一链接库的调用顺序位于该应用程序已经链接的各个链接库之后,由于应用程序的静态链接库在编译过程中已完成链接,因此,若第二链接库为静态链接库,则此时第一链接库的调用顺序位于该第二链接库之后。
90.若第一链接库和第二链接库均为动态链接库,电子设备也可能通过环境变量ld preload保证第一链接库的调用顺序位于第二链接库之前。或者,电子设备不借助环境变量ld preload,而是先将第一链接库与该应用程序进行链接,再将第二链接库与该应用程序进行链接,以保证第一链接库的调用顺序位于第二链接库之前。
91.需要说明的是,上述是以环境变量ld preload为例,提高第一链接库中调用顺序的一种方式,在不同的操作系统或者应用程序不同的运行环境下,若第一链接库为动态链接库,该电子设备还能够通过适用于操作系统或运行环境的方式,提高第一链接库的调用顺序,在此,本技术实施例对第一链接库为动态链接库的情况下,提高第一链接库的调用顺序的方式不做限定。
92.若该第一链接库为静态链接库,该电子设备在对该应用程序编译的过程中,先将该应用程序与该第一链接库进行链接,再将该应用程序与该第二链接库进行链接。例如,电子设备通过该链接库列表指示该应用程序调用多个静态链接库中的调用顺序,其中,该多
个静态链接库包括第一链接库和第二链接库,第一链接库的调用顺序位于第二链接库之前。在对该应用程序编译的过程中,电子设备根据该链接库列表所指示的多个静态链接库的调用顺序,对该多个链接库与该应用程序进行链接,以保证第一链接库的调用顺序位于第二链接库之前,进而在电子设备运行该应用程序的过程中,在该应用程序调用第一存储系统的io接口的情况下,按照第一链接库和第二链接库的调用顺序,优先调用第一链接库中第一存储系统的io接口。
93.其中,电子设备根据该链接库列表所指示的多个静态链接库的调用顺序,对该多个链接库与该应用程序进行链接,可能根据该链接库列表所指示的多个静态链接库的调用顺序,依次对该多个链接库与该应用程序进行链接,也可能乱序对该多个链接库与该应用程序进行链接,只要多个链接库链接完成后,第一链接库的调用顺序位于第二链接库之前即可。
94.需要说明的是,该多个静态链接库还可能包括除第一链接库和第二链接库以外的其他链路库,在此,本技术实施例对其他链接库不做限定。另外,上述以通过链接库监听应用程序的数据访问请求为例进行说明的。在另一种可能的实现方式中,该电子设备为该应用程序配置目标进程,通过该目标进程监听该数据访问请求,或者,电子设备通过埋点技术监听该数据访问请求,在此,本技术实施例对电子设备监听该数据访问请求的方式不做限定。
95.另外,在监听到应用程序的某一数据访问请求的情况下,若该数据访问请求携带第二存储系统的系统标识,则说明该数据访问请求指示访问第二存储系统,否则,该数据访问请求为指示访问第一存储系统。
96.仍以上述的表2为例,若监听到的数据访问请求为:read(“obs:://test/test1.txt”),由于该数据访问请求中的“obs”为对象存储系统的系统标识,则说明该数据访问请求为第一数据访问请求。
97.在一种可能的实现方式中,第一链接库中的任一io接口生成某一数据访问请求后,该任一io接口判定该第一数据访问请求是否为第一数据访问请求,从而实现通过该任一io接口能够监听到第一数据访问请求。在另一种可能的实现方式中,该任一io接口生成该某一数据访问请求后,向判定函数输入该数据访问请求,由判定函数判定该数据访问请求是否为第一数据访问请求,并向任一io接口返回判定结果,相应地,该任一io接口基于判定结果能够指定监听到的数据访问请求是否为第一数据访问请求,从而使得该第一链接库中第一存储系统的各种io接口均能够共用判定函数,无需各种io接口判定。
98.402、若监听到的数据访问请求指示访问该第一存储系统,电子设备通过该数据访问请求,访问该第一存储系统。
99.若听到的数据访问请求指示访问该第一存储系统,则电子设备不对该第一数据访问请求做进一步处理,该电子设备向该第一存储系统发送该数据访问请求,该第一存储系统接收到该数据访问请求后,基于该数据访问请求,向电子设备返回第三访问响应,电子设备接收到该第三访问响应后,向该应用程序返回该第三访问响应。
100.其中,第一访问响应为该应用程序访问第一存储系统的访问结果。以该数据访问请求指示读取第一存储系统中的数据为例,第一存储系统基于该数据访问请求,向该电子设备发送读取到的数据。以该数据访问请求指示向第一存储系统写入数据为例,第一存储
系统基于该数据访问请求,在第一存储系统中写入数据,以第一目标标识为第三访问响应,向该电子设备发送第三访问响应,其中,第一目标标识指示向第一存储系统是否入写入完成。
101.在一种可能的实现方式中,本步骤402由第一链接库来实现,例如由第一链接库中生成该数据访问请求的io接口来实现。
102.例如,图5是本技术实施例提供的一种在第一存储系统为文件存储系统的情况下访问第二存储系统的示意图。假设应用程序读取文件存储系统中的文件,应用程序调用第一链接库中文件存储系统的读接口read(),生成用于指示访问文件存储系统的数据访问请求,向虚拟文件存储系统(virtual file system,vfs)发送该数据访问请求,vfs向存储系统发送该数据访问请求。之后,文件存储系统通过读接口read(),接收该数据访问请求,基于接收到的该数据访问请求,向电子设备发送读取的文件,电子设备将读取到的文件下载到缓存(bufffer),vfs按照文件存储系统对访问响应的数据格式的要求,为缓存中存储的该文件构造文件描述符(file descriptor,fd),向读接口read()返回fd,读接口read()向应用程序返回fd,之后,应用程序可根据接收的该fd查询下载到的文件。
103.再例如,图6是本技术实施例提供的一种在第一存储系统为对象存储系统的情况下访问第二存储系统的示意图。如图6所示,假设应用程序读取对象存储系统中的对象,应用程序调用第一链接库中对象存储系统的读接口getobject(),生成用于指示访问对象存储系统的数据访问请求,向对象存储系统发送该数据访问请求。之后,对象存储系统通过读接getobject(),接收该数据访问请求,基于接收的数据访问请求,向电子设备发送读取的对象,电子设备将读取到的对象下载到缓存,该读接口向应用程序返回缓存中的对像。
104.再例如,图7是本技术实施例提供的一种在第一存储系统为块存储系统的情况下访问第二存储系统的示意图,块存储系统可能搭载有数据库,块存储系统通过其搭载的数据库与应用程序进行交互,那么,对于应用程序而言,该数据库的io接口为块存储系统的io接口,该数据库对数据访问请求/访问响应的数据格式的要求为块存储系统对数据访问请求/访问响应的数据格式的要求。其中,该数据库例如oracle或者其他数据库,在此,本技术实施例对块存储系统搭载的数据库不做限定。
105.如图7所示,假设应用程序读取块存储系统中的数据块,应用程序调用第一链接库中块存储系统搭载的数据库的读接口xx,生成用于指示访问块存储系统的数据访问请求,向块存储系统发送该数据访问请求。之后,块存储系统通过读接口xx,接收数据访问请求,基于接收该数据访问请求,向电子设备发送读取的数据块,电子设备将读取到的数据块下载到缓存,该读接口xx向应用程序返回缓存中的数据块。
106.403、若监听到用于指示访问该第二存储系统的第一数据访问请求,电子设备对该第一数据访问请求的数据格式进行转换,得到第二数据访问请求,该第二数据访问请求的数据格式满足该第二存储系统对数据访问请求的数据格式的要求。
107.在一种可能的实现方式中,若监听到该第一数据访问请求,电子设备基于该第一数据访问请求的访问类型,对该第一数据访问请求的数据格式进行转换,得到该第二数据访问请求。例如下述的方式a和方式b。
108.方式a、若监听到该第一数据访问请求,电子设备基于该第一数据访问请求的访问类型与第一存储系统和第二存储系统的io接口之间的对应关系,对该第一数据访问请求的
数据格式进行转换,得到第二数据访问请求。
109.例如,该电子设备中存储有第一存储系统的至少一种io接口、第二存储系统的至少一种io接口以及至少一个访问类型之间的对应关系,且第一存储系统和第二存储系统的相同种类的io接口对应,每种io接口对应一种访问类型。其中,该对应关系可能通过表格来体现(例如上述的表1)。若监听到第一数据访问请求,电子设备在该对应关系中,查询该第一数据访问请求的访问类型所对应的第二存储系统的io接口,按照查询到的io接口对数据访问请求的数据格式的要求,对第一数据访问请求的数据格式进行转换,得到第二数据访问请求。
110.方式b、若通过第一链接库监听到该第一数据访问请求,电子设备基于该第一数据访问请求的访问类型,调用该第一链接库中与该访问类型对应的格式转换函数,对该第一数据访问请求的数据格式进行转换,得到该第二数据访问请求,该第一链接库还用于访问该第二存储系统。
111.其中,第一链接库还包括至少一个格式转换函数,该至少一个格式转换函数与至少一个访问类型一一对应,该格式转换函数用于将第一存储系统中对应访问类型的数据访问请求转换为第二存储系统中对应访问类型的数据访问请求。在一种可能的实现方式中,该格式转换函数为钩子(hook)函数。
112.例如,若第一链接库中第一存储系统的任一io接口所生成的数据访问请求为第一数据访问请求,则电子设备通过该任一io接口,根据该任一io接口对应的访问类型,向该访问类型对应的格式转换函数输入该第一数据访问请求。之后,电子设备通过该格式转换函数,按照第二存储系统中该访问类型对应的io接口,对输入的第一数据访问请求进行数据格式的转换,得到第二数据访问请求。
113.在另一种可能的实现方式中,该至少一个格式转换函数与第一存储系统中的至少一种io接口对应,与第二存储系统中的至少一种io接口对应,且同一格式转换函数对应的第一存储系统和第二存储系统中的io接口的种类或访问类型相同。若第一链接库中第一存储系统的任一io接口所生成的数据访问请求为第一数据访问请求,则电子设备通过该任一io接口,向该任一io接口对应的格式转换函数输入该第一数据访问请求。之后,电子设备通过该格式转换函数,按照第二存储系统中该对应的io接口,对输入的第一数据访问请求进行数据格式的转换,得到第二数据访问请求。
114.在一种可能的实现方式中,电子设备在通过第二数据访问请求访问第二存储系统的过程中,还会对访问结果的数据格式进行转换,使得转换后的访问结果的数据格式能够满足第一存储系统对访问结果的要求,进而向应用程序返回转换后的访问结果,使得应用程序对存储系统的改变无感知。例如,下述步骤404-409所示的过程。
115.404、电子设备向该第二存储系统发送该第二数据访问请求。
116.在一种可能的实现方式中,本步骤404通过第一链接库中的格式转换函数实现,例如,若第一链接库中的某一格式转换函数将该第一数据访问请求转换为第二数据访问请求,电子设备通过该格式转换函数,向第二存储系统发送第二数据访问请求。
117.405、该第二存储系统接收该第二数据访问请求。
118.在一种可能的实现方式中,本步骤405由管理该第二存储系统的目标设备来执行,其中,该目标设备可能为第二存储系统的服务器。
119.406、第二存储系统基于该第二数据访问请求,向电子设备发送第一访问响应。
120.其中,第一访问响应为该应用程序访问第二存储系统的访问结果,第一访问响应的数据格式满足第二存储系统对访问响应的数据格式的要求。在一种可能的实现方式中,本步骤406由管理该第二存储系统的目标设备来执行。
121.以第二数据访问请求指示读取第二存储系统中的数据为例,目标设备基于该第二数据访问请求,从该第二存储系统中读取数据,以读取到的数据为第一访问响应,向该电子设备发送读取到的数据。若第一存储系统为文件存储系统,第二存储系统为对象存储系统,此时读取到的数据为对象,而不是文件。
122.以第二数据访问请求指示向第二存储系统写入数据为例,目标设备基于该第二数据访问请求,向第二存储系统写入数据,以目标标识为第一访问响应,向该电子设备发送第一访问响应,其中,目标标识指示向第二存储系统是否入写入完成。
123.407、电子设备接收该第二存储系统基于该第二数据访问请求返回的第一访问响应。
124.408、电子设备对该第一访问响应的数据格式进行转换,得到第二访问响应,该第二访问响应的数据格式满足该第一存储系统对访问响应的数据格式的要求。
125.在一种可能的实现方式中,电子设备基于该第二数据访问请求的访问类型,对该第一访问响应的数据格式进行转换,得到该第二访问响应。例如下述的方式c1和方式c2。
126.方式c1、电子设备基于该第二数据访问请求的访问类型与第一存储系统和第二存储系统的io接口之间的对应关系,对该第一访问响应的数据格式进行转换,得到第二访问响应。
127.例如,该电子设备中存储有第一存储系统的至少一种io接口、第二存储系统的至少一种io接口以及至少一个访问类型之间的对应关系,电子设备在该对应关系中,查询该第二数据访问请求的访问类型所对应的第二存储系统的io接口,按照查询到的io接口对第一访问响应的数据格式的要求,对第一访问响应的数据格式进行转换,得到第二访问响应。
128.方式c2、电子设备基于该第二数据访问请求的访问类型,调用第一链接库中与该访问类型对应的格式转换函数,对该第一访问响应的数据格式进行转换,得到该第二访问响应。
129.例如,当电子设备接收到该第一访问响应后,根据该第二数据访问请求的访问类型,向第一链接库中该访问类型对应的格式转换函数输入该第一访问响应,通过该格式转换函数,对该第一访问响应的数据格式进行转换,得到该第二访问响应。
130.对于上述方式c1和c2中的任一方式,在此,该任一方式中对该第一访问响应的数据格式进行转换的过程作如下介绍:电子设备还按照第一存储系统对数据访问请求的数据格式的要求,对该第一访问响应的数据格式进行转换,得到第二访问响应。
131.仍以图5为例,应用程序的第一存储系统为文件存储系统,第二存储系统为对象存储系统,假设应用程序读取对象存储系统中的对象,应用程序调用文件存储系统中的读接口read(),读取对象存储系统中的对象,第一链接库能够监听到读接口read()输出的第一数据访问请求,第一链接库按照对象存储系统中的读接口getobject()对数据访问请求的数据格式的要求,将第一数据访问请求转换为第二数据访问请求,向对象存储系统发送第二数据访问请求。之后,对象存储系统通过读接口getobject(),接收到第二数据访问请
求,基于接收的第二数据访问请求,以该应用程序读取的对象为第一访问响应,向电子设备发送该对象。电子设备接收到该对象后,将该文件下载到缓存中。该第一链接库按照文件存储系统对访问响应的数据格式的要求,将缓存的对象存储为文件,为存储的该文件构造fd,然后,向该应用程序返回该fd,从而对于应用程序而言其读取的是一个文件,实现上层应用无感知。
132.若第二存储系统为块存储系统,假设应用程序读取块存储系统中的数据块,应用程调用文件存储系统中的读接口read(),第一链接库能够监听到读接口read()输出的第一数据访问请求,第一链接库按照块存储系统中的读接口xx对数据访问请求的数据格式的要求,将第一数据访问请求转换为第二数据访问请求,向块存储系统发送第二数据访问请求。之后,块存储系统通过读接口xx,接收第二数据访问请求,基于接收该第二数据访问请求,以该应用程序读取的数据块为第一访问响应,向电子设备发送该数据块。电子设备接收到该数据块后,将该数据块存储在缓存中。该第一链接库按照文件存储系统对访问响应的数据格式的要求,将缓存的数据块存储为文件,为存储的该文件构造fd,然后,向该应用程序返回该fd,从而对于应用程序而言其读取的是一个文件,实现上层应用无感知。
133.在另一种可能的实现方式中,对于第二数据访问请求所访问的目标数据,电子设备还能基于该第一访问响应,按照第一存储系统存储数据的存储路径,在本地模拟创建目标数据的存储路径,使得目标应用程序感知的目标数据来自第一存储系统,而不是来自第二存储系统,从而使得应用程序更加感知不到存储系统发生了改变。
134.例如,图8所示的本技术实施例提供的一种在第一存储系统为文件存储系统且第二存储系统为对象存储系统obs的情况下访问obs的示意图,假设应用程序读取obs中的对象test/12.txt,应用程序调用文件存储系统的读接口read(),生成第一数据访问请求read(“obs://test/12.txt”),第一链接库监听到read(“obs://test/12.txt”),将read(“obs://test/12.txt”)的数据格式转换为obs定义的s3语义的读接口对数据访问请求要求的数据格式,得到第二数据访问请求obs.getobject(“obs://test/12.txt”),通过obs.getobject(“obs://test/12.txt”),以test/12.txt为键值(key),从obs获取对象test/12.txt。电子设备将对象test/12.txt下载到缓存中,通过第一链接库,将缓存中的对象test/12.txt转换为文件12.txt,为该文件12.txt构造文件夹test和home,将该文件12.txt存储在文件夹test,将文件夹存储在文件夹home,从而该文件的存储路径为:/home/test/12.txt。之后,电子设备通过第一链接库,为该文件12.txt构造fd,将构造的fd返回应用程序,再之后,应用程序根据fd访问文件夹test中的该文件12.txt,电子设备向该应用程序返回文件夹test中的该文件12.txt(也即是应用程序访问的对象的内容)。其中,第一链接库为该文件12.txt构造的文件夹可能是文件存储系统的根文件夹,也可能是根文件夹下的一个子文件夹,也可能不是文件存储系统的根文件夹。
135.409、电子设备向该应用程序发送该第二访问响应。
136.在一种可能的实现方式中,本步骤409通过第一链接库中的格式转换函数实现,例如,若第一链接库中的某一格式转换函数将该第一访问响应转换为第二访问响应后,电子设备通过该格式转换函数向该应用程序发送第二问响应。
137.需要说明的是,通过第一链接库监听应用程序的数据访问请求,以获得该数据访问请求的控制权,在监听到的第一数据访问请求后,第一链接库将第一数据访问请求输入
到对应的格式转换函数,由格式转换函数对该第一数据访问请求进行之后的处理,直到该格式转换函数得到第二访问响应,该格式转换函数向应用程序返回第二方向,达到了劫持该应用程序的第一数据访问的目的,从而无须第二链接库处理第一数据访问请求,避免第二链接库处理失败第一数据访问请求,使得第二应用程序能够访问第二存储系统成功。可以理解的是,该第一链接库也即是应用程序的io转换层。
138.需要说明的是,步骤404、407-409所示的过程为电子设备通过第二数据访问请求,访问第二存储系统的过程,在另一种可能的实现方式中,在通过第二数据访问请求,访问第二存储系统的过程,在接收到第一访问响应后,电子设备不对第一访问响应做数据格式的转换,而是向该应用程序发送第一访问响应。
139.本技术实施例提供的方法,通过监听应用程序的数据访问请求,在监听到用于访问非原生存储系统的数据访问请求的情况下,通过对数据请求的数据格式进行转换,使得转换后的数据访问请求的数据格式能够满足非原生存储系统的要求,进而能够通过转换后的数据访问请求,访问非原生存储系统。
140.下面以图6和图7为例,来进一步说明图4所示的过程。
141.如图6所示,假设第二存储系统为文件存储系统,应用程序读取文件存储系统中的文件,应用程序调用对象存储系统中的读接口getobject(),生成第一数据访问请求,第一链接库监听到该第一数据访问请求后,将第一数据访问请求的数据格式转换为文件存储系统定义的读接口对数据访问请求要求的数据格式,得到第二数据访问请求,通过第二数据访问请求从文件存储系统读取文件。电子设备将读取到的文件下载到缓存中,通过第一链接库,将缓存中的文件转换为对象,为该对象构造在对象存储系统中的存储路径,将该对象存储在该存储路径下,并向应用程序返回该存储路径下存储的对象。
142.假设第二存储系统为块存储系统,应用程序读取块存储系统中的数据块,应用程序调用对象存储系统中的读接口getobject(),生成第一数据访问请求,第一链接库监听到该第一数据访问请求后,将第一数据访问请求的数据格式转换为块存储系统搭载的数据库所定义的读接口对数据访问请求要求的数据格式,得到第二数据访问请求,通过第二数据访问请求从块存储系统读取数据块。电子设备将读取到的数据块下载到缓存中,通过第一链接库,将缓存中的数据块转换为对象,为该对象构造在对象存储系统中的存储路径,将该对象存储在该存储路径下,并向应用程序返回该存储路径下存储的对象。
143.如图7所示,假设第二存储系统为文件存储系统,应用程序读取文件存储系统中的文件,应用程序调用块存储系统搭载的数据库所定义的读接口xx,生成第一数据访问请求,第一链接库监听到该第一数据访问请求后,将第一数据访问请求的数据格式转换为文件存储系统定义的读接口xx对数据访问请求要求的数据格式,得到第二数据访问请求,通过第二数据访问请求从文件存储系统读取文件1。电子设备将读取到的文件下载到缓存中,通过第一链接库,将缓存中的文件转换为数据块,第一链接库为数据块构造在块存储系统中的存储路径,将该数据块存储在该存储路径下,并向应用程序返回该存储路径下存储的数据块。
144.假设第二存储系统为对象存储系统,应用程序读取对象存储系统中的对象,应用程序调用块存储系统搭载的数据库所定义的读接口xx,生成第一数据访问请求,第一链接库监听到该第一数据访问请求后,将第一数据访问请求的数据格式转换为对象存储系统定
义的读接口xx对数据访问请求要求的数据格式,得到第二数据访问请求,通过第二数据访问请求从对象存储系统读取对象。电子设备将读取到的对象下载到缓存中,通过第一链接库,将缓存中的对象转换为数据块,为该数据块构造在对象存储系统中的存储路径,将该数据块存储在该存储路径下,并向应用程序返回该存储路径下存储的数据块。
145.以上介绍了本技术实施例的方法,以下介绍本技术实施例的装置。应理解,以下介绍的装置具有上述方法中电子设备的任意功能。
146.图9本技术实施例提供的一种数据存储系统的访问装置的结构示意图,图9所示的装置900可以为前面各个实施例中的电子设备或电子设备的部分,用于执行电子设备所执行的方法,所述装置900包括:
147.监听模块901,用于监听应用程序的数据访问请求,所述应用程序关联有第一存储系统和第二存储系统,所述第一存储系统为所述应用程序的原生存储系统,所述第二存储系统为所述应用程序的非原生存储系统;
148.转换模块902,用于若监听到用于指示访问所述第二存储系统的第一数据访问请求,对所述第一数据访问请求的数据格式进行转换,得到第二数据访问请求,所述第二数据访问请求的数据格式满足所述第二存储系统对数据访问请求的数据格式的要求;
149.访问模块903,用于通过所述第二数据访问请求,访问所述第二存储系统。
150.在一种可能的实现方式中,所述转换模块902用于:
151.若监听到所述第一数据访问请求,基于所述第一数据访问请求的访问类型,对所述第一数据访问请求的数据格式进行转换,得到所述第二数据访问请求。
152.在一种可能的实现方式中,所述转换模块902用于:
153.若通过第一链接库监听到所述第一数据访问请求,基于所述第一数据访问请求的访问类型,调用所述第一链接库中与所述访问类型对应的格式转换函数,对所述第一数据访问请求的数据格式进行转换,得到所述第二数据访问请求,所述第一链接库用于访问所述第二存储系统。
154.在一种可能的实现方式中,所述应用程序链接有所述第一链接库和第二链接库,所述第一链接库的调用顺序位于所述第二链接库之前,所述第二链接库用于访问所述第一存储系统。
155.在一种可能的实现方式中,所述装置900还包括:
156.第一链接模块,用于若所述第一链接库为动态链接库,通过环境变量ld preload,将所述应用程序与所述第一链接库进行链接,使得所述应用程序在运行的过程中优先调用所述第一链接库。
157.在一种可能的实现方式中,所述装置900还包括:
158.第二链接模块,用于若所述第一链接库为静态链接库,在对所述应用程序编译的过程中,先将所述应用程序与所述第一链接库进行链接,再将所述应用程序与所述第二链接库进行链接。
159.在一种可能的实现方式中,所述访问模块903用于:
160.向所述第二存储系统发送所述第二数据访问请求;
161.接收所述第二存储系统基于所述第二数据访问请求返回的第一访问响应;
162.对所述第一访问响应的数据格式进行转换,得到第二访问响应,所述第二访问响
应的数据格式满足所述第一存储系统对访问响应的数据格式的要求;
163.向所述应用程序发送所述第二访问响应。
164.在一种可能的实现方式中,所述第一数据访问请求包括所述第二存储系统的系统标识。
165.在一种可能的实现方式中,所述系统标识包括所述第二存储系统的名称或所述第二存储系统的访问路径的路径信息。
166.在一种可能的实现方式中,所述903访问模块还用于:
167.若监听到的所述数据访问请求指示访问所述第一存储系统,通过所述数据访问请求,访问所述第一存储系统。
168.装置900通过监听应用程序的数据访问请求,在监听到用于访问非原生存储系统的数据访问请求的情况下,通过对数据请求的数据格式进行转换,使得转换后的数据访问请求的数据格式能够满足非原生存储系统的要求,进而能够通过转换后的数据访问请求,访问非原生存储系统。
169.应理解,装置900对应于上述方法实施例中的电子设备,装置900中的各模块和上述其他操作和/或功能分别为了实现方法实施例中的电子设备所实施的各种步骤和方法,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。
170.应理解,装置900在访问应用程序的非原生存储系统时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置900的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置900与上述方法实施例属于同一构思,其具体实现过程详见上述方法实施例,这里不再赘述。
171.图10是本技术实施例提供的一种电子设备的结构示意图,电子设备1000包括一个或多个处理器1001以及一个或多个存储器1002。该一个或多个存储器1002与一个或多个处理器1001耦合,一个或多个存储器1002用于存储程序代码,当一个或多个处理器执行该序代码时,使得电子设备1000执行上述相关方法步骤实现上述实施例中的存储系统的访问方法。当然,该电子设备1000还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该电子设备1000还可以包括其他用于实现设备功能的部件,在此不做赘述。
172.在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由电子设备中的处理器执行以完成上述实施例中的存储系统的访问方法。例如,该计算机可读存储介质是非临时计算机可读存储介质,如只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read-only memory,cd-rom)、磁带、软盘和光数据存储设备等。
173.本技术实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,电子设备中的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得电子设备执行上述存储系统的访问方法。
174.另外,本技术的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行
时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中存储系统的访问方法。
175.其中,本实施例提供的装置、设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
176.通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,与上述实施例提供的存储系统的访问方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
177.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
178.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
179.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
180.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
181.在本技术的描述中,除非另有说明,“/”表示“或”的意思,例如,a/b可以表示a或b。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
182.本技术中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
183.需要说明的是,本技术所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本技术中涉及到的数据访问请求都是在充分授权的情况下获取的。
184.上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
185.以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1