基于BClinux8部署Ceph 19.2(squid)集群

#作者:闫乾苓

文章目录

  • 1.版本选择
    • Ceph版本发布历史
    • 目前官方在维护的版本
  • 2.部署方法
  • 3.服务器规划
  • 4.前置配置
    • 4.1系统更新
    • 4.2配置hosts
  • cat >> /etc/hosts << EOF
  • ssh-keygen
  • ssh-copy-id ceph01
  • ssh-copy-id ceph02
  • ssh-copy-id ceph03
    • 4.5 Python3
    • 4.6 Systemd
    • 4.7 LVM2
    • 4.8 docker安装
  • 5.使用 cephadm 部署Ceph 集群
    • 5.1安装cephadm
    • 5.2引导新集群
    • 5.3启用 Ceph CLI
    • 5.4添加主机
    • 5.4添加存储(部署 OSD)

1.版本选择

本文档使用最新稳定版squid 19.2.0进行安装部署测试

Ceph版本发布历史

在这里插入图片描述

目前官方在维护的版本

名称发布时间最新版本停止维护时间(估计)
Squid2024-09-2619.2.02026-09-19
Reef2023-08-0718.2.42025-08-01

2.部署方法

使用官方推荐的Cephadm进行部署,Cephadm 通过引导单个主机、扩展集群以包含任何其他主机,然后部署所需的服务来创建新的 Ceph 集群。

3.服务器规划

IPHostname硬件配置
192.168.61.11ceph01CPU: 4c、Mem: 8GB、Hdd1: 100G、Hdd2: 500GB
192.168.61.12ceph02CPU: 4c、Mem: 8GB、Hdd1: 100G、Hdd2: 500GB
192.168.61.13ceph03CPU: 4c、Mem: 8GB、Hdd1: 100G、Hdd2: 500GB

操作系统信息:
系统版本:BigCloud Enterprise Linux release 8.8 (Core)
内核:5.10.134-12.2.el8.bclinux.x86_64

4.前置配置

4.1系统更新

(所有节点执行)

# yum update

4.2配置hosts

(所有节点执行)

cat >> /etc/hosts << EOF

192.168.61.11 ceph01
192.168.61.12 ceph02
192.168.61.13 ceph03
EOF
4.3节点间ssh免密配置
(ceph01执行)

ssh-keygen

ssh-copy-id ceph01

ssh-copy-id ceph02

ssh-copy-id ceph03

4.4时间同步配置
使用chrony做为时间同步服务,ceph01作为集群内时间服务的server端,配置向公网ntp服务器(ntp.aliyun.com)同步时间,ceph02、ceh03作为集群内时间服务的client端,向ceph01 server端同步时间。

所有节点查看chrony是否安装
# rpm -qa |grep chrony
chrony-4.2-1.0.1.an8.x86_64
如果没有安装,执行以下命令进行安装
# yum install chrony备份原配置文件
# cp /etc/chrony.conf{,.df}ceph01节点(chrony服务端,需要能访问外网ntpserver)修改配置文件
# cat > /etc/chrony.conf << EOF
pool ntp.aliyun.com iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 192.168.61.0/24
keyfile /etc/chrony.keys
leapsectz right/UTC
logdir /var/log/chrony
EOFceph02、ceph03节点(chrony客户端)修改配置文件
# cat > /etc/chrony.conf << EOF
pool ceph01 iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
keyfile /etc/chrony.keys
leapsectz right/UTC
logdir /var/log/chrony
EOF所有节点执行chronyd服务器重启并设置开机启动
# systemctl restart chronyd
# systemctl enable chronyd所有节点查看chronyd 服务是否正常
# systemctl status chronydceph01 查看配置的NTP服务器的状态
[root@ceph01 ~]# chronyc sources -v
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
========================================================
^* 203.107.6.88               2   7   377    35  -1438us[-1796us] +/-   24msceph02、ceph03查看配置的NTP服务器的状态
[root@ceph02 ~]# chronyc sources -v
MS Name/IP address      Stratum Poll Reach LastRx Last sample               
========================================================
^? ceph01                0   8     0     -     +0ns[   +0ns] +/-    0ns[root@ceph03 ~]# chronyc sources -v
MS Name/IP address      Stratum Poll Reach LastRx Last sample               
========================================================
^? ceph01                0   8     0     -     +0ns[   +0ns] +/-    0ns# 所有节点查看系统时间与时区是否设置正确
# date

