ceph简介及简单安装步骤
Posted Well_Name
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ceph简介及简单安装步骤相关的知识,希望对你有一定的参考价值。
简介
Ceph 存储集群至少需要 1 个 Ceph Monitor 和 2 个 OSD 守护进程
运行Ceph 文件系统客户端时,则必须要有元数据服务器(Metadata Server )。
- Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能:存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向Ceph Monitors 提供一些监控信息。当Ceph 存储集群设定为有2 个副本时,至少需要2 个OSD 守护进程,集群才能达到active+clean 状态( Ceph 默认有3 个副本,但你可以调整副本数)。
- Monitors: Ceph Monitor 维护着展示集群状态的各种图表,包括监视器映射、OSD 映射、归置组( PG )映射、和CRUSH 映射。Ceph 保存着发生在Monitors 、OSD 和PG 上的每一次状态变更的历史信息(称为epoch )。
- MDSs: Ceph 元数据服务器(MDS )为Ceph 文件系统存储元数据(也就是说,Ceph块设备和Ceph对象存储不使用MDS)。元数据服务器使得POSIX文件系统的用户们,可以在不对Ceph存储集群造成负担的前提下,执行诸如ls、find等基本命令。
Ceph 把客户端数据保存为存储池内的对象。通过使用CRUSH 算法,Ceph 可以计算出哪个归置组(PG)应该持有指定的对象(Object),然后进一步计算出哪个OSD 守护进程持有该归置组。CRUSH 算法使得Ceph 存储集群能够动态地伸缩、再均衡和修复。
硬件推荐
Ceph 为普通硬件设计,这可使构建、维护PB 级数据集群的费用相对低廉。规划集群硬件时,需要均衡几方面的因素,包括区域失效和潜在的性能问题。硬件规划要包含把使用Ceph 集群的Ceph 守护进程和其他进程恰当分布。通常,我们推荐在一台机器上只运行一种类型的守护进程。我们推荐把使用数据集群的进程(如OpenStack 、CloudStack 等)安装在别的机器
上。
- 写密集语义:记日志涉及写密集语义,所以你要确保选用的SSD 写入性能和硬盘相当或好于硬盘。廉价SSD 可能在加速访问的同时引入写延时,有时候高性能硬盘的写入速度可以和便宜SSD 相媲美。
- 顺序写入:在一个SSD 上为多个OSD 存储多个日志时也必须考虑SSD 的顺序写入极限,因为它们要同时处理多个OSD 日志的写入请求。
- 分区对齐:采用了SSD的一个常见问题是人们喜欢分区,却常常忽略了分区对齐,这会导致SSD 的数据传输速率慢很多,所以请确保分区对齐了。
SSD 用于对象存储太昂贵了,但是把OSD 的日志存到SSD 、把对象数据存储到独立的硬盘可以明显提升性能。osd journal选项的默认值是/var/lib/ceph/osd/$cluster-$id/journal,你可以把它挂载到一个SSD 或SSD 分区,这样它就不再是和对象数据一样存储在同一个硬盘上的文件了。
提升CephFS 文件系统性能的一种方法是从CephFS 文件内容里分离出元数据。Ceph 提供了默认的metadata存储池来存储CephFS 元数据,所以你不需要给CephFS 元数据创建存储池,但可以给它创建一个仅指向某主机SSD 的CRUSH 运行图。详见给存储池指定OSD 。
控制器
硬盘控制器对写吞吐量也有显著影响,要谨慎地选择,以免产生性能瓶颈。
Tip
其他注意事项
你可以在同一主机上运行多个OSD ,但要确保OSD 硬盘总吞吐量不超过为客户端提供读写服务所需的网络带宽;还要考虑集群在每台主机上所存储的数据占总体的百分比,如果一台主 机所占百分比太大而它挂了,就可能导致诸如超过full ratio 的问题,此问题会使Ceph 中止运作以防数据丢失。
如果每台主机运行多个OSD ,也得保证内核是最新的。参阅操作系统推荐里关于glibc 和syncfs(2) 的部分,确保硬件性能可达期望值。
- Ceph 内核态客户端
当前我们推荐:
- 4.1.4 or later
- 3.16.3 or later (rbd deadlock regression in 3.16.[0-2])
- NOT v3.15.* (rbd deadlock regression)o 3.14.*
如果您坚持用很旧的,可以考虑这些:
o 3.10.*
- B-tree文件系统(Btrfs)
如果您想在btrfs上运行Ceph ,我们推荐使用一个最新的Linux 内核(3.14 或更新)。
系统平台
下面的表格展示了Ceph 需求和各种Linux 发行版的对应关系。一般来说,Ceph 对内核和系统初始化阶段的依赖很少(如sysvinit 、upstart 、systemd )。
INFERNALIS (9.1.0)
Distro | Release | Code Name | Kernel | Notes | Testing |
CentOS | 7 | N/A | linux-3.10.0 | B, I, C | |
Debian | 8.0 | Jessie | linux-3.16.0 | 1, 2 | B, I |
Fedora | 22 | N/A | linux-3.14.0 | B, I | |
RHEL | 7 | Maipo | linux-3.10.0 | B, I | |
Ubuntu | 14.04 | Trusty Tahr | linux-3.13.0 | B, I, C |
HAMMER (0.94)
Distro | Release | Code Name | Kernel | Notes | Testing |
- 1: 默认内核 btrfs 版本较老,不推荐用于 ceph-osd 存储节点;要升级到推荐的内核,或者改用 xfs 、 ext4 。
- 2: 默认内核带的Ceph 客户端较老,不推荐做内核空间客户端(内核RBD 或Ceph 文件系统),请升级到推荐内核。
- 3: 默认内核或已安装的 glibc 版本若不支持 syncfs(2) 系统调用,同一台机器上使用 xfs 或 ext4 的 ceph-osd 守护进程性能不会如愿。
测试版
- B: 我们会为此平台构建发布包。对其中的某些平台,可能也会持续地编译所有分支、做基本单元测试。
- I: 我们在这个平台上做基本的安装和功能测试。
- C: 我们在这个平台上持续地做全面的功能、退化、压力测试,包括开发分支、预发布版本、正式发布版本。
- 获取二进制包
- 获取源码包
- 克隆源码
- 构建Ceph
获取二进制包
要安装Ceph 及其依赖软件,你需要参考本手册从Ceph 软件库下载,然后继续看安装Ceph对象存储。
获取软件包
有两种方法获取软件包:
- 增加源:增加源是获取二进制包的最简方法,因为多数情况下包管理工具都能自动下载、并解决依赖关系。然而,这种方法要求各Ceph 节点都能连接互联网。
- 手动下载:如果你的环境不允许Ceph 节点访问互联网,手动下载软件包安装Ceph
Tip
CPU
Ceph (MDS)元数据服务器对CPU 敏感,它会动态地重分布它们的负载,所以你的元数据服务器应该有足够的处理能力(如4 核或更强悍的CPU )。Ceph 的OSD 运行
着RADOS 服务、用CRUSH 计算数据存放位置、复制数据、维护它自己的集群运行图副本,因此OSD 需要一定的处理能力(如双核CPU )。监视器只简单地维护着集群运行图的副本,因此对CPU 不敏感;但必须考虑机器以后是否还会运行Ceph 监视器以外的CPU 密集型任务。例如,如果服务器以后要运行用于计算的虚拟机(如OpenStack Nova ),你就要确保给黑苹果基础安装经验