Ceph iSCSI Gateway:架构原理详解

为什么Ceph需要iSCSI?

Ceph架构

Ceph官方https://docs.ceph.com/en/pacific/architecture/给出的基本架构如下图所示:
在这里插入图片描述

  • RADOS:为Ceph的核心,是Ceph最底层架构。具有可靠、分布式等特性,提供ceph系统高可靠、高可拓展、高性能。用户数据最终通过这一层来存储数据到磁盘。
  • LIBRADOS:为RADOS层的上一层,LIBRADOS是一个库,它允许应用程序通过访问该库来与RADOS系统进行交互,支持多种编程语言,比如C、C++、Python、Ruby和PHP等。
  • RADOSGW + RBD + CEPH FS:为上层应用提供三种不同的接口。
    • RADOSGW:提供了两种类型的API,一种是和AWS的S3接口兼容的API,另一种是和OpenStack的Swift对象接口兼容的API。
    • RBD:通过librbd库提供了块存储访问接口。RBD通过Linux内核客户端和QEMU/KVM驱动来提供一个分布式的块设备。它可以为虚拟机提供虚拟磁盘,或者通过内核映射为物理主机提供磁盘空间。
    • CEPH FS:目前提供两种接口,一种是标准的posix接口,另一种通过libcephfs库提供文件系统访问接口。文件系统的元数据服务器MDS用于提供元数据访问。数据直接通过librados库访问。

Ceph在应用场景的局限性

局限有哪些?

Ceph虽然提供了RBD、RGW、CephFS三种应用服务,可以支持大部分应用场景和需求,但一部分特定场景仍需要解决。

  • 兼容性:基于IP/FC-SAN的遗留应用程序需要,这些应用程序针对VMware(70%+),Hyperv,Xen等。
  • 高级特性:(1)Multipath & load balance (Active/Active),(2)VMware VAAI (vStorage APIs for Array Integration),(3)Windows ODX (Offloaded Data Transfer)。

为什么存在局限?

局限原因:上述场景需要提供块接口支持,而RBD虽然有librbd和KRBD两种方式,但仍有如下限制。

  • Librbd用户态接口,普通应用不能直接使用,需要适配Librbd提供的接口,客户经常用到的VMWare EXSi、Windows/Solaris操作系统是无法直接对接librbd,导致兼容性上的局限。
  • KRBD通过rbd map方式将image在客户端映射成本地块设备,虽然在兼容性上有提高,但只能部署在linux高内核版本系统,上面兼容性部分场景仍无法满足。
  • Multipath等高级特性也无法直接对接rbd image,但KRBD在不同客户端映射的本地块设备也是不同的wwn,因此也无法支持。

如何解决局限?

上面Ceph无法满足的特性场景在业界解决的通用方法就是使用iSCSI。块接口与SCSI块设备读写所要求的接口也比较一致,可以使用RBD作为SCSI 存储系统后端。因此在Ceph的基础上提供对接iSCSI能力就成为解决上面问题的最好方案。

什么是iSCSI?

SCSI

小型计算机系统接口(Small Computer System Interface;简写:SCSI),一种用于计算机和外部设备之间(硬盘、光驱、软驱、打印机等)系统级接口的独立处理器标准。SCSI是一种智能的通用接口标准,它是各种计算机和外部设备之间的接口标准。其发展历程可参考SCSI维基百科

客户端-服务器架构

下面部分内容参考:iSCSI存储和存储多路径介绍
在这里插入图片描述

  • 客户端࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值