4.5 Python3

默认已安装,所有节点查看:(这个是python最低版本要求,是否是唯一的支持版本)

# python3 -V
Python 3.6.8

4.6 Systemd

默认已安装,所有节点查看:

# systemctl --version
systemd 239 (239-74.0.2.an8.3) 

4.7 LVM2

默认已安装,所有节点查看:

# rpm -q lvm2
lvm2-2.03.14-9.oe2203sp2.x86_64

4.8 docker安装

# dnf -y install dnf-plugins-core# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo## 查看可安装版本列表
# dnf list docker-ce --showduplicates | sort -r# dnf install docker-ce-26.1.3-1.el8 docker-ce-cli-26.1.3-1.el8 containerd.io docker-buildx-plugin docker-compose-plugin# systemctl enable docker
# systemctl start docker
# systemctl status docker# docker info |grep "Server Version:"
Server Version: 26.1.3

5.使用 cephadm 部署Ceph 集群

5.1安装cephadm

(ceph01节点执行)
指定ceph的版本,比如本文是squid 19.2.0版本,并下载cephadm的可执行程序

[root@ceph01 ~]# CEPH_RELEASE=19.2.0
[root@ceph01 ~]# curl --silent --remote-name --location https://download.ceph.com/rpm-${CEPH_RELEASE}/el9/noarch/cephadm
[root@ceph01 ~]# chmod +x cephadm

因cephadm没有对bclinux系统做适配,所以添加cephadm repo源有如下提示:

[root@ceph01 ~]# ./cephadm add-repo --release squid
ERROR: Distro bclinux version 8.8 not supported

Ceph squid19.2.0技术上支持centos7/8/9等主流linux系统,仅对linux kernel提出最低版本要求(4.19以上)。官方尤其对centos9做了全面的测试并提供各个组件的官方安装包。而且这里的部署是裸金属上的容器化部署,对系统平台要求放宽。为了让cephadm支持本环境的安装,需要通过修改bclinux8的/etc/os-release达到ceph squid19.2.0 可以在bclinux8上安装的目的。

[root@ceph01 ~]# cp /etc/os-release{,.df}
[root@ceph01 ~]# cat > /etc/os-release << EOF
NAME="CentOS Stream"
VERSION="9"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="9"
PLATFORM_ID="platform:el9"
PRETTY_NAME="CentOS Stream 9"
ANSI_COLOR="0;31"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:centos:centos:9"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://issues.redhat.com/"
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 9"
REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream"
EOF

虽然独立的 cephadm 足以引导集群,但最好在主机上安装该命令

[root@ceph01 ~]#  ./cephadm add-repo --release squid
Writing repo to /etc/yum.repos.d/ceph.repo...
Enabling EPEL...
Completed adding repo.[root@ceph01 ~]# ./cephadm install
Installing packages ['cephadm']...

通过运行以下命令确认cephadm现在位于PATH 环境变量中

[root@ceph01 ~]# which cephadm
/usr/sbin/cephadm

5.2引导新集群

创建新 Ceph 集群的第一步是在 Ceph 集群的第一台主机上运行该命令。在 Ceph 集群的第一台主机上运行该命令会创建 Ceph 集群的第一个 Monitor 守护进程 。您必须将 Ceph 集群的第一台主机的 IP 地址传递给该命令,因此您需要知道该主机的 IP 地址。

[root@ceph01 ~]# cephadm bootstrap --mon-ip 192.168.61.11

此命令将:

  • 在本地主机上为新集群创建一个监视器和一个管理器守护进程。
  • 为 Ceph 集群生成新的 SSH 密钥并将其添加到 root 用户/root/.ssh/authorized_keys文件中。
  • 将公钥的副本写入/etc/ceph/ceph.pub。
  • 向/etc/ceph/ceph.conf写入一个最小配置文件。此文件是与 Ceph 守护进程通信所必需的。
  • 将client.admin管理(特权!)密钥的副本写入/etc/ceph/ceph.client.admin.keyring。
  • 将标签添加到引导主机。默认情况下,任何具有此标签的主机也将获得/etc/ceph/ceph.conf/和/etc/ceph/ceph.client.admin.keyring _admin的副本。

引导集群命令正常结束输出信息如下:

