0
点赞
收藏
分享

微信扫一扫

ceph简介及简单安装步骤

简介

Ceph 存储集群至少需要 1 个 Ceph Monitor 和 2 个 OSD 守护进程

运行Ceph 文件系统客户端时,则必须要有元数据服务器(Metadata Server )。


ceph简介及简单安装步骤_linux

  1. Ceph OSDs: ​​Ceph OSD 守护进程​​ Ceph OSD )的功能:存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向Ceph Monitors 提供一些监控信息。Ceph 存储集群设定为有2 个副本时,至少需要2 OSD 守护进程,集群才能达到active+clean 状态 Ceph 默认有3 个副本,但你可以调整副本数)。
  2. Monitors: ​​Ceph Monitor ​​维护着展示集群状态的各种图表,包括监视器映射、OSD 映射、归置组( PG 映射、和CRUSH 映射Ceph 保存着发生在Monitors OSD PG 上的每一次状态变更的历史信息(称为epoch )。
  3. MDSs: ​​Ceph 元数据服务器​​MDS )为​​Ceph 文件系统​​存储元数据(也就是说,Ceph块设备和Ceph对象存储不使用MDS。元数据服务器使得POSIX文件系统的用户们,可以在不对Ceph存储集群造成负担的前提下,执行诸如lsfind等基本命令。
    Ceph 把客户端数据保存为存储池内的对象。通过使用CRUSH 算法,Ceph 可以计算出哪个归置组(PG)应该持有指定的对象(Object),然后进一步计算出哪个OSD 守护进程持有该归置组。CRUSH 算法使得Ceph 存储集群能够动态地伸缩、再均衡和修复。

硬件推荐​

Ceph 为普通硬件设计,这可使构建、维护PB 级数据集群的费用相对低廉。规划集群硬件时,需要均衡几方面的因素,包括区域失效和潜在的性能问题。硬件规划要包含把使用Ceph 集群的Ceph 守护进程和其他进程恰当分布。通常,我们推荐在一台机器上只运行一种类型的守护进程。我们推荐把使用数据集群的进程(如OpenStack CloudStack 等)安装在别的机器

上。

  1. 写密集语义:记日志涉及写密集语义,所以你要确保选用的SSD 写入性能和硬盘相当或好于硬盘。廉价SSD 可能在加速访问的同时引入写延时,有时候高性能硬盘的写入速度可以和便宜SSD 相媲美
  2. 顺序写入:在一个SSD 上为多个OSD 存储多个日志时也必须考虑SSD 的顺序写入极限,因为它们要同时处理多个OSD 日志的写入请求
  3. 分区对齐采用了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 ​​
控制器

硬盘控制器对写吞吐量也有显著影响,要谨慎地选择,以免产生性能瓶颈。

ceph简介及简单安装步骤_linux_02

  1. Tip

其他注意事项

你可以在同一主机上运行多个OSD ,但要确保OSD 硬盘总吞吐量不超过为客户端提供读写服务所需的网络带宽;还要考虑集群在每台主机上所存储的数据占总体的百分比,如果一台主 机所占百分比太大而它挂了,就可能导致诸如超过full ratio 的问题,此问题会使Ceph 中止运作以防数据丢失。

如果每台主机运行多个OSD ,也得保证内核是最新的。参阅​​操作系统推荐​​里关于glibc syncfs(2) 的部分,确保硬件性能可达期望值。

  1. Ceph 内核态客户
    当前我们推荐:
  1. 4.1.4 or later
  2. 3.16.3 or later (rbd deadlock regression in 3.16.[0-2])
  3. NOT v3.15.* (rbd deadlock regression)o 3.14.*

    如果您坚持用很旧的,可以考虑这些:

    o 3.10.*
  1. 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. 1: 默认内核 btrfs 版本较老,不推荐用于 ceph-osd 存储节点;要升级到推荐的内核,或者改用 xfs ext4
  2. 2: 默认内核带的Ceph 客户端较老,不推荐做内核空间客户端(内核RBD Ceph 文件系统),请升级到推荐内核
  3. 3: 默认内核或已安装的 glibc 版本若不支持 syncfs(2) 系统调用,同一台机器上使用 xfs ext4 ceph-osd 守护进程性能不会如愿
    测试版
  4. B: 我们会为此平台构建发布包。对其中的某些平台,可能也会持续地编译所有分支、做基本单元测试
  5. I: 我们在这个平台上做基本的安装和功能测试
  6. C: 我们在这个平台上持续地做全面的功能、退化、压力测试,包括开发分支、预发布版本、正式发布版本
  7. ​​获取二进制包​​
  8. ​​获取源码包​​
  9. ​​克隆源码​​
  10. ​​构建Ceph​​

获取二进制包​

要安装Ceph 及其依赖软件,你需要参考本手册从Ceph 软件库下载,然后继续看​​安装Ceph​​​​象存储​​

获取软件包

有两种方法获取软件包:

  1. 增加源:增加源是获取二进制包的最简方法,因为多数情况下包管理工具都能自动下载、并解决依赖关系。然而,这种方法要求各​​Ceph 节点​​都能连接互联网
  2. 手动下载:如果你的环境不允许​​Ceph 节点​​访问互联网,手动下载软件包安装Ceph



ceph简介及简单安装步骤_服务器_03

Tip

CPU

Ceph MDS元数据服务器对CPU 敏感,它会动态地重分布它们的负载,所以你的元数据服务器应该有足够的处理能力(如4 核或更强悍的CPU )。Ceph OSD 运行

​​RADOS ​​服务、用​​CRUSH ​​计算数据存放位置、复制数据、维护它自己的集群运行图副本,因此OSD 需要一定的处理能力(如双核CPU )。监视器只简单地维护着集群运行图的副本,因此对CPU 不敏感;但必须考虑机器以后是否还会运行Ceph 监视器以外的CPU 密集型任务。例如,如果服务器以后要运行用于计算的虚拟机(如OpenStack Nova ),你就要确保给Ceph 进程保留了足够的处理能力,所以我们推荐在其他机器上运行CPU 密集型任务。

RAM 内存

元数据服务器和监视器必须可以尽快地提供它们的数据,所以他们应该有足够的内存,至少每 进程1GB OSD 的日常运行不需要那么多内存(如每进程500MB )差不多了;然而在恢复期间它们占用内存比较大(如每进程每TB 数据需要约1GB 内存)。通常内存越多越好。

数据存储​

要谨慎地规划数据存储配置,因为其间涉及明显的成本和性能折衷。来自操作系统的并行操作 和到单个硬盘的多个守护进程并发读、写请求操作会极大地降低性能。文件系统局限性也要考 虑:btrfs 尚未稳定到可以用于生产环境的程度,但它可以同时记日志并写入数据,而xfs ext4 却不能。


ceph简介及简单安装步骤_linux_04

Important

硬盘驱动器

OSD 应该有足够的空间用于存储对象数据。考虑到大硬盘的每GB 成本,我们建议用容量大1TB 的硬盘。建议用GB 数除以硬盘价格来计算每GB 成本,因为较大的硬盘通常会对每GB 成本有较大影响,例如,单价为$75 1TB 硬盘其每GB 价格为$0.07

$75/1024=0.0732 ),又如单价为$150 3TB 硬盘其每GB 价格为$0.05


