本次测试。为了快速地安装,所以把目录而非整个硬盘用于 OSD 守护进程。后面的

后面的测试还将会有使用硬盘来作为OSD数据盘

测试机规划

节点名称 IP 地址 部署进程 系统盘 数据盘
ceph1 eth0 192.168.89.10 外网
   eth1 10.0.0.10 内网
1MON+1MDS+2OSD /dev/vda 20G /dev/vdb, /dev/vdc
ceph2 eth0 192.168.89.11 外网
   eth1 10.0.0.11 内网
1MON+1MDS+2OSD /dev/vda 20G /dev/vdb, /dev/vdc
ceph3 eth0 192.168.89.12 外网
   eth1 10.0.0.12 内网
1MON+1OSD /dev/vda 20G /dev/vdb, /dev/vdc

一、环境准备(准备好三个节点ceph1-3)
1、修改hostname
2、配置IP地址
3、配置hosts文件,增加其他节点的hostname和ip地址对应条目
4、创建一个普通账户(用户名称:toby)
5、让ceph管理节点(ceph1),ssh免密码登录其他ceph节点
6、各ceph节点普通用户拥有无密码使用 sudo 的权限
echo "{username} ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/{username}
sudo chmod 0440 /etc/sudoers.d/{username}

二、ceph-deploy工具安装(在ceph1节点上安装)
在 ceph1 上安装 ceph-deploy,接下来会使用这个工具来部署 ceph 集群
toby@ceph1:~$ sudo apt-get install ceph-deploy

三、安装ceph
3.1、ceph-deploy工具进行安装(在ceph1上运行,因为在ceph1上安装了ceph-deploy部署工具):
ceph-deploy install ceph1 ceph2 ceph3 (这个命令将在各节点上安装 ceph 软件)

经过观察ceph-deploy部署工具的输出内容发现,其实就是安装以下这些包
sudo apt-get install ceph 
sudo apt-get install ceph-mds 
sudo apt-get install ceph-common 
sudo apt-get install ceph-fs-common 
sudo apt-get install gdisk

3.2、经过测试,用ceph-deploy工具去安装的话,有时候不稳定,造成安装失败(多数是因为网络问题)。当然也可以到每台ceph节点进行手动安装这些包:
sudo apt-get -y install ceph ceph-mds ceph-common ceph-fs-common gdisk

查看版本:
toby@ceph1:~$ ceph --version
ceph version 0.80.11 (8424145d49264624a3b0a204aedb127835161070)

四、创建ceph集群
在 ceph1 上执行以下命令创建 MON 集群
4.1、在ceph1管理节点上创建一个目录,用于保存 ceph-deploy 生成的配置文件和密钥对。
toby@ceph1:~/my-cluster$ mkdir my-cluster
toby@ceph1:~/my-cluster$ cd my-cluster

4.2、创建一个集群(进入刚才创建的目录下进行操作)
toby@ceph1:~/my-cluster$ ceph-deploy new ceph1 ceph2 ceph3
在当前目录下用 ls 和 cat 检查 ceph-deploy 的输出,应该有一个 Ceph 配置文件、一个 monitor 密钥环和一个日志文件。

4.3、远程主机上部署ceph监控。
toby@ceph1:~/my-cluster$ ceph-deploy mon create ceph1 ceph2 ceph3
toby@ceph1:~/my-cluster$ ceph-deploy mon create-initial

4.4、完成后查看mon集群状态
toby@ceph1:~/my-cluster$ sudo ceph mon_status
{"name":"ceph1","rank":0,"state":"leader","election_epoch":6,"quorum":[0,1,2],"outside_quorum":[],"extra_probe_peers":["192.168.89.11:6789\/0","192.168.89.12:6789\/0"],"sync_provider":[],"monmap":{"epoch":1,"fsid":"ea8ef245-70bc-4000-b676-4c780e8fce64","modified":"0.000000","created":"0.000000","mons":[{"rank":0,"name":"ceph1","addr":"192.168.89.10:6789\/0"},{"rank":1,"name":"ceph2","addr":"192.168.89.11:6789\/0"},{"rank":2,"name":"ceph3","addr":"192.168.89.12:6789\/0"}]}}

