【技术实现步骤摘要】
基于SPDK的存储系统性能统计方法、系统、设备以及介质
[0001]本专利技术涉及存储领域,具体涉及一种基于
SPDK
的分布式存储系统性能统计方法
、
系统
、
设备以及存储介质
。
技术介绍
[0002]由于
SPDK
的特性,分布式存储系统
ceph
使用
SPDK
驱动后会将
NVMe SSD
驱动从内核态驱动转变为用户态驱动,导致内核的一些性能监测工具无法在
SPDK
环境下使用,因为内核的性能监测工具依赖于内核驱动提供统计数据,所以内核的性能监测工具对于
SPDK
来说均无法再使用,比如
iostat
等常用工具
。
虽然
SPDK
本身自带一些性能监测工具,但是均是基于
RPC
服务的,
ceph
没有
RPC
模块,所以
ceph
无法使用
RPC
服务,因此
ceph
在使用
SPDK
驱动后,对于存储性能的监测成为一个难题
。
技术实现思路
[0003]有鉴于此,为了克服上述问题的至少一个方面,本专利技术实施例提出一种基于
SPDK
的分布式存储系统性能统计方法,包括以下步骤:
[0004]在
NVME Device
层与 />SPDK
驱动层之间部署监控模块;
[0005]响应于所述监控模块监控到所述
NVME Device
层向所述
SPDK
驱动层发送
IO
请求,获取与所述
IO
请求对应的若干个第一参数;
[0006]响应于所述监控模块监控到所述
SPDK
驱动层调用所述
NVME Device
层的回调函数,获取所述
SPDK
驱动层处理完成所述
IO
请求后得到的若干个第二参数;
[0007]基于所述若干个第一参数和所述若干个第二参数确定分布式存储系统的性能
。
[0008]在一些实施例中,响应于所述监控模块监控到所述
NVME Device
层向所述
SPDK
驱动层发送
IO
请求,获取与所述
IO
请求对应的若干个第一参数,进一步包括:
[0009]响应于所述分布式存储系统的
BlueStore
层接收到
IO
请求,判断所述
IO
请求的类型;
[0010]响应于所述
IO
请求为写请求,调用第一写接口;
[0011]通过所述第一写接口向所述
NVME Device
层的第二写接口发送所述
IO
请求;
[0012]响应于所述
NVME Device
层的第二写接口接收到所述
IO
请求,调用所述
SPDK
驱动层的第三写接口以将所述
IO
请求发送到
SPDK
驱动层;
[0013]响应于所述监控模块监控到所述第二写接口调用所述第三写接口,获取所述
IO
请求对应的
IO
大小
、
提交时间戳;
[0014]在所述监控模块的写请求子模块中新建与所述
IO
请求对应的任务,并利用所述任务记录所述
IO
请求对应的
IO
大小
、
提交时间戳;
[0015]统计写请求子模块中的任务数量以得到写
IO
请求提交数并将每一个任务中的
IO
大小累加以得到写
IO
总大小;
[0016]在所述写请求子模块中初始化时钟模块以记录第一总时间
。
[0017]在一些实施例中,响应于所述监控模块监控到所述
SPDK
驱动层调用所述
NVME Device
层的回调函数,获取所述
SPDK
驱动层处理完成所述
IO
请求后得到的若干个第二参数,进一步包括:
[0018]响应于所述
SPDK
驱动层对所述
IO
请求完成处理,调用所述
NVME Device
层的回调函数;
[0019]利用所述监控模块在所述回调函数中获取写请求完成时间戳并记录到所述
IO
请求对应的任务中;
[0020]统计所述写请求子模块中具有写请求完成时间戳的任务以得到写
IO
请求完成数
。
[0021]在一些实施例中,基于所述若干个第一参数和所述若干个第二参数确定分布式存储系统的性能,进一步包括:
[0022]利用所述写请求子模块中的每一个任务记录的所述写请求完成时间戳减去所述提交时间戳得到单次写
IO
请求耗时,并将每一个单次写
IO
请求耗时累加除以所述写
IO
请求完成数计算出单次写
IO
请求平均耗时;
[0023]将所述写
IO
总大小除以所述第一总时间得到写带宽,并将所述写
IO
总大小除以所述写
IO
请求提交数得到写
IO
请求平均大小;
[0024]将所述写
IO
请求提交数除以所述第一总时间得到写
iops。
[0025]在一些实施例中,还包括;
[0026]响应于所述
IO
请求为读请求,调用第一读接口;
[0027]通过所述第一读接口向所述
NVME Device
层的第二读接口发送所述
IO
请求;
[0028]响应于所述
NVME Device
层的第二读接口接收到所述
IO
请求,调用所述
SPDK
驱动层的第三读接口以将所述
IO
请求发送到
SPDK
驱动层;
[0029]响应于所述监控模块监控到所述第二读接口调用所述第三读接口,获取所述
IO
请求对应的
IO
大小
、
提交时间戳;
[0030]在所述监控模块的读请求子模块中新建与所述
IO
请求对应的任务,并利用所述任务记录所述
IO
请求对应的
IO
大小
、
提交时间戳;
[0031]统计读请求子模块中的任本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.
一种基于
SPDK
的分布式存储系统性能统计方法,其特征在于,包括以下步骤:在
NVME Device
层与
SPDK
驱动层之间部署监控模块;响应于所述监控模块监控到所述
NVME Device
层向所述
SPDK
驱动层发送
IO
请求,获取与所述
IO
请求对应的若干个第一参数;响应于所述监控模块监控到所述
SPDK
驱动层调用所述
NVME Device
层的回调函数,获取所述
SPDK
驱动层处理完成所述
IO
请求后得到的若干个第二参数;基于所述若干个第一参数和所述若干个第二参数确定分布式存储系统的性能
。2.
如权利要求1所述的方法,其特征在于,响应于所述监控模块监控到所述
NVME Device
层向所述
SPDK
驱动层发送
IO
请求,获取与所述
IO
请求对应的若干个第一参数,进一步包括:响应于所述分布式存储系统的
BlueStore
层接收到
IO
请求,判断所述
IO
请求的类型;响应于所述
IO
请求为写请求,调用第一写接口;通过所述第一写接口向所述
NVME Device
层的第二写接口发送所述
IO
请求;响应于所述
NVME Device
层的第二写接口接收到所述
IO
请求,调用所述
SPDK
驱动层的第三写接口以将所述
IO
请求发送到
SPDK
驱动层;响应于所述监控模块监控到所述第二写接口调用所述第三写接口,获取所述
IO
请求对应的
IO
大小
、
提交时间戳;在所述监控模块的写请求子模块中新建与所述
IO
请求对应的任务,并利用所述任务记录所述
IO
请求对应的
IO
大小
、
提交时间戳;统计写请求子模块中的任务数量以得到写
IO
请求提交数并将每一个任务中的
IO
大小累加以得到写
IO
总大小;在所述写请求子模块中初始化时钟模块以记录第一总时间
。3.
如权利要求2所述的方法,其特征在于,响应于所述监控模块监控到所述
SPDK
驱动层调用所述
NVME Device
层的回调函数,获取所述
SPDK
驱动层处理完成所述
IO
请求后得到的若干个第二参数,进一步包括:响应于所述
SPDK
驱动层对所述
IO
请求完成处理,调用所述
NVME Device
层的回调函数;利用所述监控模块在所述回调函数中获取写请求完成时间戳并记录到所述
IO
请求对应的任务中;统计所述写请求子模块中具有写请求完成时间戳的任务以得到写
IO
请求完成数
。4.
如权利要求3所述的方法,其特征在于,基于所述若干个第一参数和所述若干个第二参数确定分布式存储系统的性能,进一步包括:利用所述写请求子模块中的每一个任务记录的所述写请求完成时间戳减去所述提交时间戳得到单次写
IO
请求耗时,并将每一个单次写
IO
请求耗时累加除以所述写
IO
请求完成数计算出单次写
IO
请求平均耗时;将所述写
IO
总大小除以所述第一总时间得到写带宽,并将所述写
IO
总大小除以所述写
IO
请求提交数得到写
IO
请求平均大小;将所述写
IO
请求提交数除以所述第一总时间得到写
iops。5.
如权利要求2所述的方法,其...
【专利技术属性】
技术研发人员:刘亚宇,田溢丰,
申请(专利权)人:济南浪潮数据技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。