CN105183374A - 一种数据读写方法以及主板 - Google Patents
一种数据读写方法以及主板 Download PDFInfo
- Publication number
- CN105183374A CN105183374A CN201510542803.4A CN201510542803A CN105183374A CN 105183374 A CN105183374 A CN 105183374A CN 201510542803 A CN201510542803 A CN 201510542803A CN 105183374 A CN105183374 A CN 105183374A
- Authority
- CN
- China
- Prior art keywords
- read
- write
- data
- fpga
- hotspot database
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种主板,应用于存储服务器,所述主板包括CPU、基于FPGA的数据读写模块、内存;基于FPGA的数据读写模块与CPU以及存储服务器的磁盘阵列分别相连接;内存与基于FPGA的数据读写模块相连接;基于FPGA的数据读写模块,用于接收CPU下发的读写IO请求,对所述读写IO请求进行解析获取对应的读写地址,并判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引;当获取到的所述读写地址命中预设的热点数据库中的地址索引时,基于所述热点数据库中的热点数据在本地执行与所述读写IO请求对应的读写操作。本主板可以提高热点数据的访问速度以及存储服务器的整体读写性能。
Description
技术领域
本申请涉及通信领域,尤其涉及一种数据读写方法以及主板。
背景技术
存储服务器是一种能提供很大存储空间的服务器,它必须具有快速的处理芯片,较大的RAM(RandomAccessMemory,随机存取存储器),以及非常大的内部磁盘空间,以便应对终端用户随时可能出现的应用调配需求。
在存储服务器中,主板通常是一台存储服务器设计的核心。存储服务器主板的现有架构中,CPU通常通过SAS(SerialAttachedSCSI,即串行SCSI技术)控制器以及SAS扩展器与磁盘阵列建立连接,在进行数据读写时,CPU将从I/O业务口接收到读IO请求和写IO请求通过SAS控制器以及SAS扩展器下发到磁盘阵列,来完成对应的读写操作。
磁盘阵列在完成对应的读写操作时,磁盘阵列中的磁盘设备以恒定的速率旋转,为了能够完成读操作和写操作,磁盘的磁头必须能移动到所要求的磁道上,并等待所要求扇区的开始位置旋转到磁头下,然后再开始读操作和写操作。
因此,磁盘设备在进行数据读写时,数据读写所耗费的总时长通常可以包括寻道时间,旋转延时时间和传输时间三部分。由于在实际应用中,磁盘在进行数据读写时,磁头寻道时间和旋转延时间通常比较长,如果CPU频繁访问磁盘,磁盘工作的大部分时间都在寻道,工作效率将非常低下,必然导致整个计算***运行缓慢,因此对磁盘访问进行加速十分有必要。
发明内容
本申请提出一种数据读写方法,应用于存储服务器,所述存储服务器的主板包括CPU、基于FPGA的数据读写模块、内存;所述基于FPGA的数据读写模块与所述CPU以及所述存储服务器的磁盘阵列分别相连接;所述内存与所述基于FPGA的数据读写模块相连接;所述方法包括:
步骤A、所述基于FPGA的数据读写模块接收所述CPU下发的读写IO请求,并对所述读写IO请求进行解析获取对应的读写地址;
步骤B、所述基于FPGA的数据读写模块判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引;
步骤C、当获取到的所述读写地址命中所述预设的热点数据库中的地址索引时,所述基于FPGA的数据读写模块基于所述热点数据库中的热点数据在本地执行与所述读写IO请求对应的读写操作。
可选的,所述步骤C具体包括:
当解析CPU下发的读IO请求获取到的读地址命中所述预设的热点数据库中的地址索引时,从所述内存中预设的热点数据库中读取与该地址索引对应的热点数据,并将读取到的热点数据返回给CPU,以由CPU将该热点数据发送给所述读IO请求的发起端主机;
当解析CPU下发的写IO请求获取到的写地址命中所述预设的热点数据库中的地址索引时,将与该写IO请求对应的写入数据存入所述热点数据库,对所述热点数据库中与该地址索引对应的热点数据进行更新。
可选的,所述步骤B具体包括:
在判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引之前,针对与所述读写地址对应的数据进行访问次数统计;
判断统计出的访问次数是否达到阈值;
当统计出的任一数据的访问次数达到阈值时,将该数据作为热点数据保存在所述预设的热点数据库中,并在该热点数据库中创建该数据与该数据的地址索引之间的对应关系。
可选的,所述步骤B进一步包括:
当所述预设的热点数据库中任一热点数据未被读取的持续时长达到预设时长时,将该热点数据从所述内存中回写到所述磁盘阵列,并删除所述预设的热点数据库中保存的与该热点数据对应的地址索引。
可选的,所述内存包括大容量闪存。
本申请还提出一种主板,应用于存储服务器,所述主板包括CPU、基于FPGA的数据读写模块、内存;其中,所述基于FPGA的数据读写模块与所述CPU以及所述存储服务器的磁盘阵列分别相连接;所述内存与所述基于FPGA的数据读写模块相连接;其中:
所述基于FPGA的数据读写模块,用于接收所述CPU下发的读写IO请求,并对所述读写IO请求进行解析获取对应的读写地址;
所述基于FPGA的数据读写模块进一步判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引;
当获取到的所述读写地址命中所述预设的热点数据库中的地址索引时,所述基于FPGA的数据读写模块进一步用于基于所述热点数据库中的热点数据在本地执行与所述读写IO请求对应的读写操作。
可选的,所述基于FPGA的数据读写模块进一步用于:
当解析CPU下发的读IO请求获取到的读地址命中所述预设的热点数据库中的地址索引时,从所述内存中预设的热点数据库中读取与该地址索引对应的热点数据,并将读取到的热点数据返回给CPU,以由CPU将该热点数据发送给所述读IO请求的发起端主机;
当解析CPU下发的写IO请求获取到的写地址命中所述预设的热点数据库中的地址索引时,将与该写IO请求对应的写入数据存入所述热点数据库,对所述热点数据库中与该地址索引对应的热点数据进行更新。
可选的,所述基于FPGA的数据读写模块进一步用于:
在判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引之前,针对与所述读写地址对应的数据进行访问次数统计;
判断统计出的访问次数是否达到阈值;
当统计出的任一数据的访问次数达到阈值时,将该数据作为热点数据保存在所述预设的热点数据库中,并在该热点数据库中创建该数据与该数据的地址索引之间的对应关系。
可选的,所述基于FPGA的数据读写模块进一步用于:
当所述预设的热点数据库中任一热点数据未被读取的持续时长达到预设时长时,将该热点数据从所述内存中回写到所述磁盘阵列,并删除所述预设的热点数据库中保存的与该热点数据对应的地址索引。
可选的,所述内存包括大容量闪存。
本申请提出一种新的存储服务器的主板架构,该主板架构中包括CPU、基于FPGA的数据读写模块、内存;所述基于FPGA的数据读写模块与所述CPU以及所述存储服务器的磁盘阵列分别相连接;所述内存与所述基于FPGA的数据读写模块相连接。CPU在进行数据读写时,基于FPGA的数据读写模块接收CPU下发的读写IO请求,对所述读写IO请求进行解析获取对应的读写地址,并判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引;当获取到的所述读写地址命中所述预设的热点数据库中的地址索引时,所述基于FPGA的数据读写模块基于所述热点数据库中的热点数据在本地执行与所述读写IO请求对应的读写操作。
由于在该主板架构中,当CPU发起的读写IO请求对应的读写数据命中热点数据库中的热点数据时,将由基于FPGA的数据读写模块根据基于所述热点数据库中的数据在其本地完成与所述读写IO请求对应的读写操作,而不需要将该读写IO请求下发到磁盘阵列来执行对应的读写操作,因此可以有效的减少磁盘阵列中单块磁盘的读写操作次数节省磁盘的寻道时长,从而可以实现磁盘访问的加速,极大的提高了热点数据的访问速度,提升了存储服务器的整体读写性能。
附图说明
图1是本申请一实施例提供的一种存储服务器的主板架构图;
图2是本申请一实施例提供的另一种存储服务器的主板架构图;
图3是本申请一实施例提供的一种数据读写方法的流程图。
具体实施方式
请参见图1,图1为现有实现中存储服务器的主板架构示意图。
如图1所示,在存储服务器的主板架构中,通常包括业务IO口、CPU、IOH(InputOutputHub,输入输出集线器)、内存、SAS控制器、SAS扩展器以及RAID阵列。
其中,CPU负责操作***、RAID算法以及所有业务处理计算相关的工作。IOH为支撑CPU的芯片组,负责为提供一些低速接口;例如,管理网口、按键以及串口等。内存,用于给***提供较大容量以及较快速的缓存;例如,该内存可以是DDR3规格的内存。SAS控制器,负责提供SAS协议转换,以及相关存储指令的处理。SAS扩展器,负责扩充SAS控制器的端口数,相当于一个交换机。RAID阵列,为由独立磁盘构成的具有冗余能力的阵列,磁盘阵列可以是由很多价格较低廉的磁盘,组合成的一个容量巨大的磁盘组,从而来提升整个磁盘***的效率;例如,RAID阵列可以是由兼容SAS协议的SATA(SerialAdvancedTechnologyAttachment,串行高级技术附件)硬盘或SAS硬盘。
在上述主板架构中,数据的读写操作主要由CPU负责处理。
CPU在进行数据的读操作时,读IO请求从业务IO口进入CPU,CPU在接收到该读IO请求后,首先将该读IO请求缓存在内存中,然后CPU从内存中读取已经缓存的读IO请求,再将该读IO请求通过SAS控制器,再经过SAS扩展器下发给磁盘阵列。
磁盘阵列收到CPU下发的读IO请求后,磁盘阵列的磁盘开始旋转,寻道,然后执行与该读IO请求对应的读操作后,将读取到的数据通过SAS控制器,再经过SAS扩展器缓存到内存中,再由CPU从内存中读取缓存的数据,通过业务IO口送达给该读IO请求的发起端主机。
CPU在进行数据的写操作时,写IO请求从业务IO口进入CPU,CPU在接收到该写IO请求后,首先将该写IO请求以及本次要写入的数据缓存在内存中,然后CPU从内存中读取已经缓存的写IO请求,再将该写IO请求通过SAS控制器,再经过SAS扩展器下发给磁盘阵列。
磁盘阵列收到CPU下发的写IO请求后,磁盘阵列的磁盘开始旋转,寻道,然后执行与该写IO请求对应的写操作将缓存在内存中本次要写入的数据写入成功后,返回一个写入成功的通告消息,该通告消息通过SAS控制器,再经过SAS扩展器缓存到内存中,再由CPU从内存中读取缓存的该写入成功的通告消息,通过业务IO口送达该给写IO请求的发起端主机。
可见,在存储服务器现有的主板架构中,磁盘阵列的磁盘在接收到CPU下发的IO请求进行数据读写时,磁头寻道时间和旋转延时间通常比较长,如果CPU频繁访问磁盘,磁盘工作的大部分时间都在寻道,工作效率将非常低下,必然导致整个计算***运行缓慢,因此对磁盘访问进行加速十分有必要。
有鉴于此,本申请提出一种新的存储服务器的主板架构,该主板架构中包括CPU、基于FPGA的数据读写模块、内存;所述基于FPGA的数据读写模块与所述CPU以及所述存储服务器的磁盘阵列分别相连接;所述内存与所述基于FPGA的数据读写模块相连接。CPU在进行数据读写时,基于FPGA的数据读写模块接收CPU下发的读写IO请求,对所述读写IO请求进行解析获取对应的读写地址,并判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引;当获取到的所述读写地址命中所述预设的热点数据库中的地址索引时,所述基于FPGA的数据读写模块基于所述热点数据库中的热点数据在本地执行与所述读写IO请求对应的读写操作。
由于在该主板架构中,当CPU发起的读写IO请求对应的读写数据命中热点数据库中的热点数据时,将由基于FPGA的数据读写模块根据热点数据库中的数据在其本地完成与所述读写IO请求对应的读写操作,而不需要将该读写IO请求下发到磁盘阵列来执行对应的读写操作,因此可以有效的减少磁盘阵列中单块磁盘的读写操作次数节省磁盘的寻道时长,从而可以实现磁盘访问的加速,极大的提高了热点数据的访问速度,提升了存储服务器的整体读写性能。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图2,图2是本申请一实施例提供的一种主板架构,应用于存储服务器。
如图2所示,在该主板架构中,包括CPU、基于FPGA(FieldProgrammableGateArray,即现场可编程门阵列)的数据读写模块(以下简称FPGA)、业务IO口、磁盘阵列以及与CPU相连接的第一内存和与FPGA相连接的第二内存。其中,所述FPGA与CPU相连接;所述FPGA与存储服务器的磁盘阵列相连接;所述第一内存可以是DDR3规格的内存;所述第二内存可以是大容量闪存。
值得说明的是,FPGA与存储服务器的磁盘阵列在进行连接时,可以通过SAS控制以及SAS扩展器与磁盘阵列相连,也可以在通过在FPGA上模拟驱动来实现SAS控制器的功能与磁盘阵列直接建立连接。
其中,通过在FPGA上模拟驱动来实现SAS控制器的功能与磁盘阵列直接建立连接的这种实现方式,可以有效地缩短CPU在进行磁盘访问时的数据通路,降低延迟时间。
在该主板架构中,与所述FPGA相连接的第二内存中可以预先设置一个热点数据库,该热点数据库中用于存放热点数据以及该热点数据对应的地址索引。
在实现时,该热点数据库可以是一个预设的用于记录热点数据以及地址索引的cache表,该第二内存可以是大容量的缓存,其中该大容量的缓存可以是大容量的普通内存,也可以是大容量的闪存;例如,可以采用几百G大小的通过级联方式产生的闪存或者普通内存。
其中,当上述大容量的缓存为大容量的闪存时,基于闪存自身的特性,可以保证掉电后热点数据不会丢失。当上述大容量的缓存为大容量的普通内存时,可以提高处理性能,然而为了保证热点数据不丢时,需要为该大容量的普通内存设置一个独立的备用电源。另外由于上述大容量的缓存具有较大容量,因此可以缓存大量热点数据,从而增加热点数据的访问命中率。
当FPGA在接收到的由CPU下发的读写IO请求后,可以通过对接收到的读写IO请求进行解析来获取对应的读写地址,如果解析出的读写地址命中热点数据库中的地址索引时,FPGA可以基于该热点数据库中的热点数据直接在本地执行对应的读写操作,从而不需要该读写IO请求下发到磁盘阵列来执行对应的读写操作。
通过这种方式,由于通过FPGA来替代CPU完成读写IO请求的解析,因此可以分担CPU的计算压力,从而可以极大的提高了热点数据的访问速度,提升存储服务器的整体读写性能。
在上述主板架构中,数据的读写操作仍然由CPU负责处理。
以下对CPU进行数据读、写操作的过程进行描述。
在该主板架构中,FPGA用于接收所述CPU下发的读写IO请求,并对所述读写IO请求进行解析获取对应的读写地址。当获取到对应的读写地址后,FPGA可以判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引;当获取到的所述读写地址命中所述预设的热点数据库中的地址索引时,FPGA可以基于所述热点数据库中的热点数据在本地执行与所述读写IO请求对应的读写操作。
具体地,当用户通过主机向存储服务器发起一次读操作时,会向存储服务器发送一个读IO请求,在该IO请求中可以包括本次要读取的数据在存储服务器的磁盘阵列中存储的LBA(LogicalBlockAddress,逻辑区块地址)地址。存储服务器在接收读IO请求时,该读IO请求可以通过业务IO口进入CPU,CPU在接收到该读IO请求后,首先将该读IO请求缓存在第一内存中。然后CPU再从内存中读取已经缓存的该读IO请求,将该读IO请求下发给FPGA。
同样的道理,当用户通过主机向存储服务器发起一次写操作时,会向存储服务器发送一个写IO请求,在该IO请求中可以包括要写入数据的LBA地址。存储服务器在接收写IO请求以及要写入的数据时,该写IO请求以及要写入的数据可以通过业务IO口进入CPU,CPU在接收到该写IO请求以及要写入的数据后,首先将该写IO请求以及要写入的数据缓存在第一内存中,然后CPU再从内存中读取已经缓存的该写IO请求,并将该读IO请求下发给FPGA。
在该主板架构中,FPGA在收到CPU下发的读IO请求和写IO请求后,可以对接收到的读IO请求和写IO请求进行解析,来获取对应的读地址和写地址,然后根据解析出的同一个地址的次数对与该读地址和写地址对应的数据进行访问次数统计;其中,数据的访问次数可以包括读取的次数以及写入的次数。
例如,当FPGA通过解析接收到的读IO请求或者写IO首次获取到一个地址后,表明与该地址对应的数据发生了一次读取或者写入,FPGA可以为该地址对应的数据记录一次访问;当FPGA通过解析接收到的读IO请求或者写IO再次获取到该地址后,表明与该地址对应的数据又发生了一次读取或者写入访问,于是FPGA可以对已经统计的访问次数进行更新,将该地址对应的数据的访问次数加一,以此类推。
通过这种方式,FPGA可以在数据的读写过程中对所有发生读写的数据进行访问次数统计。同时,对于统计完成的访问次数,FPGA还可以通过将统计出的访问次数与预设的阈值进行比较来确定哪些发生读写的数据为热点数据。
在实现时,FPGA在进行访问次数的统计过程中,可以将统计出的访问次数实时的与预设的阈值进行比较,当任一数据的访问次数达到预设的阈值时,则可以确定该数据为热点数据,将该数据保存到热点数据库中,并在热点数据库中建立该数据与该数据的地址索引之间的对应关系。其中,所述预设的阈值在本申请中不进行特别限定,可以根据实际的业务需求进行设定
例如,当FPGA解析接收到的读IO请求再次获取到一个地址后,此时FPGA可以将该地址对应的数据的访问次数加一,并同时将该数据当前的访问次数与预设的阈值进行比较,如果此时该数据的访问次数达到阈值,当FPGA在接收到磁盘阵列返回的读取到的该数据时,可以将该数据作为热点数据保存到热点数据库中,同时将该数据的LBA地址作为地址索引在热点数据库中建立与该数据的对应关系。同样的道理,当FPGA解析接收到的写IO请求再次获取到一个地址后,此时FPGA可以将该地址对应的数据的访问次数加一,并同时将该数据当前的访问次数与预设的阈值进行比较,如果此时该数据的访问次数达到阈值,FPGA可以将本次要写入的数据直接作为热点数据保存到热点数据库中,同时将该数据的LBA地址作为地址索引在热点数据库中建立与该数据的对应关系。
当然,在实际应用中,热点数据库中保存的热点数据,也可以由管理员人工进行指定,在本实施例中不进行特别限定;例如,管理员可以从磁盘阵列中将与每一类热点业务相关的数据人工拷贝至热点数据库。
对于保存在热点数据库中的热点数据,当FPGA再次接收到针对热点数据库中数据的读IO请求或者写IO请求时,可以直接从热点数据库中完成相应的读写操作,而不必将读IO请求或者写IO请求下发至磁盘阵列来进行相应的读写操作。
例如,在实现时,当FPGA接收到一个由CPU下发的读IO请求时,首先FPGA可以对该读IO请求进行解析来获取对应的读地址,然后FPGA可以将解析出的读地址与热点数据库中的地址索引依次进行匹配,来判断该读地址是否命中热点数据中的地址索引;如果该读地址命中热点数据中的地址索引时,此时与该读地址对应的数据为热点数据,FPGA可以直接在本地执行与该读IO请求对应的读操作,从热点数据库中读取与该读地址对应数据,然后将读取到的数据返回给CPU,再由CPU通过业务IO口发送给该读IO请求的发起方主机。当然,如果该读地址未命中热点数据库中的地址索引,那么FPGA将该读IO请求下发至磁盘阵列,由磁盘阵列上的磁盘来进行寻道,从磁盘阵列的磁盘上来读取数据。
当FPGA接收到一个由CPU下发的写IO请求时,首先FPGA可以对该写IO请求进行解析来获取对应的写地址,然后FPGA可以将解析出的写地址与热点数据库中的地址索引依次进行匹配,来判断该写地址是否命中热点数据中的地址索引;如果该写地址命中热点数据中的地址索引时,此时与该写地址对应的数据为热点数据,那么本次写操作为覆盖写入操作,FPGA可以直接在本地执行与该写IO请求对应的写操作,将缓存在CPU的第一内存中的本次要写入的数据保存到热点数据库中,对热点数据中与该写地址对应的原有数据进行覆盖更新。当然,如果该写地址未命中热点数据库中的地址索引,那么FPGA将该写IO请求下发至磁盘阵列,由磁盘阵列上的磁盘来进行寻道,将要写入的数据写入到磁盘阵列的磁盘中。
可见,通过这种方式,FPGA在处理接收到由CPU下发的读IO请求和写IO请求时,如果解析出的地址命中热点数据库中的地址索引,那么FPGA则不必将读IO请求或者写IO请求下发至磁盘阵列来进行相应的读写操作,可以直接在本地来执行对应的读写操作,从而可以减少针对磁盘阵列中磁盘的读写次数,降低磁盘阵列中由于磁盘臂移动而产生的寻道时间,提高热点数据的访问速度。
另外,对于热点数据库中的数据,FPGA还可以根据预设的算法对热点数据库中的数据以及地址索引进行实时的更新,将热点数据库中不活跃的数据回写到磁盘阵列。其中,FPGA在对热点数据库中的数据进行实时的更新时,所采用的算法在本实施中不进行特别限定。
在本实施例示出的一种算法中,FPGA可以设置一个预设的时长,当热点数据库中的热点数据长时间未被访问,并且持续未被访问的持续时长达到设置的所述预设的时长,那么此时FPGA则可以将热点数据库中保存的该数据回写到磁盘阵列,并删除热点数据库中保存的该热点数据对应的地址索引。例如,对于热点数据库中保存的地址索引,FPGA可以分别记录该地址索引上次被匹配到的时间点,当热点数据库中保存的任一地址索引距离上次被匹配到的时间点的时长达到所述预设的时长时,表明该热点数据这个时间段内不够活跃,FPGA可以将该数据回写到磁盘阵列,并删除热点数据库中的该数据的地址索引。可见,通过这种方式,可以保证热点数据库中的数据在一定的时间段内均为活跃的热点数据。
通过以上描述可知,本申请提出一种新的存储服务器的主板架构,该主板架构中包括CPU、基于FPGA的数据读写模块、内存;所述基于FPGA的数据读写模块与所述CPU以及所述存储服务器的磁盘阵列分别相连接;所述内存与所述基于FPGA的数据读写模块相连接。CPU在进行数据读写时,基于FPGA的数据读写模块接收CPU下发的读写IO请求,对所述读写IO请求进行解析获取对应的读写地址,并判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引;当获取到的所述读写地址命中所述预设的热点数据库中的地址索引时,所述基于FPGA的数据读写模块基于所述热点数据库中的热点数据在本地执行与所述读写IO请求对应的读写操作。
由于在该主板架构中,当CPU发起的读写IO请求对应的读写数据命中热点数据库中的热点数据时,将由基于FPGA的数据读写模块根据基于所述热点数据库中的数据在其本地完成与所述读写IO请求对应的读写操作,而不需要将该读写IO请求下发到磁盘阵列来执行对应的读写操作,因此可以有效的减少磁盘阵列中单块磁盘的读写操作次数,节省磁盘的寻道时长,从而可以实现磁盘访问的加速,极大的提高了热点数据的访问速度,提升了存储服务器的整体读写性能。
与上述装置实施例相对应,本申请还提供了方法的实施例。
请参见图3,本申请提出一种数据的读写方法,应用于存储服务器,所述存储服务器的主板具有如图2所示出的架构,包括CPU、基于FPGA的数据读写模块、内存;其中,所述基于FPGA的数据读写模块与所述CPU以及所述存储服务器的磁盘阵列分别相连接;所述内存与所述基于FPGA的数据读写模块相连接。
当所述基于FPGA的数据读写模块加载了设定的读写逻辑,所述方法执行以下步骤:
步骤301,基于FPGA的数据读写模块接收所述CPU下发的读写IO请求,并对所述读写IO请求进行解析获取对应的读写地址;
步骤302,基于FPGA的数据读写模块判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引;
步骤303,当获取到的所述读写地址命中所述预设的热点数据库中的地址索引时,所述基于FPGA的数据读写模块基于所述热点数据库中的热点数据在本地执行与所述读写IO请求对应的读写操作。
在本实施例中,所述步骤303具体包括:
当解析CPU下发的读IO请求获取到的读地址命中所述预设的热点数据库中的地址索引时,从所述内存中预设的热点数据库中读取与该地址索引对应的热点数据,并将读取到的热点数据返回给CPU,以由CPU将该热点数据发送给所述读IO请求的发起端主机;
当解析CPU下发的写IO请求获取到的写地址命中所述预设的热点数据库中的地址索引时,将与该写IO请求对应的写入数据存入所述热点数据库,对所述热点数据库中与该地址索引对应的热点数据进行更新。
在本实施例中,所述步骤302具体包括:
在判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引之前,针对与所述读写地址对应的数据进行访问次数统计;
判断统计出的访问次数是否达到阈值;
当统计出的任一数据的访问次数达到阈值时,将该数据作为热点数据保存在所述预设的热点数据库中,并在该热点数据库中创建该数据与该数据的地址索引之间的对应关系。
在本实施例中,所述步骤302进一步包括:
当所述预设的热点数据库中任一热点数据未被读取的持续时长达到预设时长时,将该热点数据从所述内存中回写到所述磁盘阵列,并删除所述预设的热点数据库中保存的与该热点数据对应的地址索引。
在本实施例中,所述内存为大容量闪存。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种数据读写方法,应用于存储服务器,其特征在于,所述存储服务器的主板包括CPU、基于FPGA的数据读写模块、内存;所述基于FPGA的数据读写模块与所述CPU以及所述存储服务器的磁盘阵列分别相连接;所述内存与所述基于FPGA的数据读写模块相连接;所述方法包括:
步骤A、所述基于FPGA的数据读写模块接收所述CPU下发的读写IO请求,并对所述读写IO请求进行解析获取对应的读写地址;
步骤B、所述基于FPGA的数据读写模块判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引;
步骤C、当获取到的所述读写地址命中所述预设的热点数据库中的地址索引时,所述基于FPGA的数据读写模块基于所述热点数据库中的热点数据在本地执行与所述读写IO请求对应的读写操作。
2.根据权利要求1所述的方法,其特征在于,所述步骤C具体包括:
当解析CPU下发的读IO请求获取到的读地址命中所述预设的热点数据库中的地址索引时,从所述内存中预设的热点数据库中读取与该地址索引对应的热点数据,并将读取到的热点数据返回给CPU,以由CPU将该热点数据发送给所述读IO请求的发起端主机;
当解析CPU下发的写IO请求获取到的写地址命中所述预设的热点数据库中的地址索引时,将与该写IO请求对应的写入数据存入所述热点数据库,对所述热点数据库中与该地址索引对应的热点数据进行更新。
3.根据权利要求1所述的方法,其特征在于,所述步骤B具体包括:
在判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引之前,针对与所述读写地址对应的数据进行访问次数统计;
判断统计出的访问次数是否达到阈值;
当统计出的任一数据的访问次数达到阈值时,将该数据作为热点数据保存在所述预设的热点数据库中,并在该热点数据库中创建该数据与该数据的地址索引之间的对应关系。
4.根据权利要求3所述的方法,其特征在于,所述步骤B进一步包括:
当所述预设的热点数据库中任一热点数据未被读取的持续时长达到预设时长时,将该热点数据从所述内存中回写到所述磁盘阵列,并删除所述预设的热点数据库中保存的与该热点数据对应的地址索引。
5.根据权利要求1~4任一所述的方法,其特征在于,所述内存包括大容量闪存。
6.一种主板,应用于存储服务器,其特征在于,所述主板包括CPU、基于FPGA的数据读写模块、内存;其中,所述基于FPGA的数据读写模块与所述CPU以及所述存储服务器的磁盘阵列分别相连接;所述内存与所述基于FPGA的数据读写模块相连接;其中:
所述基于FPGA的数据读写模块,用于接收所述CPU下发的读写IO请求,并对所述读写IO请求进行解析获取对应的读写地址;
所述基于FPGA的数据读写模块进一步判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引;
当获取到的所述读写地址命中所述预设的热点数据库中的地址索引时,所述基于FPGA的数据读写模块进一步用于基于所述热点数据库中的热点数据在本地执行与所述读写IO请求对应的读写操作。
7.根据权利要求6所述的主板,其特征在于,所述基于FPGA的数据读写模块进一步用于:
当解析CPU下发的读IO请求获取到的读地址命中所述预设的热点数据库中的地址索引时,从所述内存中预设的热点数据库中读取与该地址索引对应的热点数据,并将读取到的热点数据返回给CPU,以由CPU将该热点数据发送给所述读IO请求的发起端主机;
当解析CPU下发的写IO请求获取到的写地址命中所述预设的热点数据库中的地址索引时,将与该写IO请求对应的写入数据存入所述热点数据库,对所述热点数据库中与该地址索引对应的热点数据进行更新。
8.根据权利要求6所述的主板,其特征在于,所述基于FPGA的数据读写模块进一步用于:
在判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引之前,针对与所述读写地址对应的数据进行访问次数统计;
判断统计出的访问次数是否达到阈值;
当统计出的任一数据的访问次数达到阈值时,将该数据作为热点数据保存在所述预设的热点数据库中,并在该热点数据库中创建该数据与该数据的地址索引之间的对应关系。
9.根据权利要求8所述的主板,其特征在于,所述基于FPGA的数据读写模块进一步用于:
当所述预设的热点数据库中任一热点数据未被读取的持续时长达到预设时长时,将该热点数据从所述内存中回写到所述磁盘阵列,并删除所述预设的热点数据库中保存的与该热点数据对应的地址索引。
10.根据权利要求6~9任一所述的主板,其特征在于,所述内存包括大容量闪存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510542803.4A CN105183374B (zh) | 2015-08-28 | 2015-08-28 | 一种数据读写方法以及主板 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510542803.4A CN105183374B (zh) | 2015-08-28 | 2015-08-28 | 一种数据读写方法以及主板 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105183374A true CN105183374A (zh) | 2015-12-23 |
CN105183374B CN105183374B (zh) | 2018-04-06 |
Family
ID=54905483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510542803.4A Active CN105183374B (zh) | 2015-08-28 | 2015-08-28 | 一种数据读写方法以及主板 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105183374B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649654A (zh) * | 2016-12-12 | 2017-05-10 | 京信通信技术(广州)有限公司 | 一种数据更新的方法和装置 |
CN106990916A (zh) * | 2017-03-01 | 2017-07-28 | 北京腾凌科技有限公司 | 一种读写请求的处理方法及装置 |
CN107451070A (zh) * | 2016-06-01 | 2017-12-08 | 腾讯科技(深圳)有限公司 | 一种数据的处理方法和服务器 |
CN107579936A (zh) * | 2017-09-11 | 2018-01-12 | 北京腾凌科技有限公司 | 报文传输方法、控制器及存储*** |
CN108595269A (zh) * | 2018-04-26 | 2018-09-28 | 北京腾凌科技有限公司 | 一种数据处理方法、指令生成装置和数据读写装置 |
CN113986133A (zh) * | 2021-10-27 | 2022-01-28 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、数据存储***及电子设备 |
CN115098045A (zh) * | 2022-08-23 | 2022-09-23 | 成都止观互娱科技有限公司 | 一种数据存储***及网络数据读取和写入方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088514A1 (en) * | 2002-10-31 | 2004-05-06 | Bullen Melvin James | Methods and systems for a storage system including an improved switch |
US20080010431A1 (en) * | 2006-07-07 | 2008-01-10 | Chi-Tung Chang | Memory storage device and read/write method thereof |
CN101510219A (zh) * | 2009-03-31 | 2009-08-19 | 成都市华为赛门铁克科技有限公司 | 文件数据访问方法、装置以及*** |
CN101839974A (zh) * | 2010-05-05 | 2010-09-22 | 北京航空航天大学 | 一种双接口雷达数据记录仪 |
CN102870100A (zh) * | 2012-06-30 | 2013-01-09 | 华为技术有限公司 | 数据缓存装置、数据存储***及方法 |
-
2015
- 2015-08-28 CN CN201510542803.4A patent/CN105183374B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088514A1 (en) * | 2002-10-31 | 2004-05-06 | Bullen Melvin James | Methods and systems for a storage system including an improved switch |
US20080010431A1 (en) * | 2006-07-07 | 2008-01-10 | Chi-Tung Chang | Memory storage device and read/write method thereof |
CN101510219A (zh) * | 2009-03-31 | 2009-08-19 | 成都市华为赛门铁克科技有限公司 | 文件数据访问方法、装置以及*** |
CN101839974A (zh) * | 2010-05-05 | 2010-09-22 | 北京航空航天大学 | 一种双接口雷达数据记录仪 |
CN102870100A (zh) * | 2012-06-30 | 2013-01-09 | 华为技术有限公司 | 数据缓存装置、数据存储***及方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107451070A (zh) * | 2016-06-01 | 2017-12-08 | 腾讯科技(深圳)有限公司 | 一种数据的处理方法和服务器 |
CN107451070B (zh) * | 2016-06-01 | 2020-08-04 | 腾讯科技(深圳)有限公司 | 一种数据的处理方法和服务器 |
CN106649654A (zh) * | 2016-12-12 | 2017-05-10 | 京信通信技术(广州)有限公司 | 一种数据更新的方法和装置 |
CN106990916A (zh) * | 2017-03-01 | 2017-07-28 | 北京腾凌科技有限公司 | 一种读写请求的处理方法及装置 |
CN106990916B (zh) * | 2017-03-01 | 2020-04-07 | 北京腾凌科技有限公司 | 一种读写请求的处理方法及装置 |
CN107579936A (zh) * | 2017-09-11 | 2018-01-12 | 北京腾凌科技有限公司 | 报文传输方法、控制器及存储*** |
CN108595269A (zh) * | 2018-04-26 | 2018-09-28 | 北京腾凌科技有限公司 | 一种数据处理方法、指令生成装置和数据读写装置 |
CN108595269B (zh) * | 2018-04-26 | 2020-10-09 | 北京腾凌科技有限公司 | 一种数据处理方法、指令生成装置和数据读写装置 |
CN113986133A (zh) * | 2021-10-27 | 2022-01-28 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、数据存储***及电子设备 |
CN115098045A (zh) * | 2022-08-23 | 2022-09-23 | 成都止观互娱科技有限公司 | 一种数据存储***及网络数据读取和写入方法 |
CN115098045B (zh) * | 2022-08-23 | 2022-11-25 | 成都止观互娱科技有限公司 | 一种数据存储***及网络数据读取和写入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105183374B (zh) | 2018-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105183374B (zh) | 一种数据读写方法以及主板 | |
EP1960888B1 (en) | Optimizing write and wear performance for a memory | |
CN105138469A (zh) | 一种数据读写方法以及主板 | |
US10564880B2 (en) | Data deduplication method and apparatus | |
US9128855B1 (en) | Flash cache partitioning | |
US9348747B2 (en) | Solid state memory command queue in hybrid device | |
WO2017148242A1 (zh) | 一种访问叠瓦式磁记录smr硬盘的方法及服务器 | |
WO2017063495A1 (zh) | 数据迁移方法及装置 | |
CN104267912A (zh) | 一种nas加速方法及*** | |
US10296236B2 (en) | Offloading device management responsibilities from a storage device in an array of storage devices | |
CN116301669B (zh) | 一种基于fpga的高速存储***分区方法及*** | |
CN107203480B (zh) | 一种数据预取方法以及装置 | |
CN115639971B (zh) | 数据写入方法、装置、电子设备、存储介质及程序产品 | |
US20240104014A1 (en) | Data management method, and storage space management method and apparatus | |
US20180181318A1 (en) | Storage control device | |
CN115079936A (zh) | 一种数据写入方法及装置 | |
CN112347044A (zh) | 一种基于spdk的对象存储优化方法 | |
US8140804B1 (en) | Systems and methods for determining whether to perform a computing operation that is optimized for a specific storage-device-technology type | |
CN103064926B (zh) | 数据处理方法和装置 | |
US20220035554A1 (en) | Method of processing a input-output request, an electronic device, and a computer program product | |
US6950905B2 (en) | Write posting memory interface with block-based read-ahead mechanism | |
CN105205017A (zh) | 一种基于pcie ssd的存储控制器 | |
CN103064803B (zh) | 一种NAND Flash存储设备的数据读写方法和装置 | |
CN105827681A (zh) | 一种san网络下备份数据传输方法 | |
CN104461394A (zh) | 一种raid及从其读取数据的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |