首页> 中国专利> 一种分布式存储系统中TGT稳定性优化方法

一种分布式存储系统中TGT稳定性优化方法

摘要

本发明公开了一种分布式存储系统中TGT稳定性优化方法,所述优化方法应用于分布式存储系统或单机存储使用,其特征在于,该优化方法是使用TGT对外提供iSCSI Target服务时,通过多进程与模块拆分方式,解决单机内TGT形成单点故障的问题,增加故障隔离性,极大地减少了故障影响范围,将系统稳定性大幅度提升;用户态进程在操作系统实现了资源隔离与抽象,用户态进程之间可以做到完全隔离,互不影响,利用进程隔离性,将TGT服务更加细粒度化,更加可控,更小的影响范围。

著录项

  • 公开/公告号CN107277131A

    专利类型发明专利

  • 公开/公告日2017-10-20

    原文格式PDF

  • 申请/专利权人 深圳市云舒网络技术有限公司;

    申请/专利号CN201710453948.6

  • 发明设计人 张朝潞;

    申请日2017-06-15

  • 分类号H04L29/08(20060101);H04L12/24(20060101);

  • 代理机构44411 深圳市鼎智专利代理事务所(普通合伙);

  • 代理人徐永雷

  • 地址 518001 广东省深圳市南山区南山街道高新南一道006号TCL工业研究院大厦A座九楼A902室

  • 入库时间 2023-06-19 03:34:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-05

    专利权的转移 IPC(主分类):H04L29/08 登记生效日:20200515 变更前: 变更后: 申请日:20170615

    专利申请权、专利权的转移

  • 2019-08-13

    授权

    授权

  • 2017-11-17

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20170615

    实质审查的生效

  • 2017-10-20

    公开

    公开

说明书

技术领域

本发明涉及数据存储技术领域,具体的说是涉及一种分布式存储系统中TGT稳定性优化方法。

背景技术

iSCSI:Internet Small Computer System Interface,是一种基于 TCP/IP的存储协议,用来建立和管理 IP 存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得 SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。iSCSI架构是CS模型,Client端为iSCSIinitiator,Server端为iSCSI Target。

TGT是GNU/Linux操作系统上,一款全用户态的开源的iSCSI Target。由于其全用户态实现和框架式的软件架构,可以轻易修改或增加Backend模块,以实现各种后端存储系统的访问。

发明内容

针对现有技术中的不足,本发明要解决的技术问题在于提供了一种分布式存储系统中TGT稳定性优化方法。

为解决上述技术问题,本发明通过以下方案来实现:一种分布式存储系统中TGT稳定性优化方法,所述优化方法应用于分布式存储系统或单机存储使用,其特征在于,该优化方法是使用TGT对外提供iSCSI Target服务时,通过多进程与模块拆分方式,解决单机内TGT形成单点故障的问题,增加故障隔离性,极大地减少了故障影响范围,将系统稳定性大幅度提升;

用户态进程在操作系统实现了资源隔离与抽象,用户态进程之间可以做到完全隔离,互不影响,利用进程隔离性,将TGT服务更加细粒度化,更加可控,更小的影响范围;

所述优化方法包括分布式iSCSI存储系统,该分布式iSCSI存储系统包括:

应用主机:该应用主机是应用程序运行的主机,当应用程序需要使用外部存储时,通过iSCSI initiator将控制主机提供的iSCSI Target中的LUN映射到本主机上,应用程序就像使用本地磁盘一样,使用iSCSI卷;

控制主机:生成iSCSI Target,完成后端存储资源抽象,将后端存储资源通过iSCSI提供存储服务,实现数据通道,IOPS限制,网络RAID,纠删码特性实现;TGT是一个iSCSITarget框架,具体的数据存储由Backend实现,通过自定义实现Backend,来适配不同的后端存储系统;

存储主机:分布式存储系统中,数据最终的存放地点,将存储资源抽象成多个存储组件;

所述优化方法还包括多进程和共享内存方法,所述多进程和共享内存方法是在TGTD进程外部,设置一片共享内存区域和一个MicroController模块,共享内存区域用于传递数据,由MicroController完成数据传输和功能特性的具体实现,具体实施步骤如下:

步骤①:在控制主机中规划存储资源,每个存储资源对应一个TGTD进程、一个TGTD进程只包含一个Target和一个LUN;

步骤②:应用主机通过网络发现Target和LUN,根据需求应用主机选择所需的LUN完成登录过程;于是便将LUN映射为应用主机的虚拟块设备;

步骤③:应用主机上的程序使用虚拟块设备,数据通过网络传递TGTD进程,TGT框架将iSCSI协议格式的数据处理后,以SCSI命令格式传递到Backend模块;Backend模块处理后,将数据封装成请求存放到共享内存区域,并通知MicroController有新数据到来;

