1、配置ceph.repo并安装批量管理工具ceph-deploy

  1. [root@ceph-node1 ~]# vim /etc/yum.repos.d/ceph.repo
  2. [ceph]
  3. name=Ceph packages for $basearch
  4. baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch
  5. enabled=
  6. gpgcheck=
  7. priority=
  8. type=rpm-md
  9. gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
  10.  
  11. [ceph-noarch]
  12. name=Ceph noarch packages
  13. baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch
  14. enabled=
  15. gpgcheck=
  16. priority=
  17. type=rpm-md
  18. gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
  19.  
  20. [ceph-source]
  21. name=Ceph source packages
  22. baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS
  23. enabled=
  24. gpgcheck=
  25. type=rpm-md
  26. gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
  27. priority=
  28. [root@ceph-node1 ~]# yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  29. [root@ceph-node1 ~]# yum makecache
  30. [root@ceph-node1 ~]# yum update -y
  31. [root@ceph-node1 ~]# yum install -y ceph-deploy
  32. ```

2、ceph的节点部署

(1)安装NTP 在所有 Ceph 节点上安装 NTP 服务(特别是 Ceph Monitor 节点),以免因时钟漂移导致故障

  1. [root@ceph-node1 ~]# yum install -y ntp ntpdate ntp-doc
  2. [root@ceph-node2 ~]# yum install -y ntp ntpdate ntp-doc
  3. [root@ceph-node3 ~]# yum install -y ntp ntpdate ntp-doc
  4.  
  5. [root@ceph-node1 ~]# ntpdate ntp1.aliyun.com
  6. Jul :: ntpdate[]: adjust time server 120.25.115.20 offset 0.001528 sec
  7. [root@ceph-node1 ~]# hwclock
  8. Tue Jul :: AM EDT -0.302897 seconds
  9. [root@ceph-node1 ~]# crontab -e
  10. */ * * * * /usr/sbin/ntpdate ntp1.aliyun.com

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

(2)安装SSH服务器并添加hosts解析

  1. 默认有ssh,可以省略
  2. [root@ceph-node1 ~]# yum install openssh-server
  3. [root@ceph-node2 ~]# yum install openssh-server
  4. [root@ceph-node3 ~]# yum install openssh-server
  5.  
  6. 确保所有 Ceph 节点上的 SSH 服务器都在运行。
  7.  
  8. [root@ceph-node1 ~]# cat /etc/hosts
  9. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  10. :: localhost localhost.localdomain localhost6 localhost6.localdomain6
  11. 192.168.56.11 ceph-node1
  12. 192.168.56.12 ceph-node2
  13. 192.168.56.13 ceph-node3

(3)允许无密码SSH登录

  1. root@ceph-node1 ~]# ssh-keygen
  2. root@ceph-node1 ~]# ssh-copy-id root@ceph-node1
  3. root@ceph-node1 ~]# ssh-copy-id root@ceph-node2
  4. root@ceph-node1 ~]# ssh-copy-id root@ceph-node3

推荐使用方式: 
修改 ceph-deploy 管理节点上的 ~/.ssh/config 文件,这样 ceph-deploy 就能用你所建的用户名登录 Ceph 节点了,而无需每次执行 ceph-deploy 都要指定 –username {username} 。这样做同时也简化了 ssh 和 scp 的用法。把 {username} 替换成你创建的用户名。

  1. [root@ceph-node1 ~]# cat .ssh/config
  2. Host node1
  3. Hostname ceph-node1
  4. User root
  5. Host node2
  6. Hostname ceph-node2
  7. User root
  8. Host node3
  9. Hostname ceph-node3
  10. User root
  11. [root@ceph-node1 ~]# chmod .ssh/config
  12. [root@ceph-node1 ~]# systemctl restart sshd

(4)关闭Selinux

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

  1. [root@ceph-node1 ~]# setenforce
  2. [root@ceph-node2 ~]# setenforce
  3. [root@ceph-node3 ~]# setenforce

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

(5)关闭防火墙

  1. [root@ceph-node1 ~]# systemctl stop firewalld.service
  2. [root@ceph-node2 ~]# systemctl stop firewalld.service
  3. [root@ceph-node3 ~]# systemctl stop firewalld.service
  4. [root@ceph-node1 ~]# systemctl disable firewalld.service
  5. [root@ceph-node2 ~]# systemctl disable firewalld.service
  6. [root@ceph-node3 ~]# systemctl disable firewalld.service

(6)安装epel源和启用优先级

  1. [root@ceph-node1 ~]# yum install -y epel-release
  2. [root@ceph-node2 ~]# yum install -y epel-release
  3. [root@ceph-node3 ~]# yum install -y epel-release
  4. [root@ceph-node1 ~]# yum install -y yum-plugin-priorities
  5. [root@ceph-node2 ~]# yum install -y yum-plugin-priorities
  6. [root@ceph-node3 ~]# yum install -y yum-plugin-priorities

3、创建集群

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

(1)创建ceph工作目录并配置ceph.conf

  1. [root@ceph-node1 ~]# mkdir /etc/ceph && cd /etc/ceph
  2. [root@ceph-node1 ceph]# ceph-deploy new ceph-node1 #配置监控节点

ceph-deploynew子命令能够部署一个默认名称为ceph的新集群,并且它能生成集群配置文件和密钥文件。列出当前工作目录,你会看到ceph.confceph.mon.keyring文件。

  1. [root@ceph-node1 ceph]# vim ceph.conf
  2. public network =192.168.56.0/
  3. [root@ceph-node1 ceph]# ll
  4. total
  5. -rw-r--r-- root root Jul : ceph.conf   #ceph的配置文件
  6. -rw-r--r-- root root Jul : ceph-deploy-ceph.log  #monitor的日志文件
  7. -rw------- root root Jul : ceph.mon.keyring  #monitor的密钥环文件
  8.  
  9. 遇到的问题:
  10. [root@ceph-node1 ceph]# ceph-deploy new ceph-node1
  11. Traceback (most recent call last):
  12. File "/usr/bin/ceph-deploy", line , in <module>
  13. from ceph_deploy.cli import main
  14. File "/usr/lib/python2.7/site-packages/ceph_deploy/cli.py", line , in <module>
  15. import pkg_resources
  16. ImportError: No module named pkg_resources
  17. 解决方案:
  18. [root@ceph-node1 ceph]# yum install -y python-setuptools

(2)管理节点和osd节点都需要安装ceph 集群

  1. [root@ceph-node1 ceph]# ceph-deploy install ceph-node1 ceph-node2 ceph-node3

ceph-deploy工具包首先会安装Ceph luminous版本所有依赖包。命令成功完成后,检查所有节点上Ceph的版本和健康状态,如下所示:

  1. [root@ceph-node1 ceph]# ceph --version
  2. ceph version 12.2. (3ec878d1e53e1aeb47a9f619c49d9e7c0aa384d5) luminous (stable)
  3. [root@ceph-node2 ~]# ceph --version
  4. ceph version 12.2. (3ec878d1e53e1aeb47a9f619c49d9e7c0aa384d5) luminous (stable)
  5. [root@ceph-node3 ~]# ceph --version
  6. ceph version 12.2. (3ec878d1e53e1aeb47a9f619c49d9e7c0aa384d5) luminous (stable)

(3)配置MON初始化

ceph-node1上创建第一个Ceph monitor

  1. [root@ceph-node1 ceph]# ceph-deploy mon create-initial #配置初始 monitor(s)、并收集所有密钥
  2. [root@ceph-node1 ceph]# ll #完成上述操作后,当前目录里应该会出现这些密钥环
  3. total
  4. -rw------- root root Jul : ceph.bootstrap-mds.keyring
  5. -rw------- root root Jul : ceph.bootstrap-mgr.keyring
  6. -rw------- root root Jul : ceph.bootstrap-osd.keyring
  7. -rw------- root root Jul : ceph.bootstrap-rgw.keyring
  8. -rw------- root root Jul : ceph.client.admin.keyring

注意:只有在安装 Hammer 或更高版时才会创建 bootstrap-rgw 密钥环。

注意:如果此步失败并输出类似于如下信息 “Unable to find /etc/ceph/ceph.client.admin.keyring”,请确认ceph.conf中为monitor指定的IP是 Public IP,而不是 Private IP。查看集群的状态信息:

  1. [root@ceph-node1 ceph]# ceph -s
  2. cluster:
  3. id: c6165f5b-ada0--9bab-1916b28ec92a
  4. health: HEALTH_OK
  5.  
  6. services:
  7. mon: daemons, quorum ceph-node1
  8. mgr: no daemons active
  9. osd: osds: up, in
  10.  
  11. data:
  12. pools: pools, pgs
  13. objects: objects, bytes
  14. usage: kB used, kB / kB avail
  15. pgs:

(5)开启监控模块

查看集群支持的模块

  1. [root@ceph-node1 ceph]# ceph mgr dump
  2. [root@ceph-node1 ceph]# ceph mgr module enable dashboard #启用dashboard模块

/etc/ceph/ceph.conf中添加

  1. [mgr]
  2. mgr modules = dashboard

设置dashboardip和端口

  1. [root@ceph-node1 ceph]# ceph config-key put mgr/dashboard/server_addr 192.168.56.11
  2. set mgr/dashboard/server_addr
  3. [root@ceph-node1 ceph]# ceph config-key put mgr/dashboard/server_port
  4. set mgr/dashboard/server_port
  5. [root@ceph-node1 ceph]# netstat -tulnp |grep
  6. tcp6 ::: :::* LISTEN /ceph-mgr

访问:http://192.168.56.11:7000/

(5)在ceph-node1上创建OSD

  1. [root@ceph-node1 ceph]# ceph-deploy disk zap ceph-node1 /dev/sdb
  2.  
  3. [root@ceph-node1 ceph]# ceph-deploy disk list ceph-node1 #列出ceph-node1上所有的可用磁盘
  4. ......
  5. [ceph-node1][INFO ] Running command: fdisk -l
  6. [ceph-node1][INFO ] Disk /dev/sdb: MB, bytes, sectors
  7. [ceph-node1][INFO ] Disk /dev/sdc: MB, bytes, sectors
  8. [ceph-node1][INFO ] Disk /dev/sdd: MB, bytes, sectors
  9. [ceph-node1][INFO ] Disk /dev/sda: 21.5 GB, bytes, sectors

从输出中,慎重选择若干磁盘来创建Ceph OSD(除操作系统分区以外),并将它们分别命名为sdb、sdc和sdd。disk zap子命令会删除现有分区表和磁盘内容。运行此命令之前,确保你选择了正确的磁盘名称: 
osd create子命令首先会准备磁盘,即默认地先用xfs文件系统格式化磁盘,然后会激活磁盘的第一、二个分区,分别作为数据分区和日志分区:

  1. [root@ceph-node1 ceph]# ceph-deploy mgr create node1 #部署管理器守护程序,仅仅使用此版本
  2. [ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.conf
  3. [ceph_deploy.cli][INFO ] Invoked (2.0.): /usr/bin/ceph-deploy mgr create node1
  4. [ceph_deploy.cli][INFO ] ceph-deploy options:
  5. [ceph_deploy.cli][INFO ] username : None
  6. [ceph_deploy.cli][INFO ] verbose : False
  7. [ceph_deploy.cli][INFO ] mgr : [('node1', 'node1')]
  8. [ceph_deploy.cli][INFO ] overwrite_conf : False
  9. [ceph_deploy.cli][INFO ] subcommand : create
  10. [ceph_deploy.cli][INFO ] quiet : False
  11. [ceph_deploy.cli][INFO ] cd_conf : <ceph_deploy.conf.cephdeploy.Conf instance at 0xe1e5a8>
  12. [ceph_deploy.cli][INFO ] cluster : ceph
  13. [ceph_deploy.cli][INFO ] func : <function mgr at 0xda5f50>
  14. [ceph_deploy.cli][INFO ] ceph_conf : None
  15. [ceph_deploy.cli][INFO ] default_release : False
  16. [ceph_deploy.mgr][DEBUG ] Deploying mgr, cluster ceph hosts node1:node1
  17. [node1][DEBUG ] connected to host: node1
  18. [node1][DEBUG ] detect platform information from remote host
  19. [node1][DEBUG ] detect machine type
  20. [ceph_deploy.mgr][INFO ] Distro info: CentOS Linux 7.4. Core
  21. [ceph_deploy.mgr][DEBUG ] remote host will use systemd
  22. [ceph_deploy.mgr][DEBUG ] deploying mgr bootstrap to node1
  23. [node1][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf
  24. [node1][WARNIN] mgr keyring does not exist yet, creating one
  25. [node1][DEBUG ] create a keyring file
  26. [node1][DEBUG ] create path recursively if it doesn't exist
  27. [node1][INFO ] Running command: ceph --cluster ceph --name client.bootstrap-mgr --keyring /var/lib/ceph/bootstrap-mgr/ceph.keyring auth get-or-create mgr.node1 mon allow profile mgr osd allow * mds allow * -o /var/lib/ceph/mgr/ceph-node1/keyring
  28. [node1][INFO ] Running command: systemctl enable ceph-mgr@node1
  29. [node1][WARNIN] Created symlink from /etc/systemd/system/ceph-mgr.target.wants/ceph-mgr@node1.service to /usr/lib/systemd/system/ceph-mgr@.service.
  30. [node1][INFO ] Running command: systemctl start ceph-mgr@node1
  31. [node1][INFO ] Running command: systemctl enable ceph.target

(5)创建OSD

添加三个OSD。出于这些说明的目的,我们假设您在每个节点中都有一个未使用的磁盘/dev/sdb。 确保设备当前未使用且不包含任何重要数据。 
语法格式:ceph-deploy osd create --data {device} {ceph-node}

  1. [root@ceph-node1 ceph]# ceph-deploy osd create --data /dev/sdb node1
  2. [root@ceph-node1 ceph]# ceph-deploy osd create --data /dev/sdc node1
  3. [root@ceph-node1 ceph]# ceph-deploy osd create --data /dev/sdd node1

Ceph学习之路(三)Ceph luminous版本部署的更多相关文章

  1. 学习之路三十九:新手学习 - Windows API

    来到了新公司,一开始就要做个程序去获取另外一个程序里的数据,哇,挑战性很大. 经过两周的学习,终于搞定,主要还是对Windows API有了更多的了解. 文中所有的消息常量,API,结构体都整理出来了 ...

  2. Ceph学习之路(二)之Ceph的工作原理及流程

    一.RADOS的对象寻址 Ceph 存储集群从 Ceph 客户端接收数据——不管是来自 Ceph 块设备. Ceph 对象存储. Ceph 文件系统.还是基于 librados 的自定义实现——并存储 ...

  3. Ceph学习之路(一)之ceph初识

    一.元数据和元数据管理 (1)元数据 在学习Ceph之前,需要了解元数据的概念.元数据又称为中介数据.中继数据,为描述数据的数据.主要描述数据属性的信息,用来支持如指示存储位置.历史数据.资源查找.文 ...

  4. ceph学习笔记之十二 Ubuntu安装部署Ceph J版本

    https://cloud.tencent.com/info/2b70340c72d893c30f5e124e89c346cd.html 安装Ubuntu系统安装步骤略过 拓扑连接: 一.安装前准备工 ...

  5. Redis——学习之路三(初识redis config配置)

    我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息.     ...

  6. 交互原型设计软件axure rp学习之路(三)

    (三)Axure rp元件的触发事件 l  OnClick(点击时): 鼠标点击事件,除了动态面板的所有的其他元件的点击时触发.比如点击按钮. l  OnMouseEnter(鼠标移入时): 鼠标进入 ...

  7. GIt学习之路 第二天 创建版本库

    本文参考廖雪峰老师的博客进行总结,完整学习请转廖雪峰博客 创建版本库 阅读: 1859216 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文 ...

  8. zigbee学习之路(三):按键的控制

    一.前言 通过前一次的实验,相信大家都已经对cc2530程序的编写有了一定的认识,这次我们来操作和实验的是cc2530上的按键模块. 二.原理分析 我们先来看一下按键的原理图: 根据原理图我们可以得出 ...

  9. 学习之路三十二:VS调试的简单技巧

    这段时间园子里讲了一些关于VS的快捷键以及一些配置技巧,挺好的,大家一起学习,一起进步. 这段时间重点看了一下关于VS调试技巧方面的书,在此记录一下学习的内容吧,主要还是一些比较浅显的知识. 1. 调 ...

随机推荐

  1. Jmeter入门--关联

    名称解释 关联是请求与请求之间存在数据依赖关系,需要从上一个请求获取下一个请求需要回传回去的数据. 具体方法 Jmeter关联有两种方法:Xpath.正则表达式 方法一:Xpath主要用于响应是格式是 ...

  2. 用标签页TitleSwitch切换不通的控制器

    用标签页TitleSwitch切换不通的控制器 教程效果: 项目开发中效果: 各种源码: TitleSwitch.h 与 TitleSwitch.m (这个是修改过的升级版本) // // Title ...

  3. 前端 网络三剑客之html 01

    一.引语 1.html是什么? 1.超文本标记语言(Hypertext Markup Language):简称HTML或html.是通过标签语言来标记要显示的网页中的各个部分. 2.它遵循一套浏览器的 ...

  4. java中常用Redis操作

     stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//向 ...

  5. DXperience 工具箱不显示/ Visual Studio 2012选择项打开崩溃

    1.移除NetFx40_LegacySecurityPolicy  节: 移除C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\I ...

  6. 用windows自带的fsutil修改稀疏文件大小成功,但文件内容似乎丢失

    fsutil sparse setflag. fsutil sparse setrange 10M对应字节,1G对应字节.. 看文件属性,实际尺寸是小了,但内容似乎也丢了..因为自己把该文件做成虚拟盘 ...

  7. 超链接<a>标签用法

    1.a标签点击事件 1>1a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且 ...

  8. loli的搜索测试-4

    其实这已经是第四次搜索测试了...只不过上两次测试时我不在学校,扔两个链接吧: 测试-2:https://www.luogu.org/blog/user35178/loli-di-sou-suo-ce ...

  9. Mybatis 的常见面试题

    背景:好久没用Mybatis了,有些面试题还是要好好准备的. Mybatis 的常见面试题

  10. React 入门学习笔记2

    摘自阮一峰:React入门实例教程,转载请注明出处. 一.获取真实的DOM节点 组件并不是真实的 DOM 节点,而是存在于内存之中的一种数据结构,叫做虚拟 DOM (virtual DOM).只有当它 ...