本申请提供一种数据存储方法,方法包括:在接收到写请求时,将写请求中的数据写入可用缓存块,并向应用服务器返回写成功消息;获取写入缓存块中数据对应的LUN标识、LBA起始地址和数据长度;若LUN标识的按需分配开关为开启状态且在LUN标识的索引表中LBA起始地址和数据长度对应的映射单元未记录存储空间标识,则从可用存储空间中为该映射单元分配存储空间,并将分配的存储空间标识记录到映射单元;将缓存块中的数据写入LBA起始地址和数据长度对应的存储空间。本申请通过缓存存放数据,并立即IO返回并在后台刷盘,由于在后台刷盘的过程并不影响IO返回,因此可降低低性能层存储空间导致的IO延时,提升LUN初始IO性能。
【技术实现步骤摘要】
数据存储方法及装置
本申请涉及存储
,尤其涉及一种数据存储方法及装置。
技术介绍
对于目前的存储系统中的存储介质,根据其性能差异可以将存储空间分为多种存储层,例如,分为三层,分别是高性能层、次高性能层和低性能层。通常高性能层采用SSD(SolidStateDrive,固态硬盘),次高性能层采用SAS(SerialAttachedSCSI,串行连接SCSI)盘,低性能层采用SATA(SerialAdvancedTechnologyAttachment,串口硬盘)。在相关技术中,存储设备通常将各存储层的RAID(RedundantArraysofIndependentDisks,磁盘阵列)放在同一个存储池中,并在存储池中启动自动分层功能,从而在该存储池中创建的LUN也具有自动分层功能,存储设备通过一个索引表记录该LUN的LBA(LogicalBlockAddress,逻辑区块地址)地址与分配的存储空间的对应关系,并且为LUN预先分配的存储空间随机分布在各个存储层上。然而在该LUN初始接收到写请求进行数据存储时,由于写请求中的LBA地址在索引表中对应的存储空间可能位于低性能层,而低性能层的存储空间的读写速度慢,从而会导致新创建的LUN在处理初始写请求时IO响应慢的问题,进而影响LUN的整体性能。
技术实现思路
有鉴于此,本申请提供一种数据存储方法及装置,以解决现有的存储方式会导致新创建的LUN在处理初始写请求时IO响应慢的问题。根据本申请实施例的第一方面,提供一种数据存储方法,所述方法应用于存储设备,所述方法包括:在接收到应用服务器发送的写请求时,从缓存中获取可用缓存块,并将所述写请求中的数据写入获取的缓存块中,并向所述应用服务器返回写成功消息;获取写入缓存块中的数据对应的LUN标识、LBA起始地址和数据长度;若所述LUN标识对应的按需分配开关为开启状态,且在所述LUN标识对应的索引表中,所述LBA起始地址和所述数据长度对应的映射单元中未记录存储空间标识,则从可用存储空间中为未记录存储空间标识的映射单元分配存储空间,并将分配的存储空间标识记录到所述未记录存储空间标识的映射单元中;将所述缓存块中的数据写入所述LBA起始地址和所述数据长度对应的存储空间标识指向的存储空间中。根据本申请实施例的第二方面,提供一种数据存储装置,所述装置应用于存储设备,所述装置包括:缓存存储模块,用于在接收到应用服务器发送的写请求时,从缓存中获取可用缓存块,并将所述写请求中的数据写入获取的缓存块中,并向所述应用服务器返回写成功消息;获取模块,用于获取写入缓存块中的数据对应的LUN标识、LBA起始地址和数据长度;分配模块,用于若所述LUN标识对应的按需分配开关为开启状态,且在所述LUN标识对应的索引表中,所述LBA起始地址和所述数据长度对应的映射单元中未记录存储空间标识,则从可用存储空间中为未记录存储空间标识的映射单元分配存储空间,并将分配的存储空间标识记录到所述未记录存储空间标识的映射单元中;写入磁盘模块,用于将所述缓存块中的数据写入所述LBA起始地址和所述数据长度对应的存储空间标识指向的存储空间中。应用本申请实施例,存储设备在接收到应用服务器的写请求时,先从缓存中获取可用缓存块,并将写请求中的数据写入获取的缓存块中,并向应用服务器返回写成功消息;然后再在后台获取写入缓存块中的数据对应的LUN标识、LBA起始地址和数据长度;若LUN标识对应的按需分配开关为开启状态,且在LUN标识对应的索引表中,LBA起始地址和数据长度对应的映射单元中未记录存储空间标识,则从可用存储空间中为未记录存储空间标识的映射单元分配存储空间,并将分配的存储空间标识记录到未记录存储空间标识的映射单元中,最后将缓存块中的数据写入LBA起始地址和数据长度对应的存储空间标识指向的存储空间中。基于上述实现方式,通过缓存先存放数据,并立即返回写成功消息,并在后台分配存储空间然后进行刷盘,由于在后台进行分配存储空间然后刷盘过程并不影响IO返回,因此可以降低低性能层存储空间导致的IO延时,有效提升LUN的初始IO性能,进而提升存储设备存储数据的性能。并且在LUN标识对应的按需分配开关为开启状态下,且对应的映射单元中未记录存储空间标识才会分配存储空间,而若在关闭状态下,直接可以按照现有流程进行处理,从而降低了本流程的消耗。附图说明图1A为本申请根据一示例性实施例示出的一种数据存储方法的实施例流程图;图1B为本申请根据图1A所示实施例示出的一种RAID的块表示意图;图1C为本申请根据图1A所示实施例示出的一种LUN标识对应的索引表示意图;图2为本申请根据一示例性实施例示出的一种存储设备的硬件结构图;图3为本申请根据一示例性实施例示出的一种数据存储装置的实施例结构图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。图1A为本申请根据一示例性实施例示出的一种数据存储方法的实施例流程图;图1B为本申请根据图1A所示实施例示出的一种RAID的块表示意图;图1C为本申请根据图1A所示实施例示出的一种LUN标识对应的索引表示意图,该数据存储方法可以应用于存储设备,如图1A所示,该数据存储方法包括如下步骤:步骤101:在接收到应用服务器发送的写请求时,从缓存中获取可用缓存块,并将写请求中的数据写入获取的缓存块中,并向应用服务器返回写成功消息。在一实施例中,存储设备在接收到写请求时,从缓存中获取可用缓存块可以分三种情况获取,具体为,先根据写请求中的LBA起始地址和数据总大小判断缓存中是否存在对应的缓存块,第一种情况,存在LBA起始地址和数据总大小对应的所有缓存块,可直接利用写请求中数据更新这些缓存块中的数据,从而可用缓存块即为已使用的缓存块;第二种情况,存在LBA起始地址和数据总大小对应的部分缓存块,可利用写请求中的部分数据更新这些缓存块中的数据,并从缓存中为未写入的数据获取空闲的缓存块,并将未写入的数据写入获取的缓存块中,若缓存中不存在空闲的缓存块,则等待空闲的缓存块,直到存在空闲的缓存块,且空闲的缓存块的总容量达到未写入数据的大小,从而可用缓存块即包括已使用的缓存块,也包括空闲的缓存块;第三种情况,不存在LBA起始地本文档来自技高网...
【技术保护点】
一种数据存储方法,其特征在于,所述方法应用于存储设备,所述方法包括:在接收到应用服务器发送的写请求时,从缓存中获取可用缓存块,并将所述写请求中的数据写入获取的缓存块中,并向所述应用服务器返回写成功消息;获取写入缓存块中的数据对应的LUN标识、LBA起始地址和数据长度;若所述LUN标识对应的按需分配开关为开启状态,且在所述LUN标识对应的索引表中,所述LBA起始地址和所述数据长度对应的映射单元中未记录存储空间标识,则从可用存储空间中为未记录存储空间标识的映射单元分配存储空间,并将分配的存储空间标识记录到所述未记录存储空间标识的映射单元中;将所述缓存块中的数据写入所述LBA起始地址和所述数据长度对应的存储空间标识指向的存储空间中。
【技术特征摘要】
1.一种数据存储方法,其特征在于,所述方法应用于存储设备,所述方法包括:在接收到应用服务器发送的写请求时,从缓存中获取可用缓存块,并将所述写请求中的数据写入获取的缓存块中,并向所述应用服务器返回写成功消息;获取写入缓存块中的数据对应的LUN标识、LBA起始地址和数据长度;若所述LUN标识对应的按需分配开关为开启状态,且在所述LUN标识对应的索引表中,所述LBA起始地址和所述数据长度对应的映射单元中未记录存储空间标识,则从可用存储空间中为未记录存储空间标识的映射单元分配存储空间,并将分配的存储空间标识记录到所述未记录存储空间标识的映射单元中;将所述缓存块中的数据写入所述LBA起始地址和所述数据长度对应的存储空间标识指向的存储空间中。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在创建所述LUN标识对应的LUN之后,将所述LUN标识对应的按需分配开关置为开启状态;在所述LUN标识对应的索引表中记录的存储空间的总容量与预设最大容量相等时,将所述LUN标识对应的按需分配开关由开启状态置为关闭状态。3.根据权利要求1所述的方法,其特征在于,所述从可用存储空间中为未记录存储空间标识的映射单元分配存储空间,包括:根据存储空间的性能特征,对可用存储空间进行优先级排序;从优先级最高的可用存储空间中为未记录存储空间标识的映射单元分配存储空间。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在将所述写请求中的数据写入获取的缓存块中之后,将所述缓存块的状态置为写状态;在将所述缓存块中的数据写入所述LBA起始地址和所述数据长度对应的存储空间标识指向的存储空间中之后,将所述缓存块的状态由所述写状态置为读状态。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:每隔预设时间周期,统计所述缓存中空闲的缓存块的比率;若所述比率小于预设数值,则将读状态的缓存块的状态置为空闲状态,直到所述缓存中空闲的缓存块的比率达到所述预设数值。6.一种数据存储装置,其特征在于,所述装置应用于存储设备,所述装置包括:缓存...
【专利技术属性】
技术研发人员:上官应兰,
申请(专利权)人:杭州宏杉科技股份有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。