一种无锁多控制器磁盘阵列系统技术方案

技术编号:39569205 阅读:8 留言:0更新日期:2023-12-03 19:19
本发明专利技术涉及一种无锁多控制器磁盘阵列系统,属于数据存储技术领域

【技术实现步骤摘要】
一种无锁多控制器磁盘阵列系统


[0001]本专利技术属于数据存储
,具体涉及一种无锁多控制器磁盘阵列系统


技术介绍

[0002]RAID(Redundant Array of Independent Disks)
被广泛应用在存储系统中,主要分为软
RAID
和硬
RAID。
相比于用
RAID
卡组装的硬
RAID
,软件实现的软
RAID
更加灵活多样,是国内存储厂商
RAID
的主要实现方式


RAID
能高效地工作在单个存储节点
(
控制器
)
上,但不满足生产环境的软硬件冗余需求,因此为了提高数据的安全性,产生了多控阵列系统

多控阵列系统通常由两个及以上的控制器组成,每个控制器管理自己的软硬件资源,共用数据盘资源,为了实现无缝故障接管或负载均衡,多控制器需要实现多控多活
(
多个控制器能同时读写相同的存储资源
)
,控制器之间通常共享部分资源,如缓存

配置等

控制器共享缓存是多控设计的重难点,它关系着系统性能和数据一致性,是实现多控多活和负载均衡的关键

多个控制器之间通常采用锁来保证缓存的一致性,这种实现方式产生了锁竞争,降低了存储系统性能,因此需要提出一种新的多控阵列架构,实现高性能

可靠的阵列系统


技术实现思路

[0003](

)
要解决的技术问题
[0004]本专利技术是为解决多控阵列系统共享缓存锁竞争的问题,提出一种新的多控阵列架构

[0005](

)
技术方案
[0006]为了解决上述技术问题,本专利技术提供了一种无锁多控制器磁盘阵列系统的设计方法,将磁盘阵列系统设计为包括私有客户端和存储服务端;
[0007]存储服务端中,四块硬盘
Disk0、Disk1、Disk2、Disk3
组成一个
RAID

RAID
中每块硬盘相同偏移的地址空间组成条带集合
[C0、C1、C2

Cn],
n
为正整数,条带集合代表了系统上的存储资源,每一个存储节点即控制器对该条带集合具有查看权限,但只对归属条带具有读写权限;条带集合
[C0、C1、C2

Cn]对应的偏移为
[0、1、2

n],条带集合中的这些条带按照偏移均衡地归属于存储节点,存储节点只对其归属资源有读写权限,这些资源在多控阵列中有且只能有一个属主,是独占资源;条带大小

条带属主和控制器信息构成数据管理
MAP

[0008]在内核中,块设备的
IO
请求为
BIO
,每个
BIO
中包含请求的起始地址
bi_sector
和数据长度
bi_size
,私有客户端设计为执行以下业务流程:
[0009](1)BIO
提交私有客户端,数据地址加上逻辑卷偏移得到
BIO

RAID
上的绝对地址;
[0010](2)
根据存储节点
RAID
的条带大小和
BIO

RAID
上的绝对地址,将
BIO
切割为带有条带偏移标签的子
BIO

[0011](3)
将子
BIO
的数据偏移减去逻辑卷偏移,得到子
BIO
在逻辑卷上的偏移地址;
[0012](4)
根据子
BIO
在逻辑卷上的偏移地址和即存储节点的数据管理
MAP
,得到每一个

BIO
的对应路径,从而发送
IO
请求给存储节点

[0013]优选地,私有客户端和存储服务端共同维护着数据管理
MAP
,如图4所示,在私有客户端链接存储服务端之前,存储服务端的
MAP
信息是同步并且一致的,即存储节点的
ID
是全局唯一且不可改变的,新存储节点的加入可以接替下线存储节点的
ID
;在私有客户端接入存储服务端后,私有客户端生成存储节点
ID
和多路径链路的一一对应关系,多路径链路的某一条路径在读写过程中发生
IO
异常且不可修复时,私有客户端会报告异常到存储服务端,通过协商决定问题路径存储资源的接管,协商成功,各自更新自己的
MAP
,数据正常传输

