一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种裸金属安全使用分布式存储的方法与装置与流程

2022-06-11 09:38:24 来源:中国专利 TAG:


1.本发明涉及云计算相关技术领域,特别涉及一种裸金属安全使用分布式存储的方法与装置。


背景技术:

2.随着云计算领域的发展,越来越多的使用场景需要裸金属服务器,如oracle rack、搭建私有云、容器裸金属云等。在云计算场景中提供给租户专属的裸金属服务器,通过分布式存储为裸金属提供远程存储服务。但裸金属服务器受限于硬件灵活性与网络安全性,现有裸金属使用分布式存储的方案无法满足安全、高性能的要求,如:
3.现有方案一直接通过rbd image映射的方式,在裸金属内将rbd image映射为rbd块设备。这种方案最简单直接,适用于平台内部服务器挂载ceph存储,但是该方案需要预先配置ceph相关配置,并且需要为服务器连接存储网络。因此裸金属使用方案一存在安全隐患;
4.现有方案二如《一种物理裸机支持ceph后端卷的方法》提及的iscsi-gateway方案,将ceph存储卷通过存储协议转换为iscsi网络盘,同时为裸金属打通专用存储网络,将转换后的iscsi网络盘接入到裸金属,该方案存在io路径长、存储协议转换增加时延问题,并且为单一租户提供一个专用存储网络也不适用于公有云场景。


技术实现要素:

