快照只读属性的快速切换方法、系统、设备及存储介质与流程

文档序号:32521261发布日期:2022-12-13 19:34阅读:38来源:国知局
1.本发明涉及存储设备
技术领域
:,尤其涉及快照只读属性的快速切换方法、系统、设备及存储介质。
背景技术
::2.快照技术是指在某一特定时刻、对某个数据集合的复制,其主要作用在于不影响主机业务的情况下,实现对数据的快速备份和恢复。在存储技术中,快照是以卷为单位来进行的,将用于接收主机业务的数据集合称为源卷,创建快照产生的数据拷贝称为目标卷。快照是如果存储系统受到恶意软件的攻击,则快照的源卷和目标卷都有可能受到损坏,也就违背了快照进行数据保护的初衷,不同于普通快照,只读快照中目标卷是只读的,即数据不允许被修改、删除,提高了数据保护的可靠性。3.当前技术中,可读写快照和只读快照在创建之初就需要被指定,且后续不允许更改。由于只读快照目标卷不允许被修改和删除,而卷挂载到主机的文件系统中需要有一部分写io下发,因此用户如果想要查看只读快照的内容,只能给只读快照卷再创建一个新的可读写快照挂载到主机。另外,用户创建了可读写快照后想要修改为只读快照也是不被允许的,从而大大降低了快照管理的灵活性。为了解决该技术问题现提出快照只读属性的快速切换方法、系统、设备及存储介质。技术实现要素:4.为了解决上述现有技术中存在的技术问题,本发明提供了一种快照只读属性的快速切换方法、系统、设备及存储介质,本发明将快照模块置于缓存模块的下层,利用缓存模块对io的拦截来实现快照目标卷的只读,通过缓存模块对io拦截开关的调整来支持只读快照和可读写快照的快速切换。5.为实现上述目的,本发明实施例提供了如下的技术方案:6.第一方面,在本发明提供的一个实施例中,提供了快照只读属性的快速切换方法,该方法包括以下步骤:7.创建卷,并标记卷的只读标志位;8.创建快照,并指定快照的只读属性;9.支持将只读快照修改为可读写快照;支持将可读写快照修改为只读快照;10.卷通过只读标志来进行写io的处理。11.作为本发明的进一步方案,创建卷时,缓存模块会给卷设置一个只读标志位,记为cache_read_only_flag,初始化时cache_read_only_flag=off。12.作为本发明的进一步方案,所述创建快照,具体包括以下步骤:13.创建源卷和目标卷的快照映射关系;14.快照模块给映射关系设置一个只读标志位,记为snapshot_read_only_flag,根据用户的选择来设置snapshot_read_only_flag的值;15.如果snapshot_read_only_flag=on,则通知缓存模块将目标卷的cache_read_only_flag置为on。16.作为本发明的进一步方案,所述根据用户的选择来设置snapshot_read_only_flag的值,包括:如果用户创建的是只读快照,则令snapshot_read_only_flag=on;如果是可读写快照,则令snapshot_read_only_flag=off。17.作为本发明的进一步方案,所述支持将只读快照修改为可读写快照,包括如下步骤:18.快照模块会将快照映射关系的snapshot_read_only_flag置为off;19.通知缓存模块将目标卷的cache_read_only_flag置为off。20.作为本发明的进一步方案,快照模块会将快照映射关系的snapshot_read_only_flag置为on;21.通知缓存模块将目标卷的cache_read_only_flag置为on;22.对io队列中的写io进行特殊标记,记为writable_io_flag,供缓存模块进行io处理时可以识别。23.作为本发明的进一步方案,所述卷通过只读标志来进行写io的处理,包括如下步骤:24.写io首先到达缓存模块,检查卷的cache_read_only_flag;如果cache_read_only_flag等于off,则将io数据放在缓存区域;否则如果cache_read_only_flag等于on,继续检查该io的writable_io_flag,如果writable_io_flag等于false,则拦截该io,返回给主机io失败;如果writable_io_flag等于true,则将io数据放在缓存区域;25.对于缓存区域的io,如果缓存区域已满,会提交到下层快照模块进行处理;26.写io到达快照模块后,会先进行源卷到目标卷的cow或row,然后再进行主机io的处理。27.第二方面,在本发明提供的又一个实施例中,提供了快照只读属性的快速切换系统,该系统包括:创建卷模块、创建快照模块、修改快照的只读属性模块和io处理模块;28.所述创建卷模块,用于创建卷,并标记卷的只读标志位;29.所述创建快照模块,用于创建快照,并指定快照的只读属性;30.所述修改快照的只读属性模块,用于支持将只读快照修改为可读写快照;支持将可读写快照修改为只读快照;31.所述io处理模块,用于卷通过只读标志来进行写io的处理。32.第三方面,在本发明提供的又一个实施例中,提供了一种设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现快照只读属性的快速切换方法的步骤。33.第四方面,在本发明提供的再一个实施例中,提供了一种存储介质,存储有计算机程序,所述计算机程序被处理器加载并执行时实现所述快照只读属性的快速切换方法的步骤。34.本发明提供的技术方案,具有如下有益效果:35.本发明提供的快照只读属性的快速切换方法、系统、设备及存储介质,本发明对源卷主机业务无影响:通过缓存模块来进行卷只读和可读写的控制,快照模块中源卷到目标卷的cow和row完全不受影响,因此,在不影响源卷主机业务的情况下,可以实现快照只读属性的快速切换。36.大大提高快照管理的灵活性:在创建后可以随时修改快照的只读属性,比如创建只读快照后,可以先关闭只读属性,挂载到主机,然后再开启只读属性,这样就很方便查看只读快照卷的数据。37.减少快照个数,减少资源浪费,且切换不会产生新的快照:传统快照由于不可以修改快照的只读属性,因此想要查看只读快照的内容,只能对只读快照再创建新的可读写快照才能查看;想要提升快照的安全性,也只能对可读写快照再创建新的只读快照。这样也大大增加了快照的数量,而本发明可以直接修改快照的只读属性,同一个快照可以在只读和可读写之间随意切换,无需创建新的快照。38.本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。附图说明39.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。40.图1为本发明一个实施例的快照只读属性的快速切换方法的流程图。41.图2为本发明一个实施例的快照只读属性的快速切换方法中步骤s20具体流程图。42.图3为本发明一个实施例的快照只读属性的快速切换方法中步骤s30具体流程图一。43.图4为本发明一个实施例的快照只读属性的快速切换方法中步骤s30具体流程图二。44.图5为本发明一个实施例的快照只读属性的快速切换方法中步骤s40具体流程图。45.图6为本发明一个实施例的快照只读属性的快速切换系统结构框图。46.图中:创建卷模块-100、创建快照模块-200、修改快照的只读属性模块-300、io处理模块-400。具体实施方式47.以下参照附图说明各种实施例及/或各形态。在以下说明中,以说明为目的公开了多个具体细节以整体上理解一个以上的形态。但是,本领域的技术人员可以理解在没有具体细节的情况下也可以实施这些形态。在以下的记载及附图中将详细说明一个以上的形态的特定例示。但是,这些形态是例示而已,可以利用各种形态的原理中各种方法中的一部分,所阐述的说明旨在包括所有形态及其等同物。具体地,在本说明书中使用的术语“实施例”、“例”、“形态”、“例示”等可以被解释为所描述的任意形态或设计可以比其他形态或设计更好或具有优点。48.另外,各种形态及特征可通过包括一个以上的装置、终端、服务器、设备、组件及/或模块等的系统体现。应理解并认识各种系统可包括额外的多个装置、终端、服务器、设备、组件及/或模块,并且/或也可以不包括图中所示的多个装置、终端、服务器、设备、组件、模块等的全部。49.在本说明书中使用的术语“计算机程序”、“组件”、“模块”、“系统”等可以互换使用,并且计算机-相关实体、硬件、固件、软件、软件及硬件的组合或指软件的执行。例如,组件可以是在处理器上执行的处理过程、处理器、客体、执行线程、程序及/或计算机,但不限定于此。例如,可以是在计算机装置执行的应用程序及/或计算装置所有组件。一个以上的组件可以安装在处理器及/或执行线程内。一个组件可以在一个计算机中本地化。一个组件也可以在两个以上的计算机之间分配。50.并且,这些组件可由在内部存储各种数据构造的各种计算机可读介质执行。这些组件,例如可根据具有一个以上的数据包的信号(例如,在本地系统、分散系统上通过与其他组件相互作用的一个组件发出的数据及信号与其他系统通过互联网等网络传输的数据)通过本地及/或远程处理通信。51.以下,与图面符号无关,对相同或类似的构成要素赋予相同的符号,并省略对此的重复说明。并且,在说明本说明书中公开的实施例时,若判断对公知技术的具体说明会使本发明的要旨不明确,则省略对其的详细说明。并且,附图仅为了更容易理解在本说明书中公开的实施例,本说明书中公开的技术思想并不限定于附图。52.在本说明书中使用的术语是为了说明这些实施例的,而不是限制本发明。在没有特别提及的情况下,本说明书中的单数表现包括复数表现。在说明书中使用的“包含(comprises)”及/或“包含的(comprising)”被提及的构成要素以外不排除一个以上的其他构成要素的存在或附加。53.第一、第二等术语可用于说明多种元件或构成要素,但所述元件或构成要素并不局限于所述术语。所述术语以从其他元件或构成要素区分一个元件或构成要素而使用。因此,在以下提及的第一元件或构成要素当然也可以是本发明的技术思想内的第2元件或构成要素。54.若没有其他定义,在本说明书中使用的所有术语(包括技术及科学术语)可以用于本发明所属领域的领域技术人员共通理解的含义。另外,在一般使用的词典上被定义的术语,若没有特别明确定义,则不应以理想性或过度解释。55.另外,术语“或”的意思不是排他的“或”而是包含的“或”。即,除非有其他特定或文脉上不明确时“x利用a或b”意味着自然内涵的替换之一。即,x利用a或;x利用b或x利用a及b时,“x利用a或b”可以上面的任何情况。并且,应理解在本说明书中使用的“及/或”的术语指代包括在例举的相关项目中的一个以上项目可能的所有组合。56.另外,在本说明书中使用的术语“信息”及“数据”通常可互换使用。57.在以下说明中使用的对构成要素的后缀“模块”及“部”,只是为了方便撰写说明书而赋予或混用的,其本身并没有相互区别的含义或作用。58.传统快照需要在创建快照之初确认创建的只读快照还是可读写快照,且快照创建之后就再允许修改。由于不可以修改快照的只读属性,则用户想要查看只读快照的内容,只能对只读快照再创建新的可读写快照才能查看;想要提升快照的安全性,也只能对可读写快照再创建新的只读快照。这样不仅降低了快照灵活性,也大大增加了快照的数量,造成不必要的资源浪费。59.发明将快照模块置于缓存模块的下层,利用缓存模块对io的拦截来实现快照目标卷的只读,通过缓存模块对io拦截开关的调整来支持只读快照和可读写快照的快速切换。60.具体地,下面结合附图,对本发明实施例作进一步阐述。61.请参阅图1,图1是本发明实施例提供的一种快照只读属性的快速切换方法的流程图,如图1所示,该快照只读属性的快速切换方法包括步骤s10至步骤s40。62.s10、创建卷,并标记卷的只读标志位。63.在本发明的实施例中,创建卷时,缓存模块会给卷设置一个只读标志位,记为cache_read_only_flag,初始化时cache_read_only_flag=off。64.s20、创建快照,并指定快照的只读属性。65.在本发明的实施例中,请参阅图2,图2是本发明实施例提供的一种快照只读属性的快速切换方法中步骤s20具体流程图,,所述s20、创建快照,具体包括以下步骤:66.s201、创建源卷和目标卷的快照映射关系;67.s202、快照模块给映射关系设置一个只读标志位,记为snapshot_read_only_flag,根据用户的选择来设置snapshot_read_only_flag的值。68.具体的,所述根据用户的选择来设置snapshot_read_only_flag的值,包括:如果用户创建的是只读快照,则令snapshot_read_only_flag=on;如果是可读写快照,则令snapshot_read_only_flag=off。69.s203、如果snapshot_read_only_flag=on,则通知缓存模块将目标卷的cache_read_only_flag置为on。70.s30、支持将只读快照修改为可读写快照;支持将可读写快照修改为只读快照。71.在本发明的实施例中,请参阅图3,图3是本发明实施例提供的一种快照只读属性的快速切换方法中步骤s30具体流程图一,所述s30、中支持将只读快照修改为可读写快照,具体包括如下步骤:72.s3011、快照的只读属性已开启,用户选择关闭只读属性;快照模块会将快照映射关系的snapshot_read_only_flag置为off;73.s3012、通知缓存模块将目标卷的cache_read_only_flag置为off。74.在本发明的实施例中,请参阅图4,图4是本发明实施例提供的一种快照只读属性的快速切换方法中步骤s30具体流程图二,所述s30、中支持将可读写快照修改为只读快照,具体包括如下步骤:75.s3021、快照的只读属性已关闭,用户选择开启只读属性,快照模块会将快照映射关系的snapshot_read_only_flag置为on;76.s3022、通知缓存模块将目标卷的cache_read_only_flag置为on;77.s3023、对io队列中的写io进行特殊标记,记为writable_io_flag,供缓存模块进行io处理时可以识别。78.具体的,将缓存模块置于快照模块上层,通过缓存模块来进行卷只读和可读写的控制,提出了快照只读属性的快速切换方法,旨在根据用户需要可以随时将快照在只读和可读写两种状态之间切换。79.s40、卷通过只读标志来进行写io的处理。80.在本发明的实施例中,请参阅图5,图5是本发明实施例提供的一种快照只读属性的快速切换方法中步骤s40具体流程图,所述s40、卷通过只读标志来进行写io的处理,具体包括如下步骤:81.s401、写io首先到达缓存模块,检查卷的cache_read_only_flag。如果cache_read_only_flag等于off,则将io数据放在缓存区域;否则如果cache_read_only_flag等于on,继续检查该io的writable_io_flag,如果writable_io_flag等于false,则拦截该io,返回给主机io失败;如果writable_io_flag等于true,则将io数据放在缓存区域。82.s402、对于缓存区域的这些io,如果缓存区域已满,会提交到下层快照模块进行处理;83.s403、写io到达快照模块后,会先进行源卷到目标卷的cow或row,然后再进行主机io的处理。84.本发明可以支持快照在目标卷只读和可读写之间随意切换;和传统创建后就不能修改的只读快照相比,可以更灵活的管理快照。85.本发明将快照模块置于缓存模块的下层,利用缓存模块对io的拦截来实现快照目标卷的只读,通过缓存模块对io拦截开关的调整来支持只读快照和可读写快照的快速切换。具体地,创建卷时,缓存模块会给卷设置一个只读标志位,初始化时只读标志位是关闭的。创建快照时,快照模块会给快照映射关系设置一个只读标志位,该标志位由用户指定,开启则表示快照只读,关闭则表示快照可读写;如果创建的快照是只读的,则将快照卷的缓存模块只读标志位打开。在快照创建后,可以随时对快照关系的只读标志位进行修改,如果要关闭只读标志位,则会自动触发对应快照目标卷中缓存模块只读标志位的关闭;如果要开启只读标志位,则会自动触发对应快照目标卷中缓存模块只读标志位的开启,同时将缓存模块io队列中还未处理的io进行标记,后续对于有标记的写io,则正常下发,对于没有标记的写io进行拦截。86.应该理解的是,上述虽然是按照某一顺序描述的,但是这些步骤并不是必然按照上述顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,本实施例的一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。87.在一个实施例中,参见图6所示,在本发明的实施例中还提供了快照只读属性的快速切换系统,该系统包括创建卷模块100、创建快照模块200、修改快照的只读属性模块300和io处理模块400。88.所述创建卷模块100,用于创建卷,并标记卷的只读标志位。89.在本发明的实施例中,所述创建卷模块100创建卷时,缓存模块会给卷设置一个只读标志位,记为cache_read_only_flag,初始化时cache_read_only_flag=off。90.所述创建快照模块200,用于创建快照,并指定快照的只读属性。91.在本发明的实施例中,在本发明的实施例中,所述创建快照模块200,具体包括以下步骤:92.步骤一:创建源卷和目标卷的快照映射关系;93.步骤二:快照模块给映射关系设置一个只读标志位,记为snapshot_read_only_flag,根据用户的选择来设置snapshot_read_only_flag的值。94.具体的,所述根据用户的选择来设置snapshot_read_only_flag的值,包括:如果用户创建的是只读快照,则令snapshot_read_only_flag=on;如果是可读写快照,则令snapshot_read_only_flag=off。95.步骤三:如果snapshot_read_only_flag=on,则通知缓存模块将目标卷的cache_read_only_flag置为on。96.所述修改快照的只读属性模块300,用于支持将只读快照修改为可读写快照;支持将可读写快照修改为只读快照。97.在本发明的实施例中,所述修改快照的只读属性模块300、支持将只读快照修改为可读写快照,具体包括如下步骤:98.步骤一:快照的只读属性已开启,用户选择关闭只读属性;快照模块会将快照映射关系的snapshot_read_only_flag置为off;99.步骤二:通知缓存模块将目标卷的cache_read_only_flag置为off。100.在本发明的实施例中,所述修改快照的只读属性模块300、支持将可读写快照修改为只读快照,具体包括如下步骤:101.步骤一:快照的只读属性已关闭,用户选择开启只读属性,快照模块会将快照映射关系的snapshot_read_only_flag置为on;102.步骤二:通知缓存模块将目标卷的cache_read_only_flag置为on;103.步骤三:对io队列中的写io进行特殊标记,记为writable_io_flag,供缓存模块进行io处理时可以识别。104.具体的,将缓存模块置于快照模块上层,通过缓存模块来进行卷只读和可读写的控制,提出了快照只读属性的快速切换方法,旨在根据用户需要可以随时将快照在只读和可读写两种状态之间切换。105.所述io处理模块400,用于卷通过只读标志来进行写io的处理。106.在本发明的实施例中,所述s40、卷通过只读标志来进行写io的处理,具体包括如下步骤:107.步骤一:写io首先到达缓存模块,检查卷的cache_read_only_flag。如果cache_read_only_flag等于off,则将io数据放在缓存区域;否则如果cache_read_only_flag等于on,继续检查该io的writable_io_flag,如果writable_io_flag等于false,则拦截该io,返回给主机io失败;如果writable_io_flag等于true,则将io数据放在缓存区域。108.步骤二:对于缓存区域的这些io,如果缓存区域已满,会提交到下层快照模块进行处理;109.步骤三:写io到达快照模块后,会先进行源卷到目标卷的cow或row,然后再进行主机io的处理。110.本发明对源卷主机业务无影响:通过缓存模块来进行卷只读和可读写的控制,快照模块中源卷到目标卷的cow和row完全不受影响,因此,在不影响源卷主机业务的情况下,可以实现快照只读属性的快速切换;大大提高快照管理的灵活性:在创建后可以随时修改快照的只读属性,比如创建只读快照后,可以先关闭只读属性,挂载到主机,然后再开启只读属性,这样就很方便查看只读快照卷的数据;减少快照个数,减少资源浪费,且切换不会产生新的快照:传统快照由于不可以修改快照的只读属性,因此想要查看只读快照的内容,只能对只读快照再创建新的可读写快照才能查看;想要提升快照的安全性,也只能对可读写快照再创建新的只读快照。这样也大大增加了快照的数量,而本发明可以直接修改快照的只读属性,同一个快照可以在只读和可读写之间随意切换,无需创建新的快照。111.在一个实施例中,在本发明的实施例中还提供了一种设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述的快照只读属性的快速切换方法,该处理器执行指令时实现上述方法实施例中的步骤。112.所述设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、pda等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloudcomputing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他设备的交互操作来实现本发明。其中,所述设备所处的网络包括但不限于互联网、广域网、城域网、局域网、vpn网络等。113.还应当进理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。114.在本发明的一个实施例中还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例中的步骤。115.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。116.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。117.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。118.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。119.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1