CEPH集群搭建(CentOS 7)

摘要:
以具有四个节点的集群为例,包括一个ceph部署管理节点和一个三节点ceph存储集群。创建一个带有监视器和两个OSD守护程序的Ceph存储集群。一旦集群达到活动+清洁状态,就展开它:添加第三个OSD、一个元数据服务器和两个CephMonitor。将Ceph配置文件中的默认副本数从3更改为2,这样只有两个OSD可以达到active+clean状态。确保您对ceph.client.admin.keyring具有正确的操作权限。请检查群集的运行状况。对等操作完成后,群集应达到活动+清洁状态,例如cephhealth。

以包含四个节点的集群为例,其中包括一个 ceph-deploy 管理节点和一个三节点的Ceph存储集群。

下图中每个节点代表一台机器。

CEPH集群搭建(CentOS 7)第1张

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

mkdir my-cluster
cd my-cluster

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

创建集群

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

  1. 创建集群。
    ceph-deploy new {initial-monitor-node(s)}

    例如:

    ceph-deploy new node1

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

  2. 把 Ceph 配置文件里的默认副本数从 3 改成 2 ,这样只有两个 OSD 也可以达到 active clean 状态。把下面这行加入 [global] 段:
  3. osd pool default size = 2

    安装 Ceph 。

    ceph-deploy install {ceph-node} [{ceph-node} ...]

    例如:

    ceph-deploy install admin-node node1 node2 node3

    ceph-deploy 将在各节点安装 Ceph 。 注:如果你执行过 ceph-deploy purge ,你必须重新执行这一步来安装 Ceph 。

  4. 配置初始 monitor(s)、并收集所有密钥:
    ceph-deploy mon create-initial

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

    • {cluster-name}.client.admin.keyring
    • {cluster-name}.bootstrap-osd.keyring
    • {cluster-name}.bootstrap-mds.keyring
    • {cluster-name}.bootstrap-rgw.keyring

添加OSD

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

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

    ceph-deploy osd prepare {ceph-node}:/path/to/directory

    例如:(确保有权限 chmod 777)

    ceph-deploy osd prepare node2:/var/local/osd0 node3:/var/local/osd1

    最后,激活 OSD 。

    ceph-deploy osd activate {ceph-node}:/path/to/directory

    例如:

    ceph-deploy osd activate node2:/var/local/osd0 node3:/var/local/osd1
  2. 用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点,这样你每次执行 Ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 了。
    ceph-deploy admin {admin-node} {ceph-node}

    例如:

    ceph-deploy admin admin-node node1 node2 node3

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

  3. 确保你对 ceph.client.admin.keyring 有正确的操作权限。
    确保你对 ceph.client.admin.keyring 有正确的操作权限。
  4. 检查集群的健康状况。
    ceph health

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

免责声明:文章转载自《CEPH集群搭建(CentOS 7)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇(转)Java程序员应该知道的10个调试技巧推荐一款 ES 集群可视化工具:Cerebro,简单、实用!下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

利用Nginx做反向代理搭建ArcGIS 10.1 for Server集群环境

  搭建GIS Server集群环境时,通常不建议在GIS Server之间设置防火墙;而建议在服务器环境的前端设置反向代理来隐藏服务器环境的真实地址及端口,保险起见可将反向代理放入DMZ区(前后都设置防火墙),增加安全性。   ArcGIS 10.1 for Server做出的架构改进使得我们在搭建GIS服务器集群环境时更加容易和省心;Nginx因其高性...

elk日志收集架构

ELK日志系统整体架构:   结构解读: 整个架构从左到右,总共分为5层 最左边的是业务服务器集群,上面安装了filebeat做日志采集,同时把采集的日志分别发送给多个kafka 服务。 第二层、数据缓存层,把数据转存到本地的kafka broker+zookeeper 集群中。 第三层、数据转发层,这个单独的Logstash节点会实时去kafka br...

Net分布式系统之五:C#使用Redis集群缓存

本文介绍系统缓存组件,采用NOSQL之Redis作为系统缓存层。 一、背景 系统考虑到高并发的使用场景。对于并发提交场景,通过上一章节介绍的RabbitMQ组件解决。对于系统高并发查询,为了提供性能减少数据库压力,我们加入缓存机制,可以不同层次加入缓存支持,本文主要介绍应用服务层和数据层之间加入缓存机制提升性能。业界缓存组件有Redis、Memcached...

RabbitMQ的集群模式

官方文档: Clustering Guide Highly Available (Mirrored) Queues  (翻译)  一、默认模式 默认情况下,RabbitMQ集群中队列的内容仅位于单个节点上(即声明该队列的节点,也就是主节点)。创建队列时,只会在某一个节点上创建队列,其它节点上并不含有队列,而只是含有创建节点的元数据(包括队列信息,绑定关系等...

redis的基本用法

一.Redis添加缓存的使用方法 2.将二维表(数据库表数据)存入redis中 二.jedis的使用方法 1.加入jedis相关jar包 2.使用jedis存储数据 3.创建数据库连接池 步骤2每次都要创建连接,比较消耗资源。 三.Redis集群 1.集群架构 2.检测每个集群节点的健康状态 数据存放在集群的服务器上的规则 四.集群...

Dubbo学习笔记7:Dubbo的集群容错与负载均衡策略

Dubbo的集群容错策略 正常情况下,当我们进行系统设计时候,不仅要考虑正常逻辑下代码该如何走,还要考虑异常情况下代码逻辑应该怎么走。当服务消费方调用服务提供方的服务出现错误时候,Dubbo提供了多种容错方案,缺省模式为failover,也就是失败重试。 Dubbo提供的集群容错模式 下面看下Dubbo提供的集群容错模式: Failover Cluster...