一、存储发展

数据存储是人类永恒的话题和不断探索的主题

二、存储的三种方式

2.1 块存储

ceph块存储的特性包括跨平台性吗(基于Ceph对象存储构建实践)(1)

2.1.1 DAS

直接附加存储(Directed Attached Storage,DAS)作为一种最简单的外接存储方式,通过数据线直接连接在各种服务器或客户端扩展接口上。它本身是硬件的堆叠,不带有任何存储操作系统,因而也不能独立于服务器对外提供存储服务。DAS常见的形式是外置磁盘阵列,通常的配置就是RAID控制器 一堆磁盘。DAS方便安装、成本较低的特性使其特别适合于对存储容量要求不高、服务器数量较少的中小型数据中心。

2.1.2 SAN

存储区域网络(Storage Area Network,简称SAN),SAN默认指FC-SAN,SAN存储有两种结构:

  1. FC-SAN典型的SAN利用光纤通道(Fiber Channel,FC)技术连接节点,并使用光纤通道交换机(FC Switch)提供网络交换。不同于通用的数据网络,存储区域网络中的数据传输基于FC协议栈。在FC协议栈之上运行的SCSI协议提供存储访问服务。与之相对的iSCSI存储协议,则提供了一种低成本的替代方式,即将SCSI协议运行于TCP/IP协议栈之上。为了区别这两种存储区域网络,前者通常称为FC-SAN,后者称为IP-SAN。
  2. IP-SAN由于FC-SAN的高成本,人们就开始考虑构建基于以太网技术的存储网络,使得的iSCSI可以实现在IP网络上运行SCSI协议。但是在SAN中,传输的指令是 SCSI的读写指令,不是IP数据包。iSCSI(互联网小型计算机系统接口)是一种在TCP/IP上进行数据块传输的标准。它是由Cisco和IBM两家发起的,并且得到了各大存储厂商的大力支持。iSCSI可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行快速的数据存取备份操作。为了与之前基于光纤技术的FC-SAN区分开来,这种技术被称为IP-SAN。
优点
缺点

2.2 NAS存储

ceph块存储的特性包括跨平台性吗(基于Ceph对象存储构建实践)(2)

图片来源:redhat官网

Network Attached Storage 网络附加存储,采用 NFS 或 CIFS 协议访问数据,以文件为传输协议,通过 TCP/IP实现网络化存储,可扩展性好、价格便宜、用户易管理,如目前在集群计算中应用较多的NFS文件系统。

优点
缺点

2.3 对象存储

ceph块存储的特性包括跨平台性吗(基于Ceph对象存储构建实践)(3)

块存储读写快、不利于数据共享,文件存储数据共享方便、但是读写慢,能否弄一个读写快而且可以共享数据的存储,于是对象存储就诞生了。块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构。

2.3.1 3个核心概念

1、对象

对象是对象存储中的最小单元,比如照片就是一个对象,对象由元数据信息(MataData,包含Length,lastModify等),用户数据(Data),用户自定义的数据信息(拍摄者、拍摄设备等)和文件名(Key)组成。

ceph块存储的特性包括跨平台性吗(基于Ceph对象存储构建实践)(4)

2、存储桶

作为存放对象的容器

3、用户

对象存储的使用者,存储桶的拥有者,每个用户使用AccessKeyId 和 SecretAccessKey对称加密的方法来验证某个请求的发送者身份。

2.3 对象存储适合存什么

用来存海量非结构化数据的,对象存储将数据以对象的方式存储,而不是以传统的文件和数据块的形式存储,每个对象都要存储数据、元数据和一个唯一的标识符。

缺点

优点

三、基于Ceph的对象存储构建实践

3.1 什么是Ceph

加州大学 Santa Cruz 分校的 Sage Weil(DreamHost 的联合创始人)博士论文设计的新一代自由软件分布式文件系统。软件定义存储(Software Defined Storage, SDS),统一的存储解决方案,提供了三种存储方式:块存储、文件存储、对象存储。Ceph的架构如下:

ceph块存储的特性包括跨平台性吗(基于Ceph对象存储构建实践)(5)

图片来源:Ceph官网

3.2 Ceph组件

3.3 Ceph的特点

3.4 基于Ceph的对象存储实践

客户端通过 4,7 层负载均衡,基于HTTP协议,将请求转发至对象存储网关(Rados GateWay), 对象存储网关通过Sockets与集群通信,至此,完成了整个数据的传输。

ceph块存储的特性包括跨平台性吗(基于Ceph对象存储构建实践)(6)

3.5 用户认证

ceph块存储的特性包括跨平台性吗(基于Ceph对象存储构建实践)(7)

  1. 应用在发送请求前,使用用户私有秘钥(secret key)、请求内容等,采用与RGW网关约定好的算法计算出数字签名后,将数字签名以及用户访问秘钥access_key封装在请求中发送给RGW网关
  2. RGW网关接受到请求后,使用用户访问秘钥作为索引送RADOS集群中读取用户信息,并从用户信息中获取到用户私有秘钥。
  3. 使用用户私有秘钥、请求内容等,采用与应用约定好的算法计算数字签名。
  4. 判断RGW生成的数字签名和请求的签名是否匹配,如果匹配,则认为请求是真实的,用户认证通过,如果匹配返回 S3 error: 403 (SignatureDoesNotMatch)

3.6 对象存储IO路径分析

ceph块存储的特性包括跨平台性吗(基于Ceph对象存储构建实践)(8)

应用通过http协议将请求发送至对象存储网关,网关收到 I/O 请求后,从http语义中解析出S3或Swift数据并进行一系列检查,检查通过后,根据不同API操作请求执行不同的数据处理逻辑,通过 librados 接口从 RADOS Cluster中 GET 或者 PUT 数据,完成整个I/O过程。


来源:宜信技术学院

作者:张健伟

,