- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于 ceph RBD 的Iscsi target 实现分析
基于 ceph RBD 的Iscsi target 实现分析
runsisi AT hust.edu.cn
2015/06/12
本文总结基于ceph 存储后端的 iSCSI target 实现,针对几种可能的实现思路进行分
析,并输出本文档,本文内容组织结构如下:
1. 描述本文的目的及内容;
2. iSCSI 使用ceph 作为存储后端的基本实现思路;
3. 分别阐述几种可能的实现方式,分析其各自的特点和可能存在的一些技术障碍;
4. 最后简单总结全文。
1. 问题提出
ceph 作为一个真正意义上的统一存储系统,有着很好的应用前景,但到目前为止有多
种原因限制了其在传统存储应用领域真正大范围的应用,如客户端仅支持GNU/Linux 系统,
内核态客户端实现也仅会合入高版本的内核中等。而对于iSCSI 这种传统的存储应用而言,
由于客户端配置简单且足够通用,常见的各种系统 (包括操作系统和应用系统)一般都对
iSCSI 有很好的支持,因此为了扩大ceph 的应用范围,特别是应对只支持iSCSI 的系统,
ceph 必须通过某种途径实现对 iSCSI 的支持。
2. 基本思考方向
ceph 集群目前支持三种形式的存储接口:文件、对象、块,其中块接口(即RBD)与SCSI
块设备读写所要求的接口一致,因此可以基于ceph 的RBD 提供SCSI 存储系统后端,当然
如果有足够信心的话也可以完全抛弃ceph 提供的这三种基础接口,而在原始的RADOS 接口
上开发新的块接口,当然除非原始的 RBD 接口有重要缺陷,否则暂时还看不到重新发明轮
子的必要,注意后文的讨论都将基于这一基本假设。
基于RBD 的iSCSI 支持有多种实现思路,目前考虑到的有如下三类,概述如下:
1) 为iSCSI 客户端增加RBD 客户端的功能,即在客户端实现iSCSI initiator 与
RBD client 的融合;
2) 类似于 MDS 的实现,为ceph 集群增加 LUS (Logical Unit Server)服务器,
由LUS 负责iSCSI 业务接入;
3) 选择合适的iSCSI target 为其增加RBD 后端支持,并在终端用户与ceph 集群之
间架设iSCSI 网关 (可以扩展成其它类型的如FC 网关);
1
3. 具体实现分析
上一节针对ceph 支持iSCSI 的需求提出了三种可能的实现方向,下面将对这几种思路
进行展开分析。
需要注意的是,由于ceph 集群的设计,RBD 设备的读写需要专门的RBD 客户端,因此
支持直接读写RBD 的机器都需要安装RBD 客户端软件。目前已有的RBD 客户端有两种实现,
一种是直接集成到内核中的内核驱动形式的实现,另一种是动态库形式的用户态实现(包括
python、java 等语言的绑定),这两种实现暂时都只支持GNU/Linux 系统,同时相比后
者,前者还存在一些问题,如:1)只有较新的内核才支持RBD,2)某些发行版不一定会将
RBD 支持编译进内核,3)ceph 的开发迭代周期很短,新特性、BUG 修复等不可能很及时的
合入内核,4)稳定性还有待验证。基于这些问题的考虑,下文如无特殊说明将不考虑使用
内核态的RBD 模块作为RBD 客户端。
3.1. 增强型iSCSI initiator
类似于已使能RBD 支持的qemu,这种方式在原有的iSCSI 客户端基础上集成RBD 管理、
读写等功能,当然这种实现远远比qemu 支持RBD 要复杂,qemu 只需要在用户态直接调用
RBD 接口,而 iSCSI initiator 需要在内核中注册块设备,然后将读写请求发往用户态的 RBD
客户端,图1 的简单对比可以看到两者实现的主要差异。
ceph cluster
VMs
Data I/O
文档评论(0)