背景

为什么要研究Ceph集群搭建呢?

  • 商业存储非常昂贵,这是其一
  • 新服务器加入机房,旧服务器做改造再利用,这是其二
  • 数据都是保存在服务器本地,提升数据安全,这是其三

实验环境介绍

本次实验使用3台vmware workstation软件创建的虚拟机

  • 配置1vCPU,1G内存,4块20G磁盘,2块网卡(host only+nat模式)
  • 网络配置说明,host only模式网卡,仅配置IP+掩码,nat模式网卡,配置DHCP即可
  • 磁盘配置说明,sda作为操作系统盘,sdb/sdc/sdd作为ceph的数据盘
  • OS:CentOS 7.8 x86_64
  • Ceph版本:14.2.16 nautilus (stable)
  • ceph-deploy版本:2.0.1
  • python-pip版本:python2-pip-8.1.2-14.el7.noarch
  • IP规划:ceph-node1 192.168.0.1/10.0.0.1,ceph-node2 192.168.0.2/10.0.0.2,ceph-node3 192.168.0.3/10.0.0.3

实验步骤

一、ceph集群创建和第一个节点部署

1.1、关闭firewalld防火墙&&SELinux安全模块
systemctl stop firewalld && systemctl disable firewalld &> /dev/null
setenforce 0
cat > /etc/selinux/config << EOF
SELINUX=disabled
SELINUXTYPE=targeted
EOF

1.2、配置主机名解析配置
cat > /etc/hosts << EOF
10.0.0.1 ceph-node1
10.0.0.2 ceph-node2
10.0.0.3 ceph-node3
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
EOF

1.3、所有节点修改国内yum源,添加epel仓库
1.3.1.备份CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
1.3.2.下载repo文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
1.3.3.添加EPEL源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
1.3.4.手工编写ceph.repo仓库
cat > /etc/yum.repos.d/ceph.repo << EOF
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
gpgcheck=0
priority=1
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
gpgcheck=0
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS
gpgcheck=0
priority=1
EOF
1.3.5.清除缓存
yum clean all
1.3.6.更新本地YUM缓存
yum makecache

1.4、NTP配置
yum install ntp ntpdate -y
ntpdate pool.ntp.org
systemctl restart ntpdate.service
systemctl restart ntpd.service
systemctl enable ntpd.service
systemctl enable ntpdate.service

1.5、创建ceph集群
1.5.1、初始化创建集群
mkdir /etc/ceph
cd /etc/ceph
ceph-deploy new --cluster-network 10.0.0.0/24 --public-network 192.168.0.0/24 ceph-node1
1.5.2、安装二进制软件包
ceph-deploy install ceph-node1
[root@ceph-node1 ceph]# ceph -v
ceph version 14.2.16 (762032d6f509d5e7ee7dc008d80fe9c87086603c) nautilus (stable)
1.5.3、初始化并创建第一个moniter
ceph-deploy mon create-initial
1.5.4、创建三个osd并加入集群
fdisk /dev/sdb
n–>p–>1–>回车–>回车–>wq
mkfs.xfs /dev/sdb1
ceph-deploy osd create ceph-node1 --data /dev/sdb1
fdisk /dev/sdc
n–>p–>1–>回车–>回车–>wq
mkfs.xfs /dev/sdc1
ceph-deploy osd create ceph-node1 --data /dev/sdc1
fdisk /dev/sdd
n–>p–>1–>回车–>回车–>wq
mkfs.xfs /dev/sdd1
ceph-deploy osd create ceph-node1 --data /dev/sdd1
ceph status
[root@ceph-node1 ceph]# ceph status
cluster:
id: 231326c7-fb58-40e7-92f4-627c6def0200
health: HEALTH_WARN
no active mgr

services:
mon: 1 daemons, quorum ceph-node1 (age 10m)
mgr: no daemons active
osd: 3 osds: 3 up (since 43s), 3 in (since 43s)

data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 0 B used, 0 B / 0 B avail
pgs:

