一、环境介绍

  系统:

    CentOS Linux release 7.3.1611 (Core)

  硬盘:

    系统盘:300GB*2-raid 1

    OSD:600GB*4-raid 5      ceph 数据副本 两份

  网络:

    public_network:10.6.32.0/24

    cluster_network:10.6.33.0/24  (双网卡绑定,osd 内部数据同步使用)

  防火前关闭:

    # systemctl stop firewalld.service

    # systemctl disable firewalld.service

  Selinux 关闭:

    # vim /etc/selinux/config

      SELINUX=disabled  (设置此选项为disabled)

  设备规划:

    5台    主机名:ceph1、ceph2……ceph5

    修改主机名:

      # vim /etc/hostname

        ceph1    (修改localhost..... 为主机名 ceph1 到ceph5)

    修改hosts:

      # vim /etc/hosts

        

    功能节点规划:

      ceph1:ceph-deploy 、mon 、 mgr 、 osd,Ntp-server

      ceph2 、ceph3 :mon 、 mgr 、 osd

      ceph4 、ceph5:osd

      

    添加 ssh 信任,以便于ceph-deploy 快速部署

      生成key:

        # ssh-keygen  (保持默认即可)

        # ssh-copy-id root@ceph{2,3,4,5}   (下发证书到 其他4台设备)

 二、部署 ceph-deploy 节点

  配置时间服务器

    使用chrony 时间服务器,时间同步可以达到 nm级别。 

    ceph1:

      # vim /etc/chrony.conf

       

       #添加同于同步时间的IP段

      # systemctl restart chronyd.service

      # chronyc sources

    other ceph:

      # vim /etc/chrony.conf

      

      #设置时间服务器 ceph1 IP。

      # systemctl restart chronyd.service

      # chronyc sources

      

  添加ceph 源:

    # yum -y install epel-release

    # rpm --import http://mirrors.163.com/ceph/keys/release.asc

    # rpm -Uvh --replacepkgs http://mirrors.163.com/ceph/rpm-luminous/el7/noarch/ceph-release-1-1.el7.noarch.rpm

    # cat /etc/yum.repos.d/ceph.repo

      

  同步yum 源到其他设备

    # for i in 21 22 23 24;do scp /etc/yum.repos.d/ceph.repo  root@"10.6.32.$i":/etc/yum.repos.d/ceph.repo;done    (后期再其他节点安装ceph 使用)

  更新源和安装 ceph-deploy

    # yum update

    # yum install ceph-deploy

三、安装ceph ,创建集群

  创建文件夹:

    ceph-deploy 节点创建文件夹,用于存放集群文件。

      # mkdir /root/my-ceph

  生成集群文件

    # cd /root/my-ceph

    # ceph-deploy new ceph1     (会生成集群文件)

      

  编辑集群文件:ceph.conf

    # vim ceph.conf 

      

    添加一下配置:[osd.x] 配置 和 [mon] 配置可以再安装好ceph 和 mon 后再进行配置。     

