一种数据写入的方法、设备及网卡技术

技术编号:36064514 阅读:12 留言:0更新日期:2022-12-24 10:30
本申请涉及一种用于数据写入的方法、设备以及网卡。该方法包括:存储设备中部署了第一网卡以及第二网卡,第一网卡接收包括第一数据的第一写请求,然后第一网卡将第一数据和第一序列号一起存入第一存储区域;第二网卡接收包括第二数据的第二写请求,然后第二网卡将第二数据和第二序列号一起存入第二存储区域,其中,第一序列号和第二序列号用于区分该存储设备接收第一数据和第二数据的先后顺序。同一存储设备中的每张网卡都给接收到的写数据添加了全局序列号,确保了存储设备的数据写一致性。性。性。

【技术实现步骤摘要】
一种数据写入的方法、设备及网卡


[0001]本申请涉及数据存储领域,尤其涉及一种数据写入的方法、装置及网卡

技术介绍

[0002]近年来,随着NoF(NVMe over Fabric)等协议的快速发展,存储设备可以通过网络与主 机(host)通信,为多个客户端提供数据存储的服务。当前,存储设备的网卡在接收到主机 发送的写请求以后,将该写请求转发给存储设备的处理器进行处理,然后网卡根据处理器指 示的缓存位置,将数据写入缓存中;然后当满足条件时,处理器再将缓存中的数据拷贝至持 久化存储介质中。在该处理流程中,存储设备在处理来自主机的写请求时需要CPU的参与, 并且还需要执行一次内存拷贝操作,数据写入的效率低下。
[0003]另外,为了增加存储设备外部接口的数量,当前存储设备中往往会部署多张网卡。每张 网卡都会接收来自主机的写入请求,在这样的场景下,如何确保数据的写一致性是亟待解决 的问题。

技术实现思路

[0004]本申请提供了一种用于数据写入的方法、设备以及网卡,用于确保存储设备的数据写一 致性。
[0005]第一方面,本申请提供了一种用于数据写入的方法,该方法应用于存储设备,该存储设 备包括第一网卡、第二网卡以及处理器。该方法包括:第一网卡接收包括第一数据的第一写 请求,然后将第一数据与第一序列号存入第一存储区域;第二网卡接收包括第二数据的第二 写请求,然后将第二数据与第二序列号存入第二存储区域;其中第一序列号和第二序列号用 于区分存储设备接收到第一数据与第二数据的先后顺序。
[0006]上述方法中,存储设备中的每张网卡都会将数据与一个代表接收顺序的序列号一起存入 存储区域,从而可以确保数据的写入顺序与接收到写请求的顺序是相同的,保证了存储设备 的数据写一致性。另外,网卡可以直接将数据写入存储区域,提高了系统的响应效率。
[0007]在一种可能的实现方式中,第一序列号和第二序列号属于同一组单调递增或者单调递减 的序列。
[0008]上述方法中,第一序列号和第二序列号来自于同一组单调变化的序列,以此来表示数据 写入的先后顺序。示例性的,第一序列号可以是sn1,第二序列号可以是sn2。
[0009]在另一种可能的实现方式中,第一网卡还会将第一数据在第一存储区域中存储的位置以 及第一序列号一起发给处理器,然后,处理器记录第一序列号与第一存储位置的对应关系。 同样的,第二网卡也会将第二数据在第二存储区域中存储的位置以及第二序列号一起发给处 理器,然后,处理器记录第二序列号与第二存储位置的对应关系。
[0010]在另一种可能的实现方式中,处理器根据所述第一序列号和所述第二序列号所指示的先 后顺序将所述第一数据和所述第二数据存入持久化存储介质中。
[0011]上述方法中,处理器记录了序列号与数据存储位置之间的对应关系,从而当满足数据下 刷条件时,处理器可以根据对应关系将数据按顺序存入持久化存储介质中,确保了数据的写 一致性。
[0012]在另一种可能的实现方式中,第一序列号在第二序列号之前,当第一写请求包括的第一 写入地址与第二写请求包括的第二写入地址有重合时,处理器将所述第一数据从所述第一存 储区域转入所述持久化介质之后,再将所述第二数据从所述第二存储区域转入所述持久化存 储介质,使得所述第一数据中的部分或全部数据被所述第二数据中的部分或全部数据所覆盖。
[0013]上述方法中,当主机想要对相同或者有重合的地址范围进行数据写入时,处理器基于序 列号的顺序将数据写入持久化存储介质中,以确保数据的写入顺序与接收到写请求的顺序一 致,保证了存储设备的正常运行。
[0014]在另一种可能的实现方式中,存储设备还包括存储器,所述存储器为具有保电能力的存 储介质,第一存储区域为处理器在存储器中第一网卡分配的存储区域,第二存储区域为处理 器在存储器中为第二网卡分配的存储区域。
[0015]上述方法中,处理器为每张网卡都分配了独立的存储区域,每张网卡可以直接对存储区 域进行数据写入,提高了存储设备的写入效率。另外,存储器为具有保电能力的存储介质, 该存储介质可以外接电源,当设备掉电时,存储器中的数据依旧能够保持不丢失,提高了存 储设备的安全性。
[0016]在另一种可能的实现方式中,第一网卡将第一数据与第一序列号存入第一存储区域包括: 第一网卡根据第一数据的长度以及第一序列号的大小为第一数据在第一存储区域中分配存储 空间;然后第一网卡将所述第一数据与第一序列号存入该存储空间。
[0017]上述方法中,第一网卡直接对第一存储区域进行管控,按照数据的大小为数据分配存储 空间,无需中央处理器CPU的参与,提高了处理效率。
[0018]在另一种可能的实现方式中,第一网卡将所述第一数据、所述第一序列号以及其他描述 信息存入所述第一存储区域,所述其他描述信息包括所述第一数据所属的输入/输出I/O请求 的标识,所述I/O请求包括的数据块的数量。
[0019]上述方法中,第一网卡除了将序列号与数据一起存入存储区域以外,还会将其他描述信 息一起存入存储区域,便于后续的故障恢复。
[0020]在另一种可能的实现方式中,第一序列号是所述第一网卡通过高速串行计算机扩展总线 标准PCIe原子机制获取的。
[0021]全局序列号由多种实现方式,可以基于PCIe原子机制,也可以基于自研协议实现。
[0022]第二方面,本申请提供一种用于数据写入的设备,有益效果可以参见第一方面的相关描 述,此处不再赘述。该设备包括第一网卡、第二网卡以及处理器,第一网卡用于,接收第一 写请求述第一写请求包括第一数据;将第一数据与第一序列号存入第一存储区域;第二网卡 用于,接收第二写请求,所述第二写请求包括第二数据;将所述第二数据与第二序列号存入 第二存储区域;其中,第一序列号与第二序列号用于区分存储设备接收第一数据与第二数据 的先后顺序。
[0023]在一种可能的实现方式中,第一序列号与所述第二序列号属于同一组单调递增或者单调 递减的序列。
[0024]在另一种可能的实现方式中,第一网卡还用于,将第一数据在第一存储区域的第一存储 位置以及第一序列号发送给处理器;处理器用于,记录第一序列号与第一存储位置的对应关 系。
[0025]在另一种可能的实现方式中,处理器还用于,根据所述第一序列号和所述第二序列号所 指示的先后顺序将所述第一数据和所述第二数据存入持久化存储介质中。
[0026]在另一种可能的实现方式中,处理器还用于,将所述第一数据从所述第一存储区域转入 所述持久化介质之后,再将所述第二数据从所述第二存储区域转入所述持久化存储介质,使 得所述第一数据中的部分或全部数据被所述第二数据中的部分或全部数据所覆盖。
[0027]在另一种可能的实现方式中,该设备还包括存储器,存储器为具有保电能力的存储介质, 第一存储区域为处理器在存储器中为第一网卡分配的存储区域,第二存储区域为处理器在所 述存储器中为第二网卡分配的存储区域。<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于数据写入的方法,应用于存储设备,所述存储设备包括第一网卡、第二网卡以及处理器,其特征在于,所述方法包括:所述第一网卡接收第一写请求,所述第一写请求包括第一数据;所述第一网卡将所述第一数据与第一序列号存入第一存储区域;所述第二网卡接收第二写请求,所述第二写请求包括第二数据;所述第二网卡将所述第二数据与第二序列号存入第二存储区域;其中,所述第一序列号与所述第二序列号用于区分所述存储设备接收所述第一数据与所述第二数据的先后顺序。2.根据权利要求1所述的方法,其特征在于,所述第一序列号与所述第二序列号属于同一组单调递增或者单调递减的序列。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:所述第一网卡将所述第一数据在所述第一存储区域的第一存储位置以及所述第一序列号发送给所述处理器;所述处理器记录所述第一序列号与所述第一存储位置的对应关系。4.根据权利要求1

