当前位置: 首页 > java >正文

cephadm部署ceph集群

一、什么是Ceph?

ceph是一个统一的、分布式的存储系统,设计初衷式提供较好的性能(io)、可靠性(没有单点故障)和可扩展性(未来可以理论上无限扩展集群规模),这三点也是集群架构所追求的。

  • “统一的”:意味着Ceph可以一套存储系统同时提供对象存储块存储文件系统存储三种功能,以便在满足不同应用需求的前提下简化部署和运维
  • “分布式”:在Ceph系统中则意味着真正的无中心结构和没有理论上限的系统规模可扩展性

二、Ceph系统的层次结构

三、寻址流程

四、cephadm部署ceph集群

1、环境准备

OS:

[root@ceph1 ~]# cat /etc/rocky-release
Rocky Linux release 8.10 (Green Obsidian)

存储节点: 3 个存储节点使用/dev/vdb、/dev/vdc、/dev/vdd 作为 OSD 硬盘

ceph1(管理节点)192.168.8.197
ceph2192.168.8.198
ceph3

192.168.8.199

设置主机名、hosts解析、关闭防火墙、禁用SELinux、时间同步 

分布式系统对时间同步要求极高,若节点间时钟不一致(通常由 NTP 服务未正确配置或同步异常导致),会影响监控节点间的通信与协作,触发健康警告

主机名:
[root@Rocky8 ~]# hostnamectl set-hostname ceph1 ...
hosts解析:
[root@Rocky8 ~]# cat >> /etc/hosts << EOF
192.168.8.197 ceph1
192.168.8.198 ceph2
192.168.8.199 ceph3
EOF关闭防火墙:
[root@Rocky8 ~]# systemctl stop firewalld
[root@Rocky8 ~]# systemctl disable firewalld禁用SELinux:
[root@Rocky8 ~]# setenforce 0
[root@Rocky8 ~]# sed -i '/^SELINUX/ c SELINUX=disabled' /etc/selinux/config时间同步:
[root@Rocky8 ~]# yum install chrony -y
[root@Rocky8 ~]# vi /etc/chrony.conf 
pool ntp.aliyun.com iburst
[root@Rocky8 ~]# systemctl restart chronyd
[root@Rocky8 ~]# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^~ 203.107.6.88                  2   6   377    10  -319.3s[-319.3s] +/-  124ms

2、cephadm 配置

2.1.配置ceph yum 源

cat > /etc/yum.repos.d/ceph.repo <<EOF
[ceph]
name=ceph x86_64
baseurl=https://repo.huaweicloud.com/ceph/rpm-pacific/el8/x86_64
enabled=1
gpgcheck=0
[ceph-noarch]
name=ceph noarch
baseurl=https://repo.huaweicloud.com/ceph/rpm-pacific/el8/noarch
enabled=1
gpgcheck=0
[ceph-source]
name=ceph SRPMS
baseurl=https://repo.huaweicloud.com/ceph/rpm-pacific/el8/SRPMS
enabled=1
gpgcheck=0
EOF

2.2.安装python3

[root@Rocky8 ~]# dnf install python3 -y

2.3.安装docker-ce

[root@Rocky8 ~]# yum install -y wget
[root@Rocky8 ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
[root@Rocky8 ~]# sed -i 's+download.docker.com+mirrors.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
[root@Rocky8 ~]# dnf install docker-ce -y
[root@Rocky8 ~]# systemctl restart docker
# 安装常用软件
[root@Rocky8 ~]# yum install vim bash-completion net-tools tree -y

2.3.ceph1 上安装cephadm

[root@ceph1 ~]# yum install cephadm -y

2.4.ceph1 使用cephadm 初始化ceph集群

[root@ceph1 ~]# cephadm --docker bootstrap \
--mon-ip 192.168.8.197 \
--initial-dashboard-user admin \
--initial-dashboard-password redhat \
--dashboard-password-noupdate \
--allow-fqdn-hostname

3、集群扩容

3.1、拷贝公钥至ceph2、ceph3

[root@ceph1 ~]# ssh-keygen   #一路回车
[root@ceph1 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub ceph2  
[root@ceph1 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub ceph3

3.2、添加节点到集群

[root@ceph1 ~]# cephadm shell ceph orch host add ceph2
[root@ceph1 ~]# cephadm shell ceph orch host add ceph3

 3.3、安装 ceph-common

[root@ceph1 ~]# yum install epel-release -y
[root@ceph2 ~]# yum install ceph-common -y

3.4、添加osd (对象存储设备) 

#添加所有
[root@ceph1 ~]# ceph orch apply osd --all-available-devices#添加个别
ceph orch daemon add osd ceph1:/dev/sdb 
ceph orch daemon add osd ceph1:/dev/sdc 
ceph orch daemon add osd ceph1:/dev/sdd 
ceph orch daemon add osd ceph2:/dev/sdb 
ceph orch daemon add osd ceph2:/dev/sdc 
ceph orch daemon add osd ceph2:/dev/sdd 
ceph orch daemon add osd ceph3:/dev/sdb 
ceph orch daemon add osd ceph3:/dev/sdc 
ceph orch daemon add osd ceph3:/dev/sdd 

3.5、设置ceph1为管理节点

[root@ceph1 ~]# ceph orch host label add ceph1 _admin

 3.6、将 mon 和 mgr 组件部署到指定节点中

[root@ceph1 ~]# ceph orch apply mon "ceph1 ceph2 ceph3"
[root@ceph1 ~]# ceph orch apply mgr --placement "ceph1 ceph2 ceph3"

4、验证

如果时间不同步就会出现以下警告:

验证web:

http://www.xdnf.cn/news/4278.html

相关文章:

  • php案列
  • QML ProgressBar控件详解
  • G919-GAS软件 JSON格式数据通讯协议-阵列数据解析
  • SQLark可以支持PostgreSQL了,有哪些新功能?
  • C++ Avl_Tree
  • 239. 滑动窗口最大值
  • yolo训练用的数据集的数据结构
  • RPA自动化:开启智能流程新时代
  • OpenCV 图形API(77)图像与通道拼接函数-----对图像进行几何变换函数remap()
  • 面试常问系列(一)-神经网络参数初始化-之-softmax
  • java springboot解析出一个图片的多个二维码
  • 软考-软件设计师中级备考 13、刷题 数据结构
  • k8s node soft lockup (内核软死锁) 优化方案
  • python3使用:macOS上通过Homebrew安装pip库
  • linux 如何防止内存碎片化?
  • C#中不能通过new关键字创建实例的情况
  • conda虚拟环境相关操作
  • LeetCode 热题 100 39. 组合总和
  • Jetpack Compose 自定义 Slider 完全指南
  • QT键盘触发按钮
  • laravel 12 监听syslog消息,并将消息格式化后存入mongodb
  • 深度解析:2D 写实交互数字人 —— 开启智能交互新时代
  • API 开发实战:基于京东开放平台的实时商品数据采集接口实现
  • 【25软考网工】第五章(6)TCP和UDP协议、流量控制和拥塞控制、重点协议与端口
  • 项目中为什么选择RabbitMQ
  • Vision-Language Models (VLMs) 视觉语言模型的技术背景、应用场景和商业前景(Grok3 DeepSearch模式回答)
  • 隔离端口配置
  • 消除AttributeError: module ‘ttsfrd‘ has no attribute ‘TtsFrontendEngine‘报错输出的记录
  • 2015-2018年 重要城市交通拥堵指数-社科数据
  • Ragflow服务器上部署教程