$150/3072=0.0488 ,这样使用1TB 硬盘会增加40% 的每GB 价格,它将表现为较低的经济性。另外,单个驱动器容量越大,其对应的OSD 所需内存就越大,特别是在重均衡、回填、恢复期间。根据经验,1TB 的存储空间大约需要1GB 内存。


ceph简介及简单安装步骤_守护进程_05

ceph简介及简单安装步骤_守护进程_06


ceph简介及简单安装步骤_linux_07

ceph简介及简单安装步骤_守护进程_08

存储驱动器受限于寻道时间、访问时间、读写时间、还有总吞吐量,这些物理局限性影响着整体系统性能,尤其在系统恢复期间。因此我们推荐独立的驱动器用于安装操作系统和软件,另外每个OSD 守护进程占用一个驱动器。大多数“slow OSD”问题的起因都是在相同的硬盘上运行了操作系统、多个OSD 、和/或多个日志文件。鉴于解决性能问题的成本差不多会超过另外增加磁盘驱动器,你应该在设计时就避免增加OSD 存储驱动器的负担来提升性能。

Ceph 允许你在每块硬盘驱动器上运行多个OSD ,但这会导致资源竞争并降低总体吞吐量;Ceph 也允许把日志和对象数据存储在相同驱动器上,但这会增加记录写日志并回应客户端的延时,因为Ceph 必须先写入日志才会回应确认了写动作btrfs 文件系统能同时写入日志数据和对象数据,xfs ext4 却不能。

Ceph 最佳实践指示,你应该分别在单独的硬盘运行操作系统、OSD 数据和OSD 日志。

固态硬盘

一种提升性能的方法是使用固态硬盘( SSD )来降低随机访问时间和读延时,同时增加吞吐量。SSD 和硬盘相比每GB 成本通常要高10 倍以上,但访问时间至少比硬盘快100 倍。

SSD 没有可移动机械部件,所以不存在和硬盘一样的局限性。但SSD 也有局限性,评估SSD 时,顺序读写性能很重要,在为多个OSD 存储日志时,有着400MB/s 顺序读写吞吐量的SSD 其性能远高于120MB/s 的。


ceph简介及简单安装步骤_服务器_09

ceph简介及简单安装步骤_linux_10


正因为SSD 没有移动机械部件,所以它很适合Ceph 里不需要太多存储空间的地方。相对廉价的SSD 很诱人,慎用!可接受的IOPS 指标对选择用于Ceph SSD 还不够,用于日志和SSD 时还有几个重要考量:


OSD 数量较多(如20 个以上)的主机会派生出大量线程,尤其是在恢复和重均衡期间。很多

ceph简介及简单安装步骤_linux_11Linux 内核默认的最大线程数较小(如32k 个),如果您遇到了这类问题,可以把kernel.pid_max 值调高些。理论最大值是4194303 。例如把下列这行加

/etc/sysctl.conf 文件:


ceph简介及简单安装步骤_守护进程_12

网络​