osd_pool_default_size = 2
osd_pool_default_min_size = 1
public_network = 10.6.32.0/24
cluster_network = 10.6.33.0.0/24 [osd.0]
cluster addr = 10.6.33.20
osd heartbeat address = 10.6.33.20
[osd.1]
cluster addr = 10.6.33.21
osd heartbeat address = 10.6.33.21
[osd.2]
cluster addr = 10.6.33.22
osd heartbeat address = 10.6.33.22
[osd.3]
cluster addr = 10.6.33.23
osd heartbeat address = 10.6.33.23
[osd.4]
cluster addr = 10.6.33.24
osd heartbeat address = 10.6.33.24 [mon]
mon allow pool delete = true

  解释:

          osd_pool_default_size 设置  数据副本数量

          osd_pool_default_min_size  数据最小副本数  

          public_network    公共网络,用于mds,mon 等功能以及外部访问使用。

          cluster_network    集群网络,用于内部osd 数据同步,恢复等。

          cluster addr   每个osd 节点上定义 集群网络,多网卡下不定义,osd 可能无法启动

          osd heartbeat address   定义osd 心跳地址

          mon allow pool delete  定义是否允许在监控节点上删除 pool。

  安装ceph

    #  ceph-deploy install --release luminous ceph{1,2,3,4,5}      #但是这种方法很多时候由于 ceph-deploy 工具原因,不容易安装成功。并且还会修改 ceph 源配置文件。建议使用一下方法手动在每个节点安装。

    手动在每个节点安装

      # yum -y install epel-release            添加ceph 源

      # 上述已同步 ceph 源,此处可以不做操作。 ( for i in 21 22 23 24;do scp /etc/yum.repos.d/ceph.repo  root@"10.6.32.$i":/etc/yum.repos.d/ceph.repo;done  )

      # yum -y install ceph ceph-radosgw

  安装 mon  (ceph-deploy上操作)

    # cd /root/my-ceph

    # ceph-deploy mon create-initial

    Ceph 存储集群需要至少一个 Monitor 才能运行。为达到高可用,典型的 Ceph 存储集群会运行多个Monitors,这样在单个 Monitor 失败时不会影响 Ceph 存储集群的可用性。集群中的 monitor数目 应该是奇数,最低要求有一个monitor节点,推荐有3个节点。

    添加 ceph2 和ceph3 到 监控器集群

      # ceph-deploy mon add ceph{2,3}      #新增 Monitor 后,Ceph 会自动开始同步并形成法定人数。

      # ceph quorum_status --format json-pretty       检查法定人数状态

        

      # ceph-deploy mon destroy ceph4  从集群中删除  主机名为 ceph4 的 ceph mon 节点      

      #  ceph -s   查看当前集群状态,在没有添加 osd 之前,正常应该为 HEALTH_OK 状态。

        

      # ceph mon stat     查看mon 集群状态

  同步集群文件

    集群文件同步后,在执行 ceph 命令是就无需指定 monitor 地址和ceph.client.admin.keyring 了

    # ceph-deploy admin ceph{1,2,3,4,5}    #第一次执行使用,以后同步文件是需要使用如下:

      #ceph-deploy  --overwrite-conf  admin ceph{1,2,3,4,5}    采用覆盖式同步。

    # chmod +r /etc/ceph/ceph.client.admin.keyring       如果使用非root 账号管理 ceph 集群时,需要添加此权限。

  添加 osd

    查看节点上的可用磁盘

      # ceph-deploy disk list ceph{1,2,3,4,5}

    格式化可用磁盘

      # ceph-deploy disk zap ceph1:sdb ceph2:sdb ceph3:sdb ceph4:sdb ceph5:sdb     # sdb 路径为上一步操作看到的真实路径。

    准备osd

      # ceph-deploy osd prepare ceph1:sdb ceph2:sdb ceph3:sdb ceph4:sdb ceph5:sdb         (在此处应该可以指定日志盘位置,不指定时,默认数据和日志存放在同一个盘下。)

    激活osd

      # ceph-deploy osd activate ceph1:sdb1 ceph2:sdb1 ceph3:sdb1 ceph4:sdb1 ceph5:sdb1     (也可以用 create 命令一次完成准备 OSD 、部署到 OSD 节点、并激活它。 create 命令是依次执行 prepare 和 activate 命令的捷径。

# ceph-deploy osd create ceph1:sdb ceph2:sdb ceph3:sdb ceph4:sdb ceph5:sdb)

  查看 集群状态

    # ceph osd tree        

      

      提醒:在此前没有配置 /root/ceph.conf 文件中的 [osd.x] 的配置的,此时可能看到 osd 状态都为down,需要添加 配置,并且使用ceph-deploy  --overwrite-conf  admin ceph{1,2,3,4,5}  同步集群配置。

 OK。到此处。ceph 集群配置完成。