4.5、添加两个 OSD
登录到 Ceph 节点、并给 OSD 守护进程创建一个目录。
ssh ceph1
sudo mkdir /var/local/osd0
exit

ssh ceph2
sudo mkdir /var/local/osd1
exit

ssh ceph3
sudo mkdir /var/local/osd2
exit

4.6、从管理节点执行 ceph-deploy 来准备 OSD 
ceph-deploy osd prepare ceph1:/var/local/osd0 ceph2:/var/local/osd1 ceph3:/var/local/osd2

4.7、激活 OSD 
ceph-deploy osd activate ceph1:/var/local/osd0 ceph2:/var/local/osd1 ceph3:/var/local/osd2

4.8、检查集群的健康状况。
toby@ceph1:~/my-cluster$ ceph health
HEALTH_OK
toby@ceph2:~$ ceph health
HEALTH_OK
toby@ceph3:~$ ceph health
HEALTH_OK

4.9、完成后查看 OSD 状态:
toby@ceph1:~/my-cluster$ ceph osd tree
# id    weight    type name    up/down    reweight
-1    0.05997    root default
-2    0.01999        host ceph1
0    0.01999            osd.0    up    1    
-3    0.01999        host ceph2
1    0.01999            osd.1    up    1    
-4    0.01999        host ceph3
2    0.01999            osd.2    up    1

4.10、用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点,这样你每次执行 Ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 了
toby@ceph1:~/my-cluster$ ceph-deploy admin ceph1 ceph2 ceph3

4.11、确保你对 ceph.client.admin.keyring 有正确的操作权限。
sudo chmod +r /etc/ceph/ceph.client.admin.keyring

4.12、安装 MDS 集群(添加元数据服务器)
至少需要一个元数据服务器才能使用 CephFS ,执行下列命令创建元数据服务器:
ceph-deploy mds create ceph1 ceph2 ceph3 
官方说:当前生产环境下的 Ceph 只能运行一个元数据服务器。你可以配置多个,但现在我们还不会为多个元数据服务器的集群提供商业支持。

4.13、完成后可以使用 “ceph mds” 命令来操作 MDS 集群,比如查看状态:
toby@ceph1:~/my-cluster$ ceph mds stat
e5: 1/1/1 up {0=ceph1=up:active}, 2 up:standby

4.14、至此,Ceph 集群部署完成,可以使用 ceph 命令查看集群状态:
toby@ceph1:~/my-cluster$ ceph -s
    cluster ea8ef245-70bc-4000-b676-4c780e8fce64
     health HEALTH_OK
     monmap e1: 3 mons at {ceph1=192.168.89.10:6789/0,ceph2=192.168.89.11:6789/0,ceph3=192.168.89.12:6789/0}, election epoch 10, quorum 0,1,2 ceph1,ceph2,ceph3
     mdsmap e5: 1/1/1 up {0=ceph1=up:active}, 2 up:standby
     osdmap e7: 3 osds: 3 up, 3 in
      pgmap v50: 192 pgs, 3 pools, 1884 bytes data, 20 objects
            19463 MB used, 34635 MB / 57065 MB avail
                 192 active+clean
toby@ceph1:~/my-cluster$

温馨提示:
在这过程中,失败和反复是难免的,在任何时候,可以使用如下的命令将已有的配置擦除然后从头安装:
ceph-deploy purge ceph{1,2,3}
ceph-deploy purgedata ceph{1,2,3}
ceph-deploy forgetkeys

本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1905800

