ceph实战之ceph集群搭建
Ceph基础
一、ceph起源
Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。
随着OpenStack的快速发展,越来越多的人使用Ceph作为OpenStack的底层共享存储,Ceph借助于云原生尤其是Kubernetes技术的发展,作为底层存储的基石,Ceph再次发力,为Kubernets有状态化业务提供了存储机制的实现。
二、ceph基础
ceph是一个开源的分布式存储系统,支持对象存储,块存储,文件系统。
ceph把每一个待管理的数据流切分为一个到多个固定大小(默认4M)的对象数据,并以原子单元完成数据的读写
对象数据的底层存储服务是有多个主机组成的存储集群,该集群为RADOS,该集群的librados是存储集群的API,支持c/c++/java/python/ruby/php/go
三、ceph组件
1)cephmon
cephmon用于维护集群状态,如集群有多少个存储池有多少个pg,及存储池和pg的映射关系,这些信息是集群互相协调的关键信息,同时还负责管理客户端到管理守护进程之间身份认证,cephmon通常需要有多个节点实现高可用架构。
2)cephmgr
cephmgr负责监控集群运行指标和集群状态,如存储使用率,系统负载,cephmgr内有多种组件如ceph-dashboard仪表盘组件。
3)cephosd
cephosd是ceph集群提供存储数据,一个磁盘就是一个osd守护进程,ceph集群中的数据存储,平衡,恢复都是有osd实现,cephosd通过向cephmon上报心跳信息告知ceph集群此osd是否可用。cephosd是ceph集群存储数据组件需要多个节点实现高可用性。
4)cephmds
提供ceph集群文件系统,对象存储和块存储不需要cephmds.
5)cephdeploy
通过cephdeploy执行各种命令行工具:rados,ceph,rbd,该节点有admin账户只对管理员开放。
四、ceph数据存储架构
Ceph中一切皆对象,不管是RBD块存储接口,RGW对象存储接口还是文件存储CephFS接口,其存储如到Ceph中的数据均可以看作是一个对象,一个文件需要切割为多个对象(object),然后将object存储到OSD中。
这些切割后的对象怎么选择到对应的OSD存储节点呢,这需要依赖于Ceph的智能调度算法CRUSH,通过CRUSH算法将对象调度到合适的OSD节点上,不管是客户端还是OSD,均使用CRUSH算法来计算对象在集群中OSD的位置信息,同时保障object的副本能落到合适的OSD节点上。
1)文件切割成4M大小的数据对象
2)数据对象通过hash算法找到存储池中的pg
3)在通过crush算法找到pg映射的osd
4)pg中的主osd将对象写入到磁盘
5)主osd将数据同步给备份osd,并等到备份osd写完后返回确认消息
6)主osd将写完信息告知客户端
ceph集群搭建
一:环境要求
服务器系统:centos7.9_x86_64
ceph版本: octopus
二:搭建架构
三: 各节点服务器资源分配详情
节点类型 | 主机IP | 主机名 | 系统盘 | 数据盘1 | 数据盘2 |
mgr节点 | 10.19.14.10 | cephmgr | sda | sdb | sdc |
mon节点 | 10.19.14.23 | cephstore2 | sda | sdb | sdc |
10.19.14.25 | cephstore3 | sda | sdb | sdc | |
10.19.14.27 | cephstore1 | sda | sdb | sdc | |
store节点 | 10.19.14.23 | cephstore2 | sda | sdb | sdc |
10.19.14.25 | cephstore3 | sda | sdb | sdc | |
10.19.14.27 | cephstore1 | sda | sdb | sdc | |
四:ceph集群搭建之基础工作
1)各节点创建ceph用户
#创建ceph用户
useradd ceph
#创建ceph用户密码
passwd ceph
2)在mgr节点上切换到ceph用户,生成ssh-pub秘钥
#切换到ceph用户执行下面命令,一直敲回车即可
su - ceph
ssh-keygen
3)同步mgr节点的ceph用户公钥到osd节点
#在mgr节点同步ceph用户公钥到个节点
ssh-copy-id ceph@10.19.14.10ssh-copy-id ceph@10.19.14.27ssh-copy-id ceph@10.19.14.25ssh-copy-id ceph@10.19.14.23
4)在各节点修改/etc/hosts文件添加主机名和IP对应解析
#在hosts文件里写入以下映射信息
vim /etc/hosts
10.19.14.10 cephmgr10.19.14.27 cephstore110.19.14.23 cephstore210.19.14.25 cephstore3
5)在各节点配置ceph 的yum源
centos7的base源和epel源都改为阿里云镜像源此处不做介绍,详情参考:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区
#配置ceph.repo文件
vim /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el7/noarch/
gpgcheck=0
6)在各个节点安装ceph依赖文件
#各个节点安装依赖文件
yum install -y python2-subprocess32 python36-werkzeug
pip3 install pecan -i https://pypi.douban.com/simple
7)在每个节点上添加ceph用户免密执行root权限
#在每个节点上添加ceph用户免密执行root权限
vim /etc/sudoers
ceph ALL=(ALL) NOPASSWD: ALL
8)在mgr节点创建ceph集群配置文件
#安装ceph-deploy
yum install -y ceph-deploy
#切换到ceph用户
su - ceph
#--cluster-network 为集群内部地址, --public-network 为外部可以调用地址
ceph-deploy new --cluster-network 10.19.14.10/24 --public-network 10.19.14.10/24 cephmgr
9)在mgr节点上修改ceph.conf配置
#在ceph用户家目录下修改ceph.conf配置文件
vim ceph.conf
[global]
fsid = 3ef172a8-147b-442d-a24a-1cd17ae2357e
public_network = 10.19.14.10/24
cluster_network = 10.19.14.10/24
mon_initial_members = cephstore1 #修改此处mon的主机名称
mon_host = 10.19.14.27 #修改此处mon的IP地址
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
五:ceph集群搭建之ceph-mon节点安装
1)在所有mon节点上安装ceph-mon服务
yum install -y ceph-mon
2)在mgr节点ceph用户下初始化ceph-mon主节点
#在mgr节点ceph用户下初始化mon节点
ceph-deploy mon create-initial
#在cephstore1节点验证是否安装mon成功
ps aux | grep mon
六:ceph集群搭建之ceph-mgr节点安装
1)在mgr节点上执行安装ceph-mgr服务
yum install -y ceph-mgr
2)在mgr节点ceph用户下执行创建mgr
ceph-deploy mgr create cephmgr
#验证mgr是否安装成功
ps aux | grep mgr
七:ceph集群搭建之ceph-osd节点安装(即cephstore节点)
1)在mgr节点ceph用户下初始化每个storge节点
#在mgr节点ceph用户下执行初始化每个storge节点命令
ceph-deploy install --no-adjust-repos --nogpgcheck cephstore1
ceph-deploy install --no-adjust-repos --nogpgcheck cephstore2
ceph-deploy install --no-adjust-repos --nogpgcheck cephstore3
2)在mgr节点ceph用户下依次执行擦除磁盘数据
ceph-deploy disk zap cephstore1 /dev/sdb # 节点名称 #磁盘名称ceph-deploy disk zap cephstore1 /dev/sdcceph-deploy disk zap cephstore2 /dev/sdbceph-deploy disk zap cephstore2 /dev/sdcceph-deploy disk zap cephstore3 /dev/sdbceph-deploy disk zap cephstore3 /dev/sdc
3)在mgr节点ceph用户下添加磁盘为OSD
ceph-deploy osd create cephstore1 --data /dev/sdb
ceph-deploy osd create cephstore1 --data /dev/sdc
ceph-deploy osd create cephstore2 --data /dev/sdb
ceph-deploy osd create cephstore2 --data /dev/sdc
ceph-deploy osd create cephstore3 --data /dev/sdb
ceph-deploy osd create cephstore3 --data /dev/sdc
八:查看集群信息
把ceph家用户下的 ceph.conf 和 ceph.client.admin.keyring 文件移动到/etc/ceph/ 目录下
切换到root用户下,执行ceph -s
处理 mon is allowing insecure global_id reclaim 警告
执行以下命令即可
ceph config set mon auth_allow_insecure_global_id_reclaim false
但是没有对ceph-mon节点和ceph-mgr节点进行高可用扩展,那如何实现ceph-mon 和ceph-mgr的高可用呢?
上篇规划的集群架构
本篇规划新添加14.23为新增ceph-mon, 14.27为新增的ceph-mgr
一:添加ceph-mon节点到ceph集群
1)上一篇已经介绍了在节点上如何安装ceph-mon, 在需要添加到ceph集群的mon节点上安装cepn-mon服务
yum install -y ceph-mon
2)在mgr节点ceph用户下把新增加的ceph-mon节点添加到ceph集群
#在mgr节点ceph用户下执行
ceph-deploy mon add cephstore2
3)在mgr节点上切换到root用户下查看集群状态
#切换到root用户下查看集群状态
ceph -s
可以看到services下mon下有2daemons, 分别为cephstore1,cephstore2
二:添加ceph-mgr节点到ceph集群
1)上一篇已经介绍了在节点上如何安装ceph-mgr, 在需要添加到ceph集群的mgr节点上安装cepn-mon服务
#在cephstore1上安装ceph-mgr服务
yum install -y ceph-mgr
2)在mgr节点ceph用户下把新增加的ceph-mgr节点添加到ceph集群
#在mgr节点ceph用户下执行
ceph-deploy mgr create cephstore1
3)在mgr节点上切换到root用户下查看集群状态
# 在mgr节点切换到root用户下执行
ceph -s
可以看到services下 mgr节点信息,cephmgr为active状态,cephstore1为standbys状态
4)验证测试:把cephmgr节点上的mgr服务停掉查看集群状态
systemctl stop ceph-mgr.target
可以看到mgr节点状态之前的cephstore1有standbys变为acive
以上内容为扩展ceph集群的ceph-mon 和 ceph-mgr 为高可用架构,接下来准备写写ceph集群的维护和管理。
————————————————
版权声明:本文为CSDN博主「Mr.Lilh」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_64417032/article/details/123610051
————————————————
版权声明:本文为CSDN博主「Mr.Lilh」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_64417032/article/details/123603291
ceph实战之ceph集群搭建相关推荐
- Ceph集群搭建系列(六):RBD块设备的使用场景、原理分析及其创建
一.前言 下图数据出自2018年ceph社区用户调查报告,Ceph RBD接口的使用场景主要是VM和DB数据库. 而使用Ceph RBD的接口方式的用户数据如下,主要是librbd 和 kernel ...
- Ceph集群搭建及其运用(块存储、ceph文件系统)
一.ceph简介 ceph被称作面向未来的存储, 可以实现的存储方式: 块存储:提供像普通硬盘一样的存储,为使用者提供"硬盘" 文件系统存储:类似于NFS的共享方式,为使用者提供共 ...
- Ceph分布式文件系统集群搭建详解
1.Ceph分布式文件系统简介 Ceph是一种为优秀的性能.可靠性和可扩展性而设计的统一的.分布式文件系统. Ceph 独一无二地在一个统一的系统中同时提供了对象.块.和文件存储功能. 基开发目标是: ...
- 初试 Centos7 上 Ceph 存储集群搭建
https://blog.csdn.net/aixiaoyang168/article/details/78788703 目录 Ceph 介绍 环境.软件准备 Ceph 预检 ...
- 三 Ceph集群搭建
Ceph集群 集群组件 Ceph集群包括Ceph OSD,Ceph Monitor两种守护进程. Ceph OSD(Object Storage Device): 功能是存储数据,处理数据的复制.恢复 ...
- 实战04_redis-cluster集群搭建
接上一篇:实战_03_Redis基础命令https://blog.csdn.net/weixin_40816738/article/details/99213524 #安装gcc yum instal ...
- 部署Ceph分布式高可用集群中篇
前言 如何快速部署Ceph分布式高可用集群 Ceph分布式存储底层实现原理 上文介绍了ceph的原理以及ceph的部署(部署了一个mon角色)本文继续介绍下ceph的部署 部署OSD 查看磁盘使用情况 ...
- 二进制安装mysql集群_实战mysql集群搭建(一)--centos7下二进制安装mysql-5.6
在超哥的帮助下,完成了基于InnoDb数据引擎的mysql数据库集群搭建,实现了主从复制的功能,本篇博文介绍如何使用二进制安装mysql的方法,具体实现步骤如下: 软件使用说明: Liunx系统:ce ...
- 【Docker之Swarm详细讲解Swarm集群搭建管理节点工作节点Raft一致性协议overlay网络Docker结合Swarm部署WordPress个人博客实战】
一.知识回顾 之前的内容都帮你整理好了,在这里哟! [0.Docker相关目录文章整理,可自行查看,包含多节内容] [1.Docker详细安装部署&阿里镜像地址配置] [2.Docker架构& ...
最新文章
- 计算概论c和文科计算机,计算概论与计算机程序设计基础/C语言【理工学社】
- 移动端geolocation插件+百度地图js获取地址
- 字符串常量前面的L的作用
- css实现一级下拉菜单
- SpringBoot - 静态资源映射处理
- 为什么8位有符号数的范围为“-128 — +127”?(转载加补充)
- jQuery.fn.extend 与 jQuery.extend 用法
- 插入保存?展现show的顺序
- Linux系统攻略关于vi替换命令的使用说明
- Multipy String | leetcode
- 移动端app开发,原生开发与混合开发的区别
- Linux SPI驱动(Linux驱动开发篇)
- java.lang.ClassCastException: com.sun.proxy.$Proxy7 cannot be cast to comms.service.message
- Sci-Hub桌面版 告别网站被封的尴尬
- python xlrd读取excel慢_与xlrd相比,使用openpyxl读取Excel文件要慢很多
- scala either_使用Either和Option处理功能错误
- 国家何时整治程序员的高薪现象???
- 长沙医学院计算机科学与技术专业怎么样,长沙医学院有哪些专业及什么专业好...
- 许永鑫 南京理工大学计算机学院,南京理工大学计算机科学与技术学院研究生导师简介-付安民...
- JVM GC(垃圾回收机制)Minro GC,Major GC/Full GC
热门文章
- jQuery是什么?和它的优缺点
- 杰里之AI(692X系列)篇
- Object Detection经典代码与文章
- 432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型
- MATLAB分析各类建筑能耗与环境温度关系
- 批量修改文件后缀名(扩展名格式),操作简单1行命令搞定!
- java8 两个时间比较
- Dota2冠军OG如何被AI碾压?OpenAI累积三年的完整论文终于放出
- 【1044】判断是否为两位数
- [2023-01 持续更新] 谷歌学术google镜像/Sci-Hub可用网址/Github镜像可用网址总结