1.6、SSH免密配置
ceph-node1执行下面命令
ssh-keygen,键入三次回车
ssh-copy-id ceph-node1
输入yes,输入ceph-node2的root密码
ssh-copy-id ceph-node2
输入yes,输入ceph-node2的root密码
ssh-copy-id ceph-node3
输入yes,输入ceph-node3的root密码

1.7、部署Manager
ceph-deploy mgr create ceph-node1

二、给ceph集群添加第二个节点

2.1、关闭firewalld防火墙&&SELinux安全模块
systemctl stop firewalld && systemctl disable firewalld &> /dev/null
setenforce 0
cat > /etc/selinux/config << EOF
SELINUX=disabled
SELINUXTYPE=targeted
EOF

2.2、配置主机名解析配置
cat > /etc/hosts << EOF
10.0.0.1 ceph-node1
10.0.0.2 ceph-node2
10.0.0.3 ceph-node3
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
EOF

2.3、所有节点修改国内yum源,添加epel仓库
2.3.1.备份CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.3.2.下载repo文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2.3.3.添加EPEL源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2.3.4.手工编写ceph.repo仓库
cat > /etc/yum.repos.d/ceph.repo << EOF
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
gpgcheck=0
priority=1
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
gpgcheck=0
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS
gpgcheck=0
priority=1
EOF
2.3.5.清除缓存
yum clean all
2.3.6.更新本地YUM缓存
yum makecache

2.4、NTP配置
yum install ntp ntpdate -y
ntpdate pool.ntp.org
systemctl restart ntpdate.service
systemctl restart ntpd.service
systemctl enable ntpd.service
systemctl enable ntpdate.service

2.5、在ceph-node2上向ceph集群添加组件
2.5.1、安装二进制软件包
ceph-deploy install ceph-node2
[root@ceph-node1 ceph]# ceph -v
ceph version 14.2.16 (762032d6f509d5e7ee7dc008d80fe9c87086603c) nautilus (stable)
2.5.2、添加第二个moniter
ceph-deploy mon add ceph-node2
2.5.3、在ceph-node2创建三个磁盘分区
fdisk /dev/sdb
n–>p–>1–>回车–>回车–>wq
mkfs.xfs /dev/sdb1
fdisk /dev/sdc
n–>p–>1–>回车–>回车–>wq
mkfs.xfs /dev/sdc1
fdisk /dev/sdd
n–>p–>1–>回车–>回车–>wq
mkfs.xfs /dev/sdd1
2.5.4、使用ceph-node1添加三个osd
ceph-deploy osd create ceph-node2 --data /dev/sdb1
ceph-deploy osd create ceph-node2 --data /dev/sdc1
ceph-deploy osd create ceph-node2 --data /dev/sdd1
ceph status
[root@ceph-node1 ceph]# ceph status
cluster:
id: 231326c7-fb58-40e7-92f4-627c6def0200
health: HEALTH_WARN
no active mgr

services:
mon: 2 daemons, quorum ceph-node1,ceph-node2 (age 26m)
mgr: no daemons active
osd: 6 osds: 6 up (since 86s), 6 in (since 86s)

data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 0 B used, 0 B / 0 B avail
pgs:

2.6、在ceph-node1上添加Manager节点
ceph-deploy mgr create ceph-node2

三、给ceph集群添加第三个节点

3.1、关闭firewalld防火墙&&SELinux安全模块
systemctl stop firewalld && systemctl disable firewalld &> /dev/null
setenforce 0
cat > /etc/selinux/config << EOF
SELINUX=disabled
SELINUXTYPE=targeted
EOF

3.2、配置主机名解析配置
cat > /etc/hosts << EOF
10.0.0.1 ceph-node1
10.0.0.2 ceph-node2
10.0.0.3 ceph-node3
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
EOF

3.3、所有节点修改国内yum源,添加epel仓库
3.3.1.备份CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
3.3.2.下载repo文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3.3.3.添加EPEL源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
3.3.4.手工编写ceph.repo仓库
cat > /etc/yum.repos.d/ceph.repo << EOF
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
gpgcheck=0
priority=1
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
gpgcheck=0
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS
gpgcheck=0
priority=1
EOF
3.3.5.清除缓存
yum clean all
3.3.6.更新本地YUM缓存
yum makecache

