一种数据读写方法以及主板的制作方法_2

文档序号:9432199阅读:来源:国知局
(InputOutput Hub,输入输出集线器)、内存、SAS控制器、SAS扩展器以及RAID阵列。
[0041]其中,CPU负责操作系统、RAID算法以及所有业务处理计算相关的工作。1H为支撑CPU的芯片组,负责为提供一些低速接口 ;例如,管理网口、按键以及串口等。内存,用于给系统提供较大容量以及较快速的缓存;例如,该内存可以是DDR3规格的内存。SAS控制器,负责提供SAS协议转换,以及相关存储指令的处理。SAS扩展器,负责扩充SAS控制器的端口数,相当于一个交换机。RAID阵列,为由独立磁盘构成的具有冗余能力的阵列,磁盘阵列可以是由很多价格较低廉的磁盘,组合成的一个容量巨大的磁盘组,从而来提升整个磁盘系统的效率;例如,RAID阵列可以是由兼容SAS协议的SATA (Serial AdvancedTechnology Attachment,串行高级技术附件)硬盘或SAS硬盘。
[0042]在上述主板架构中,数据的读写操作主要由CPU负责处理。
[0043]CPU在进行数据的读操作时,读1请求从业务1 口进入CPU,CPU在接收到该读1请求后,首先将该读1请求缓存在内存中,然后CPU从内存中读取已经缓存的读1请求,再将该读1请求通过SAS控制器,再经过SAS扩展器下发给磁盘阵列。
[0044]磁盘阵列收到CPU下发的读1请求后,磁盘阵列的磁盘开始旋转,寻道,然后执行与该读1请求对应的读操作后,将读取到的数据通过SAS控制器,再经过SAS扩展器缓存到内存中,再由CPU从内存中读取缓存的数据,通过业务1 口送达给该读1请求的发起端主机。
[0045]CPU在进行数据的写操作时,写1请求从业务1 口进入CPU,CPU在接收到该写1请求后,首先将该写1请求以及本次要写入的数据缓存在内存中,然后CPU从内存中读取已经缓存的写1请求,再将该写1请求通过SAS控制器,再经过SAS扩展器下发给磁盘阵列。
[0046]磁盘阵列收到CPU下发的写1请求后,磁盘阵列的磁盘开始旋转,寻道,然后执行与该写1请求对应的写操作将缓存在内存中本次要写入的数据写入成功后,返回一个写入成功的通告消息,该通告消息通过SAS控制器,再经过SAS扩展器缓存到内存中,再由CPU从内存中读取缓存的该写入成功的通告消息,通过业务1 口送达该给写1请求的发起端主机。
[0047]可见,在存储服务器现有的主板架构中,磁盘阵列的磁盘在接收到CPU下发的1请求进行数据读写时,磁头寻道时间和旋转延时间通常比较长,如果CPU频繁访问磁盘,磁盘工作的大部分时间都在寻道,工作效率将非常低下,必然导致整个计算系统运行缓慢,因此对磁盘访问进行加速十分有必要。
[0048]有鉴于此,本申请提出一种新的存储服务器的主板架构,该主板架构中包括CPU、基于FPGA的数据读写模块、内存;所述基于FPGA的数据读写模块与所述CPU以及所述存储服务器的磁盘阵列分别相连接;所述内存与所述基于FPGA的数据读写模块相连接。CPU在进行数据读写时,基于FPGA的数据读写模块接收CPU下发的读写1请求,对所述读写1请求进行解析获取对应的读写地址,并判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引;当获取到的所述读写地址命中所述预设的热点数据库中的地址索引时,所述基于FPGA的数据读写模块基于所述热点数据库中的热点数据在本地执行与所述读写1请求对应的读写操作。
[0049]由于在该主板架构中,当CPU发起的读写1请求对应的读写数据命中热点数据库中的热点数据时,将由基于FPGA的数据读写模块根据热点数据库中的数据在其本地完成与所述读写1请求对应的读写操作,而不需要将该读写1请求下发到磁盘阵列来执行对应的读写操作,因此可以有效的减少磁盘阵列中单块磁盘的读写操作次数节省磁盘的寻道时长,从而可以实现磁盘访问的加速,极大的提高了热点数据的访问速度,提升了存储服务器的整体读写性能。
[0050]下面通过具体实施例并结合具体的应用场景对本申请进行描述。
[0051]请参考图2,图2是本申请一实施例提供的一种主板架构,应用于存储服务器。
[0052]如图2所示,在该主板架构中,包括CPU、基于FPGA (Field Programmable GateArray,即现场可编程门阵列)的数据读写模块(以下简称FPGA)、业务1 口、磁盘阵列以及与CPU相连接的第一内存和与FPGA相连接的第二内存。其中,所述FPGA与CPU相连接;所述FPGA与存储服务器的磁盘阵列相连接;所述第一内存可以是DDR3规格的内存;所述第二内存可以是大容量闪存。
[0053]值得说明的是,FPGA与存储服务器的磁盘阵列在进行连接时,可以通过SAS控制以及SAS扩展器与磁盘阵列相连,也可以在通过在FPGA上模拟驱动来实现SAS控制器的功能与磁盘阵列直接建立连接。
[0054]其中,通过在FPGA上模拟驱动来实现SAS控制器的功能与磁盘阵列直接建立连接的这种实现方式,可以有效地缩短CPU在进行磁盘访问时的数据通路,降低延迟时间。
[0055]在该主板架构中,与所述FPGA相连接的第二内存中可以预先设置一个热点数据库,该热点数据库中用于存放热点数据以及该热点数据对应的地址索引。
[0056]在实现时,该热点数据库可以是一个预设的用于记录热点数据以及地址索引的cache表,该第二内存可以是大容量的缓存,其中该大容量的缓存可以是大容量的普通内存,也可以是大容量的闪存;例如,可以采用几百G大小的通过级联方式产生的闪存或者普通内存。
[0057]其中,当上述大容量的缓存为大容量的闪存时,基于闪存自身的特性,可以保证掉电后热点数据不会丢失。当上述大容量的缓存为大容量的普通内存时,可以提高处理性能,然而为了保证热点数据不丢时,需要为该大容量的普通内存设置一个独立的备用电源。另外由于上述大容量的缓存具有较大容量,因此可以缓存大量热点数据,从而增加热点数据的访问命中率。
[0058]当FPGA在接收到的由CPU下发的读写1请求后,可以通过对接收到的读写1请求进行解析来获取对应的读写地址,如果解析出的读写地址命中热点数据库中的地址索引时,FPGA可以基于该热点数据库中的热点数据直接在本地执行对应的读写操作,从而不需要该读写10请求下发到磁盘阵列来执行对应的读写操作。
[0059]通过这种方式,由于通过FPGA来替代CPU完成读写1请求的解析,因此可以分担(PU的计算压力,从而可以极大的提高了热点数据的访问速度,提升存储服务器的整体读写性能。
[0060]在上述主板架构中,数据的读写操作仍然由CPU负责处理。
[0061]以下对CPU进行数据读、写操作的过程进行描述。
[0062]在该主板架构中,FPGA用于接收所述CPU下发的读写1请求,并对所述读写1请求进行解析获取对应的读写地址。当获取到对应的读写地址后,FPGA可以判断获取到所述读写地址是否命中所述内存中预设的热点数据库中的地址索引;当获取到的所述读写地址命中所述预设的热点数据库中的地址索引时,FPGA可以基于所述热点数据库中的热点数据在本地执行与所述读写1请求对应的读写操作。
[0063]具体地,当用户通过主机向存储服务器发起一次读操作时,会向存储服务器发送一个读1请求,在该1请求中可以包括本次要读取的数据在存储服务器的磁盘阵列中存储的LBA(Logical Block Address,逻辑区块地址)地址。存储服务器在接收读1请求时,该读1请求可以通过业务1 口进入CPU,CPU在接收到该读1请求后,首先将该读1请求缓存在第一内存中。然后CPU再从内存中读取已经缓存的该读1请求,将该读1请求下发给FPGA。
[0064]同样的道理,当用户通过主机向存储服务器发起一次写操作时,会向存储服务器发送一个写1请求,在该1请求中可以包括要写入数据的LBA地址。存储服务器在接收写1请求以及要写入的数据时,该写1请求以及要写入的数据可以通过业务1 口进入CPU,CPU在接收到该写1请求以及要写入的数据后,首先将该写1请求以及要写入的
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1