基于飞腾处理器平台的raid多线程并发读写方法

文档序号:6546593阅读:471来源:国知局
基于飞腾处理器平台的raid多线程并发读写方法
【专利摘要】本发明公开了一种基于飞腾处理器平台的RAID多线程并发读写方法,在对向RAID磁盘阵列的读操作或者写操作大规模数据时,根据飞腾处理器平台的处理器核心数以及读/写数据占用RAID磁盘阵列中磁盘个数确定子线程个数,根据确定的子线程个数创建多个子线程并调度到不同的处理器核心上运行,从而能够向多个RAID磁盘中并行读取数据,能够充分挖掘飞腾处理器的并发处理能力、提升RAID磁盘阵列I/O性能,能够显著减少读取数据的时间,提高磁盘吞吐率,具有读取数据快、磁盘吞吐率高的优点。
【专利说明】基于飞腾处理器平台的RAID多线程并发读写方法
【技术领域】
[0001]本发明涉及计算机领域中的大规模并发读写技术,具体涉及一种基于飞腾处理器平台的独立磁盘冗余阵列(Redundant Array of Independent Disks, RAID)多线程并发读
写方法。
【背景技术】
[0002]随着计算机技术和信息科技的发展,数据成为了各行各业尤其重要并且保持飞速增长的资源。中国互联网信息中心统计,我国网页数量超过330亿,且年增长率超过100%;数据调查公司IDC报告显示,2011年的全球数据总量已达到1.8ZB (万亿GB),预计到2020年全球电子设备存储的数据将暴增至40ZB。数据量的不断增大给数据的存储和读写速度带来了巨大挑战,尤其大规模数据读写时的I/O性能问题成为了许多计算机系统的瓶颈。为了满足各种用户的存储需求,RAID技术应运而生,大量应用于现代企业级存储中。RAID技术可以将一个硬盘上的任务分散或复制到多个(少则两个)磁盘上,借助条带化和镜像等存储方式,来提高性能或建立数据冗余以防驱动器发生故障。
[0003]传统的磁盘读写优化技术大多基于x86体系结构;而飞腾处理器平台的飞腾处理器基于spare体系结构,与x86体系结构无法兼容。同x86体系结构相比,飞腾处理器的单核处理能力较低,容易成为大规模数据读写时系统I/O的瓶颈;但另一方面,飞腾处理器的多核并行处理能力突出,而传统的锁机制等针对x86体系结构的优化虽然减少了磁盘I/O竞争,但在很大程度上限制了磁盘I/O的并发度,不利于合理利用飞腾处理器的多核并行处理能力。
[0004]综上所述,目前飞腾处理器平台的RAID读写方法无法充分发挥飞腾处理器平台及RAID磁盘阵列的多线程并发读写能力。目前研究高并发、高性能的RAID磁盘阵列读写方法是本领域技术人员极为关注的技术问题,现有研究中没有公开文献涉及在飞腾处理器平台上使用多线程并发读写来提高RAID磁盘阵列读写性能的方法。

【发明内容】