3.4、NTP配置
yum install ntp ntpdate -y
ntpdate pool.ntp.org
systemctl restart ntpdate.service
systemctl restart ntpd.service
systemctl enable ntpd.service
systemctl enable ntpdate.service

3.5、在ceph-node2上向ceph集群添加组件
3.5.1、安装二进制软件包
ceph-deploy install ceph-node3
[root@ceph-node1 ceph]# ceph -v
ceph version 14.2.16 (762032d6f509d5e7ee7dc008d80fe9c87086603c) nautilus (stable)
3.5.2、添加第二个moniter
ceph-deploy mon add ceph-node3
3.5.3、在ceph-node3创建三个磁盘分区
fdisk /dev/sdb
n–>p–>1–>回车–>回车–>wq
mkfs.xfs /dev/sdb1
fdisk /dev/sdc
n–>p–>1–>回车–>回车–>wq
mkfs.xfs /dev/sdc1
fdisk /dev/sdd
n–>p–>1–>回车–>回车–>wq
mkfs.xfs /dev/sdd1
3.5.4、使用ceph-node1添加三个osd
ceph-deploy osd create ceph-node3 --data /dev/sdb1
ceph-deploy osd create ceph-node3 --data /dev/sdc1
ceph-deploy osd create ceph-node3 --data /dev/sdd1
ceph status
[root@ceph-node1 ceph]# ceph status
cluster:
id: 231326c7-fb58-40e7-92f4-627c6def0200
health: HEALTH_WARN
no active mgr

services:
mon: 3 daemons, quorum ceph-node1,ceph-node2,ceph-node3 (age 4m)
mgr: no daemons active
osd: 9 osds: 9 up (since 9s), 9 in (since 9s)

data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 0 B used, 0 B / 0 B avail
pgs:

3.6、在ceph-node1上添加Manager节点
ceph-deploy mgr create ceph-node3

四、Ceph集群搭建完毕的状态

[root@ceph-node1 ceph]# ceph -s
cluster:
id: 231326c7-fb58-40e7-92f4-627c6def0200
health: HEALTH_OK

services:
mon: 3 daemons, quorum ceph-node1,ceph-node2,ceph-node3 (age 111m)
mgr: ceph-node1(active, since 89s), standbys: ceph-node3, ceph-node2
osd: 9 osds: 9 up (since 111m), 9 in (since 2h)

data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 9.1 GiB used, 171 GiB / 180 GiB avail
pgs:

[root@ceph-node1 ceph]# ceph df
RAW STORAGE:
CLASS SIZE AVAIL USED RAW USED %RAW USED
hdd 180 GiB 171 GiB 57 MiB 9.1 GiB 5.03
TOTAL 180 GiB 171 GiB 57 MiB 9.1 GiB 5.03

POOLS:
POOL ID PGS STORED OBJECTS USED %USED MAX AVAIL
[root@ceph-node1 ceph]#

总结

至此3节点的ceph集群搭建完毕,接下来是深入学习与实践运用。还有很多未知等待去摸索。下期见。