Ceph Dashboard is now available at:URL: https://ceph01:8443/User: adminPassword: b8c7zgjz8g
Enabling client.admin keyring and conf on hosts with "admin" label
Saving cluster configuration to /var/lib/ceph/0978cb18-dc68-11ef-b0d7-000c29460ffd/config directory
You can access the Ceph CLI as following in case of multi-cluster or non-default config:sudo /usr/sbin/cephadm shell --fsid 0978cb18-dc68-11ef-b0d7-000c29460ffd -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring
Or, if you are only running a single cluster on this host:sudo /usr/sbin/cephadm shell 
Please consider enabling telemetry to help improve Ceph:ceph telemetry on
For more information see:https://docs.ceph.com/en/latest/mgr/telemetry/
Bootstrap complete.

5.3启用 Ceph CLI

[root@ceph01 ~]# cephadm shell
Inferring fsid 0978cb18-dc68-11ef-b0d7-000c29460ffd
Inferring config /var/lib/ceph/0978cb18-dc68-11ef-b0d7-000c29460ffd/mon.ceph01/config
Using ceph image with id '37996728e013' and tag 'v19' created on 2024-09-28 06:08:21 +0800 CST
quay.io/ceph/ceph@sha256:200087c35811bf28e8a8073b15fa86c07cce85c575f1ccd62d1d6ddbfdc6770a
[ceph: root@ceph01 /]# ceph -scluster:id:     0978cb18-dc68-11ef-b0d7-000c29460ffdhealth: HEALTH_WARNOSD count 0 < osd_pool_default_size 3services:mon: 1 daemons, quorum ceph01 (age 13m)mgr: ceph01.vqsdyy(active, since 11m)osd: 0 osds: 0 up, 0 indata:pools:   0 pools, 0 pgsobjects: 0 objects, 0 Busage:   0 B used, 0 B / 0 B availpgs:     

5.4添加主机

要将每个新主机添加到集群,请执行两个步骤:
1.在新主机的root用户的authorized_keys文件中安装集群的公共SSH密钥:

[root@ceph01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph02
[root@ceph01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph03

2.告诉Ceph新节点是集群的一部分:

[root@ceph01 ~]# cephadm shell
Inferring fsid 0978cb18-dc68-11ef-b0d7-000c29460ffd
Inferring config /var/lib/ceph/0978cb18-dc68-11ef-b0d7-000c29460ffd/mon.ceph01/config
Using ceph image with id '37996728e013' and tag 'v19' created on 2024-09-28 06:08:21 +0800 CST
quay.io/ceph/ceph@sha256:200087c35811bf28e8a8073b15fa86c07cce85c575f1ccd62d1d6ddbfdc6770a
[ceph: root@ceph01 /]# ceph orch host add ceph02 192.168.61.12
Added host 'ceph02' with addr '192.168.61.12'
[ceph: root@ceph01 /]# ceph orch host add ceph03 192.168.61.13
Added host 'ceph03' with addr '192.168.61.13'

查看集群中所有主机:

[ceph: root@ceph01 /]# ceph orch host ls
HOST    ADDR           LABELS  STATUS  
ceph01  192.168.61.11  _admin          
ceph02  192.168.61.12                  
ceph03  192.168.61.13                  
3 hosts in cluster

5.4添加存储(部署 OSD)

集群中每个节点增加单独的500G磁盘作为存储盘
[root@ceph01 ~]# lsblk
..
nvme0n2      259:3    0  500G  0 disk

从特定主机上的特定设备创建高级 OSD

[ceph: root@ceph01 /]# ceph orch daemon add osd ceph01:/dev/nvme0n2
Created osd(s) 0 on host 'ceph01'
[ceph: root@ceph01 /]# ceph orch daemon add osd ceph02:/dev/nvme0n2
Created osd(s) 1 on host 'ceph02'
[ceph: root@ceph01 /]# ceph orch daemon add osd ceph03:/dev/nvme0n2
Created osd(s) 2 on host 'ceph03'

增加磁盘完成后查看集群状态已正常

[ceph: root@ceph01 /]# ceph -scluster:id:     0978cb18-dc68-11ef-b0d7-000c29460ffdhealth: HEALTH_OKservices:mon: 3 daemons, quorum ceph01,ceph02,ceph03 (age 26m)mgr: ceph01.vqsdyy(active, since 28m), standbys: ceph02.dqnwfvosd: 3 osds: 3 up (since 16m), 3 in (since 16m)data:pools:   1 pools, 1 pgsobjects: 2 objects, 449 KiBusage:   82 MiB used, 1.5 TiB / 1.5 TiB availpgs:     1 active+clean

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/74245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装React开发者工具

我们在说组件之前&#xff0c;需要先安装一下React官方推出的开发者工具&#xff0c;首先我们分享在线安装方式 首先打开谷歌网上应用商店(针对谷歌浏览器)&#xff0c;在输入框内搜索react&#xff0c;安装如下插件&#xff1a; 注意安装提供方为Facebook的插件&#xff0c;这…

linux中如何修改文件的权限和拥有者所属组

目录标题 chmod指令八进制形式权限修改文件拥有者所属组的修改umask有关内容 chmod指令 chmod指令可以用来修改人员的权限其形式如下&#xff1a; u代表的是拥有者&#xff0c;g代表的是所属组&#xff0c;o代表的是其他人&#xff0c;a表示所有人&#xff0c;如果你想增加权…

三主热备架构

1.要求 角色主机名软件IP地址用户client192.168.72.90keepalivedvip192.168.72.100masterserverAkeepalived, nginx192.168.72.30backupserverBkeepalived, nginx192.168.72.31backupserverCkeepalived, nginx192.168.72.32webtomcat1tomcat192.168.72.41webtomcat2tomcat192.1…

windows 10 系统配置Node

目录 什么是Node.js 什么是Npm Node.js环境搭建 下载 解压 配置环境变量 npm配置 如何运行下载的Node.js项目 什么是Node.js 在 Node.js 之前&#xff0c;JavaScript 只能运行在浏览器中&#xff0c;作为网页脚本使用&#xff0c;为网页添加一些特效&#xff0c;或者和…

Windows Server 2025 使用 IIS 搭建 ASP.NET 3.5 网站

开启远程桌面 参考文章Windows server开启远程桌面教程打开服务管理器。ECS 配置安全组&#xff0c;开启 3389Telnet 验证网络联通性 telnet x.x.x.x 338安装 Windows App&#xff0c;登录验证 安装 ASP.NET 3.5 1.参考文章Windows Server 2012安装 .NET Framework 3.5和 Wi…

开源模型应用落地-shieldgemma-2-4b-it模型小试-多模态内容安全检测(一)

一、前言 在人工智能迅速发展的过程中,内容安全成为AI应用中的一个重要挑战。谷歌团队于2025年3月推出了一款名为ShieldGemma-2-4B-IT的模型,它以创新的多模态安全检测能力,为行业树立了新的开源责任AI标准。 与早期的仅支持文本审核的版本相比,ShieldGemma-2-4B-IT在谷歌的…

【数据预测】基于遗传算法GA的LSTM光伏功率预测 GA-LSTM光伏功率预测【Matlab代码#91】

文章目录 【可更换其他算法&#xff0c;获取资源请见文章第6节&#xff1a;资源获取】1. 遗传算法GA2. 长短期记忆网络LSTM3. 基于GA-LSTM的光伏功率预测4. 部分代码展示5. 运行结果展示6. 资源获取 【可更换其他算法&#xff0c;获取资源请见文章第6节&#xff1a;资源获取】 …

openEuler24.03 LTS下安装Hadoop3完全分布式

目录 Linux准备 openEuler24.03 LTS简介 下载openEuler24.03 LTS 安装openEuler24.03 LTS Linux基本设置 关闭及禁用防火墙 修改主机名 静态ip 映射主机名 创建普通用户 目录准备 克隆主机 配置机器之间免密登录 编写分发脚本 安装Java 下载Java 解压 设置环…

【Linux之Shell脚本实战】Linux服务器输出美观漂亮的html巡检报告

【Linux之Shell脚本实战】Linux服务器输出美观漂亮的html巡检报告 一、Shell脚本介绍1.1 Shell脚本简介1.2 Shell脚本特点二、脚本要求三、检查本地环境3.1 本地环境规划3.2 检查本地系统3.3 检查系统内核版本四、编辑脚本五、执行及测试脚本5.1设置定时任务5.2 执行效果六、总…

坦克大战(c++)

今天我给大家分享一个c游戏。 废话不多说&#xff0c;作品展示&#xff1a; #include <stdio.h> #include <windows.h> #include <time.h> //里规格&#xff1a;长39*278 &#xff08;真坐标&#xff09;(假坐标宽为39) 高39 //外规格&#xff1a;长…

node-ddk, electron组件, 自定义本地文件协议,打开本地文件

node-ddk 文件协议 https://blog.csdn.net/eli960/article/details/146207062 也可以下载demo直接演示 http://linuxmail.cn/go#node-ddk 安全 考虑到安全, 本系统禁止使用 file:/// 在主窗口, 自定义文件协议,可以多个 import main, { NODEDDK } from "node-ddk/m…

论文阅读:2023 arxiv Provable Robust Watermarking for AI-Generated Text

总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 Provable Robust Watermarking for AI-Generated Text https://arxiv.org/pdf/2306.17439 https://github.com/XuandongZhao/Unigram-Watermark https://www.doubao.com/chat/211092…

一条sql语句在mysql中的执行流程(Mysql基础架构)

mysql基础架构 MySQL 主要分为 Server 层和 存储引擎层&#xff1a; Server 层&#xff1a;主要包括 连接器、查询缓存、分析器、优化器、执行器等&#xff0c;所有跨存储引擎的功能都在这一层实现&#xff0c;比如存储过程、触发器、视图&#xff0c;函数等&#xff0c;还有一…

GitLens with `Commit Graph`

文章目录 GitLens with Commit Graph GitLens with Commit Graph 想要更直观地查看 Git 提交历史&#xff1f;我打包了一个支持 Commit Graph 的 GitLens 版本&#xff0c;让你轻松在 VSCode 中查看分支、合并、变更记录等内容&#xff0c;一目了然&#xff01; &#x1f4cc…

C#里使用libxl的数字格式

由于EXCEL里可以表示不同的数字格式, 比如表示货币数字时,与表示普通序号的数字就不一样。 还有科学计算表示的数字使用小数点位数与普通货币也不一样。 如下所示: 要使用这些格式, 下面创建一个例子来演示保存这些数字格式: private void button11_Click(object send…

CentOS 7扩容 /dev/shm

在 CentOS 7 中&#xff0c;/dev/shm 是基于内存的临时文件系统&#xff08;tmpfs&#xff09;&#xff0c;其大小通常为系统内存的一半。要扩容 /dev/shm&#xff0c;可以通过重新挂载 tmpfs 并指定新的大小来实现。 扩容步骤 查看当前 /dev/shm 的大小&#xff1a; df -h /d…

【一起学Rust | Tauri2.0框架】基于 Rust 与 Tauri 2.0 框架实现全局状态管理

前言 在现代应用程序开发中&#xff0c;状态管理是构建复杂且可维护应用的关键。随着应用程序规模的增长&#xff0c;组件之间共享和同步状态变得越来越具有挑战性。如果处理不当&#xff0c;状态管理可能会导致代码混乱、难以调试&#xff0c;并最终影响应用程序的性能和可扩…

百度SEO和必应SEO优化方法

如需SEO服务&#xff0c;可以搜索&#xff1a;深圳市信科网络科技有限公司。 一、搜索引擎生态格局&#xff1a;流量入口的重新洗牌 2025 年&#xff0c;中国 PC 端搜索引擎市场正经历戏剧性变革。StatCounter 数据显示&#xff0c;必应凭借 Edge 浏览器的预装优势与 ChatGPT …

Redis 事件机制详解

Redis 事件机制详解 Redis 的事件机制是其高性能和高并发能力的关键之一&#xff0c;它采用Reactor 模型&#xff0c;基于文件事件驱动机制实现高效的 I/O 处理。Redis 的事件机制主要分为以下几类&#xff1a; 文件事件&#xff08;File Event&#xff09; —— 处理网络 I/…

【LangChain入门 3 Prompts组件】聊天提示词模板 ChatPromptTemplate

文章目录 一、 聊天信息提示词模板1.1 使用关键字1.2 使用SystemMessage, HumanMessage, AIMessage来定义消息1.3 使用MessagesPlaceholder 在特定未知添加消息列表 二、关键类介绍2.1 ChatPromptTemplate 类2.1.1 from_messages()2.1.2 format_messages()2.1.3 format_prompt(…