建议每台机器最少两个千兆网卡,现在大多数机械硬盘都能达到大概100MB/s 的吞吐量,网卡应该能处理所有OSD 硬盘总吞吐量,所以推荐最少两个千兆网卡,分别用于公网(前端)和集群网络(后端)。集群网络(最好别连接到国际互联网)用于处理由数据复制产生的额外负载,而且可防止拒绝服务攻j,拒绝服务攻j会干扰数据归置组,使之在OSD 数据复制时不能回到active + clean 状态。请考虑部署万兆网卡。通过1Gbps 网络复制1TB 数据耗时3 小时,而3TB (典型配置)需要9 小时,相比之下,如果使用10Gbps 复制时间可分别缩减到20 分钟和1 小时。在一个PB 级集群中,OSD 磁盘失败是常态,而非异常;在性价比合理的的前提下,系统管理员想让PG 尽快从degraded (降级)状态恢复到active + clean 状态。另外,一些部署工具(如Dell Crowbar )部署了5 个不同的网络,但使用了VLAN 以提高网络和硬件可管理性。VLAN 使用802.1q 协议,还需要采用支持VLAN 功能的网卡和交换机,增加的硬件成本可用节省的运营(网络安装、维护)成本抵消。使用VLAN 来处理集群和计算栈(如OpenStack CloudStack 等等)之间的VM 流量时,采用10G 网卡仍然值得。每个网络的机架路由器到核心路由器应该有更大的带宽,如40Gbps 100Gbps

服务器应配置底板管理控制器(Baseboard Management Controller, BMC ,管理和部署工具也应该大规模使用BMC 所以请考虑带外网络管理的成本/效益平衡,此程序管理着SSH 访问、VM 映像上传、操作系统安装、端口管理、等等,会徒增网络负载。运营3 个网络有点过分,但是每条流量路径都指示了部署一个大型数据集群前要仔细考虑的潜能力、吞吐量、 性能瓶颈。

故障域​

故障域指任何导致不能访问一个或多个OSD 的故障,可以是主机上停止的进程、硬盘故障、操作系统崩溃、有问题的网卡、损坏的电源、断网、断电等等。规划硬件需求时,要在多个需 求间寻求平衡点,像付出很多努力减少故障域带来的成本削减、隔离每个潜在故障域增加的成 本。


最低硬件推荐​

Ceph 可以运行在廉价的普通硬件上,小型生产集群和开发集群可以在一般的硬件上。

进程

条件

最低建议

ceph-osd

Processor

  1. 1x 64-bitAMD-64
  2. 1x 32-bit ARM dual-core orbetter
  3. 1x i386dual-core

RAM

~1GB for 1TB of storage per daemon

Volume Storage

1x storage drive per daemon

Journal

1x SSD partition per daemon (optional)

Network

2x 1GB Ethernet NICs

ceph-mon

Processor

  1. 1x 64-bitAMD-64/i386
  2. 1x 32-bit ARM dual-core orbetter
  3. 1x i386dual-core

RAM

1 GB per daemon

Disk Space

10 GB per daemon

Network

2x 1GB Ethernet NICs

ceph-mds

Processor

  1. 1x 64-bit AMD-64quad-core
  2. 1x 32-bit ARMquad-core
  3. 1x i386quad-core

RAM

1 GB minimum per daemon

Disk Space

1 MB per daemon

Network

2x 1GB Ethernet NICs

ceph简介及简单安装步骤_服务器_13

ceph简介及简单安装步骤_守护进程_14


生产集群实例​

PB 级生产集群也可以使用普通硬件,但应该配备更多内存、CPU 和数据存储空间来解决流量压力。

DELL 实例​​​​

一个最新( 2012 Ceph 集群项目使用了2 个相当强悍的OSD 硬件配置,和稍逊的监视器配置。

Configuration

Criteria

Minimum Recommended

Dell PE R510

Processor

2x 64-bit quad-core Xeon CPUs

RAM

16 GB

Volume Storage

8x 2TB drives. 1 OS, 7 Storage

Client Network

2x 1GB Ethernet NICs

OSD Network

2x 1GB Ethernet NICs

Mgmt. Network

2x 1GB Ethernet NICs

Dell PE R515

Processor

1x hex-core Opteron CPU

RAM

16 GB


Configuration

Criteria

Minimum Recommended

Volume Storage

12x 3TB drives. Storage

OS Storage

1x 500GB drive. Operating System.

Client Network

2x 1GB Ethernet NICs

OSD Network

2x 1GB Ethernet NICs

Mgmt. Network

2x 1GB Ethernet NICs

推荐操作系统​

CEPH 依赖​

按常规来说,我们建议在较新的Linux 发行版上部署Ceph ;同样,要选择长期支持的版本。

LINUX 内核


firefly (CRUSH_TUNABLES3) 这个版本的可调选项到3.15 版才开始支持。详情见​​CRUSH 可调值 ​​


Distro

Release

Code Name

Kernel

Notes

Testing

CentOS

6

N/A

linux-2.6.32

1, 2

CentOS

7

N/A

linux-3.10.0

B, I, C

Debian

7.0

Wheezy

linux-3.2.0

1, 2

Ubuntu

12.04

Precise Pangolin

linux-3.2.0

1, 2

Ubuntu

14.04

Trusty Tahr

linux-3.13.0

B, I, C

FIREFLY (0.80)

Distro

Release

Code Name

Kernel

Notes

Testing

CentOS

6

N/A

linux-2.6.32

1, 2

B, I

CentOS

7

N/A

linux-3.10.0

B

Debian

6.0

Squeeze

linux-2.6.32

1, 2, 3

B

Debian

7.0

Wheezy

linux-3.2.0

1, 2

B


Distro

Release

Code Name

Kernel

Notes

Testing

Fedora

19

Schrödinger’s Cat

linux-3.10.0

B

Fedora

20

Heisenbug

linux-3.14.0

B

RHEL

6

Santiago

linux-2.6.32

1, 2

B, I, C

RHEL

7

Maipo

linux-3.10.0

B, I, C

Ubuntu

12.04

Precise Pangolin

linux-3.2.0

1, 2

B, I, C

Ubuntu

14.04

Trusty Tahr

linux-3.13.0

B, I, C

附注


安装(快速)​

预检​

New in version 0.60.

我们建议安装一个ceph-deploy 管理​​节点​​和一个三节点的​​Ceph 存储集群​​来研究Ceph 的基本特性。这篇预检会帮你准备一个ceph-deploy 管理节点、以及三个Ceph 节点(或虚拟机),以此构成Ceph 存储集群。在进行下一步之前,请参见​​操作系统推荐​​以确认你安装了合适的Linux 发行版。如果你在整个生产集群中只部署了单一Linux 发行版的同一版本,那么在排查生产环境中遇到的问题时就会容易一点。

在下面的描述中​​节点​​代表一台机器。


ceph简介及简单安装步骤_linux_15

安装CEPH 部署工具​

Ceph 仓库添加到ceph-deploy 管理节点,然后安装ceph-deploy

高级包管理工具APT

Debian Ubuntu 发行版上,执行下列步骤:

  1. 添加release key
  2. 添加Ceph软件包源,用Ceph稳定版cuttlefishdumplingemperorfirefly等等)替换{ceph-stable-release}。例如:

ceph简介及简单安装步骤_linux_16

  1. 更新你的仓库,并安装 ceph-deploy


ceph简介及简单安装步骤_linux_17


ceph简介及简单安装步骤_服务器_18

ceph简介及简单安装步骤_linux_19

ceph简介及简单安装步骤_守护进程_20

红帽包管理工具RPM

ceph简介及简单安装步骤_守护进程_21ceph简介及简单安装步骤_linux_22ceph简介及简单安装步骤_守护进程_23Red Hat rhel6rhel7)、CentOS el6el7)和Fedora 19-20 f19 - f20)上执行下列步骤:

  1. RHEL7上,用subscription-manager注册你的目标机器,确认你的订阅,并启用安装依赖包的“Extras”软件仓库。例如:

ceph简介及简单安装步骤_linux_24

  1. RHEL6 上,安装并启用Extra Packages for Enterprise Linux (EPEL) 软件仓库。请查阅 ​​EPEL wiki ​​获取更多信息。
  2. CentOS 上,可以执行下列命令:
  3. 把软件包源加入软件仓库。用文本编辑器创建一个YUM (YellowdogUpdater, Modified) 库文件,其路径为/etc/yum.repos.d/ceph.repo。例如:

ceph简介及简单安装步骤_守护进程_25

ceph简介及简单安装步骤_linux_26把如下内容粘帖进去,用Ceph 的最新主稳定版名字替换{ceph-stable- release} firefly ,用你的Linux 发行版名字替换

{distro} el6 CentOS 6 el7 CentOS 7 rhel6 Red Hat

6.5 rhel7 Red Hat 7 fc19 Fedora 19 fc20 Fedora 20 )。最后保存到 /etc/yum.repos.d/ceph.repo 文件中。

ceph简介及简单安装步骤_服务器_27

  1. 更新软件库并安装 ceph-deploy


ceph简介及简单安装步骤_守护进程_28


ceph简介及简单安装步骤_服务器_29


ceph简介及简单安装步骤_服务器_30

ceph简介及简单安装步骤_linux_31

CEPH 节点安装​

ceph简介及简单安装步骤_守护进程_32ceph简介及简单安装步骤_linux_33ceph简介及简单安装步骤_linux_34你的管理节点必须能够通过SSH 无密码地访问各Ceph 节点。如果ceph-deploy 以某个普通用户登录,那么这个用户必须有无密码使用sudo 的权限。

安装NTP

我们建议在所有Ceph 节点上安装NTP 服务(特别是Ceph Monitor 节点),以免因时钟漂移导致故障,详情见​​时钟​​

CentOS / RHEL 上,执行:


ceph简介及简单安装步骤_守护进程_35

Debian / Ubuntu 上,执行:


ceph简介及简单安装步骤_服务器_36

确保在各Ceph 节点上启动了NTP 服务,并且要使用同一个NTP 服务器,详情见​​NTP ​​

安装SSH 服务器

所有Ceph 节点上执行如下步骤:

  1. 在各Ceph 节点安装SSH服务器(如果还没有):(debain)

ceph简介及简单安装步骤_服务器_37

或者(centos)

  1. 确保所有Ceph 节点上的SSH 服务器都在运行。


ceph简介及简单安装步骤_服务器_38

创建部署CEPH 的用户

ceph-deploy 工具必须以普通用户登录Ceph 节点,且此用户拥有无密码使用sudo 的权限,因为它需要在安装软件及配置文件的过程中,不必输入密码。

较新版的ceph-deploy 支持用--username 选项提供可无密码使用sudo 的用户名(包root ,虽然不建议这样做)。使用ceph-deploy --username {username} 令时,指定的用户必须能够通过无密码SSH 连接到Ceph 节点,因为ceph-deploy 中途不会提示输入密码。