[0005]本发明要解决的技术问题是提供一种能够充分挖掘飞腾处理器的并发处理能力、提升RAID磁盘阵列I/O性能、读取数据快、磁盘吞吐率高的基于飞腾处理器平台的RAID多线程并发读写方法。
[0006]为了解决上述技术问题,本发明采用的技术方案为:
一种基于飞腾处理器平台的RAID多线程并发读写方法,其实施步骤如下:
1)判断接收的数据读写指令的操作类型,如果数据读写指令为读操作则跳转执行步骤2),如果数据读写指令为写操作则跳转执行步骤3);
2)获取读操作对应读数据在RAID磁盘阵列中的分布信息元数据,根据飞腾处理器平台的处理器核心数以及读数据占用RAID磁盘阵列中磁盘个数确定子线程个数,根据所述读数据在RAID磁盘阵列中的分布信息元数据为各个子线程计算并分配各自的读取数据起始地址以及读取数据长度,根据所述确定的子线程个数创建多个子线程,将所述多个子线程分别调度到不同的处理器核心运行,并行读取RAID磁盘阵列中各个目标磁盘中的数据,在所有子线程读取数据完毕之后,将各个子线程读取的数据进行拼合并返回,读操作结束并退出;
3)根据写操作的写入数据大小、RAID磁盘阵列的条带大小、RAID磁盘阵列的磁盘个数为写操作的写入数据预划分RAID磁盘阵列空间,根据飞腾处理器平台的处理器核心数以及写数据占用RAID磁盘阵列中磁盘个数确定子线程个数,根据写操作的写入数据大小、RAID磁盘阵列的条带大小和子线程个数对所写入数据进行拆分,分别为各子线程划分写入内容,为各子线程计算各自的写入数据起始地址以及写入数据长度,根据所述确定的子线程个数创建多个子线程,将所述多个子线程分别调度到不同的处理器核心运行,并行向各个磁盘写入数据,写操作结束并退出。
[0007]进一步地,所述步骤2)中根据飞腾处理器平台的处理器信息以及RAID磁盘阵列的配置情况确定子线程个数时,所述子线程个数的数量为处理器核心数、读数据占用RAID磁盘阵列中磁盘个数两者中的较小值。
[0008]进一步地,所述步骤3)中根据飞腾处理器平台的处理器核心数以及写数据占用RAID磁盘阵列中磁盘个数确定子线程个数时,所述子线程个数的数量为处理器核心数、写数据占用RAID磁盘阵列中磁盘个数两者中的较小值。
[0009]本发明基于飞腾处理器平台的RAID多线程并发读写方法具有下述技术效果:本发明在对向RAID磁盘阵列的读操作或者写操作大规模数据时,根据飞腾处理器平台的处理器核心数以及读/写数据占用RAID磁盘阵列中磁盘个数确定子线程个数,根据确定的子线程个数创建多个子线程并调度到不同的处理器核心上运行,从而能够向多个RAID磁盘中并行读取数据,能够充分挖掘飞腾处理器的并发处理能力、提升RAID磁盘阵列I/O性能,能够显著减少读取数据的时间,提高磁盘吞吐率,具有读取数据快、磁盘吞吐率高的优点。
【专利附图】

