https://cloud.tencent.com/info/2b70340c72d893c30f5e124e89c346cd.html

安装Ubuntu系统安装步骤略过

拓扑连接:

一、安装前准备工作

1、修改主机名;将主机名更改为上图中对应的主机名。

[root@localhost ~]# vim /etc/hostname

2、更新主机上的hosts文件,将主机名与如下IP进行解析。

192.168.100.128 ceph-node1

192.168.100.129 ceph-node2

192.168.100.130 ceph-node3

192.168.100.131 ceph-node4

[root@localhost ~]# vim /etc/hosts

3、生成root SSH密钥;将SSH密钥复制到ceph-node2和ceph-node3、ceph-node4之上。这样就能实现节点间免密登录。

root@ceph-node1:~# ssh-keygen //一路回车即可

root@ceph-node1:~# ssh-copy-id root@ceph-node2

root@ceph-node1:~# ssh-copy-id root@ceph-Node3

root@ceph-node1:~# ssh-copy-id root@ceph-Node4

要实现所有节点免密登录,就需要在每个节点上都操作一遍。

4、所有节点安装并配置NTP

root@ceph-node1:~# apt-get install ntp* -y

root@ceph-node1:~# vim /etc/ntp.conf

root@ceph-node1:~# /etc/init.d/ntp stop

root@ceph-node1:~# ntpdate www.opencloud.vip

root@ceph-node1:~# /etc/init.d/ntp start

5、替换所有节点Ubuntu国内源\添加国内Ceph安装源和更新apt

替换Ubuntu国内源:

root@ceph-node1:~# vim /etc/apt/sources.list //将原来的源替换为国内阿里云的源,只需将us改为cn即可。

添加Ubuntu Ceph国内安装源

root@ceph-node1:/etc/apt# export CEPH_DEPLOY_REPO_URL=https://mirrors.aliyun.com/ceph/debian-jewel

root@ceph-node1:/etc/apt# echo deb https://mirrors.aliyun.com/ceph/debian-jewel/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list

6、安装密钥

把密钥加入你系统的可信密钥列表内,以消除安全告警。对主要发行版(如 dumpling 、 emperor 、 firefly )和开发版(如 release-name-rc1 、 release-name-rc2 )应该用 release.asc 密钥

root@ceph-node1:/etc/apt# export CEPH_DEPLOY_GPG_URL=https://mirrors.aliyun.com/ceph/keys/release.asc

root@ceph-node1:/etc/apt# wget -q -O- 'http://mirrors.aliyun.com/ceph/keys/release.asc' | sudo apt-key add -

7、更新

root@ceph-node1:~# apt-get update //更新前必须要先安装密钥,否则无法更新。

二、开始安装Ceph

使用ceph-deploy工具在所有节点安装并配置Ceph;ceph-deploy是用来方便的配置管理Ceph存储集群。

1、在ceph-node1上安装ceph-deploy

root@ceph-node1:~# apt-get install ceph-deploy –y

2、创建一个ceph 目录;并用ceph-deploy创建一个Ceph集群

root@ceph-node1:~# mkdir /etc/ceph ; cd /etc/ceph

root@ceph-node1:/etc/ceph# ceph-deploy new ceph-node1

3、通过ceph-deploy的子命令 new能部署一个默认的新集群,同时它能生成集群配置文件和密钥文件。

在/etc/ceph下用ls命令可以看见相关文件:

root@ceph-node1:/etc/ceph# pwd

/etc/ceph

root@ceph-node1:/etc/ceph# ls

4、使用ceph-deploy在所有节点上安装ceph

root@ceph-node1:/etc/ceph# ceph-deploy install ceph-node1 ceph-node2 ceph-node3 ceph-node4

ceph-deploy工具首先会安装相关依赖包;注意:Ubuntu16.04 在安装过程中需要Python,如果节点没有Python会导致安装失败,解决办法:可以在每个节点先更新安装一下Python,(apt-get install python)在进行部署;等待命令执行成功;如果中途报错终止,可以重新执行上面命令继续安装。

安装完成后在所有节点上查看Ceph版本及健康情况:

root@ceph-node1:~# ceph -v

ceph version 10.2.3 (ecc23778eb545d8dd55e2e4735b53cc93f92e65b)

5、在ceph-node1上创建一个Monitor

root@ceph-node1:/etc/ceph# ceph-deploy mon create-initial

创建成功之后,可以查看一下Ceph的健康状况,通过ceph –s命令可以发现目前集群还不是正常的。