centos 7 下 Ceph 配置安装的更多相关文章

  1. CentOS 7下源码安装MySQL 5.7

    网上说linux安装mysql服务分两种安装方法: ①源码安装,优点是安装包比较小,只有几十M左右,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错: ②使用官方编译好的二进制文件安装,优点 ...

  2. CentOS 6 下RPM方式安装MySQL5.6

    CentOS 6 下RPM方式安装MySQL5.6 1. 下载Linux对应的RPM包,如:CentOS6.7_64对应的RPM包,如下:[root@mysql ~]# ll总用量 113808-rw ...

  3. CentOS 7下搭建配置SVN服务器

    CentOS 7下搭建配置SVN服务器 1. 安装 CentOS通过yum安装subversion. $ sudo yum install subversion subversion安装在/bin目录 ...

  4. centOS Linux下用yum安装mysql

    centOS Linux下用yum安装mysql      第一篇:安装和配置MySQL   第一步:安装MySQL   [root@192 local]# yum -y install mysql- ...

  5. 基于CentOS 7下最小化安装的操作系统搭建Zabbix3.0环境

    环境说明 系统版本:CentOS Linux release 7.3.1611 (Core) 内核版本:3.10.0-514.el7.x86_64 Httpd版本:Apache/2.4.6 (Cent ...

  6. Centos系统下Docker的安装

    一.检查内核版本 安装Docker,需要linux内核大于3.10 使用uname -r 来检查 二. Centos系统下Docker的安装 1. 安装需要的软件包 yum install -y yu ...

  7. Linux(CentOS 7下httpd的安装)

    Linux(CentOS 7下httpd的安装) 自己是个linux小白.最近几天在学linux,看到视频教程中安装源码包httpd所以自己想试一试,安装过程中有很多的错误,在网上找了很久也没找到,要 ...

  8. Centos 7下Nagios的安装及配置

    简介 Nagios 是一款自动化运维工具,可以协助运维人员监控服务器的运行状况,并且拥有报警功能.本文章将介绍其安装方法和详细的配置方法. nagios 监控服务应用指南 本地资源:负载,CPU,磁盘 ...

  9. CentOS 7下源码安装MySQL 5.6

    本文转载,并非原创. 目录 准备工作 运行环境 确认你的安装版本 下载MySQL 安装MySQL 准备安装环境 编译和安装 配置MySQL 单实例配置 单实例配置方法 添加防火墙 启动MySQL 重启 ...

随机推荐

  1. JQuery:聚焦清空输入框值,失焦恢复默认值

    本来这个小玩意很简单,不用记录到博客里,但今天是娱乐日,要快落一天,为了减轻负罪感,假装自己又学了点新东西 <!DOCTYPE html> <html> <head> ...

  2. Kubernetes中pod创建流程

    转自:https://blog.csdn.net/yan234280533/article/details/72567261 Pod是Kubernetes中最基本的部署调度单元,可以包含contain ...

  3. Dubbo的优化 --- 开发时使用

    开发时的三个优化: 1.开发者在本地开发的时候启动Dubbo比较麻烦,所以采用直接连接的配置: 2.开发者本地开发时会打断点调试,会超过Dubbo默认的超时时间1s,所以需要全局设置超时时间: 3.开 ...

  4. java byte[]与十六进制字符串相互转换

    http://blog.csdn.net/worm0527/article/details/69939307 http://blog.csdn.net/androiddeveloper_lee/art ...

  5. 区分slice,splice和split方法

    1.slice(数组) 用法:array.slice(start,end) 解释:该方法是对数组进行部分截取,并返回一个数组副本:参数start是截取的开始数组索引,end参数等于你要取的最后一个字符 ...

  6. Java基础之用记事本编辑java代码运行,并且打成jar包后运行

    使用记事本写java代码 1.在d盘新建一个记事本,名字叫做zhanzhuang.java,会询问不可用,是否继续,点击是 2.在里面编辑就如下内容,注意文件的名字要和 class 后面的名字相对应 ...

  7. NSTimer内存泄漏

    用NSTimer调用 timer = [NSTimer scheduledTimerWithTimeInterval:timerInterval target:self selector:@selec ...

  8. 用crash来分析一下proc的文件访问

    一般来说,用户通过fd的传入,调用open系统调用,来获取fd,然后read的时候,通过这个fd来查找对应的file* SYSCALL_DEFINE3(open, const char __user ...

  9. mac下node安装提示command not found

    官网下载了node的.pkg文件安装node,安装好后,在mac终端下输入npm -v 和 node -v均提示 command not found,参考了网上的方法,终于得解 第一步:创建.bash ...

  10. RabbitMQ、Memcached、SQLAlchemy

    一.RabbitMQ 1.基础概念 rabbitMQ说白了就是一个消息队列,类似于Queue,也是生产者与消费者模型.只不过做了扩展,所不同的是Queue在内存中的消息队列,而RabbitMQ是部署在 ...