我们建议在集群内的所有Ceph 节点上给ceph-deploy 创建一个特定的用户,但不要“ceph这个名字。全集群统一的用户名可简化操作(非必需),然而你应该避免使用知名用户名,因为黑客们会用它做暴力破j(root admin {productname} )。后续步骤描述了如何创建无sudo 密码的用户,你要用自己取的名字替换{username}


ceph简介及简单安装步骤_linux_39

Note

  1. 在各Ceph 节点创建新用户。

ceph简介及简单安装步骤_linux_40

  1. 确保各Ceph 节点上新创建的用户都有 sudo 权限。


ceph简介及简单安装步骤_服务器_41


ceph简介及简单安装步骤_守护进程_42

允许无密码SSH 登录

正因为ceph-deploy 不支持输入密码,你必须在管理节点上生成SSH 密钥并把其公钥分发到各Ceph 节点。ceph-deploy 会尝试给初始monitors 生成SSH 密钥对。

  1. 生成SSH密钥对,但不要用sudoroot用户。提示“Enterpassphrase时,直接回车,口令即为空:

ceph简介及简单安装步骤_服务器_43

  1. 把公钥拷贝到各Ceph节点,把下列命令中的{username}替换成前面​​创建部署 ​​​​Ceph 的用户​​里的用户名。

ceph简介及简单安装步骤_守护进程_44

  1. ceph简介及简单安装步骤_守护进程_45(推荐做法)修改ceph-deploy 管理节点上的~/.ssh/config 文件,这ceph-deploy 就能用你所建的用户名登录Ceph 节点了,而无需每次执


ceph-deploy 都要指定--username {username} 。这样做同时也简化ssh scp 的用法。把{username} 替换成你创建的用户名。


ceph简介及简单安装步骤_服务器_46

引导时联网

Ceph 的各OSD 进程通过网络互联并向Monitors 上报自己的状态。如果网络默认为off 那么Ceph 集群在启动时就不能上线,直到你打开网络。

某些发行版(如CentOS )默认关闭网络接口。所以需要确保网卡在系统启动时都能启动,这样Ceph 守护进程才能通过网络通信。例如,在Red Hat CentOS 上,需进

/etc/sysconfig/network-scripts 目录并确保ifcfg-{iface} 文件中ONBOOT 设置成了yes

确保联通性

ping 短主机名( hostname -s )的方式确认网络联通性。解决掉可能存在的主机名解析问题。



ceph简介及简单安装步骤_linux_47

Note

开放所需端口

Ceph Monitors 之间默认使用6789 端口通信,OSD 之间默认用6800:7300 这个范围内的端口通信。详情见​​网络配置参考​​Ceph OSD 能利用多个网络连接进行与客户端、monitors、其他OSD 间的复制和心跳的通信。

某些发行版(如RHEL )的默认防火墙配置非常严格,你可能需要调整防火墙,允许相应的入站请求,这样客户端才能与Ceph 节点上的守护进程通信。

对于RHEL 7 上的firewalld ,要对公共域开放Ceph Monitors 使用的6789 端口和

OSD 使用的6800:7300 端口范围,并且要配置为永久规则,这样重启后规则仍有效。例如:


ceph简介及简单安装步骤_服务器_48

若使用iptables ,要开放Ceph Monitors 使用的6789 端口和OSD 使用6800:7300 端口范围,命令如下:


ceph简介及简单安装步骤_服务器_49

在每个节点上配置好iptables 之后要一定要保存,这样重启之后才依然有效。例如:


ceph简介及简单安装步骤_linux_50

终端TTY

ceph简介及简单安装步骤_linux_51CentOS RHEL 上执行ceph-deploy 命令时可能会报错。如果你的Ceph 节点默认设置了requiretty ,执行sudo visudo 禁用它,并找到Defaults requiretty


项,把它改为Defaults:ceph !requiretty 或者直接注释掉,这样ceph- deploy 就可以用之前创建的用户(​​创建部署Ceph 的用户 ​​)连接了。


ceph简介及简单安装步骤_守护进程_52

ceph简介及简单安装步骤_linux_53

SELINUX

CentOS RHEL 上,SELinux 默认为Enforcing 开启状态。为简化安装,我们建议把SELinux 设置为Permissive 或者完全禁用,也就是在加固系统配置前先确保集群的安装、配置没问题。用下列命令把SELinux 设置为Permissive


ceph简介及简单安装步骤_守护进程_54

要使SELinux 配置永久生效(如果它的确是问题根源),需修改其配置文件/etc/selinux/config

优先级/首选项

确保你的包管理器安装了优先级/首选项包且已启用。在CentOS 上你也许得安装EPEL ,在

RHEL 上你也许得启用可选软件库。


ceph简介及简单安装步骤_守护进程_55

比如在RHEL 7 服务器上,可用下列命令安装yum-plugin-priorities 并启用rhel- 7-server-optional-rpms 软件库:


ceph简介及简单安装步骤_linux_56

总结​​​​

快速入门的预检部分到此结束,请继续​​存储集群快速入门​​


ceph简介及简单安装步骤_服务器_57存储集群快速入门​

如果你还没完成​​预检​​,请先做完。本篇快速入门ceph-deploy 从管理节点建立一​​Ceph 存储集群​​,该集群包含三个节点,以此探索Ceph 的功能。


ceph简介及简单安装步骤_linux_58

第一次练习时,我们创建一个Ceph 存储集群,它有一个Monitor 和两个OSD 守护进程。一旦集群达到active + clean 状态,再扩展它:增加第三个OSD 、增加元数据服务器和两个Ceph Monitors。为获得最佳体验,先在管理节点上创建一个目录,用于保存ceph- deploy 生成的配置文件和密钥对。


