网易数帆开源iSCSI服务器tgt独门优化,彻底解决性能问题

网易数帆为开源iSCSI服务器tgt进行优化,解决了性能问题。通过对tgt进行多线程epoll改造,实现每个target拥有独立的epoll线程,提升了处理iSCSI命令的能力,尤其是在Windows上表现良好。此外,还增加了对CurveBS的支持,允许在非Linux系统上使用CurveBS作为存储解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

iSCSI是现代企业级存储系统中的一项重要技术, 开源iSCSI 服务器tgt存在单线程性能问题,而相关的优化补丁效果参差不齐,尚未真正解决问题,本文介绍网易数帆存储团队如何通过一系列独特的创新实现tgt性能的大幅提升,并将其用于开源云原生软件定义存储Curve,让Curve块设备系统在不同操作系统环境下保持高性能。

背景

1. CurveBS

Curve(github.com/opencurve/curve)是网易数帆开源的云原生分布式存储系统,包括块设备系统CurveBS和文件系统CurveFS。其中CurveBS承担了大量的任务,例如作为KVM虚拟机和K8s PV等的云盘,是云平台的基础设施。CurveBS也可以被用户使用在其他业务场景,例如企业里的SAN存储系统可以用CurveBS来替代——因为CurveBS使用Raft副本一致性和CopySet概念可以自动修复损坏的副本,无论在可靠性还是稳定性方面,这些特色足以替代传统的SAN,在可扩容、性价比方面甚至超过了传统的SAN。

2. iSCSI

说到SAN等传统存储设备,我们不得不提到SCSI,SCSI作为外部块设备的连接和传输协议,是最广泛的块设备协议,于1979首次提出,是为小型机研制的一种接口技术,现在已完全普及到了小型机、服务器以及普通PC上。为了能够在TCP/IP上进行数据块传输,Cisco和IBM两家发起iSCSI协议,并且得到了各大存储厂商的大力支持。iSCSI可以实现在IP网络上传输SCSI协议,使其能够在诸如高速以太网上进行快速的数据存取备份操作。iSCSI标准在2003年2月11日由IETF(互联网工程任务组)认证通过。iSCSI继承了两大最传统技术:SCSI和TCP/IP协议。这为iSCSI的发展奠定了坚实的基础。基于iSCSI的存储系统只需要不多的投资便可实现SAN存储功能,甚至直接利用现有的TCP/IP网络。特别是对于非Linux系统例如Windows系统,如果想使用CurveBS作为Windows的硬盘,让CurveBS支持iSCSI协议即可。

3. tgt是什么

为了支持iSCSI,必须要有iSCSI服务器软件,tgt(Linux target framework)就是一个开源的iSCSI服务器,详情请见 https://github.com/opencurve/curve-tgt/blob/master/README。

相对业界目前其他的开源的iSCSI服务器软件,我们发现tgt是最合适的方案,因为它是纯用户态的,不依赖于操作系统内核,不需要针对不同内核版本编写不同的代码,可以让开发工作变得简单很多。

我们在开发Curve块设备服务器时,想让更多的系统能够使用CurveBS块设备,而不仅仅是Linux系统,于是我们修改tgt以便让CurveBS提供iSCSI服务,为此我们为tgt增加了原生的CurveBS驱动,直接通过curvebs part 1接口读写CurveBS,绕过了内核块设备层,节省了系统资源和对内核块设备层的调用。

4. 使用tgt中碰到的问题

我们观察到原版tgt使用单一主线程epoll event loop来处理iSCSI命令,还包括管理平面的un

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网易杭研

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值