Skip to content

Latest commit

 

History

History
65 lines (42 loc) · 4.89 KB

File metadata and controls

65 lines (42 loc) · 4.89 KB

Ceph存储类型

Ceph客户端包括许多服务接口:

  • 块设备:Ceph块设备(又称RBD)服务提供可调整大小、精简配置的块设备,并提供快照和克隆。Ceph跨集群划分块设备以获得高性能。Ceph既支持内核对象(KO),也支持直接使用librbdQEMU管理程序——避免了虚拟化系统的内核对象开销

  • 对象存储:Ceph对象存储服务(简称RGW)提供RESTful api,兼容Amazon S3OpenStack Swift接口

  • 文件系统:Ceph文件系统(cepphfs)服务提供一个兼容POSIX的文件系统,可以挂载,也可以作为用户空间中的文件系统(FUSE)使用。

1.Ceph块存储

块是字节序列(例如,512字节的数据块)。基于块的存储接口是使用旋转介质(如硬盘、CD、软盘,甚至传统的9磁道磁带)存储数据的最常用方法。 块设备接口的普遍性使得虚拟块设备成为与Ceph这样的海量数据存储系统交互的理想候选设备

Ceph块设备是精简配置的,可调整大小,并在Ceph集群中的多个OSD上存储数据条带化。 Ceph块设备利用RADOS功能,如快照、复制和一致性。 CephRADOS块设备(RBD)使用内核模块或librbd库与OSD交互

Cephblock设备以无限的可扩展性向内核模块或kvm(如QEMU)以及为基于云的计算系统(如OpenStack和CloudStack)提供高性能存储, 这些系统依赖libvirtQEMUCeph block设备集成。您可以使用同一集群同时操作Ceph-RADOS网关、CephFS文件系统和Ceph-block设备。

Ceph块设备在Ceph存储集群中的多个对象上划分块设备映像,每个对象映射到一个放置组并分布,放置组分布在整个集群中不同的ceph osd守护进程上。

精简配置的可快照Ceph块设备是虚拟化和云计算的一个有吸引力的选择。 在虚拟机场景中,人们通常在QEMU/KVM中部署带有rbd网络存储驱动程序的Ceph块设备,其中服务端使用librbd向客户端提供块设备服务。 许多云计算栈使用libvirt与管理程序集成。您可以通过QEMUlibvirt使用瘦配置的Ceph块设备来支持OpenStackCloudStack以及其他解决方案。

2.Ceph文件系统

Ceph文件系统(cepphfs)提供了posix兼容的文件系统作为一种服务,它是在基于对象的Ceph存储集群之上分层的。 cepfs文件映射到Ceph存储集群中存储的对象。Ceph客户端将cepfs文件系统挂载为内核对象或用户空间中的文件系统(FUSE)

Ceph文件系统服务包括部署在Ceph存储集群中的Ceph元数据服务器(MDS)。 MDS的目的是将所有文件系统元数据(目录、文件所有权、访问模式等)存储在高可用性Ceph元数据服务器中,元数据驻留在内存中。 MDS(称为Ceph - MDS的守护进程)存在的原因是,简单的文件系统操作,如列出目录或更改目录(ls、cd),会给ceph osd守护进程带来不必要的负担。 因此,将元数据从数据中分离出来意味着Ceph文件系统可以提供高性能服务,而不会对Ceph存储集群造成负担。

cepfs将元数据与数据进行分离,元数据存储在MDS中,文件数据存储在Ceph存储集群中的一个或多个对象中。 Ceph文件系统旨在与POSIX兼容。为了实现高可用性或可伸缩性,ceph-mds可以作为单个进程运行,也可以将其分发到多个物理机器。

  • 高可用:额外的ceph-mds实例可以是备用的,随时准备接管任何失效的active ceph-mds的职责。这很容易,因为包括日志在内的所有数据都存储在RADOS上。该转换由ceph-mon自动触发
  • 可扩展:多个ceph mds实例可以处于活动状态,它们将目录树拆分为子树(以及单个繁忙目录的碎片),从而有效地平衡所有活动服务器之间的负载

3.Ceph 对象存储

Ceph对象存储守护进程radosgw是一个FastCGI服务,它提供了一个RESTfulHTTP API来存储对象和元数据。 它以自己的数据格式在Ceph存储集群之上分层,并维护自己的用户数据库、身份验证和访问控制。 RADOS网关采用统一的命名空间,既可以使用OpenStack swift接口,也可以使用Amazon s3接口。 例如,一个应用使用s3兼容的API写入数据,另一个应用使用swift兼容的API读取数据

S3/Swift对象和存储集群对象对比:

CephObject Storage使用Object这个术语来描述它存储的数据。 S3Swift对象与Ceph写入Ceph存储集群的对象不同。 Ceph对象存储对象映射到Ceph存储集群对象。 S3Swift对象不一定与存储集群中存储的对象以1:1的方式对应。 S3Swift对象有可能映射到多个Ceph对象。