ceph简介及简单安装步骤_服务器_59

ceph-deploy 会把文件输出到当前目录,所以请确保在此目录下执行ceph-deploy


ceph简介及简单安装步骤_linux_60

如果你是用另一普通用户登录的,不要用sudo 或在root 身份运行ceph-deploy ,因

ceph简介及简单安装步骤_服务器_61


ceph简介及简单安装步骤_服务器_62

创建集群​

如果在某些地方碰到麻烦,想从头再来,可以用下列命令清除配置:


ceph简介及简单安装步骤_linux_63

用下列命令可以连Ceph 安装包一起清除:


ceph简介及简单安装步骤_服务器_64

如果执行了purge ,你必须重新安装Ceph

在管理节点上,进入刚创建的放置配置文件的目录,用ceph-deploy 执行如下步骤。

  1. 创建集群。

ceph简介及简单安装步骤_守护进程_65

例如:

ceph简介及简单安装步骤_守护进程_66

在当前目录下用ls cat 检查ceph-deploy 的输出,应该有一个Ceph 配置文件、一个monitor 密钥环和一个日志文件。详情见​​ceph-deploy new -h ​​

  1. Ceph 配置文件里的默认副本数从 3 改成 2 ,这样只有两个OSD 也可以达到 active + clean 状态。把下面这行加入 [global] 段:
  2. 如果你有多个网卡,可以把publicnetwork写入Ceph配置文件的[global]段下。详情见​​网络配置参考​​

ceph简介及简单安装步骤_linux_67

  1. 安装Ceph

ceph简介及简单安装步骤_linux_68

例如:

ceph简介及简单安装步骤_服务器_69

ceph简介及简单安装步骤_服务器_70ceph-deploy 将在各节点安装Ceph 注:如果你执行过ceph- deploy purge ,你必须重新执行这一步来安装Ceph

  1. 配置初始monitor(s)、并收集所有密钥:

ceph简介及简单安装步骤_linux_71

完成上述操作后,当前目录里应该会出现这些密钥环:

{cluster-name}.client.admin.keyring

  1. {cluster-name}.bootstrap-osd.keyring
  2. {cluster-name}.bootstrap-mds.keyring
  3. {cluster-name}.bootstrap-rgw.keyring


ceph简介及简单安装步骤_服务器_72


ceph简介及简单安装步骤_linux_73

ceph简介及简单安装步骤_服务器_74

Note


ceph简介及简单安装步骤_服务器_75

  1. 添加两个OSD。为了快速地安装,这篇快速入门把目录而非整个硬盘用于OSD守护进程。如何为OSD及其日志使用独立硬盘或分区,请参考​​ceph-deploy osd ​​。登录到Ceph节点、并给OSD守护进程创建一个目录。

ceph简介及简单安装步骤_linux_76

然后,从管理节点执行ceph-deploy 来准备OSD

ceph简介及简单安装步骤_守护进程_77

例如:

ceph简介及简单安装步骤_服务器_78

最后,激活OSD

ceph简介及简单安装步骤_linux_79

例如:

ceph简介及简单安装步骤_守护进程_80

  1. ceph-deploy 把配置文件和admin 密钥拷贝到管理节点和Ceph 节点,这样你每次执行Ceph 命令行时就无需指定monitor 地址和ceph.client.admin.keyring 了。
  2. 确保你对ceph.client.admin.keyring有正确的操作权限。

ceph简介及简单安装步骤_守护进程_81

  1. 检查集群的健康状况。


ceph简介及简单安装步骤_服务器_82

例如:


ceph简介及简单安装步骤_守护进程_83

ceph-deploy 和本地管理主机(admin-node )通信时,必须通过主机名可达。必要时可修改/etc/hosts ,加入管理主机的名字。


ceph简介及简单安装步骤_linux_84

peering 完成后,集群应该达到active + clean 状态。

操作集群​

ceph-deploy 部署完成后它会自动启动集群。要在Debian/Ubuntu 发行版下操作集群守护进程,参见​​Upstart 运行Ceph ​​;要在CentOS Red Hat Fedora SLES 下操作集群守护进程,参见​​sysvinit 运行Ceph ​​

关于peering 和集群健康状况请参见​​监控集群​​;关于OSD 守护进程和归置组(placement group )健康状况参见​​监控OSD 和归置组​​;关于用户管理请参见​​用户管理​​

Ceph 集群部署完成后,你可以尝试一下管理功能、rados 对象存储命令,之后可以继续快速入门手册,了解Ceph 块设备、Ceph 文件系统和Ceph 对象网关。


扩展集群(扩容)​

一个基本的集群启动并开始运行后,下一步就是扩展集群。在node1 上添加一个OSD 守护进程和一个元数据服务器。然后分别在node2 node3 上添加Ceph Monitor ,以形成Monitors 的法定人数。


ceph简介及简单安装步骤_linux_85

添加OSD

你运行的这个三节点集群只是用于演示的,把OSD 添加到monitor 节点就行。


ceph简介及简单安装步骤_服务器_86

然后,从ceph-deploy 节点准备OSD


ceph简介及简单安装步骤_服务器_87

例如:


ceph简介及简单安装步骤_服务器_88


最后,激活OSD