ceph集群简单安装部署(Ubuntu14环境)相关推荐

  1. Hadoop伪分布式集群的安装部署

    Hadoop伪分布式集群的安装部署Hadoop伪分布式集群的安装部署 首先可以为Linux虚拟机搭建起来的最初状态做一个快照,方便后期搭建分布式集群时多台Linux虚拟机的准备. 一.如何为虚拟机做快 ...

  2. Apache HAWQ集群的安装部署

    最近Pivotal公司发布了Apache HAWQ的企业版HDB 2.0,因功能强大,性能出色,很多人已经迫不及待想要安装来玩玩了.今天我们就来聊聊怎么部署强大的HAWQ 2.0吧. 企业版的HAWQ ...

  3. 在现有K8S集群上安装部署JenkinsX

    在2018年年初,Jenkins X首次发布,它由Apache Groovy语言的创建者Jame Strachan创建.Jenkins X 是一个高度集成化的 CI/CD 平台,基于 Jenkins ...

  4. 【Storm】Storm简介及Storm集群的安装部署

    1.Storm概述 (1)Storm简介 Storm最早是由BackType公司开发的实时处理系统,底层由Clojure实现.Clojure也是一门基于JVM的高级面向函数式的编程语言.2011年Tw ...

  5. IPFS私有集群的安装部署

    IPFS的安装部署(私有集群) 利用docker部署 环境 golang docker 生成搭建私有网络所需的swarm.key密钥 go get github.com/Kubuxu/go-ipfs- ...

  6. mesos集群模式安装部署

    该文章通过yam的方式进行安装 部署架构 节点 角色 node01 master/slave node02 master/slave node03 master /slave node04 slave ...

  7. redis集群的安装部署

    1.下载redis的稳定版本 wget https://download.redis.io/redis-stable.tar.gz 2..安装redis软件 tar -xzvf redis-stabl ...

  8. Apache Kylin 4.0.2 集群模式安装部署指南

    前言 本文隶属于专栏<大数据安装部署>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 软件要求 Hadoop: cdh5.x, cdh6.x, hdp2.x, ...

  9. ElasticSearch -- ES 7.x 集群版安装部署

    向导 1. ElasticSearch 1.下载 2.配置 3.查看启动状态 4.注册宕机.开机自启 5.如果磁盘是SSD,建议修改IO调度算法 6.SSD磁盘,关闭numa绑核.hugepage 2 ...

最新文章

  1. mysql++月份排序_Mysql 按月份为组进行统计排序_MySQL
  2. Android4.4源码编译(Ubuntu1204/1404)
  3. HashMap 和HashTable区别和实现原理。
  4. 汤普森算法_火箭队闹剧不断!自编算法向NBA申诉:这个公式要在NBA普及!
  5. kafka通过零拷贝实现高效的数据传输
  6. python3.7安装包百度云_Python-3.7.0软件安装包以及安装教程
  7. 容器created状态_docker容器状态的转换实现
  8. 计算机 教育 研究生分数查询,专业硕士在考试结束之后几周内可以去查分呢现在只能是通过电脑来查分了吗...
  9. js 删除服务器文件,Node.js复制/删除服务器端文件到指定目录文件夹下,并且预判是否存在该目录,如果没有,则递归创建该文件夹目录...
  10. JDBC学习笔记(7)——事务的隔离级别批量处理
  11. 如何通过父类引用“调用”子类所独有的方法
  12. ubuntu学习日记--Lesson5:系统目录详解
  13. MFC文档视图中窗口切换 (2012-05-11 18:32:48)
  14. MySQL基础之LIKE模糊查询
  15. XSS跨站之原理分类及攻击手法
  16. excel冻结窗口怎么设置_粗暴讲解,2分钟 | 即懂excel 冻结首行、首列和单元格怎么弄?...
  17. 朋友圈微信投票很麻烦?python开发个自动化刷票脚本,再也不用头痛了!
  18. 欧普LED灯维修记录及原理解密
  19. error C4189
  20. 【Codeforces Round #420 (Div. 2) B】Okabe and Banana Trees

热门文章

  1. VTK:Utilities之BoundingBox
  2. OpenCV在矩阵上进行Mask 运算operations
  3. Qt添加对Android的OpenSSL支持
  4. C++False position求根的实现算法(附完整源码)
  5. C语言实现pid算法(附完整源码)
  6. C++的内存管理是怎样的
  7. c++类与类的关联(Association)关系
  8. linux重新加载php.ini,linux修改php.ini后重新加载配置文件命令
  9. html和css制作动漫岛,CSS动画
  10. fillstyle属性_html设置或返回用于填充绘画的颜色渐变或模式的属性fillStyle