步骤④:MicroController收到有新数据到来的通知后,从共享内存区域取出相应的请求,经请求经过处理后通过网络将数据落地到存储主机中。

相对于现有技术,本发明的有益效果是:本发明的布式存储系统中TGT稳定性优化方法在分布式存储系统中使用,也可以作为单机存储使用。可以将后端存储系统,网络,本机的各种异常引起的故障的波及范围控制在单个LUN中,不会扩散,极大地提高了系统稳定性。

附图说明

图1是本发明的分布式iSCSI存储系统架构图;

图2是本发明的多进程方式改进结构图;

图3是本发明的多进程和共享内存方式改进结构图。

具体实施方式

下面结合附图对本发明的优选实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。

请参照附图3,本发明的一种分布式存储系统中TGT稳定性优化方法,所述优化方法应用于分布式存储系统或单机存储使用,该优化方法是使用TGT对外提供iSCSI Target服务时,通过多进程与模块拆分方式,解决单机内TGT形成单点故障的问题,增加故障隔离性,极大地减少了故障影响范围,将系统稳定性大幅度提升;

用户态进程在操作系统实现了资源隔离与抽象,用户态进程之间可以做到完全隔离,互不影响,利用进程隔离性,将TGT服务更加细粒度化,更加可控,更小的影响范围;

所述优化方法包括分布式iSCSI存储系统,该分布式iSCSI存储系统包括:

应用主机:该应用主机是应用程序运行的主机,当应用程序需要使用外部存储时,通过iSCSI initiator将控制主机提供的iSCSI Target中的LUN映射到本主机上,应用程序就像使用本地磁盘一样,使用iSCSI卷;

控制主机:生成iSCSI Target,完成后端存储资源抽象,将后端存储资源通过iSCSI提供存储服务,实现数据通道,IOPS限制,网络RAID,纠删码特性实现;TGT是一个iSCSITarget框架,具体的数据存储由Backend实现,通过自定义实现Backend,来适配不同的后端存储系统;

存储主机:分布式存储系统中,数据最终的存放地点,将存储资源抽象成多个存储组件;

图1中,有两个应用主机,分别映射一个iSCSI存储资源,由于TGT设计为单进程多线程模型,Backend由一组线程来完成数据处理。在图1中,是通常的iSCSI使用方式,这里有两个风险点将影响系统稳定性:

① 所有iSCSI initiator连接到同一个TGTD进程,由这个TGTD进程负责本控制主机所有Target和LUN。可以看出TGTD进程存在单点的问题,只要其中一个Backend程序导致TGTD进程coredump,整个控制主机所有的Target和LUN都会受到影响。

② 上述提到过Backend程序需要完成大量的逻辑,如实现数据通道,IOPS限制,网络RAID,纠删码特性,Cache,网络异常处理等,大量的代码加入到TGT的框架中,会为TGT引入大量Bug。

为了解决上述两个影响稳定性的问题,本发明提出两点改进:

① TGTD完成多进程。

② 将大量逻辑代码从Backend中剥离,由外部独立的进程完成。

如图2所示,为本发明的多进程方式改进结构图。将图1中的单进程TGTD,改成多进程TGTD,每个TGTD进程维护一个Target/LUN。应用主机中的每个iSCSI卷都连接到单独的TGTD进程上,如果Backend程序的异常,由于TGTD是纯用户态的进程,只会影响单个TGTD进程,其他Target和LUN将完全不受影响。严格控制故障异常影响范围,对于整个系统来说,是大幅度提高了稳定性。在软件工程中,代码量越少,架构越简单,bug数量将越少,系统更稳定。为了将访问后端存储、各种高级功能特性等代码从TGT剥离,增强TGT的稳定性。

如图3所示,所述优化方法还包括多进程和共享内存方法,所述多进程和共享内存方法是在TGTD进程外部,设置一片共享内存区域和一个MicroController模块,共享内存区域用于传递数据,由MicroController完成数据传输和功能特性的具体实现,具体实施步骤如下:

步骤①:在控制主机中规划存储资源,每个存储资源对应一个TGTD进程、一个TGTD进程只包含一个Target和一个LUN;

步骤②:应用主机通过网络发现Target和LUN,根据需求应用主机选择所需的LUN完成登录过程;于是便将LUN映射为应用主机的虚拟块设备;

步骤③:应用主机上的程序使用虚拟块设备,数据通过网络传递TGTD进程,TGT框架将iSCSI协议格式的数据处理后,以SCSI命令格式传递到Backend模块;Backend模块处理后,将数据封装成请求存放到共享内存区域,并通知MicroController有新数据到来;

步骤④:MicroController收到有新数据到来的通知后,从共享内存区域取出相应的请求,经请求经过处理后通过网络将数据落地到存储主机中。

以上所述仅为本发明的优选实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号