ceph简介及简单安装步骤_linux_89

例如:


ceph简介及简单安装步骤_服务器_90

一旦你新加了OSD Ceph 集群就开始重均衡,把归置组迁移到新OSD 。可以用下面ceph 命令观察此过程:


ceph简介及简单安装步骤_服务器_91

你应该能看到归置组状态从active + clean 变为active ,还有一些降级的对象;迁移完成后又会回到active + clean 状态(Control-C 退出)。

添加元数据服务器

至少需要一个元数据服务器才能使用CephFS ,执行下列命令创建元数据服务器:


ceph简介及简单安装步骤_守护进程_92

例如:


ceph简介及简单安装步骤_linux_93


ceph简介及简单安装步骤_服务器_94

Note

添加RGW 例程

要使用Ceph ​​Ceph 对象网关​​组件,必须部署​​RGW ​​例程。用下列方法创建新RGW 例程:


ceph简介及简单安装步骤_服务器_95

例如:


ceph简介及简单安装步骤_服务器_96

ceph简介及简单安装步骤_linux_97

ceph简介及简单安装步骤_linux_98

​​RGW ​​例程默认会监听7480 端口,可以更改该节点ceph.conf 内与​​RGW ​​相关的配置,如下:


ceph简介及简单安装步骤_linux_99

用的是IPv6 地址的话:


ceph简介及简单安装步骤_服务器_100

添加MONITORS

Ceph 存储集群需要至少一个Monitor 才能运行。为达到高可用,典型的Ceph 存储集群会运行多个Monitors,这样在单个Monitor 失败时不会影响Ceph 存储集群的可用性。Ceph 使用PASOX 算法,此算法要求有多半monitors1 2:3 3:4 3:5 4:6 )形成法定人数。

新增两个监视器到Ceph 集群。


ceph简介及简单安装步骤_linux_101

例如:


ceph简介及简单安装步骤_linux_102

新增Monitor 后,Ceph 会自动开始同步并形成法定人数。你可以用下面的命令检查法定人数状态:


ceph简介及简单安装步骤_服务器_103


ceph简介及简单安装步骤_服务器_104

Tip

存入/检出对象数据

要把对象存入Ceph 存储集群,客户端必须做到:

  1. 指定对象
  2. 指定​​存储池​​

Ceph 客户端检出最新集群运行图,用CRUSH 算法计算出如何把对象映射到​​归置组​​,然后动态地计算如何把归置组分配到OSD 。要定位对象,只需要对象名和存储池名字即可,例如:


ceph简介及简单安装步骤_linux_105

ceph简介及简单安装步骤_linux_106

ceph简介及简单安装步骤_linux_107


ceph简介及简单安装步骤_linux_108

为确认 Ceph 存储集群存储了此对象,可执行:


ceph简介及简单安装步骤_服务器_109

现在,定位对象:


ceph简介及简单安装步骤_linux_110

Ceph 应该会输出对象的位置,例如:


ceph简介及简单安装步骤_linux_111

``rados rm`` 命令可删除此测试对象,例如:


ceph简介及简单安装步骤_服务器_112

随着集群的运行,对象位置可能会动态改变。Ceph 有动态均衡机制,无需手动干预即可完成。

块设备快速入门​

要实践本手册,你必须先完成​​存储集群快速入门 ​​,并确保​​Ceph 存储集群​​active + clean 状态,这样才能使用​​Ceph 块设备​​

Note

Ceph 块设备也叫 ​​RB​​D ​​RADO​​S 块设备。


ceph简介及简单安装步骤_守护进程_113

你可以在虚拟机上运行ceph-client 节点,但是不能在与Ceph 存储集群(除非它们也用

VM )相同的物理节点上执行下列步骤。详情见​​FAQ ​​

安装CEPH

  1. 确认你使用了合适的内核版本,详情见​​操作系统推荐​​

ceph简介及简单安装步骤_linux_114

  1. 在管理节点上,通过ceph-deployCeph安装到ceph-client节点。

ceph简介及简单安装步骤_服务器_115

  1. 在管理节点上,用 ceph-deploy Ceph 配置文件

ceph.client.admin.keyring 拷贝到ceph-client 。​


ceph简介及简单安装步骤_服务器_116

ceph-deploy 工具会把密钥环复制到/etc/ceph 目录,要确保此密钥环文件有读权限

(如sudo chmod +r/etc/ceph/ceph.client.admin.keyring )。​

配置块设备

  1. ceph-client 节点上创建一个块设备image
  2. ceph-client节点上,把image映射为块设备。

ceph简介及简单安装步骤_linux_117

  1. ceph-client节点上,创建文件系统后就可以使用块设备了。

ceph简介及简单安装步骤_服务器_118

此命令可能耗时较长。

  1. ceph-client 节点上挂载此文件系统。


ceph简介及简单安装步骤_服务器_119


ceph简介及简单安装步骤_服务器_120

详情见​​块设备 ​​

CEPH 文件系统快速入门​

开始实践​​Ceph 文件系统​​入门手册前,必须先完成​​存储集群快速入门​​。在管理节点上完成此入门。

准备工作​

  1. 确认你使用了合适的内核版本,详情见​​操作系统推荐​​

ceph简介及简单安装步骤_守护进程_121

  1. 在管理节点上,通过ceph-deployCeph安装到ceph-client节点上。

