Ceph

Ceph是一个分布式的存储系统,可以在统一的系统中提供唯一的对象、块和文件存储。

名词解释:

  1. RADOS: 由自我修复、自我管理、智能存储节点组成的可靠、自主、分布式对象存储
  2. LIBRADOS: 一个允许应用程序直接访问 RADO 的库,支持 C、C++、Java、Python、Ruby 和 PHP
  3. RADOSGW: 基于存储桶的 REST网关,兼容s3和Swift
  4. RBD: 一个负责任的,完全-分布式块设备,使用Linux内核cliont和QEMU/KVM驱动程序
  5. CEPHFS: 符合POSIX标准的分发文件系统,具有Linux内核客户端和对FUSE的支持

进程结构:

  1. 1. Ceph监视器(ceph-mon):用来维护集群状态的映射,包括监视器映射,管理器映射,OSD映射,MDS映射和CRUSH映射,这些映射是ceph守护程序相互协调所需的关键状态,另外还负责客户端到ceph存储的身份验证;通常要实现高可用,需要3个或以上的ceph-mon服务
  2. 2. Ceph管理器(ceph-mgr):ceph manager守护进程负责跟踪运行时指标和ceph集群当前的状态,包括存储利用率,当前性能指标和系统负载等,ceph-mgr还托管一些python模块,以实现基于web的ceph仪表盘和rest api,通常要实现高可用至少需要2个ceph-mgr进程,通常ceph-mon和ceph-mgr个数相同,1个ceph-mon同节点会伴随1个ceph-mgr守护进程。Mgr有主从之分。
  3. 3. Ceph对象存储(ceph-osd):Ceph OSD是对象存储守护程序,是用来存储数据的核心组件,实现数据存储、数据复制和恢复、数据的重新平衡,并会检查其他Ceph OSD守护程序的心跳来向ceph-mon和ceph-mgr提供一些监控信息,通常至少需要3个ceph-osd才能实现冗余和高可用性,部署的时候ceph-osd会和ceph-mon分开节点部署.
  4. 4. Ceph元数据服务(ceph-mds):Ceph MDS为ceph文件系统存储元数据,注意Ceph块设备和对象存储不用mds存储元数据,Ceph MDS允许POSIX文件系统用户执行基本命令,而不会将压力都集中到Ceph OSD集群上,通常mds可以选择部署至少2个节点,可以和其他组件一起也可以分开。Mds有主从之分。

存储过程:首先osd需要干净的磁盘或分区。为文件计算一个值,根据值放在某个pg上(pg属于某个osd),文件的其他副本放到其他osd上。

文件实际是使用对象存储存到osd上,因为脱离了linux文件系统,所以无法在磁盘直观的看到文件,只能通过ceph挂载查看。

Gluster

Gluster 是一个可扩展的分布式文件系统。有点像nfs,可以把gluster-server所在节点的目录作为存储目录,gluster-client进行挂载。

进程结构:gluster-server进程,gluster-client进程。

卷类型:

  1. 分布卷:如文件1放在节点1,文件2放在节点2。
  2. 复制卷,有两个server节点,文件1在两个节点都存有一份文件。
  3. 分散卷:文件1分成两块,一块放在节点1,另一块放在节点2,这样读写更快。
  4. 分布复制卷:节点 1234,文件1在节点12,文件2在节点34。
  5. 分布分散,节点1234,文件1的两块各在12,文件2的两块各在34。

高可用gluster-server部署两个以上的节点,gluster-server没有主从之分、是对等的。通过复制卷可以实现数据高可用,一个文件分别存在两个节点上,有一个节点宕机,文件依然能正常读写。

Longhorn

Longhorn 是一款Kubernetes 分布式块存储系统。只能用k8s部署。

进程结构:

  1. Longhorn Backing Image Manager:支持磁盘中的备份映像下载、同步和删除
  2. Longhorn Engine:核心控制器/副本逻辑。每个卷对应一个engine。
  3. Longhorn Instance Manager:控制器/副本实例生命周期管理
  4. Longhorn Manager:Longhorn 编排,包括适用于 Kubernetes 的 CSI 驱动程序
  5. Longhorn Share Manager:NFS 置备程序,将 Longhorn 卷公开为 ReadWriteMany 卷
  6. Longhorn UI:NFS 置备程序,将 Longhorn 卷公开为 ReadWriteMany 卷

高可用:卷有多个副本(可设置),卷默认目录/var/lib/longhorn,进程pod在各节点都有运行。

容器通过pv使用卷,文件在宿主机目录不能查看。

比较

Ceph

Gluster

Longhorn

定位

分布式存储系统

分布式文件系统

分布式块存储系统

使用Linux文件系统

进程种类

4

2

6

安装方式

手动安装、k8s

手动安装

K8s

安装维护难度

UI页面

可额外加

额外功能

块存储、对象存储

可视化页面维护卷、快照、备份、恢复、定时任务

官方最低硬件

(cpu/ram/disk)

Osd:1c,4g

Mon:2c,5g,100g

Mds:2c,2g,1g

3节点,每个节点4c,4g

Pod配置卷

支持

1.25移除

不支持

PV持久卷

支持

支持

高可用故障测试

有停顿时间,无法读写,等待pg降级

有停顿时间,无法读写

缺点

安装、维护复杂

不能通过pv使用,测试同步文件有两秒延迟

宿主机无法查看文件,运维无法在宿主机生成配置文件

优点

功能全

使用简单

K3s推荐使用