6、在Ceph-node1上创建OSD

(1)列出该节点上所有可用的磁盘

root@ceph-node1:/etc/ceph# ceph-deploy disk list ceph-node1

选择上面列出的磁盘作为OSD,除操作系统磁盘除外,一般操作系统盘为sda。

(2)通过命令清除分区及磁盘内容

root@ceph-node1:/etc/ceph# ceph-deploy disk zap ceph-node1:/dev/sdc ceph-node1:/dev/sdd ceph-node1:/dev/sde ceph-node1:/dev/sdf

(3)创建OSD;osd create命令会将选择的磁盘用XFS文件系统格式化磁盘,然后激活磁盘分区。

root@ceph-node1:/etc/ceph# ceph-deploy osd create ceph-node1:/dev/sdc ceph-node1:/dev/sdd ceph-node1:/dev/sde ceph-node1:/dev/sdf

(4)创建OSD之后可以查看此时的集群的状态,这里主要看添加的OSD是否up;集群状态目前还是处于不正常的状态,还需要进一步配置才能使之正常。

root@ceph-node1:/etc/ceph# ceph -s

root@ceph-node1:/etc/ceph# lsblk

三、扩展ceph集群

通过上面的安装过程,已经在ceph-node1节点上运行Ceph集群,目前它有1个Mon和4个OSD;接下将通过扩展集群的方式把剩下的所有节点全部加入Ceph集群,届时将会有3个Mon、16个OSD。

在一个Ceph集群中至少有一个Monitor集群才能运行,但为了集群的高可用,一般情况下Ceph集群中3至5个Monitor,因在Ceph集群中必须依赖多于奇数个的Monitor来形成仲裁,在集群中Ceph会使用Paxos算法来确保仲裁的一致性。

1、在ceph配置文件中添加Public和Cluster网络;使用vim对/etc/ceph/ceph.conf进行编辑

root@ceph-node1:/etc/ceph# vim ceph.conf

2、再创建2个Monitor

root@ceph-node1:/etc/ceph# ceph-deploy mon create ceph-node2 ceph-node3

将2个新的Monitor成功加入后,查看一下当前集群状态以及Monitor状态:

root@ceph-node1:/etc/ceph# ceph -s

root@ceph-node1:~# ceph mon stat

通过执行命令发行当前集群依然不是一个正常的状态,是因为除了node1节点配置了OSD其他节点磁盘均没有加入到ceph集群中,默认情况下数据会在集群中被复制三次,并放到不同节点上的不同OSD之上。

3、将剩余节点磁盘全部加入ceph集群

列出剩余节点所有可用磁盘:

[root@ceph-node1 ceph]# ceph-deploy disk list ceph-node2 ceph-node3 ceph-node4

清除节点磁盘分区及信息:

root@ceph-node1:/etc/ceph# ceph-deploy disk zap ceph-node2:/dev/sdc ceph-node2:/dev/sdd ceph-node2:/dev/sde ceph-node2:/dev/sdf

root@ceph-node1:/etc/ceph# ceph-deploy disk zap ceph-node3:/dev/sdc ceph-node3:/dev/sdd ceph-node3:/dev/sde ceph-node3:/dev/sdf

root@ceph-node1:/etc/ceph# ceph-deploy disk zap ceph-node4:/dev/sdc ceph-node4:/dev/sdd ceph-node4:/dev/sde ceph-node4:/dev/sdf

将剩余节点磁盘创建OSD:

root@ceph-node1:/etc/ceph# ceph-deploy osd create ceph-node2:/dev/sdc ceph-node2:/dev/sdd ceph-node2:/dev/sde ceph-node2:/dev/sdf

root@ceph-node1:/etc/ceph# ceph-deploy osd create ceph-node3:/dev/sdc ceph-node3:/dev/sdd ceph-node3:/dev/sde ceph-node3:/dev/sdf

root@ceph-node1:/etc/ceph# ceph-deploy osd create ceph-node4:/dev/sdc ceph-node4:/dev/sdd ceph-node4:/dev/sde ceph-node4:/dev/sdf

将其所有剩余节点磁盘全部成功加入ceph集群之后执行命令进行检查OSD数量及状态:

root@ceph-node2:~# ceph –s

root@ceph-node2:~# ceph osd tree

4、在对ceph集群添加了很多个OSD之后,还需要对pg_num和pgp_num值进行设定。这也就是为啥集群添加了多个OSD集群依然处于不正常状态的根本原因。在生产环境中可以使用公式进行精确的计算,公式如下:

root@ceph-node1:~# ceph osd pool set rbd pg_num 256

root@ceph-node1:~# ceph osd pool set rbd pgp_num 256

root@ceph-node1:~# ceph –s

ceph学习笔记之十二 Ubuntu安装部署Ceph J版本的更多相关文章

  1. VSTO 学习笔记(十二)自定义公式与Ribbon

    原文:VSTO 学习笔记(十二)自定义公式与Ribbon 这几天工作中在开发一个Excel插件,包含自定义公式,根据条件从数据库中查询结果.这次我们来做一个简单的测试,达到类似的目的. 即在Excel ...

  2. 汇编入门学习笔记 (十二)—— int指令、port

    疯狂的暑假学习之  汇编入门学习笔记 (十二)--  int指令.port 參考: <汇编语言> 王爽 第13.14章 一.int指令 1. int指令引发的中断 int n指令,相当于引 ...

  3. Binder学习笔记(十二)—— binder_transaction(...)都干了什么?

    binder_open(...)都干了什么? 在回答binder_transaction(...)之前,还有一些基础设施要去探究,比如binder_open(...),binder_mmap(...) ...

  4. OpenStack学习系列之十二:安装ceph并对接OpenStack

        Ceph 是一种为优秀的性能.可靠性和可扩展性而设计的统一的.分布式文件系统.Ceph 的统一体现在可以提供文件系统.块存储和对象存储,分布式体现在可以动态扩展.在国内一些公司的云环境中,通常 ...

  5. java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

    java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...

  6. Android学习笔记(十二)——实战:制作一个聊天界面

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 运用简单的布局知识,我们可以来尝试制作一个聊天界面. 一.制作 Nine-Patch 图片 : Nine-Pa ...

  7. MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  8. 【转】Pro Android学习笔记(十二):了解Intent(下)

    解析Intent,寻找匹配Activity 如果给出component名字(包名.类名)是explicit intent,否则是implicit intent.对于explicit intent,关键 ...

  9. Dynamic CRM 2013学习笔记(十二)实现子表合计(汇总,求和)功能的通用插件

    上一篇 Dynamic CRM 2013学习笔记(十一)利用Javascript实现子表合计(汇总,求和)功能 , 介绍了如何用js来实现子表合计功能,这种方法要求在各个表单上添加js方法,如果有很多 ...

随机推荐

  1. cannot access Input/output error

    ls: cannot access  Input/output errorls: cannot open directory .: Input/output error 硬盘故障,只读或只写,你可以d ...

  2. Unity编程标准导引-3.1 Component 组件脚本及其基本生命周期

    本文为博主原创文章,欢迎转载,请保留出处:http://blog.csdn.net/andrewfan 3.1组件 Component 组件是Unity中最核心的一个概念,它是一切编程的基础.没有组件 ...

  3. centos7不能远程登陆的方案

    网上找了很多,就算百度经验写的都是坑,代码如下: BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INI ...

  4. UI:UI 目录

    ylbtech-UI:UI 目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://ylbtech ...

  5. 110、TensorFlow张量值的计算

    import tensorflow as tf #placeholders在没有提供具体值的时候不能使用eval方法来计算它的值 # 另外的建模方法可能会使得模型变得复杂 # TensorFlow 不 ...

  6. jenkins插件set build description使用规则

    配置前要注意的点: 先安装插件:set build description 安装该插件后,在[Post-build Actions]栏目中会多出description setter功能,可以实现构建完 ...

  7. Linux随笔 - 修改主机名

    1.临时修改主机名: hostname 主机名 修改只能临时有效,机器重启后会自动还原. 2.永久修改主机名: 修改hostname文件(路径:/etc/sysconfig/network),把hos ...

  8. 【转】如何成功安装旧版本火狐,成功安装firebug和firepath插件

    原文地址:https://www.cnblogs.com/meimei00/p/10566793.html

  9. Python笔记(六)_函数

    函数一般是从第一行代码开始执行,结束于return语句.异常.或者函数所有语句执行完毕.一旦函数将控制权交还给调用者,就意味着全部结束.函数中做的所有工作以及保存在局部变量中的数据都将丢失.再次调用这 ...

  10. STL中的查找

    一.查找 1.头文件 #include <algorithm> 2.使用方法 1.binary_search:查找某个元素是否出现.O(logn) a.函数模板:binary_search ...