CN106970765B - 数据存储方法及装置 - Google Patents
数据存储方法及装置 Download PDFInfo
- Publication number
- CN106970765B CN106970765B CN201710273958.1A CN201710273958A CN106970765B CN 106970765 B CN106970765 B CN 106970765B CN 201710273958 A CN201710273958 A CN 201710273958A CN 106970765 B CN106970765 B CN 106970765B
- Authority
- CN
- China
- Prior art keywords
- storage space
- identifier
- state
- data
- cache
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Abstract
本申请提供一种数据存储方法,方法包括:在接收到写请求时,将写请求中的数据写入可用缓存块,并向应用服务器返回写成功消息;获取写入缓存块中数据对应的LUN标识、LBA起始地址和数据长度;若LUN标识的按需分配开关为开启状态且在LUN标识的索引表中LBA起始地址和数据长度对应的映射单元未记录存储空间标识,则从可用存储空间中为该映射单元分配存储空间,并将分配的存储空间标识记录到映射单元;将缓存块中的数据写入LBA起始地址和数据长度对应的存储空间。本申请通过缓存存放数据,并立即IO返回并在后台刷盘,由于在后台刷盘的过程并不影响IO返回,因此可降低低性能层存储空间导致的IO延时,提升LUN初始IO性能。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种数据存储方法及装置。
背景技术
对于目前的存储系统中的存储介质,根据其性能差异可以将存储空间分为多种存储层,例如,分为三层,分别是高性能层、次高性能层和低性能层。通常高性能层采用SSD(Solid State Drive,固态硬盘),次高性能层采用SAS(Serial Attached SCSI,串行连接SCSI)盘,低性能层采用SATA(Serial Advanced Technology Attachment,串口硬盘)。
在相关技术中,存储设备通常将各存储层的RAID(Redundant Arrays ofIndependent Disks,磁盘阵列)放在同一个存储池中,并在存储池中启动自动分层功能,从而在该存储池中创建的LUN也具有自动分层功能,存储设备通过一个索引表记录该LUN的LBA(Logical Block Address,逻辑区块地址)地址与分配的存储空间的对应关系,并且为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起始地址和数据总大小对应的缓存块,可直接从缓存中为写请求中的数据获取空闲的缓存块,并将写请求中的数据写入获取的缓存块中,从而可用缓存块即为空闲的缓存块。
在另一实施例中,在将写请求中的数据写入获取的缓存块之后,可以直接向应用服务器返回写成功消息,这种利用缓存来降低低性能层存储空间导致的IO延时,可以有效提升LUN的初始IO性能,进而提升存储设备存储数据的性能。
步骤102:获取写入缓存块中的数据对应的LUN标识、LBA起始地址和数据长度。
在一实施例中,存储设备可以根据写请求携带的LBA起始地址、数据总大小获取写入缓存块中的数据对应的LUN标识、LBA起始地址和数据长度。
其中,写请求携带的LBA起始地址指的是写请求中的数据从该LBA起始地址开始写入该LBA起始地址对应的LUN已分配存储空间中,而写入缓存块中的数据对应的LBA起始地址指的只是缓存块中存放的数据从该LBA起始地址开始写入该LBA起始地址对应的LUN已分配存储空间中。此外,写请求携带的LUN标识即为缓存块中的数据对应的LUN标识。
在一示例性场景中,假设写请求携带的LBA起始地址为100KB,数据的总大小为250KB,LUN标识为LUN1,由于缓存中的缓存块大小均为64KB,因此需要4个缓存块来存放写请求中250KB大小的数据,且前三个缓存块中可以均存64KB的数据,最后一个缓存块中可以存放剩余的58KB,根据100KB的LBA起始地址,可以得到第一个缓存块中数据对应的LBA起始地址为100KB,数据长度为64KB;第二个缓存块中数据对应的LBA起始地址为100KB+64KB=164KB,数据长度为64KB;第三个缓存块中数据对应的LBA起始地址为164KB+64KB=228KB,数据长度为64KB;第四个缓存块中数据对应的LBA起始地址为228KB+64KB=292KB,数据长度为58KB。
步骤103:若LUN标识对应的按需分配开关为开启状态,且在LUN标识对应的索引表中,LBA起始地址和数据长度对应的映射单元中未记录存储空间标识,则从可用存储空间中为未记录存储空间标识的映射单元分配存储空间,并将分配的存储空间标识记录到未记录存储空间标识的映射单元中。
在一实施例中,存储设备在创建LUN时,可以为该LUN设置LUN标识,用于唯一标识该LUN,并为该LUN建立对应的索引表,索引表中包括LBA起始地址对应的映射单元,映射单元中记录有为该LUN分配的存储空间标识,针对自动分层的特性,通常采用块式管理存储空间,即每个RAID均有一个块表,用于表示RAID中每个存储块的占用状态(在块表中用bit位表示,“1”为已占用,“0”为未占用),因此映射单元中记录的存储空间标识可以为存储块标识。
基于上述步骤102所示的场景,每个存储块大小为128KB,如图1B所示,RAID1的块表中的存储块0已占用,其他存储块均未占用,如图1C所示,LUN1对应的索引表中的映射单元0中记录有RAID1中的存储块0的标识,映射单元0对应的LBA地址为0KB至127KB。由第一个缓存块中数据对应的LBA起始地址为100KB,数据长度为64KB;第二个缓存块中数据对应的LBA起始地址为164KB,数据长度为64KB;第三个缓存块中数据对应的LBA起始地址为228KB,数据长度为64KB;第四个缓存块中数据对应的LBA起始地址为292KB,数据长度为58KB,可得第一个缓存块中数据对应的LBA起始地址100KB和数据长度为64KB对应映射单元0和映射单元1;第二个缓存块中数据对应的LBA起始地址为164KB和数据长度为64KB对应映射单元1;第三个缓存块中数据对应的LBA起始地址为228KB和数据长度为64KB对应映射单元1和映射单元2;第四个缓存块中数据对应的LBA起始地址为292KB和数据长度为58KB对应映射单元2。由于LUN1的索引表中映射单元0记录有存储块0的标识,映射单元1和映射单元2未记录有存储块的标识,因此,可以从RAID1中为LUN1分配两个存储块,存储块1和存储块2,并将存储块1的标识和存储块2的标识分别记录到LUN1的索引表的映射单元1和映射单元2中,并将RAID1的块表中的相应bit位置1。
在另一实施例中,存储设备在创建LUN时,可以为该LUN预先设置最大容量,该最大容量表示LUN实际可占用的存储空间的最大值,在创建LUN之后,可以将该LUN标识对应的按需分配开关置为开启状态;在该LUN标识对应的索引表中记录的存储空间的总容量与预设最大容量相等时,将该LUN标识对应的按需分配开关由开启状态置为关闭状态,表示该LUN标识对应的LUN实际占用的存储空间已经达到最大容量,即LUN标识对应的索引表中的映射单元均被映射完成,无需再为该LUN分配存储空间,应用服务器可以直接访问该LUN已分配存储空间中的数据,或者重新写该LUN已分配存储空间中的数据。
在又一实施例中,从可用存储空间中为未记录存储空间标识的映射单元分配存储空间,存储设备可以根据存储空间的性能特征,对可用存储空间进行优先级排序,然后从优先级最高的可用存储空间中为未记录存储空间标识的映射单元分配存储空间。由于用于刷盘的存储空间具有读写速度高的特点,因此可以提高刷盘速度。
其中,存储空间的性能特征可以是读写速度,读写速度高的优先级高,读写速度慢的优先级低,例如,通常SSD的读写速度最高,SAS的读写速度次之,SATA的读写速度最低,从而SSD的优先级最高,SAS的优先级次高,SATA的优先级最低,从而存储设备可以首选由SSD组成的RAID,从该RAID的可用存储空间中分配存储空间。
步骤104:将缓存块中的数据写入LBA起始地址和数据长度对应的存储空间标识指向的存储空间中。
需要说明的是,存储设备在将写请求中的数据写入获取的缓存块中之后,可以将缓存块的状态置为写状态;并在将缓存块中的数据写入LBA起始地址和数据长度对应的存储空间标识指向的存储空间中之后,可以将缓存块的状态由写状态置为读状态。从而,应用服务器在读取数据时,可以直接从读状态的缓存块中读取,而不需要到RAID中去读取,提高了读取速度。
其中,存储设备可以为缓存中的每个缓存块设置一个标识,用于表示当前的状态,例如,当标识为a时,表示空闲状态,为b时,表示写状态,为c时,表示读状态。缓存块的状态由空闲状态或读状态变为写状态,表示该缓存块中存有脏数据,需要进行刷盘,在将写状态的缓存块中的数据写入对应的存储空间中之后,状态变为读状态,表示该缓存块中的数据,应用服务器可以进行访问。由此可得,上述步骤101中的已使用的缓存块的状态可能是写状态,也可能是读状态,无论是写状态还是读状态,在更新数据之后均需置为写状态,以便于后续刷盘。
需要进一步说明的是,存储设备可以每隔预设时间周期,统计一次缓存中空闲的缓存块的比率;若该比率小于预设数值,则将读状态的缓存块的状态置为空闲状态,直到缓存中空闲的缓存块的比率达到该预设数值。通过一定的空闲的缓存块的比率可以保证缓存中一直存在空闲的缓存块,可以降低写请求等待空闲的缓存块的几率。
其中,空闲的缓存块即为状态为空闲状态的缓存块,预设时间周期和预设数值可以根据实践经验进行设置,为了降低写请求等待空闲的缓存块的几率,该时间周期设置的可以短些。
由上述实施例可知,存储设备在接收到应用服务器的写请求时,先从缓存中获取可用缓存块,并将写请求中的数据写入获取的缓存块中,并向应用服务器返回写成功消息;然后再在后台获取写入缓存块中的数据对应的LUN标识、LBA起始地址和数据长度;若LUN标识对应的按需分配开关为开启状态,且在LUN标识对应的索引表中,LBA起始地址和数据长度对应的映射单元中未记录存储空间标识,则从可用存储空间中为未记录存储空间标识的映射单元分配存储空间,并将分配的存储空间标识记录到未记录存储空间标识的映射单元中,最后将缓存块中的数据写入LBA起始地址和数据长度对应的存储空间标识指向的存储空间中。基于上述实现方式,通过缓存先存放数据,并立即返回写成功消息,并在后台分配存储空间然后进行刷盘,由于在后台分配存储空间然后进行刷盘过程并不影响返回写成功消息的返回,因此可以降低低性能层存储空间导致的IO延时,有效提升LUN的初始IO性能,进而提升存储设备存储数据的性能。并且在LUN标识对应的按需分配开关为开启状态下,且对应的映射单元中未记录存储空间标识才会分配存储空间,而若在关闭状态下,直接按照现有流程进行处理,从而可以降低本流程的消耗。
与前述数据存储方法的实施例相对应,本申请还提供了数据存储装置的实施例。
本申请数据存储装置的实施例可以应用在存储设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请根据一实施例性实施例示出的一种存储设备的硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。
图3为本申请根据一示例性实施例示出的一种数据存储装置的实施例结构图,该数据存储装置可以应用于存储设备,如图3所示,该数据存储装置包括:缓存存储模块31、获取模块32、分配模块33、写入磁盘模块34。
其中,缓存存储模块31,用于在接收到应用服务器发送的写请求时,从缓存中获取可用缓存块,并将所述写请求中的数据写入获取的缓存块中,并向所述应用服务器返回写成功消息;
获取模块32,用于获取写入缓存块中的数据对应的LUN标识、LBA起始地址和数据长度;
分配模块33,用于若所述LUN标识对应的按需分配开关为开启状态,且在所述LUN标识对应的索引表中,所述LBA起始地址和所述数据长度对应的映射单元中未记录存储空间标识,则从可用存储空间中为未记录存储空间标识的映射单元分配存储空间,并将分配的存储空间标识记录到所述未记录存储空间标识的映射单元中;
写入磁盘模块34,用于将所述缓存块中的数据写入所述LBA起始地址和所述数据长度对应的存储空间标识指向的存储空间中。
在一可选的实现方式中,所述装置还包括(图3中未示出):
开关控制模块,用于在创建所述LUN标识对应的LUN之后,将所述LUN标识对应的按需分配开关置为开启状态;在所述LUN标识对应的索引表中记录的存储空间的总容量与预设最大容量相等时,将所述LUN标识对应的按需分配开关由开启状态置为关闭状态。
在一可选的实现方式中,所述分配模块33,具体用于在从可用存储空间中为未记录存储空间标识的映射单元分配存储空间过程中,根据存储空间的性能特征,对可用存储空间进行优先级排序;从优先级最高的可用存储空间中为未记录存储空间标识的映射单元分配存储空间。
在一可选的实现方式中,所述装置还包括(图3中未示出):
缓存块状态控制模块,用于在将所述写请求中的数据写入获取的缓存块中之后,将所述缓存块的状态置为写状态;在将所述缓存块中的数据写入所述LBA起始地址和所述数据长度对应的存储空间标识指向的存储空间中之后,将所述缓存块的状态由所述写状态置为读状态。
在一可选的实现方式中,所述装置还包括(图3中未示出):
空闲缓存块控制模块,用于每隔预设时间周期,统计所述缓存中空闲的缓存块的比率;若所述比率小于预设数值,则将读状态的缓存块的状态置为空闲状态,直到所述缓存中空闲的缓存块的比率达到所述预设数值。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (8)
1.一种数据存储方法,其特征在于,所述方法应用于启用自动分层的存储设备,所述方法包括:
在接收到应用服务器发送的写请求时,从缓存中获取可用缓存块,并将所述写请求中的数据写入获取的缓存块中,并向所述应用服务器返回写成功消息;其中,所述写请求包括待写入至所述存储设备的低性能层存储空间的写请求;
获取写入缓存块中的数据对应的LUN标识、LBA起始地址和数据长度;
若所述LUN标识对应的按需分配开关为开启状态,且在所述LUN标识对应的索引表中,所述LBA起始地址和所述数据长度对应的映射单元中未记录存储空间标识,则根据存储空间的性能特征,对可用存储空间进行优先级排序,从优先级最高的可用存储空间中为未记录存储空间标识的映射单元分配存储空间,并将分配的存储空间标识记录到所述未记录存储空间标识的映射单元中;
将所述缓存块中的数据写入所述LBA起始地址和所述数据长度对应的存储空间标识指向的存储空间中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在创建所述LUN标识对应的LUN之后,将所述LUN标识对应的按需分配开关置为开启状态;
在所述LUN标识对应的索引表中记录的存储空间的总容量与预设最大容量相等时,将所述LUN标识对应的按需分配开关由开启状态置为关闭状态。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在将所述写请求中的数据写入获取的缓存块中之后,将所述缓存块的状态置为写状态;
在将所述缓存块中的数据写入所述LBA起始地址和所述数据长度对应的存储空间标识指向的存储空间中之后,将所述缓存块的状态由所述写状态置为读状态。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
每隔预设时间周期,统计所述缓存中空闲的缓存块的比率;
若所述比率小于预设数值,则将读状态的缓存块的状态置为空闲状态,直到所述缓存中空闲的缓存块的比率达到所述预设数值。
5.一种数据存储装置,其特征在于,所述装置应用于启用自动分层的存储设备,所述装置包括:
缓存存储模块,用于在接收到应用服务器发送的写请求时,从缓存中获取可用缓存块,并将所述写请求中的数据写入获取的缓存块中,并向所述应用服务器返回写成功消息;其中,所述写请求包括待写入至所述存储设备的低性能层存储空间的写请求;
获取模块,用于获取写入缓存块中的数据对应的LUN标识、LBA起始地址和数据长度;
分配模块,用于若所述LUN标识对应的按需分配开关为开启状态,且在所述LUN标识对应的索引表中,所述LBA起始地址和所述数据长度对应的映射单元中未记录存储空间标识,则根据存储空间的性能特征,对可用存储空间进行优先级排序,从优先级最高的可用存储空间中为未记录存储空间标识的映射单元分配存储空间,并将分配的存储空间标识记录到所述未记录存储空间标识的映射单元中;
写入磁盘模块,用于将所述缓存块中的数据写入所述LBA起始地址和所述数据长度对应的存储空间标识指向的存储空间中。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
开关控制模块,用于在创建所述LUN标识对应的LUN之后,将所述LUN标识对应的按需分配开关置为开启状态;在所述LUN标识对应的索引表中记录的存储空间的总容量与预设最大容量相等时,将所述LUN标识对应的按需分配开关由开启状态置为关闭状态。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
缓存块状态控制模块,用于在将所述写请求中的数据写入获取的缓存块中之后,将所述缓存块的状态置为写状态;在将所述缓存块中的数据写入所述LBA起始地址和所述数据长度对应的存储空间标识指向的存储空间中之后,将所述缓存块的状态由所述写状态置为读状态。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:
空闲缓存块控制模块,用于每隔预设时间周期,统计所述缓存中空闲的缓存块的比率;若所述比率小于预设数值,则将读状态的缓存块的状态置为空闲状态,直到所述缓存中空闲的缓存块的比率达到所述预设数值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710273958.1A CN106970765B (zh) | 2017-04-25 | 2017-04-25 | 数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710273958.1A CN106970765B (zh) | 2017-04-25 | 2017-04-25 | 数据存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106970765A CN106970765A (zh) | 2017-07-21 |
CN106970765B true CN106970765B (zh) | 2020-07-17 |
Family
ID=59333091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710273958.1A Active CN106970765B (zh) | 2017-04-25 | 2017-04-25 | 数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106970765B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542695B (zh) * | 2017-09-21 | 2022-05-24 | 华为技术有限公司 | 确定逻辑存储单元性能的方法和装置 |
CN107577439B (zh) * | 2017-09-28 | 2020-10-20 | 苏州浪潮智能科技有限公司 | 分配处理资源的方法、装置、设备及计算机可读存储介质 |
CN110968253B (zh) * | 2018-09-29 | 2023-06-06 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、装置及系统 |
CN109800089A (zh) * | 2019-01-24 | 2019-05-24 | 湖南国科微电子股份有限公司 | 一种缓冲资源分配方法、模块以及电子设备 |
CN112114738B (zh) * | 2019-06-20 | 2024-02-20 | 杭州海康威视数字技术股份有限公司 | 一种存储数据的方法及存储设备 |
CN112181300B (zh) * | 2020-09-25 | 2022-02-22 | 杭州宏杉科技股份有限公司 | 数据处理方法及分布式存储集群 |
CN112817520B (zh) * | 2020-12-31 | 2022-08-09 | 杭州宏杉科技股份有限公司 | 数据刷盘方法及装置 |
CN116909492B (zh) * | 2023-09-12 | 2023-12-08 | 合肥康芯威存储技术有限公司 | 一种存储设备及其控制方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6052789A (en) * | 1994-03-02 | 2000-04-18 | Packard Bell Nec, Inc. | Power management architecture for a reconfigurable write-back cache |
CN1851635A (zh) * | 2006-06-01 | 2006-10-25 | 杭州华为三康技术有限公司 | 对廉价磁盘冗余阵列进行读写操作的方法和系统 |
CN1910538A (zh) * | 2003-12-18 | 2007-02-07 | 英特尔公司 | 改变高速缓存策略的方法和系统 |
CN104794070A (zh) * | 2015-04-23 | 2015-07-22 | 南京道熵信息技术有限公司 | 基于动态非覆盖raid技术的固态闪存写缓存系统及方法 |
CN106201923A (zh) * | 2016-07-20 | 2016-12-07 | 杭州宏杉科技有限公司 | 读写数据方法及装置 |
CN106527974A (zh) * | 2016-10-09 | 2017-03-22 | 华为技术有限公司 | 一种写数据的方法、设备及系统 |
-
2017
- 2017-04-25 CN CN201710273958.1A patent/CN106970765B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6052789A (en) * | 1994-03-02 | 2000-04-18 | Packard Bell Nec, Inc. | Power management architecture for a reconfigurable write-back cache |
CN1910538A (zh) * | 2003-12-18 | 2007-02-07 | 英特尔公司 | 改变高速缓存策略的方法和系统 |
CN1851635A (zh) * | 2006-06-01 | 2006-10-25 | 杭州华为三康技术有限公司 | 对廉价磁盘冗余阵列进行读写操作的方法和系统 |
CN104794070A (zh) * | 2015-04-23 | 2015-07-22 | 南京道熵信息技术有限公司 | 基于动态非覆盖raid技术的固态闪存写缓存系统及方法 |
CN106201923A (zh) * | 2016-07-20 | 2016-12-07 | 杭州宏杉科技有限公司 | 读写数据方法及装置 |
CN106527974A (zh) * | 2016-10-09 | 2017-03-22 | 华为技术有限公司 | 一种写数据的方法、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106970765A (zh) | 2017-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106970765B (zh) | 数据存储方法及装置 | |
US8909887B1 (en) | Selective defragmentation based on IO hot spots | |
CN107122131B (zh) | 自动精简配置的方法及装置 | |
US9665293B2 (en) | Method for a storage device processing data and storage device | |
JP2021006984A (ja) | 不揮発性メモリデータの書き込み管理 | |
JP6311195B2 (ja) | ストレージデバイスによってデータを記憶するための方法およびストレージデバイス | |
US9524238B2 (en) | Systems and methods for managing cache of a data storage device | |
US20140304452A1 (en) | Method for increasing storage media performance | |
US11270734B2 (en) | Method for accessing shingled magnetic recording SMR disk, and server | |
KR20180131475A (ko) | 비휘발성 메모리(nvm)에서 다중 네임스페이스 관리 | |
US20150120988A1 (en) | Method of Accessing Data in Multi-Layer Cell Memory and Multi-Layer Cell Storage Device Using the Same | |
US20150169230A1 (en) | Method of lun management in a solid state disk array | |
US8954658B1 (en) | Method of LUN management in a solid state disk array | |
CN107092443B (zh) | 数据迁移方法及装置 | |
KR20210122726A (ko) | 메모리제어장치 및 메모리제어장치의 동작 방법 | |
US9547450B2 (en) | Method and apparatus to change tiers | |
CN109582235B (zh) | 管理元数据存储方法及装置 | |
CN108334457B (zh) | 一种io处理方法及装置 | |
US11593262B1 (en) | Garbage collection command scheduling | |
CN110209600B (zh) | 一种基于精简lun的cache空间分配方法及系统 | |
CN106919342A (zh) | 基于自动精简配置的存储资源分配方法和装置 | |
KR20240017956A (ko) | Zns ssd 내의 수퍼 디바이스에 걸친 수퍼 블록 할당 | |
CN107688435B (zh) | Io流调节方法与装置 | |
US20230103355A1 (en) | Support Higher Number of Active Zones in ZNS SSD | |
CN114625318A (zh) | 应用于固态硬盘的数据写入方法、装置、设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |