基于FPGA共享智能网卡的双控存储系统及iSCSI多路径负载均衡方法与流程
本发明属于存储网络,具体涉及一种基于iscsi协议的负载均衡实现技术,尤其是一种基于fpga共享智能网卡的双控存储系统及iscsi多路径负载均衡方法。
背景技术:
1、在存储系统中,双控制器架构是提高系统可用性和性能的常用设计。在一台存储设备中的两个控制器中的lun(logical unit number,逻辑单元号)对外状态一致,都可以提供对等的服务,服务器可以通过任意一个控制器读写lun。服务器中多路径软件(如mpio)会同等地向两个控制器分发读写请求,以提高存储控制器利用率和提升整体性能。
2、iscsi(internet small computer system interface,互联网小型计算机系统接口)协议作为构建ip san(storage area network)的核心技术,凭借其基于标准以太网的低成本优势,在中小型数据中心和企业it环境中得到了广泛应用。相较于fc(fibrechannel)san需要专用光纤交换机和fc-hba卡,iscsi san可以利用现有的以太网交换机、网卡和网络基础设施,大幅降低了存储网络的部署和维护成本。同时,随着10gbe、25gbe、40gbe和100gbe以太网的普及,iscsi在高带宽场景下的性能表现已经能够满足大多数企业级应用的需求。
3、然而,存储控制器中存在数据缓存,两个控制器各自拥有独立的高速缓存,需要相互协商以保证数据的一致性。
4、现有双控iscsi存储方案中,为防止缓存数据不一致,通常定义lun的归属,lun默认归属于某一个控制器。在服务器通过另外一个控制器访问时,会将读写请求通过双控内部通道转发至lun归属控制器。这种方案在业界被称为a/p(active/passive,主动/被动)模式或alua(asymmetric logical unit access,非对称逻辑单元访问)模式——lun的归属控制器为主动控制器,非归属控制器为被动控制器,所有i/o最终都需要由归属控制器处理。
5、因为访问lun非归属控制器时,需要转发至归属控制器进行处理,必然造成非归属控制器读写性能不如归属控制器读写性能,而且对双控之间的通道带宽和延迟要求较高。具体而言,当服务器通过非归属控制器访问lun时,需要经历以下步骤:
6、服务器将iscsi读写请求(scsi command pdu)通过以太网发送至非归属控制器;
7、非归属控制器完成tcp/ip协议处理和iscsi pdu解析,识别目标lun;
8、非归属控制器通过双控私有通道(如pcie ntb、内部高速总线等)将请求转发至归属控制器;
9、归属控制器处理请求(访问缓存/硬盘);
10、归属控制器将处理结果(scsi response pdu)通过私有通道返回非归属控制器;
11、非归属控制器将结果封装为iscsi response pdu,通过tcp/ip发送回服务器。
12、由此可见,非归属控制器访问路径比归属控制器访问路径多了两次控制器间转发(请求转发+结果返回),不仅增加了cpu中断、内存拷贝等消耗,也会增加业务延迟,降低整体系统性能。在高速以太网(如25gbe、40gbe、100gbe)环境下,双控私有通道的带宽和延迟瓶颈会更加突出,可能成为整个存储系统的性能瓶颈。此外,传统的iscsi协议处理(包括tcp/ip协议栈和iscsi pdu封装的解析)通常由存储控制器cpu通过软件方式完成,进一步加剧了cpu的负载压力。
13、如图1所示,常见的双控iscsi存储组网中,双控分别拥有独立的以太网网卡与服务器连接,双控之间具有私有通道进行互联,双控通过背板共同管理相同的硬盘。当服务器通过非归属侧的iscsi会话访问lun时,数据必须经过双控间私有通道转发,导致性能损失。
技术实现思路
1、有鉴于此,针对现有双控iscsi存储系统中非归属控制器访问lun时需要跨控制器转发导致性能下降、cpu协议处理负担重以及无法实现真正多路径负载均衡的问题,本发明提供一种基于iscsi协议的负载均衡实现技术。
2、为实现上述目的,本发明的技术方案如下。
3、一种基于iscsi协议的负载均衡实现系统,包括:
4、至少一个fpga智能网卡,所述fpga智能网卡通过pcie通道同时与存储系统的第一控制器和第二控制器互联;
5、所述fpga智能网卡用于实现完整的iscsi协议栈硬件化处理,包括:以太网mac层处理、ip数据包解析、tcp连接管理(含分段重组、窗口控制、拥塞控制)、iscsi pdu封装/解封装、scsi命令提取;以及用于缓存lun归属信息,并根据所述lun归属信息将scsi命令直接路由至对应的归属控制器;
6、所述第一控制器和所述第二控制器用于接收所述fpga智能网卡直接上报的scsi命令并进行存储i/o处理,以及将处理结果返回至所述fpga智能网卡。
7、进一步地,所述fpga智能网卡为共享智能网卡,一张fpga智能网卡同时通过pcie通道连接两个存储控制器,在网卡硬件中完成完整iscsi协议处理,实现两个控制器共享一张iscsi智能网卡。
8、进一步地,所述系统配置有两张以上fpga智能网卡,以实现网卡冗余。
9、一种基于iscsi协议的负载均衡实现方法,包括以下步骤:
10、步骤一,服务器端iscsi initiator将scsi命令封装为iscsi pdu,通过tcp/ip协议栈经以太网发送至fpga智能网卡;
11、步骤二,所述fpga智能网卡硬件完成以太网mac层处理、ip路由、tcp连接匹配和iscsi pdu解析,提取scsi cdb中的lun信息和数据操作类型;
12、步骤三,所述fpga智能网卡根据预先配置的lun归属表,确定目标lun的归属控制器;
13、步骤四,所述fpga智能网卡通过pcie通道将scsi命令和数据直接发送至lun归属控制器;
14、步骤五,所述归属控制器处理scsi命令,并将处理结果返回给所述fpga智能网卡;
15、步骤六,所述fpga智能网卡将处理结果封装为iscsi response pdu,通过tcp/ip协议栈经以太网发送回服务器。
16、在上述方法中,不论服务器通过哪个iscsi target portal(ip地址+端口)访问存储,fpga智能网卡都可以直接将scsi命令路由到lun的归属控制器,而不需要通过控制器间私有通道进行数据转发。
17、进一步地,所述lun归属信息由存储系统的上层软件维护,当发生lun归属权变更时,存储控制器将更新后的lun归属表同步给fpga智能网卡;所述fpga智能网卡在硬件中缓存所述lun归属表,用于快速路由决策。所述lun归属表的主要条目包括:lun编号、归属控制器id、iscsi target名称(iqn)。
18、进一步地,服务器端的多路径软件(mpio)将i/o请求均匀分发到所有可用的iscsi会话;所述fpga智能网卡根据lun归属信息直接路由scsi命令至正确的控制器,不产生转发开销。
19、进一步地,当存储系统配置多张fpga智能网卡时,每张网卡拥有独立的ip地址和mac地址;所述fpga智能网卡之间通过内部管理通道共享lun归属表,确保路由一致性。
20、进一步地,还包括iscsi会话状态与lun归属的联合管理:在iscsi target登录和会话协商阶段,存储端iscsi target与服务器端iscsi initiator完成登录和会话协商后,所有会话状态(包括iscsi会话id、tcp连接四元组、目标lun信息等)被通报到两个控制器中,使得两个控制器都知晓当前所有活跃会话的信息。
21、本发明具有如下有益效果:
22、(1)消除转发开销:本发明通过在fpga智能网卡中实现lun归属识别和直接路由,消除了传统方案中非归属控制器访问需要两次跨控制器转发的开销,降低了访问延迟,提升了iscsi读写性能。
23、(2)降低资源消耗:省去了非归属控制器的请求转发处理,降低了非归属控制器的cpu、内存和带宽使用率,提升了系统整体资源利用率。同时,iscsi协议栈的硬件卸载进一步减轻了存储控制器cpu的协议处理负担。
24、(3)实现真负载均衡:由于非归属路径不存在性能损失,服务器端多路径软件可以真正地将i/o请求均匀分发到所有iscsi路径,充分利用两个控制器的并行处理能力,提升系统整体吞吐量。
25、(4)缓解互连瓶颈:减少了控制器间私有通道的数据流量,降低了对互连通道带宽要求,缓解了高速以太网环境下的互连瓶颈。
26、(5)iscsi协议硬件卸载:fpga智能网卡实现完整的iscsi协议栈硬件处理,包括以太网帧处理、tcp/ip协议栈、iscsi pdu封装/解封装,减轻了存储控制器cpu的负担,使其可以专注于i/o处理。
27、(6)降低部署成本:基于标准以太网构建iscsi san,可利用现有的以太网交换机、网络基础设施,无需专用光纤通道交换机,降低了存储网络的部署和维护成本。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com