ceph简介及简单安装步骤_服务器_122

  1. 确保​​Ceph 存储集群​​在运行,且处于 active + clean 状态。同时,确保至少有一​​Ceph 元数据服务器​​在运行。


ceph简介及简单安装步骤_linux_123


ceph简介及简单安装步骤_守护进程_124

创建文件系统​

虽然已创建了元数据服务器(​​存储集群快速入门​​),但如果你没有创建存储池和文件系统,它 是不会变为活动状态的。参见​​创建Ceph 文件系统​​


ceph简介及简单安装步骤_守护进程_125

创建密钥文件​

Ceph 存储集群默认启用认证,你应该有个包含密钥的配置文件(但不是密钥环本身)。用下述方法获取某一用户的密钥:

  1. 在密钥环文件中找到与某用户对应的密钥,例如:

ceph简介及简单安装步骤_守护进程_126

  1. 找到用于挂载Ceph 文件系统的用户,复制其密钥。大概看起来如下所示:
  2. 打开文本编辑器。
  3. 把密钥粘帖进去,大概像这样:

ceph简介及简单安装步骤_服务器_127

  1. 保存文件,并把其用户名 name 作为一个属性(如 admin.secret )。
  2. 确保此文件对用户有合适的权限,但对其他用户不可见。


ceph简介及简单安装步骤_linux_128

内核驱动​

Ceph FS 挂载为内核驱动。


ceph简介及简单安装步骤_守护进程_129

Ceph 存储集群默认需要认证,所以挂载时需要指定用户名name ​​创建密钥文件​​一节中创建的密钥文件secretfile ,例如:


ceph简介及简单安装步骤_服务器_130

Note


ceph简介及简单安装步骤_守护进程_131

用户空间文件系统( FUSE

Ceph FS 挂载为用户空间文件系统(FUSE )。


ceph简介及简单安装步骤_服务器_132

Ceph 存储集群默认要求认证,需指定相应的密钥环文件,除非它在默认位置

/etc/ceph ):


ceph简介及简单安装步骤_守护进程_133

附加信息​

附加信息见​​Ceph FS ​​Ceph FS 还不像Ceph 块设备和Ceph 对象存储那么稳定,如果遇到问题请参考​​故障排除​​

CEPH 对象存储快速入门​

fireflyv0.80)起,Ceph 存储集群显著地简化了Ceph 对象网关的安装和配置。网关守护进程内嵌了Civetweb,无需额外安装web 服务器或配置FastCGI。此外,可以直接使

ceph-deploy 来安装网关软件包、生成密钥、配置数据目录以及创建一个网关实例。


ceph简介及简单安装步骤_守护进程_134

ceph简介及简单安装步骤_linux_135

要使用Ceph 对象网关,请执行下列步骤:

安装CEPH 对象网关​

  1. client-node 上执行预安装步骤。如果你打算使用Civetweb 的默认端口 7480 ,必须通过 firewall-cmd iptables 来打开它。详情见​​预检​​
  2. 从管理节点的工作目录,在 client-node 上安装Ceph 对象网关软件包。例如:


ceph简介及简单安装步骤_服务器_136


新建CEPH 对象网关实例​

从管理节点的工作目录,在client-node 上新建一个Ceph 对象网关实例。例如:


ceph简介及简单安装步骤_守护进程_137

一旦网关开始运行,你就可以通过7480 端口来访问它(比如​​http://client-​​ node:7480 )。

配置CEPH 对象网关实例​

  1. 通过修改Ceph配置文件可以更改默认端口(比如改成80)。增加名[client.rgw.<client-node>]的小节,把<client-node>替换成你自己Ceph 客户端节点的短名称(hostname -s的输出)。例如,你的节点名就是client-node,在[global]节后增加一个类似于下面的小节:

ceph简介及简单安装步骤_服务器_138

ceph简介及简单安装步骤_守护进程_139Note

ceph简介及简单安装步骤_守护进程_140

Important

ceph简介及简单安装步骤_守护进程_141

  1. 为了使新端口的设置生效,需要重启Ceph对象网关。在RHEL7Fedora上,执行:

ceph简介及简单安装步骤_linux_142

RHEL 6 Ubuntu 上,执行:

  1. 最后,检查节点的防火墙,确保你所选用的端口(例如 80 端口)处于开放状态。如果没有,把该端口加入放行规则并重载防火墙的配置。例如:


ceph简介及简单安装步骤_守护进程_143


ceph简介及简单安装步骤_linux_144


ceph简介及简单安装步骤_linux_145

关于使用firewall-cmd iptables 配置防火墙的详细信息,请参阅​​预检​​你应该可以生成一个未授权的请求,并收到应答。例如,一个如下不带参数的请求:

应该收到这样的应答:


ceph简介及简单安装步骤_linux_146


ceph简介及简单安装步骤_服务器_147

更多管理和API 细节请参阅​​Ceph 对象网关的配置 ​​指南。

安装(手动-略)​


ceph简介及简单安装步骤_服务器_148

获取Ceph 软件的方法有多种,最简单、通用的​​获取软件包​​方法是添加软件源之后通过包管理工具(像APT YUM )操作;也可以直接从Ceph 仓库下载预编译软件包;最后,你可以下载源码包或克隆Ceph 源码库、并自行编译。

也不复杂

准备工作

所有Ceph 部署都需要Ceph 软件包(除非是开发),你应该安装相应的密钥和推荐的软件包。

举报

相关推荐

0 条评论