3任一所述的方法,其特征在于,所述方法还包括:所述处理器根据所述第一序列号和所述第二序列号所指示的先后顺序将所述第一数据和所述第二数据存入持久化存储介质中。5.根据权利要求4所述的方法,其特征在于,所述第一序列号在所述第二序列号之前,当所述第一写请求包括的第一写入地址与所述第二写请求包括的第二写入地址有重合时,所述方法还包括:所述处理器将所述第一数据从所述第一存储区域转入所述持久化介质之后,再将所述第二数据从所述第二存储区域转入所述持久化存储介质,使得所述第一数据中的部分或全部数据被所述第二数据中的部分或全部数据所覆盖。6.根据权利要求1

5任一所述的方法,其特征在于,所述存储设备还包括存储器,所述存储器为具有保电能力的存储介质,所述第一存储区域为所述处理器在所述存储器中为所述第一网卡分配的存储区域,所述第二存储区域为所述处理器在所述存储器中为所述第二网卡分配的存储区域。7.根据权利要求1

6任一所述的方法,其特征在于,所述第一网卡将所述第一数据与第一序列号存入第一存储区域包括:所述第一网卡根据所述第一数据的长度以及所述第一序列号的大小为所述第一数据在所述第一存储区域中分配存储空间;所述第一网卡将所述第一数据与所述第一序列号存入所述存储空间。8.根据权利要求1

6任一所述的方法,其特征在于,所述第一网卡将所述第一数据与第一序列号存入第一存储区域包括:所述第一网卡将所述第一数据、所述第一序列号以及其他描述信息存入所述第一存储区域,所述其他描述信息包括所述第一数据所属的输入/输出I/O请求的标识,所述I/O请求包括的数据块的数量。9.根据权利要求1

8任一所述的方法,其特征在于,所述第一序列号是所述第一网卡通过高速串行计算机扩展总线标准PCIe原子机制获取的。
10.一种用于数据写入的设备,其特征在于,...

【专利技术属性】
技术研发人员:韩兆皎蒋凡璐余博伟姚建业徐启明
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1