系统架构师从入门到精通1.0 Ceph集群部署无报错流畅版本相关推荐

  1. 视频教程-赵强老师:大数据从入门到精通(12)集群HA-Hadoop

    赵强老师:大数据从入门到精通(12)集群HA 毕业于清华大学,拥有超过13年的工作经验. Oracle认证讲师,拥有6年以上授课经验.精通Oracle数据库.中间(Weblogic)和大数据Hadoo ...

  2. redis 3.0的集群部署

    2019独角兽企业重金招聘Python工程师标准>>> redis 3.0的集群部署 博客分类: 缓存 文章转载自:http://hot66hot.iteye.com/blog/20 ...

  3. 架构系列二:使用Nginx+tomcat实现集群部署

    架构系列二:使用Nginx+tomcat实现集群部署 一.环境介绍  VM1:Ubuntu-S100 IP:192.168.130.128 部署Tomcat应用及Nginx  VM2:Ubuntu-S ...

  4. redis-5.0.4集群部署

    redis-5.0.4 集群搭建 redis-cluster介绍 ​ 1:redis是一个开源的key value存储系统,受到了广大互联网公司的青睐. ​ 2:redis集群采用P2P模式,是完全去 ...

  5. CAT3.0的集群部署

    转载 https://www.jianshu.com/p/13d9de1f7fe5 CAT安装环境 CentOS 6.5Java 6,7,8,服务端推荐是用jdk7的版本,客户端jdk6.7.8都支持 ...

  6. redis3.0 java spring_Redis-3.0.6 集群部署集成SpringJava工程-----环境搭建

    注:本文所有操作都使用管理员权限 su root 输入密码 1.打开对应的端口- 既所有集群的端口号全部都打开 / 安装Jdk----暂时使用openJDK可行 /sbin/iptables -I I ...

  7. 大数据架构师从入门到精通 学习必看宝典

    经常有初学者在博客和QQ问我,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高.如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么我就想问一下,你 ...

  8. 大数据架构师从入门到精通

    经常有初学者在博客和QQ问我,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高.如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么我就想问一下,你 ...

  9. 微服务架构从入门到精通(四)微服务部署

    在微服务.DevOps.Cloud-native.系统部署等的讨论中,蓝绿发布.A/B 测试.灰度发布.滚动发布.红黑部署等概念经常被提到,它们究竟是什么呢? 一.蓝绿发布 1.1 什么是蓝绿发布 蓝 ...

  10. kubesphere v3.1.0 离线集群部署

    目录 一.简介 二.部署环境 2.1.系统要求 2.2.镜像仓库 三.安装部署 3.1.安装包下载: 3.2.安装步骤: 3.2.1.上传解压: 3.2.3.初始化环境: 3.2.4.导入镜像: 3. ...

最新文章

  1. Django开启HTTPS
  2. DL:神经网络算法简介之耗算力的简介、原因、经典模型耗算力计算、GPU使用之详细攻略
  3. k均值算法原理详细讲解以及matlab代码实现
  4. 微信小程序接入腾讯地图sdk地图 用户自选位置。踩坑+代码实现
  5. 人工智能大幕开启 安防行业已成先头部队
  6. 2016蓝桥杯省赛---java---C---10(密码脱落)
  7. Qt6.2.1使用clang格式化代码
  8. 修改计算机属性中的内存大小_Python 类属性的动态特点
  9. pytorch中Mini-batch批处理实现函数xx.unsqueeze(0)
  10. JSP自定义标签由浅到深讲解
  11. 性能测试工具AlldayTest 的测试方法及说明
  12. 6.java中什么是类_类、对象(java基础知识六)
  13. mondrain配置mysql_Mondrian + JPivot 环境配置
  14. 在DataGrid页眉上添加全选的CheckBox控件
  15. java反射面试_总结Java反射面试题(附答案)
  16. 那些年我们常用的软件
  17. 用的iapp教程手册,iapp模块的使用教程
  18. android手游渠道接入业务+技术全讲解
  19. 订单超时自动取消 java_springboot 支付订单超时自动处理
  20. 苹果ajax请求,请求苹果系统请求ajax提示没找到配置文件

热门文章

  1. tensorflow各个版本的CUDA以及Cudnn版本对应关系
  2. spring cloud alibaba全家桶集合
  3. PyCharm控制台Problems提示:Typo: In word ‘___‘
  4. 关于动车:动车票假如象飞机票那样卖会如何?
  5. 小象学院——面向对象的特点
  6. 计算机应用于设计,计算机工程与设计期刊_计算机工程与设计_计算机工程与应用...
  7. 大型网吧网络系统设计详细方案(转)
  8. Rime解决二三候选用分号和加减号翻页,以及设置禁止调频的问题
  9. STM32F103C8T6引脚图
  10. python lncrna_使用CPAT分析lncRNA