【附图说明】
[0010]图1为本发明实施例的方法流程示意图。
【具体实施方式】
[0011]如图1所示,本实施例基于飞腾处理器平台的RAID多线程并发读写方法的实施步骤如下:
I)判断接收的数据读写指令的操作类型,如果数据读写指令为读操作则跳转执行步骤
2),如果数据读写指令为写操作则跳转执行步骤3)。
[0012]2)获取读操作对应读数据在RAID磁盘阵列中的分布信息元数据,根据飞腾处理器平台的处理器核心数以及读数据占用RAID磁盘阵列中磁盘个数确定子线程个数,根据读数据在RAID磁盘阵列中的分布信息元数据为各个子线程计算并分配各自的读取数据起始地址以及读取数据长度,根据确定的子线程个数创建多个子线程,将多个子线程分别调度到不同的处理器核心运行,并行读取RAID磁盘阵列中各个目标磁盘中的数据,在所有子线程读取数据完毕之后,将各个子线程读取的数据进行拼合并返回,读操作结束并退出。本实施例通过创建多个子线程,并调度到不同的飞腾处理器核心上运行,从而能够向多个RAID磁盘中并行读取数据,可以显著减少读取数据的时间,提高磁盘吞吐率。
[0013]本实施例步骤2)中根据飞腾处理器平台的处理器信息以及RAID磁盘阵列的配置情况确定子线程个数时,子线程个数的数量为处理器核心数、读数据占用RAID磁盘阵列中磁盘个数两者中的较小值。
[0014]3)根据写操作的写入数据大小、RAID磁盘阵列的条带大小、RAID磁盘阵列的磁盘个数为写操作的写入数据预划分RAID磁盘阵列空间,根据飞腾处理器平台的处理器核心数以及写数据占用RAID磁盘阵列中磁盘个数确定子线程个数,根据写操作的写入数据大小、RAID磁盘阵列的条带大小和子线程个数对所写入数据进行拆分,分别为各子线程划分写入内容,为各子线程计算各自的写入数据起始地址以及写入数据长度,根据确定的子线程个数创建多个子线程,将多个子线程分别调度到不同的处理器核心运行,并行向各个磁盘写入数据,写操作结束并退出。本实施例根据写入数据大小和RAID磁盘阵列信息创建多个子线程,并调度到不同的飞腾处理器核心上运行,从而并行化向多个RAID磁盘中写入数据,可以显著提高RAID磁盘阵列的I/O性能。
[0015]本实施例步骤3)中根据飞腾处理器平台的处理器核心数以及写数据占用RAID磁盘阵列中磁盘个数确定子线程个数时,子线程个数的数量为处理器核心数、写数据占用RAID磁盘阵列中磁盘个数两者中的较小值。
[0016]以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【权利要求】
1.一种基于飞腾处理器平台的RAID多线程并发读写方法,其特征在于实施步骤如下: 1)判断接收的数据读写指令的操作类型,如果数据读写指令为读操作则跳转执行步骤2),如果数据读写指令为写操作则跳转执行步骤3); 2)获取读操作对应读数据在RAID磁盘阵列中的分布信息元数据,根据飞腾处理器平台的处理器核心数以及读数据占用RAID磁盘阵列中磁盘个数确定子线程个数,根据所述读数据在RAID磁盘阵列中的分布信息元数据为各个子线程计算并分配各自的读取数据起始地址以及读取数据长度,根据所述确定的子线程个数创建多个子线程,将所述多个子线程分别调度到不同的处理器核心运行,并行读取RAID磁盘阵列中各个目标磁盘中的数据,在所有子线程读取数据完毕之后,将各个子线程读取的数据进行拼合并返回,读操作结束并退出; 3)根据写操作的写入数据大小、RAID磁盘阵列的条带大小、RAID磁盘阵列的磁盘个数为写操作的写入数据预划分RAID磁盘阵列空间,根据飞腾处理器平台的处理器核心数以及写数据占用RAID磁盘阵列中磁盘个数确定子线程个数,根据写操作的写入数据大小、RAID磁盘阵列的条带大小和子线程个数对所写入数据进行拆分,分别为各子线程划分写入内容,为各子线程计算各自的写入数据起始地址以及写入数据长度,根据所述确定的子线程个数创建多个子线程,将所述多个子线程分别调度到不同的处理器核心运行,并行向各个磁盘写入数据,写操作结束并退出。
2.根据权利要求1所述的基于飞腾处理器平台的RAID多线程并发读写方法,其特征在于:所述步骤2)中根据飞腾处理器平台的处理器信息以及RAID磁盘阵列的配置情况确定子线程个数时,所述子线程个数的数量为处理器核心数、读数据占用RAID磁盘阵列中磁盘个数两者中的较小值。
3.根据权利要求2所述的基于飞腾处理器平台的RAID多线程并发读写方法,其特征在于:所述步骤3)中根据飞腾处理器平台的处理器核心数以及写数据占用RAID磁盘阵列中磁盘个数确定子线程个数时,所述子线程个数的数量为处理器核心数、写数据占用RAID磁盘阵列中磁盘个数两者中的较小值。
【文档编号】G06F9/38GK103984508SQ201410205009
【公开日】2014年8月13日 申请日期:2014年5月15日 优先权日:2014年5月15日
【发明者】邵立松, 刘晓东, 张铎, 阳国贵, 魏元豪, 刘敏, 杨鹏, 任敏, 唐晓东 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1