今天我们来体验下Ceph原生的ISCSI,可能会有人说哪来的原生ISCSI啊,相信细心的童鞋在Ceph L版本发布的时候官网手册里面就出现了一个iscsi的字样。是的,没错,这就是原声版的ISCSI雏形,有好消息就有坏消息,不幸的是,截至到目前为止还不能使用rpm安装,因为红帽没有把rpm释放出来,只能通过git源码或别人分享的rpm包进行安装。
简单来说下iscsi的前生今世,分为两种一种是tgt实现方式,一种是lio实现方式,那么在Ceph原生里面使用的是lio方式,在原生的lio方式出来之前大家普遍采用的是tgt方式来进行Ceph的ISCSI实现。
什么是tgt?
Linux target framework(tgt)是为创建、维护SCSI target 驱动(包括iSCSI、FC、SRP等)提供支持。它的关键目标是简洁地集成到scsi-mid层,并且实现大部分应用层空间的tgt。以 Linux 2.6.38 为分界线,此前Linux 中默认的SCSI target是STGT,之后的标准是 Linux-IO Target。
什么是lio?
Linux-IO Target在Linux内核中(linux 2.6.38后),用软件实现各种SCSI Target,其支持的SAN技术中所有流行的存储协议包括Fibre Channel(Qlogic,linux3.5)、FCoE(linux3.0)、iSCSI(linux 3.1)、iSER (Mellanox InfiniBand,linux3.10), SRP (Mellanox InfiniBand,linux3.3), USB等,同时还能为本机生成模拟的SCSI设备,以及为虚拟机提供基于virtio的SCSI设备。Linux-IO Target使用户能够使用相对廉价的Linux系统实现SCSI、SAN的各种功能,而不用购买昂贵的专业设备。
OK,下面进入正题,来看看Ceph ISCSI的架构图
LIO