5.本发明实施例提供了一种裸金属安全使用分布式存储的方法与装置,能够提高管理平台安全性,实现管理侧与租户侧网络隔离。
6.一种裸金属安全使用分布式存储的方法与装置包括:
7.接收裸金属连接ceph存储请求;
8.建立缓存队列q(v);
9.初始化持久化队列q(p);
10.判断代理模块状态;
11.智能网卡模块执行命令;
12.映射rbd块设备到alo bdev alo bdev连接到虚拟pcl设备;
13.判断命令执行结果;
14.返回卷标识与设备索引号;
15.连接分布式存储完成;
16.返回卷标识与空索引号。
17.可选地,
18.所述接收裸金属连接ceph存储请求过程中,其控制器模块接收到n个分布式存储连接请求,取出卷的标识v放入消息缓存队列q(v)={v1,v2,v3,

,vn},标识v由存储卷标识组成,消息缓存队列用于解决连接ceph存储卷动作时延问题;已挂载到裸金属的存储卷
以标识p放入持久化队列q(p)={p1,p2,p3,

,pn},标识p由存储卷标识和设备索引号两部分组成,设备索引号在完成整个挂载流程后生成,持久化队列用于解决模块掉电导致的存储卷丢失问题。
19.可选地,
20.所述建立缓存队列q(v)过程中,其定时轮询代理模块状态,获取代理模块上报信息并判断代理模块状态。当出现状态异常时,不执行后续具体流程,转而将缓存队列q(v)的标识v取出,标识v与空设备索引号组成标识p,并放入持久化队列q(p)中,并且其控制器模块依次将标识v[n]出队,必须在获取到v[n-1]响应消息后,再将v[n]出队,保证挂载请求与对应存储卷的顺序一致性。
[0021]
可选地,
[0022]
所述初始化持久化队列q(p)过程中,其代理模块校验控制器模块下发的命令,检查命令格式、检查已挂载rbd块设备数量、检查即将卸载rbd块设备是否存在;如成功执行命令,则生成挂载索引号,并与卷标识组合为标识p,放入控制器模块的持久化队列q(p);如命令校验或执行失败,则给控制器模块直接响应失败消息。
[0023]
可选地,
[0024]
所述智能网卡模块执行命令过程中,其校验正确后,代理模块将rbd image挂载到智能网卡模块,智能网卡模块的操作系统加载rbd内核驱动,将rbd image映射为本地块设备,如/dev/rbd0,然后智能网卡模块建立spdk bdev(backend device)到rbd块设备的数据通道。基于linux aio(asynchronous io)建立spdk aio bdev设备到内核块设备/dev/rbd0的映射关系,通过线程的io channel通道进行异步io数据读写。
[0025]
可选地,
[0026]
所述映射rbd块设备到alo bdev alo bdev连接到虚拟pcl设备过程中,其智能网卡模块建立spdk aio bdev到裸金属的数据通道。初始化虚拟pci设备,向virtio pci配置空间写入virtio_f_iommu_platform、virtio_vendor_id、virtio_device_id标识,连接到智能网卡模块的硬件pci桥;将spdk aio bdev设备连接到虚拟pci设备,裸金属加载pci设备驱动,通过dma(direct memory access)从spdk aio bdev读写数据。
[0027]
可选地,
[0028]
所述返回卷标识与设备索引号过程中,其挂载完成后生成挂载索引号,给控制器响应成功消息,控制器接收到消息后,将存储卷标识和挂载设备索引号组合为标识p[n],并放入持久化队列q(p)。
[0029]
可选地,
[0030]
所述裸金属安全使用分布式存储的装置包括:
[0031]
控制器模块;
[0032]
代理模块,所述代理模块与控制器模块配合,以实现对智能网卡模块的调度与管理;
[0033]
智能网卡模块;
[0034]
裸金属模块,所述裸金属模块与智能网卡模块配合,以实现存储数据平面的io通道的建立与控制。
[0035]
可选地,
[0036]
所述裸金属安全使用分布式存储的装置的使用包括分布式存储连接流程,以及智能网卡模块掉电时的容错处理与自动恢复流程。
[0037]
可选地,所述控制器模块负责接收裸金属连接ceph存储请求,建立消息缓存队列q(v)与持久化队列q(p),同时定时轮询代理模块状态;
[0038]
代理模块负责接收控制器模块的命令,上报自身状态给控制器,预校验命令格式并返回命令执行结果,挂载rbd image到智能网卡模块;
[0039]
智能网卡模块负责存储数据平面处理,接收代理模块下发命令,建立rbd块设备到裸金属的数据通道;
[0040]
裸金属模块负责维持装置的供电与提供租户使用。
[0041]
与现有技术相比,本发明的有益效果是:
[0042]
在本发明实施例中,其装置与方法提供以ceph为代表的分布式存储支持,提高了裸金属服务器的可用性,统一虚拟机与裸金属的存储架构;并且其相比于直接挂载rbd块设备,该装置提供网络隔离与安全性,用户在裸金属服务器内只能看到virtio设备;相比于iscsi-gateway方案挂载ceph分布式存储,该装置无需iscsi网关转换存储协议,缩短数据io路径,提高了分布式存储卷的使用性能;且其控制器模块通过缓存队列与持久化队列实现对裸金属连接分布式存储的管理,提供掉电容错能力,同时解决存储连接过程的时间延迟问题;并且智能网卡模块基于spdk与linux aio技术,建立rbd块设备到裸金属的数据读写通道,该方案可拓展为支持多种存储后端类型(如nvme-of),提供一种裸金属支持分布式存储的通用架构;并且其裸金属无需连接到专有存储网络,从而提高管理平台安全性,实现管理侧与租户侧网络隔离;并且在裸金属异常关机后,能够保证重新开机后自动挂载ceph存储盘,并且保证盘符顺序正确。
附图说明
[0043]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0044]
图1是本发明实施例裸金属支持ceph分布式存储的装置图;
[0045]
图2是本发明实施例裸金属连接ceph分布式存储与掉电容错处理的流程图。
具体实施方式
[0046]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0047]
请参阅图1,本发明提供一种技术方案:一种裸金属安全使用分布式存储的方法与装置,一种裸金属安全使用分布式存储的方法包括:
[0048]
接收裸金属连接ceph存储请求;
[0049]
建立缓存队列q(v);
[0050]
初始化持久化队列q(p);
[0051]
判断代理模块状态;
[0052]
智能网卡模块执行命令;
[0053]
映射rbd块设备到alo bdev alo bdev连接到虚拟pcl设备;
[0054]
判断命令执行结果;
[0055]
返回卷标识与设备索引号;
[0056]
连接分布式存储完成;
[0057]
返回卷标识与空索引号。
[0058]
控制器模块接收到n个分布式存储连接请求,取出卷的标识v放入消息缓存队列q(v)={v1,v2,v3,

,vn},标识v由存储卷标识组成,消息缓存队列用于解决连接ceph存储卷动作时延问题;已挂载到裸金属的存储卷以标识p放入持久化队列q(p)={p1,p2,p3,

,pn},标识p由存储卷标识和设备索引号两部分组成,设备索引号在完成整个挂载流程后生成,持久化队列用于解决模块掉电导致的存储卷丢失问题。
[0059]
定时轮询代理模块状态,获取代理模块上报信息并判断代理模块状态。当出现状态异常时,不执行后续具体流程,转而将缓存队列q(v)的标识v取出,标识v与空设备索引号组成标识p,并放入持久化队列q(p)中。
[0060]
控制器模块依次将标识v[n]出队,必须在获取到v[n-1]响应消息后,再将v[n]出队,保证挂载请求与对应存储卷的顺序一致性。
[0061]
代理模块校验控制器模块下发的命令,检查命令格式、检查已挂载rbd块设备数量、检查即将卸载rbd块设备是否存在;如成功执行命令,则生成挂载索引号,并与卷标识组合为标识p,放入控制器模块的持久化队列q(p);如命令校验或执行失败,则给控制器模块直接响应失败消息。
[0062]
校验正确后,代理模块将rbd image挂载到智能网卡模块,智能网卡模块的操作系统加载rbd内核驱动,将rbd image映射为本地块设备,如/dev/rbd0。
[0063]
智能网卡模块建立spdk bdev(backend device)到rbd块设备的数据通道。基于linux aio(asynchronous io)建立spdk aio bdev设备到内核块设备/dev/rbd0的映射关系,通过线程的io channel通道进行异步io数据读写。
[0064]
智能网卡模块建立spdk aio bdev到裸金属的数据通道。初始化虚拟pci设备,向virtio pci配置空间写入virtio_f_iommu_platform、virtio_vendor_id、virtio_device_id标识,连接到智能网卡模块的硬件pci桥;将spdk aio bdev设备连接到虚拟pci设备,裸金属加载pci设备驱动,通过dma(direct memory access)从spdk aio bdev读写数据。
[0065]
挂载完成后生成挂载索引号,给控制器响应成功消息,控制器接收到消息后,将存储卷标识和挂载设备索引号组合为标识p[n],并放入持久化队列q(p)。
[0066]
本发明提供一种技术方案:一种裸金属安全使用分布式存储的方法与装置,其一种裸金属安全使用分布式存储的装置包括:控制器模块、代理模块、智能网卡模块、裸金属模块。通过控制器与代理模块配合,实现对智能网卡模块的调度与管理,智能网卡模块与裸金属模块配合,实现存储数据平面的io通道的建立与控制。对装置的使用分为两个方面,包括分布式存储连接的具体流程,以及智能网卡模块掉电时的容错处理与自动恢复流程。
[0067]
控制器模块负责接收裸金属连接ceph存储请求,建立消息缓存队列q(v)与持久化
队列q(p),同时定时轮询代理模块状态;
[0068]
代理模块负责接收控制器模块的命令,上报自身状态给控制器,预校验命令格式并返回命令执行结果,挂载rbd image到智能网卡模块;
[0069]
智能网卡模块负责存储数据平面处理,接收代理模块下发命令,建立rbd块设备到裸金属的数据通道;
[0070]
裸金属模块负责维持装置的供电与提供租户使用。
[0071]
其装置使用流程包括:
[0072]
控制器接收到n个分布式存储连接请求,取出卷的标识v放入消息缓存队列q(v)={v1,v2,v3,

,vn},标识v由存储卷标识组成,消息缓存队列用于解决连接ceph存储卷动作时延问题;已挂载到裸金属的存储卷以标识p放入持久化队列q(p)={p1,p2,p3,

,pn},标识p由存储卷标识和设备索引号两部分组成,设备索引号在完成整个挂载流程后生成,持久化队列用于解决模块掉电导致的存储卷丢失问题。
[0073]
定时轮询代理模块状态,获取代理模块上报信息并判断代理模块状态。当出现状态异常时,不执行后续具体流程,转而将缓存队列q(v)的标识v取出,标识v与空设备索引号组成标识p,并放入持久化队列q(p)中。
[0074]
控制器模块依次将标识v[n]出队,必须在获取到v[n-1]响应消息后,再将v[n]出队,保证挂载请求与对应存储卷的顺序一致性。
[0075]
代理模块校验控制器模块下发的命令,检查命令格式、检查已挂载rbd块设备数量、检查即将卸载rbd块设备是否存在;如成功执行命令,则生成挂载索引号,并与卷标识组合为标识p,放入控制器模块的持久化队列q(p);如命令校验或执行失败,则给控制器模块直接响应失败消息。
[0076]
校验正确后,代理模块将rbd image挂载到智能网卡模块,智能网卡模块的操作系统加载rbd内核驱动,将rbd image映射为本地块设备,如/dev/rbd0。
[0077]
智能网卡模块建立spdk bdev(backend device)到rbd块设备的数据通道。基于linux aio(asynchronous io)建立spdk aio bdev设备到内核块设备/dev/rbd0的映射关系,通过线程的io channel通道进行异步io数据读写。
[0078]
智能网卡模块建立spdk aio bdev到裸金属的数据通道。初始化虚拟pci设备,向virtio pci配置空间写入virtio_f_iommu_platform、virtio_vendor_id、virtio_device_id标识,连接到智能网卡模块的硬件pci桥;将spdk aio bdev设备连接到虚拟pci设备,裸金属加载pci设备驱动,通过dma(direct memory access)从spdk aio bdev读写数据。
[0079]
挂载完成后生成挂载索引号,给控制器响应成功消息,控制器接收到消息后,将存储卷标识和挂载设备索引号组合为标识p[n],并放入持久化队列q(p)。
[0080]
掉电容错与自动恢复流程:
[0081]
智能网卡模块由裸金属模块提供12v供电,当裸金属服务器关机,会引发智能网卡模块掉电,导致已挂载的rbd块设备信息丢失,人工重新挂载时会出现盘符顺序混乱;同时掉电引发代理模块的异常状态,从而导致正在执行的工作流程失败,因此需要考虑掉电容错处理;
[0082]
裸金属模块关机,引发智能网卡模块掉电。根据代理模块状态判断并将缓存队列中q(v)的标识v[n]依次出队,不执行具体任务流程,直接放入持久化队列q(p);
[0083]
当裸金属模块恢复供电,代理模块判断状态正常。将持久化队列q(p)的元素取出,放缓存队列q(v)的队列头位置,并按照持久化队列中的标识p[n]、标识p[n 1]、缓存队列标识v[n]的顺序,依次向代理模块下发对应的挂载命令并重新生成挂载索引号,保证裸金属开机后自动完成存储卷挂载,并保持盘符顺序正确。
[0084]
本发明提供以ceph为代表的分布式存储支持,提高了裸金属服务器的可用性,统一虚拟机与裸金属的存储架构;并且其相比于直接挂载rbd块设备,该装置提供网络隔离与安全性,用户在裸金属服务器内只能看到virtio设备;相比于iscsi-gateway方案挂载ceph分布式存储,该装置无需iscsi网关转换存储协议,缩短数据io路径,提高了分布式存储卷的使用性能;且其控制器模块通过缓存队列与持久化队列实现对裸金属连接分布式存储的管理,提供掉电容错能力,同时解决存储连接过程的时间延迟问题;并且智能网卡模块基于spdk与linux aio技术,建立rbd块设备到裸金属的数据读写通道,该方案可拓展为支持多种存储后端类型(如nvme-of),提供一种裸金属支持分布式存储的通用架构;并且其裸金属无需连接到专有存储网络,从而提高管理平台安全性,实现管理侧与租户侧网络隔离;并且在裸金属异常关机后,能够保证重新开机后自动挂载ceph存储盘,并且保证盘符顺序正确。
[0085]
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
[0086]
本发明还提供了一种权限元数据分布式初始化装置,存储用于使一计算机执行如本文的裸金属安全使用分布式存储方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。
[0087]
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
[0088]
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。
[0089]
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
[0090]
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
[0091]
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
[0092]
以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,fpga或asic)来完成相应操作。硬
件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方法(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
[0093]
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献