Lio target

Linux-IO Target是什么

Linux上对于scsitarget的是一个实现,主要包括了target_core.ko(从2.6.38的内核版本开始)和其他几个可选的驱动模块。

Lio的目的

         提供scsi的target服务,scsi的initiator跟target之间可以在不同的物理主机之间,通过多种不同的协议ip,FC,FCoE,Infiniband;scsi的initiator也可以跟Lio target一起位于同一个物理主机;

Lio的架构

 

虚线以下都是是现在linux kernel里面的模块。虚线以上是用户态的管理工具,其中targetcli是一个python开发的命令行工具,用来管理和配置Lio target,由Datera,Inc..开发。通过该工具可以配置target的后台存储设备,并根据不同的协议导出为不同形式的scsi target。

 

FabricModules

²           Lio的前端,负责initiator跟target的通信,接收initiator发来的scsi命令给GenericTraget Engine,并把Generic Traget Engine执行scsi命令的结果返回给initiator

GenericTraget Engine

²  scsi命令协议栈/处理器

StorageManagement Engine

²           Target的存储引擎,屏蔽不同后台存储设备差异,提供统一的存储访问接口给Generic Traget Engine使用

StorageModules

²           后台存储设备的接口,支持多种形式的接口,包括VFS的文件,/dev下面的逻辑block设备,以及裸的块设备

 

Lio支持多种形式的FabricModules,即可以通过多种形式提供initiator服务,主要包括两种情况:

1)      Initiator跟target位于不同的物理主机,中间需要通过网络相连:

         FibreChannel:

                   scsiover FC,

                   需要QLogicdeHBA驱动 qla2xxx.ko

         FCoE:

                   FibreChannel over ethernet

                   普通以太网卡驱动+tcm_fc.ko

         iSCSI:

                   scsiover IP

                   普通以太网卡驱动+iscsi.ko

         iSEP: 

                   iscsiover infiniband network

                   MellanoxHCA卡驱动 ib_sert.ko

         SRP:

                   scsiover infiniband

                   MellanoxHCA驱动srpt.ko

 

iscsi方式组网图

 

2)      Initiator跟target位于同一个物理主机

         tcm_loop:

模拟scsi设备给本地主机的app程序或者VM使用,相当于把本地主机的跨设备经过Lio映射之后再给本地主机使用,

优点是,可以把本地文件直接映射给虚拟机提供块设备,不需要经过iscsi协议转化消耗,不过效率不可能很高

lookback.ko,

         vHost

通过QEMU virtio接口提供块设备服务给QEMU/KVMguest主机,效率比较高,不过目前支持linux guest,对于windows的guest主机开发正在进行中,计划给windows开发一个虚拟的LSI MegaRAID SAS driver.

                   tcm_vhost.ko

 

vHost架构图

 

 

 

总结:

     Lio目前也在先虚拟化和openstack方向演进,希望通过Lio把本地的块设备提供给VM使用。

     利用Lio的vHost接口,可以将支持fuse的分布式文件系统作为虚拟机的块设备

     如果分布式文件系统client做到了kernel里面,可以很方便的利用Lio提供的qemu/kvm驱动提供给vm使用,而且效率应该相当高

    个人感觉利用Lio的iscsi方式构建分布式块存储不是一个发展方向,而Lio+iscsi方式替换原有的磁盘阵列也不见得是个好方向,因为这方面zfs做的更好,zfs自带iscsi模块

参考资料:

 http://linux-iscsi.org/wiki/Target

http://linux-iscsi.org/wiki/VHost

http://linux-iscsi.org/wiki/Targetcli

http://linux-iscsi.org/wiki/Tcm_loop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值