CN114527936A - 一种服务器高性能磁盘分布式存储方法及装置 - Google Patents

一种服务器高性能磁盘分布式存储方法及装置 Download PDF

Info

Publication number
CN114527936A
CN114527936A CN202210041412.4A CN202210041412A CN114527936A CN 114527936 A CN114527936 A CN 114527936A CN 202210041412 A CN202210041412 A CN 202210041412A CN 114527936 A CN114527936 A CN 114527936A
Authority
CN
China
Prior art keywords
disk
nvmessd
data
metadata
target
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
Application number
CN202210041412.4A
Other languages
English (en)
Other versions
CN114527936B (zh
Inventor
张一可
段利宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202210041412.4A priority Critical patent/CN114527936B/zh
Publication of CN114527936A publication Critical patent/CN114527936A/zh
Application granted granted Critical
Publication of CN114527936B publication Critical patent/CN114527936B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种服务器高性能磁盘分布式存储方法及装置,属于分布式存储技术领域,所述方法步骤:为服务器系统配置若干块磁盘,并划分为元数据区和数据区;在服务器系统创建工作进程,对各磁盘进行优先级排序,以及接收客户端IO请求;IO写请求时,根据选择磁盘数据区写入数据块,以及选择磁盘进行数据块拷贝,再向各磁盘元数据区写入元数据信息;IO读请求时,从选择磁盘的元数据区读取元数据信息,再结合磁盘优先级排序选择磁盘,读取数据块,进行一致性校验。本发明通过多个写进程将IO数据分布式存储到多块磁盘上,充分利用NVMeSSD高IOPS特点,充分发挥了NVMeSSD的性能,同时解决了服务器磁盘单点故障问题。

Description

一种服务器高性能磁盘分布式存储方法及装置
技术领域
本发明属于分布式存储技术领域,具体涉及一种服务器高性能磁盘分布式存储方法及装置。
背景技术
NVMe代表“NVM Express”,或称非易失性内存主机控制器接口规范,NVME是Non-Volatile Memory express的简称,是一个逻辑设备接口规范。NVMe技术带来出众的存储空间、速度和兼容性。由于NVMe SSD利用PCIe插槽,因此传输的数据量是同等SATA SSD产品的25倍;除了传输更多数据,NVMe命令的速度是AHCI驱动程序命令的2倍;此外,作为NVMe的每秒输入/输出操作的IOPS的值超过100万,是AHCI硬盘的900%;并且,得益于自身的兼容性,NVMe还直接与系统CPU通信,具有惊人的速度。
随着NVMeSSD的普及,NVMeSSD将成为服务器主流磁盘,在单台服务器上使用NVMeSSD时,单块磁盘使用时,性能几乎无损耗,但是NVMeSSD上的数据安全性无法保证,存在单点故障问题,因此通常会采取做RAID的方法,而做RAID的方式大大降低了整体的IO性能,无法高效利用NVMeSSD性能。
现有采用RAID方式的方案主要有两种:
一:采用RAID卡方案,此种方案保障了NVMeSSD的高可用,但是无法发挥多块磁盘的性能。目前RAID卡最多能够支持4块NVMeSSD,RAID卡通过PCIe插槽连接CPU。一方面PCIe插槽的带宽限制了NVMeSSD的性能;另一方面,在RAID5模式下,校验盘读写性能严重影响了整体的写性能。
二:在系统下做软RAID方法,此种方法突破了RAID卡4块磁盘限制,但是多个NVMeSSD做RAID5时,系统需要单独一个进程处理校验盘,校验进程的处理速度限制了多块磁盘的写性能。
此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种服务器高性能磁盘分布式存储方法及装置,是非常有必要的。
发明内容
针对现有技术的上述无法充分利用高性能磁盘NVMeSSD的性能,无法解决服务器磁盘单点故障问题的缺陷,本发明提供一种服务器高性能磁盘分布式存储方法及装置,以解决上述技术问题。
第一方面,本发明提供一种服务器高性能磁盘分布式存储方法,包括如下步骤:
S1.为服务器系统配置若干块NVMeSSD磁盘,并将每个NVMeSSD磁盘均划分为元数据区和数据区;
S2.在服务器系统创建工作进程,工作进程对各NVMeSSD磁盘进行优先级排序,以及接收客户端IO请求;
S3.当客户端IO请求为IO写请求时,工作进程根据NVMeSSD磁盘优先级排序选择第一目标磁盘及第二目标磁盘,向第一目标磁盘的数据区进行数据块写入,并向第二目标磁盘数据区进行数据块拷贝,再并行向每个NVMeSSD磁盘的元数据区写入元数据信息;
S4.当客户端IO请求为IO读请求时,工作进程根据NVMeSSD磁盘优先级排序选择第三目标磁盘,从第三目标磁盘的元数据区读取元数据信息,再根据元数据信息及NVMeSSD磁盘优先级排序选择第四目标磁盘,从第四目标磁盘的数据区读取数据块,并在数据块一致性校验通过后,向客户端返回。
进一步地,步骤S1具体步骤如下:
S11.获取服务器系统下配置的各NVMeSSD磁盘;
S12.将每个NVMeSSD磁盘划分为元数据区和数据区,并设置元数据区存储元数据信息,以及设置数据区存储数据块。所述元数据信息包括数据块所在位置及大小信息。
进一步地,步骤S2具体步骤如下:
S21.在服务器系统创建主进程、计算进程、数据写进程、数据拷贝进程、元数据写进程、元数据读进程以及数据读进程;
S22.主进程接收客户端IO请求,并判断客户端IO请求类型;
当客户端IO请求类型为IO写请求时,进入步骤S3;
当客户端IO请求类型为IO读请求时,进入步骤S4。主进程负责与客户端进行通信,接收客户端请求,同时负责其他进程调度;计算进程负责计算磁盘繁忙程度以及磁盘使用率,根据两者结果进行磁盘优先级排序;数据写进程负责往磁盘的数据区写入数据,需要根据磁盘优先级排序选择要写入的磁盘,同时调用数据拷贝进程;数据拷贝进程负责数据块拷贝工作,根据磁盘优先级排序选择需要拷贝的磁盘,同时将数据块拷贝到该磁盘上;拷贝进程数量需要结合副本数量,一个副本启用一个数据拷贝进程,N个副本启用N个进程;元数据写进程负责数据块信息写入到磁盘的元数据区,同时负责磁盘元数据区信息的索引维护;元数据读进程根据计算进程对磁盘优先级排序结果,从其中选择一块磁盘的元数据区读取所请求的数据块信息,如数据块大小、数据块位置等信息;数据读进程负责在磁盘上读取数据块以及进行数据一致性校验,同时将结果反馈给客户端。
进一步地,步骤S3具体步骤如下:
S31.主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各NVMeSSD磁盘进行优先级排序,并将NVMeSSD磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的NVMeSSD磁盘优先级最高;
S32.主进程根据NVMeSSD磁盘优先级排序结果分配第一目标磁盘,以及根据所需副本数量及NVMeSSD磁盘优先级排序结果分配第二目标磁盘;
S33.主进程启动数据写进程,数据写进程向第一目标磁盘写入数据块,并根据所需副本数量启动对应数量的数据拷贝进程;
S34.各数据拷贝进程向各第二目标磁盘的数据区进行数据块拷贝,并在拷贝完成后通知主进程;
S35.主进程启动各元数据写进程,各元数据写进程并行向各NVMeSSD磁盘的元数据区写入元数据信息;
S36.主进程接收到各元数据写进程的完成信息后,将写完成结果通知客户端。
进一步地,步骤S4具体步骤如下:
S41.主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各NVMeSSD磁盘进行优先级排序,并将NVMeSSD磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的NVMeSSD磁盘优先级最高;
S42.主进程根据NVMeSSD磁盘优先级排序结果分配第三目标磁盘;
S43.主进程启动元数据读进程,从第三目标磁盘的元数据区读取元数据信息,并根据元数据信息确定目标数据块及其副本所在的各NVMeSSD磁盘;
S44.主进程接收元数据读进程返回的目标数据块及其副本所在的各NVMeSSD磁盘,再结合NVMeSSD磁盘优先级排序选择第四目标磁盘;
S45.主进程启动数据读进程,从第四目标磁盘读取目标数据块,并对目标数据块进行一致性校验,并在一致性校验通过后,将目标数据块反馈给客户端。
第二方面,本发明提供一种服务器高性能磁盘分布式存储装置,包括:
NVMeSSD磁盘配置及划分模块,用于为服务器系统配置若干块NVMeSSD磁盘,并将每个NVMeSSD磁盘均划分为元数据区和数据区;
工作进程创建模块,用于在服务器系统创建工作进程,工作进程对各NVMeSSD磁盘进行优先级排序,以及接收客户端IO请求;
数据写模块,用于当客户端IO请求为IO写请求时,工作进程根据NVMeSSD磁盘优先级排序选择第一目标磁盘及第二目标磁盘,向第一目标磁盘的数据区进行数据块写入,并向第二目标磁盘数据区进行数据块拷贝,再并行向每个NVMeSSD磁盘的元数据区写入元数据信息;
数据读模块,用于当客户端IO请求为IO读请求时,工作进程根据NVMeSSD磁盘优先级排序选择第三目标磁盘,从第三目标磁盘的元数据区读取元数据信息,再根据元数据信息及NVMeSSD磁盘优先级排序选择第四目标磁盘,从第四目标磁盘的数据区读取数据块,并在数据块一致性校验通过后,向客户端返回。
进一步地,NVMeSSD磁盘配置及划分模块包括:
NVMeSSD磁盘获取单元,用于获取服务器系统下配置的各NVMeSSD磁盘;
NVMeSSD磁盘分区单元,用于将每个NVMeSSD磁盘划分为元数据区和数据区,并设置元数据区存储元数据信息,以及设置数据区存储数据块。
进一步地,工作进程创建模块包括:
工作进程创建单元,用于在服务器系统创建主进程、计算进程、数据写进程、数据拷贝进程、元数据写进程、元数据读进程以及数据读进程;
IO请求类型判断单元,用于主进程接收客户端IO请求,并判断客户端IO请求类型。
进一步地,数据写模块包括:
计算进程第一启动单元,用于主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各NVMeSSD磁盘进行优先级排序,并将NVMeSSD磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的NVMeSSD磁盘优先级最高;
磁盘第一分配单元,用于主进程根据NVMeSSD磁盘优先级排序结果分配第一目标磁盘,以及根据所需副本数量及NVMeSSD磁盘优先级排序结果分配第二目标磁盘;
数据写单元,用于数据写进程向第一目标磁盘写入数据块,并根据所需副本数量启动对应数量的数据拷贝进程;
数据拷贝单元,用于各数据拷贝进程向各第二目标磁盘的数据区进行数据块拷贝,并在拷贝完成后通知主进程;
元数据写单元,用于主进程启动各元数据写进程,各元数据写进程并行向各NVMeSSD磁盘的元数据区写入元数据信息;
写完成通知单元,用于主进程接收到各元数据写进程的完成信息后,将写完成结果通知客户端。
进一步地,数据读模块包括:
计算进程第二启动单元,用于主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各NVMeSSD磁盘进行优先级排序,并将NVMeSSD磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的NVMeSSD磁盘优先级最高;
磁盘第二分配单元,用于主进程根据NVMeSSD磁盘优先级排序结果分配第三目标磁盘;
元数据读单元,用于主进程启动元数据读进程,从第三目标磁盘的元数据区读取元数据信息,并根据元数据信息确定目标数据块及其副本所在的各NVMeSSD磁盘;
磁盘第三分配单元,用于主进程接收元数据读进程返回的目标数据块及其副本所在的各NVMeSSD磁盘,再结合NVMeSSD磁盘优先级排序选择第四目标磁盘;
数据读单元,用于主进程启动数据读进程,从第四目标磁盘读取目标数据块,并对目标数据块进行一致性校验,并在一致性校验通过后,将目标数据块反馈给客户端。
本发明的有益效果在于:
本发明提供的服务器高性能磁盘分布式存储方法及装置,根据CPU多核心多进程的特点,通过多个写进程将IO数据分布式存储到多块磁盘上,充分利用NVMeSSD高IOPS特点,充分发挥了NVMeSSD的性能,同时解决了服务器磁盘单点故障问题。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的服务器高性能磁盘分布式存储方法实施例1流程示意图。
图2是本发明的服务器高性能磁盘分布式存储方法实施例2流程示意图。
图3是本发明的服务器高性能磁盘分布式存储装置示意图。
图中,1-NVMeSSD磁盘配置及划分模块;1.1-NVMeSSD磁盘获取单元;1.2-NVMeSSD磁盘分区单元;2-工作进程创建模块;2.1-工作进程创建单元;2.2-IO请求类型判断单元;3-数据写模块;3.1-计算进程第一启动单元;3.2-磁盘第一分配单元;3.3-数据写单元;3.4-数据拷贝单元;3.5-元数据写单元;3.6-写完成通知单元;4-数据读模块;4.1-计算进程第二启动单元;4.2-磁盘第二分配单元;4.3-元数据读单元;4.4-磁盘第三分配单元。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
AHCI,是Advanced Host Controller Interface的简称,高级主机控制器接口,是一种由英特尔制定的技术标准,它允许软件与SATA存储设备沟通的硬件机制,可让SATA存储设备激活高级SATA功能,例如原生指令队列及热插拔。
实施例1:
如图1所示,本发明提供一种服务器高性能磁盘分布式存储方法,包括如下步骤:
S1.为服务器系统配置若干块NVMeSSD磁盘,并将每个NVMeSSD磁盘均划分为元数据区和数据区;
S2.在服务器系统创建工作进程,工作进程对各NVMeSSD磁盘进行优先级排序,以及接收客户端IO请求;
S3.当客户端IO请求为IO写请求时,工作进程根据NVMeSSD磁盘优先级排序选择第一目标磁盘及第二目标磁盘,向第一目标磁盘的数据区进行数据块写入,并向第二目标磁盘数据区进行数据块拷贝,再并行向每个NVMeSSD磁盘的元数据区写入元数据信息;
S4.当客户端IO请求为IO读请求时,工作进程根据NVMeSSD磁盘优先级排序选择第三目标磁盘,从第三目标磁盘的元数据区读取元数据信息,再根据元数据信息及NVMeSSD磁盘优先级排序选择第四目标磁盘,从第四目标磁盘的数据区读取数据块,并在数据块一致性校验通过后,向客户端返回。
实施例2:
如图2所示,本发明提供一种服务器高性能磁盘分布式存储方法,包括如下步骤:
S1.为服务器系统配置若干块NVMeSSD磁盘,并将每个NVMeSSD磁盘均划分为元数据区和数据区;具体步骤如下:
S11.获取服务器系统下配置的各NVMeSSD磁盘;
S12.将每个NVMeSSD磁盘划分为元数据区和数据区,并设置元数据区存储元数据信息,以及设置数据区存储数据块;
S2.在服务器系统创建工作进程,工作进程对各NVMeSSD磁盘进行优先级排序,以及接收客户端IO请求;具体步骤如下:
S21.在服务器系统创建主进程、计算进程、数据写进程、数据拷贝进程、元数据写进程、元数据读进程以及数据读进程;
S22.主进程接收客户端IO请求,并判断客户端IO请求类型;
当客户端IO请求类型为IO写请求时,进入步骤S3;
当客户端IO请求类型为IO读请求时,进入步骤S4;
S3.当客户端IO请求为IO写请求时,工作进程根据NVMeSSD磁盘优先级排序选择第一目标磁盘及第二目标磁盘,向第一目标磁盘的数据区进行数据块写入,并向第二目标磁盘数据区进行数据块拷贝,再并行向每个NVMeSSD磁盘的元数据区写入元数据信息;具体步骤如下:
S31.主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各NVMeSSD磁盘进行优先级排序,并将NVMeSSD磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的NVMeSSD磁盘优先级最高;
S32.主进程根据NVMeSSD磁盘优先级排序结果分配第一目标磁盘,以及根据所需副本数量及NVMeSSD磁盘优先级排序结果分配第二目标磁盘;
S33.主进程启动数据写进程,数据写进程向第一目标磁盘写入数据块,并根据所需副本数量启动对应数量的数据拷贝进程;
S34.各数据拷贝进程向各第二目标磁盘的数据区进行数据块拷贝,并在拷贝完成后通知主进程;
S35.主进程启动各元数据写进程,各元数据写进程并行向各NVMeSSD磁盘的元数据区写入元数据信息;
S36.主进程接收到各元数据写进程的完成信息后,将写完成结果通知客户端;
S4.当客户端IO请求为IO读请求时,工作进程根据NVMeSSD磁盘优先级排序选择第三目标磁盘,从第三目标磁盘的元数据区读取元数据信息,再根据元数据信息及NVMeSSD磁盘优先级排序选择第四目标磁盘,从第四目标磁盘的数据区读取数据块,并在数据块一致性校验通过后,向客户端返回;具体步骤如下:
S41.主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各NVMeSSD磁盘进行优先级排序,并将NVMeSSD磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的NVMeSSD磁盘优先级最高;
S42.主进程根据NVMeSSD磁盘优先级排序结果分配第三目标磁盘;
S43.主进程启动元数据读进程,从第三目标磁盘的元数据区读取元数据信息,并根据元数据信息确定目标数据块及其副本所在的各NVMeSSD磁盘;
S44.主进程接收元数据读进程返回的目标数据块及其副本所在的各NVMeSSD磁盘,再结合NVMeSSD磁盘优先级排序选择第四目标磁盘;
S45.主进程启动数据读进程,从第四目标磁盘读取目标数据块,并对目标数据块进行一致性校验,并在一致性校验通过后,将目标数据块反馈给客户端。
实施例3:
如图3所示,本发明提供一种服务器高性能磁盘分布式存储装置,包括:
NVMeSSD磁盘配置及划分模块1,用于为服务器系统配置若干块NVMeSSD磁盘,并将每个NVMeSSD磁盘均划分为元数据区和数据区;NVMeSSD磁盘配置及划分模块1包括:
NVMeSSD磁盘获取单元1.1,用于获取服务器系统下配置的各NVMeSSD磁盘;
NVMeSSD磁盘分区单元1.2,用于将每个NVMeSSD磁盘划分为元数据区和数据区,并设置元数据区存储元数据信息,以及设置数据区存储数据块;
工作进程创建模块2,用于在服务器系统创建工作进程,工作进程对各NVMeSSD磁盘进行优先级排序,以及接收客户端IO请求;工作进程创建模块2包括:
工作进程创建单元2.1,用于在服务器系统创建主进程、计算进程、数据写进程、数据拷贝进程、元数据写进程、元数据读进程以及数据读进程;
IO请求类型判断单元2.2,用于主进程接收客户端IO请求,并判断客户端IO请求类型;
数据写模块3,用于当客户端IO请求为IO写请求时,工作进程根据NVMeSSD磁盘优先级排序选择第一目标磁盘及第二目标磁盘,向第一目标磁盘的数据区进行数据块写入,并向第二目标磁盘数据区进行数据块拷贝,再并行向每个NVMeSSD磁盘的元数据区写入元数据信息;数据写模块3包括:
计算进程第一启动单元3.1,用于主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各NVMeSSD磁盘进行优先级排序,并将NVMeSSD磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的NVMeSSD磁盘优先级最高;
磁盘第一分配单元3.2,用于主进程根据NVMeSSD磁盘优先级排序结果分配第一目标磁盘,以及根据所需副本数量及NVMeSSD磁盘优先级排序结果分配第二目标磁盘;
数据写单元3.3,用于数据写进程向第一目标磁盘写入数据块,并根据所需副本数量启动对应数量的数据拷贝进程;
数据拷贝单元3.4,用于各数据拷贝进程向各第二目标磁盘的数据区进行数据块拷贝,并在拷贝完成后通知主进程;
元数据写单元3.5,用于主进程启动各元数据写进程,各元数据写进程并行向各NVMeSSD磁盘的元数据区写入元数据信息;
写完成通知单元3.6,用于主进程接收到各元数据写进程的完成信息后,将写完成结果通知客户端;
数据读模块4,用于当客户端IO请求为IO读请求时,工作进程根据NVMeSSD磁盘优先级排序选择第三目标磁盘,从第三目标磁盘的元数据区读取元数据信息,再根据元数据信息及NVMeSSD磁盘优先级排序选择第四目标磁盘,从第四目标磁盘的数据区读取数据块,并在数据块一致性校验通过后,向客户端返回;数据读模块4包括:
计算进程第二启动单元4.1,用于主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各NVMeSSD磁盘进行优先级排序,并将NVMeSSD磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的NVMeSSD磁盘优先级最高;
磁盘第二分配单元4.2,用于主进程根据NVMeSSD磁盘优先级排序结果分配第三目标磁盘;
元数据读单元4.3,用于主进程启动元数据读进程,从第三目标磁盘的元数据区读取元数据信息,并根据元数据信息确定目标数据块及其副本所在的各NVMeSSD磁盘;
磁盘第三分配单元4.4,用于主进程接收元数据读进程返回的目标数据块及其副本所在的各NVMeSSD磁盘,再结合NVMeSSD磁盘优先级排序选择第四目标磁盘;
数据读单元4.5,用于主进程启动数据读进程,从第四目标磁盘读取目标数据块,并对目标数据块进行一致性校验,并在一致性校验通过后,将目标数据块反馈给客户端。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种服务器高性能磁盘分布式存储方法,其特征在于,包括如下步骤:
S1.为服务器系统配置若干块NVMeSSD磁盘,并将每个NVMeSSD磁盘均划分为元数据区和数据区;
S2.在服务器系统创建工作进程,工作进程对各NVMeSSD磁盘进行优先级排序,以及接收客户端IO请求;
S3.当客户端IO请求为IO写请求时,工作进程根据NVMeSSD磁盘优先级排序选择第一目标磁盘及第二目标磁盘,向第一目标磁盘的数据区进行数据块写入,并向第二目标磁盘数据区进行数据块拷贝,再并行向每个NVMeSSD磁盘的元数据区写入元数据信息;
S4.当客户端IO请求为IO读请求时,工作进程根据NVMeSSD磁盘优先级排序选择第三目标磁盘,从第三目标磁盘的元数据区读取元数据信息,再根据元数据信息及NVMeSSD磁盘优先级排序选择第四目标磁盘,从第四目标磁盘的数据区读取数据块,并在数据块一致性校验通过后,向客户端返回。
2.如权利要求1所述的服务器高性能磁盘分布式存储方法,其特征在于,步骤S1具体步骤如下:
S11.获取服务器系统下配置的各NVMeSSD磁盘;
S12.将每个NVMeSSD磁盘划分为元数据区和数据区,并设置元数据区存储元数据信息,以及设置数据区存储数据块。
3.如权利要求1所述的服务器高性能磁盘分布式存储方法,其特征在于,步骤S2具体步骤如下:
S21.在服务器系统创建主进程、计算进程、数据写进程、数据拷贝进程、元数据写进程、元数据读进程以及数据读进程;
S22.主进程接收客户端IO请求,并判断客户端IO请求类型;
当客户端IO请求类型为IO写请求时,进入步骤S3;
当客户端IO请求类型为IO读请求时,进入步骤S4。
4.如权利要求3所述的服务器高性能磁盘分布式存储方法,其特征在于,步骤S3具体步骤如下:
S31.主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各NVMeSSD磁盘进行优先级排序,并将NVMeSSD磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的NVMeSSD磁盘优先级最高;
S32.主进程根据NVMeSSD磁盘优先级排序结果分配第一目标磁盘,以及根据所需副本数量及NVMeSSD磁盘优先级排序结果分配第二目标磁盘;
S33.主进程启动数据写进程,数据写进程向第一目标磁盘写入数据块,并根据所需副本数量启动对应数量的数据拷贝进程;
S34.各数据拷贝进程向各第二目标磁盘的数据区进行数据块拷贝,并在拷贝完成后通知主进程;
S35.主进程启动各元数据写进程,各元数据写进程并行向各NVMeSSD磁盘的元数据区写入元数据信息;
S36.主进程接收到各元数据写进程的完成信息后,将写完成结果通知客户端。
5.如权利要求3所述的服务器高性能磁盘分布式存储方法,其特征在于,步骤S4具体步骤如下:
S41.主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各NVMeSSD磁盘进行优先级排序,并将NVMeSSD磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的NVMeSSD磁盘优先级最高;
S42.主进程根据NVMeSSD磁盘优先级排序结果分配第三目标磁盘;
S43.主进程启动元数据读进程,从第三目标磁盘的元数据区读取元数据信息,并根据元数据信息确定目标数据块及其副本所在的各NVMeSSD磁盘;
S44.主进程接收元数据读进程返回的目标数据块及其副本所在的各NVMeSSD磁盘,再结合NVMeSSD磁盘优先级排序选择第四目标磁盘;
S45.主进程启动数据读进程,从第四目标磁盘读取目标数据块,并对目标数据块进行一致性校验,并在一致性校验通过后,将目标数据块反馈给客户端。
6.一种服务器高性能磁盘分布式存储装置,其特征在于,包括:
NVMeSSD磁盘配置及划分模块(1),用于为服务器系统配置若干块NVMeSSD磁盘,并将每个NVMeSSD磁盘均划分为元数据区和数据区;
工作进程创建模块(2),用于在服务器系统创建工作进程,工作进程对各NVMeSSD磁盘进行优先级排序,以及接收客户端IO请求;
数据写模块(3),用于当客户端IO请求为IO写请求时,工作进程根据NVMeSSD磁盘优先级排序选择第一目标磁盘及第二目标磁盘,向第一目标磁盘的数据区进行数据块写入,并向第二目标磁盘数据区进行数据块拷贝,再并行向每个NVMeSSD磁盘的元数据区写入元数据信息;
数据读模块(4),用于当客户端IO请求为IO读请求时,工作进程根据NVMeSSD磁盘优先级排序选择第三目标磁盘,从第三目标磁盘的元数据区读取元数据信息,再根据元数据信息及NVMeSSD磁盘优先级排序选择第四目标磁盘,从第四目标磁盘的数据区读取数据块,并在数据块一致性校验通过后,向客户端返回。
7.如权利要求6所述的服务器高性能磁盘分布式存储装置,其特征在于,NVMeSSD磁盘配置及划分模块(1)包括:
NVMeSSD磁盘获取单元(1.1),用于获取服务器系统下配置的各NVMeSSD磁盘;
NVMeSSD磁盘分区单元(1.2),用于将每个NVMeSSD磁盘划分为元数据区和数据区,并设置元数据区存储元数据信息,以及设置数据区存储数据块。
8.如权利要求6所述的服务器高性能磁盘分布式存储装置,其特征在于,工作进程创建模块(2)包括:
工作进程创建单元(2.1),用于在服务器系统创建主进程、计算进程、数据写进程、数据拷贝进程、元数据写进程、元数据读进程以及数据读进程;
IO请求类型判断单元(2.2),用于主进程接收客户端IO请求,并判断客户端IO请求类型。
9.如权利要求8所述的服务器高性能磁盘分布式存储装置,其特征在于,数据写模块(3)包括:
计算进程第一启动单元(3.1),用于主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各NVMeSSD磁盘进行优先级排序,并将NVMeSSD磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的NVMeSSD磁盘优先级最高;
磁盘第一分配单元(3.2),用于主进程根据NVMeSSD磁盘优先级排序结果分配第一目标磁盘,以及根据所需副本数量及NVMeSSD磁盘优先级排序结果分配第二目标磁盘;
数据写单元(3.3),用于数据写进程向第一目标磁盘写入数据块,并根据所需副本数量启动对应数量的数据拷贝进程;
数据拷贝单元(3.4),用于各数据拷贝进程向各第二目标磁盘的数据区进行数据块拷贝,并在拷贝完成后通知主进程;
元数据写单元(3.5),用于主进程启动各元数据写进程,各元数据写进程并行向各NVMeSSD磁盘的元数据区写入元数据信息;
写完成通知单元(3.6),用于主进程接收到各元数据写进程的完成信息后,将写完成结果通知客户端。
10.如权利要求8所述的服务器高性能磁盘分布式存储装置,其特征在于,数据读模块(4)包括:
计算进程第二启动单元(4.1),用于主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各NVMeSSD磁盘进行优先级排序,并将NVMeSSD磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的NVMeSSD磁盘优先级最高;
磁盘第二分配单元(4.2),用于主进程根据NVMeSSD磁盘优先级排序结果分配第三目标磁盘;
元数据读单元(4.3),用于主进程启动元数据读进程,从第三目标磁盘的元数据区读取元数据信息,并根据元数据信息确定目标数据块及其副本所在的各NVMeSSD磁盘;
磁盘第三分配单元(4.4),用于主进程接收元数据读进程返回的目标数据块及其副本所在的各NVMeSSD磁盘,再结合NVMeSSD磁盘优先级排序选择第四目标磁盘;
数据读单元(4.5),用于主进程启动数据读进程,从第四目标磁盘读取目标数据块,并对目标数据块进行一致性校验,并在一致性校验通过后,将目标数据块反馈给客户端。
CN202210041412.4A 2022-01-14 2022-01-14 一种服务器高性能磁盘分布式存储方法及装置 Active CN114527936B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210041412.4A CN114527936B (zh) 2022-01-14 2022-01-14 一种服务器高性能磁盘分布式存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210041412.4A CN114527936B (zh) 2022-01-14 2022-01-14 一种服务器高性能磁盘分布式存储方法及装置

Publications (2)

Publication Number Publication Date
CN114527936A true CN114527936A (zh) 2022-05-24
CN114527936B CN114527936B (zh) 2023-08-08

Family

ID=81619970

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210041412.4A Active CN114527936B (zh) 2022-01-14 2022-01-14 一种服务器高性能磁盘分布式存储方法及装置

Country Status (1)

Country Link
CN (1) CN114527936B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116450054A (zh) * 2023-06-16 2023-07-18 成都泛联智存科技有限公司 Io请求处理方法、装置、主机和计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981927A (zh) * 2011-09-06 2013-03-20 阿里巴巴集团控股有限公司 分布式独立冗余磁盘阵列存储方法及分布式集群存储系统
CN104484131A (zh) * 2014-12-04 2015-04-01 珠海金山网络游戏科技有限公司 多磁盘服务器的数据处理装置及对应的处理方法
CN105446794A (zh) * 2014-09-30 2016-03-30 北京金山云网络技术有限公司 一种基于虚拟机的磁盘操作方法、装置及系统
CN106341448A (zh) * 2016-08-15 2017-01-18 乐视控股(北京)有限公司 分布式存储方法、装置及系统
CN107943421A (zh) * 2017-11-30 2018-04-20 成都华为技术有限公司 一种基于分布式存储系统的分区划分方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981927A (zh) * 2011-09-06 2013-03-20 阿里巴巴集团控股有限公司 分布式独立冗余磁盘阵列存储方法及分布式集群存储系统
CN105446794A (zh) * 2014-09-30 2016-03-30 北京金山云网络技术有限公司 一种基于虚拟机的磁盘操作方法、装置及系统
CN104484131A (zh) * 2014-12-04 2015-04-01 珠海金山网络游戏科技有限公司 多磁盘服务器的数据处理装置及对应的处理方法
CN106341448A (zh) * 2016-08-15 2017-01-18 乐视控股(北京)有限公司 分布式存储方法、装置及系统
CN107943421A (zh) * 2017-11-30 2018-04-20 成都华为技术有限公司 一种基于分布式存储系统的分区划分方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116450054A (zh) * 2023-06-16 2023-07-18 成都泛联智存科技有限公司 Io请求处理方法、装置、主机和计算机可读存储介质
CN116450054B (zh) * 2023-06-16 2023-09-26 成都泛联智存科技有限公司 Io请求处理方法、装置、主机和计算机可读存储介质

Also Published As

Publication number Publication date
CN114527936B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
US10042563B2 (en) Segmenting read requests and interleaving segmented read and write requests to reduce latency and maximize throughput in a flash storage device
US10031703B1 (en) Extent-based tiering for virtual storage using full LUNs
US7730257B2 (en) Method and computer program product to increase I/O write performance in a redundant array
US9792073B2 (en) Method of LUN management in a solid state disk array
US8639898B2 (en) Storage apparatus and data copy method
US8924659B2 (en) Performance improvement in flash memory accesses
CN109358809B (zh) 一种raid数据存储系统及方法
EP3511814B1 (en) Storage device storing data in order based on barrier command
US8954658B1 (en) Method of LUN management in a solid state disk array
US8949509B2 (en) Mass storage systems and methods using solid-state storage media and ancillary interfaces for direct communication between memory cards
US11341010B2 (en) Dynamic reclamation of storage stripes
US20190243758A1 (en) Storage control device and storage control method
US11635901B2 (en) Data storage device, and non-volatile memory control method
CN111007985B (zh) 一种存储系统空间回收的兼容处理方法、系统及设备
CN112513804A (zh) 一种数据处理方法及装置
US11740816B1 (en) Initial cache segmentation recommendation engine using customer-specific historical workload analysis
CN114527936A (zh) 一种服务器高性能磁盘分布式存储方法及装置
CN108877862B (zh) 页条带的数据组织以及向页条带写入数据的方法与装置
US11150991B2 (en) Dynamically adjusting redundancy levels of storage stripes
CN110609660A (zh) Ssd阵列的主机端映射方法、装置、计算机设备及存储介质
US10154113B2 (en) Computer system
US11934264B2 (en) ECC parity biasing for Key-Value data storage devices
WO2018055686A1 (ja) 情報処理システム
KR20220076803A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11663080B1 (en) Techniques for performing live rebuild in storage systems that operate a direct write mode

Legal Events

Date Code Title Description
PB01 Publication
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