[0014]本专利技术还提供了一种利用所述方法设计得到的无锁多控制器磁盘阵列系统

[0015]优选地,若所述无锁多控制器磁盘阵列系统为双控磁盘阵列系统,则条带
C0
的属主是
Host0

C1
的属主是
Host1

C2
的属主又是
Host0
,以此类推,对双控而言一个存储节点的独占资源由偶数偏移的条带组成,另一个存储节点的独占资源由奇数偏移的条带组成

[0016]优选地,所述系统还包括连接私有客户端和存储服务端的数据链路层

[0017]本专利技术还提供了一种所述系统的工作方法

[0018]优选地,存储服务端向私有客户端的数据写入过程包括以下步骤:
[0019](1)

IO
请求的数据,切割为条带大小的数据片段
seg

[0020](2)
按数据片段
seg
的条带偏移量选择路径,并提交;
[0021](3)
数据通过网络到达存储控制器;
[0022](4)
存储控制器将数据写入
RAID
对应条带;
[0023](5)
返回写入结果;
[0024](6)
私有客户端对所有数据片段的写入结果进行统计,如果写入异常则和存储控制器协商,更新数据管理
MAP。
[0025]优选地,私有客户端从存储服务端数据的读取过程包括以下步骤:
[0026](1)
存储控制器将数据从
RAID
中取出装填到
BIO
中;
[0027](2)BIO
通过网络返回到私有客户端;
[0028](3)
私有客户端取出数据,并将数据拼接成连续的目标数据;本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种无锁多控制器磁盘阵列系统的设计方法,其特征在于,将磁盘阵列系统设计为包括私有客户端和存储服务端;存储服务端中,四块硬盘
Disk0、Disk1、Disk2、Disk3
组成一个
RAID

RAID
中每块硬盘相同偏移的地址空间组成条带集合
[C0、C1、C2

Cn]

n
为正整数,条带集合代表了系统上的存储资源,每一个存储节点即控制器对该条带集合具有查看权限,但只对归属条带具有读写权限;条带集合
[C0、C1、C2

Cn]
对应的偏移为
[0、1、2

n]
,条带集合中的这些条带按照偏移均衡地归属于存储节点,存储节点只对其归属资源有读写权限,这些资源在多控阵列中有且只能有一个属主,是独占资源;条带大小

条带属主和控制器信息构成数据管理
MAP
;在内核中,块设备的
IO
请求为
BIO
,每个
BIO
中包含请求的起始地址
bi_sector
和数据长度
bi_size
,私有客户端设计为执行以下业务流程:
(1)BIO
提交私有客户端,数据地址加上逻辑卷偏移得到
BIO

RAID
上的绝对地址;
(2)
根据存储节点
RAID
的条带大小和
BIO

RAID
上的绝对地址,将
BIO
切割为带有条带偏移标签的子
BIO

(3)
将子
BIO
的数据偏移减去逻辑卷偏移,得到子
BIO
在逻辑卷上的偏移地址;
(4)
根据子
BIO
在逻辑卷上的偏移地址和即存储节点的数据管理
MAP
,得到每一个子
BIO
的对应路径,从而发送
IO
请求给存储节点
。2.
如权利要求1所述的方法,其特征在于,私有客户端和存储服务端共同维护着数据管理
MAP
,如图4所示,在私有客户端链接存储服务端之前,存储服务端的
MAP
信息是同步并且一致的,即存储节点的
ID
是全局唯一且不可改变的,新存储节点的加入可以接替下线存储节点的
ID
;在私有客户端接入存...

【专利技术属性】
技术研发人员:邓玲田鹏刘彬彬徐晗赵彬
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:

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

1