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

news2025/4/21 12:30:09

#作者:闫乾苓

文章目录

  • 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
EOF

ceph02、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 chronyd

ceph01 查看配置的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] +/-   24ms

ceph02、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: admin
        Password: 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 -s
  cluster:
    id:     0978cb18-dc68-11ef-b0d7-000c29460ffd
    health: HEALTH_WARN
            OSD count 0 < osd_pool_default_size 3
 
  services:
    mon: 1 daemons, quorum ceph01 (age 13m)
    mgr: ceph01.vqsdyy(active, since 11m)
    osd: 0 osds: 0 up, 0 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:     

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 -s
  cluster:
    id:     0978cb18-dc68-11ef-b0d7-000c29460ffd
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum ceph01,ceph02,ceph03 (age 26m)
    mgr: ceph01.vqsdyy(active, since 28m), standbys: ceph02.dqnwfv
    osd: 3 osds: 3 up (since 16m), 3 in (since 16m)
 
  data:
    pools:   1 pools, 1 pgs
    objects: 2 objects, 449 KiB
    usage:   82 MiB used, 1.5 TiB / 1.5 TiB avail
    pgs:     1 active+clean

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

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

相关文章

CVPR2025 | 对抗样本智能安全方向论文汇总 | 持续更新中~

汇总结果来源&#xff1a;CVPR 2025 Accepted Papers 若文中出现的 论文链接 和 GitHub链接 点不开&#xff0c;则说明还未公布&#xff0c;在公布后笔者会及时添加. 若笔者未及时添加&#xff0c;欢迎读者告知. 文章根据题目关键词搜索&#xff0c;可能会有遗漏. 若笔者出现…

磁盘清理工具-TreeSize Free介绍

TreeSizeFree是一个磁盘空间管理工具&#xff0c;主要用于分析磁盘使用情况&#xff0c;帮助用户找到占用空间大的文件和文件夹: 特点&#xff1a;按大小排序&#xff1a;快速找到占用空间最大的文件或文件夹 一般可以删除: 扫描 C:\Users\XXX\AppData\Local\Temp 或 C:\Window…

c#知识点补充2

1.非静态类能否调用静态方法可以 2.对string类型扩展方法&#xff0c;如何进行 类用静态类&#xff0c;参数是this 调用如下 3.out的用法 一定要给a赋值 这种写法不行 这样才行 4.匿名类 5.委托的使用 无论是匿名委托&#xff0c;还是具命委托&#xff0c;委托实例化后一定要…

力扣45.跳跃游戏

45. 跳跃游戏 II - 力扣&#xff08;LeetCode&#xff09; 代码区&#xff1a; #include<vector> class Solution {public:int jump(vector<int>& nums) {int ans[10005] ;memset(ans,1e4,sizeof(ans));ans[0]0;for(int i0;i<nums.size();i){for(int j1;j…

MacOS安装 nextcloud 的 Virtual File System

需求 在Mac上安装next cloud实现类似 OneDrive 那样&#xff0c;文件直接保存在服务器&#xff0c;需要再下载到本地。 方法 在 官网下载Download for desktop&#xff0c;注意要下对版本&#xff0c;千万别下 Mac OS默认的那个。 安装了登录在配置过程中千万不要设置任何同…

C/C++蓝桥杯算法真题打卡(Day6)

一、P8615 [蓝桥杯 2014 国 C] 拼接平方数 - 洛谷 方法一&#xff1a;算法代码&#xff08;字符串分割法&#xff09; #include<bits/stdc.h> // 包含标准库中的所有头文件&#xff0c;方便编程 using namespace std; // 使用标准命名空间&#xff0c;避免每次调用…

ORACLE RAC ASM双存储架构下存储部分LUN异常的处理

早上接到用户电话&#xff0c;出现有表空间不足的告警&#xff0c;事实上此环境经常巡检并且有告警系统&#xff0c;一开始就带着有所疑惑的心理&#xff0c;结果同事在扩大表空间时&#xff0c;遇到报错 ORA-15401/ORA-17505,提示ASM空间满了&#xff1a; ALERT日志&#xff1…

others-rustdesk远程

title: others-rustdesk远程 categories: Others tags: [others, 远程] date: 2025-03-19 10:19:34 comments: false mathjax: true toc: true others-rustdesk远程, 替代 todesk 的解决方案 前篇 官方 服务器 - https://rustdesk.com/docs/zh-cn/self-host/rustdesk-server-o…

C++基础 [八] - list的使用与模拟实现

目录 list的介绍 List的迭代器失效问题 List中sort的效率测试 list 容器的模拟实现思想 模块分析 作用分析 list_node类设计 list 的迭代器类设计 迭代器类--存在的意义 迭代器类--模拟实现 模板参数 和 成员变量 构造函数 * 运算符的重载 运算符的重载 -- 运…

使用excel.EasyExcel实现导出有自定义样式模板的excel数据文件,粘贴即用!!!

客户要求导出的excel文件是有好看格式的&#xff0c;当然本文举例模板文件比较简单&#xff0c;内容丰富的模板可以自行设置&#xff0c;话不多说&#xff0c;第一步设置一个"好看"的excel文件模板 上面要注意的地方是{.变量名} &#xff0c;这里的变量名对应的就是…

Spring Boot 集成 Elasticsearch怎样在不启动es的情况下正常启动服务

解释 在spingboot 集成es客户端后&#xff0c;每当服务启动时&#xff0c;服务默认都会查看es中是否已经创建了对应的索引&#xff0c;如果没有索引则创建。基于上面的规则我们可以通过配置不自动创建索引来达到在没有es服务的情况下正常启动服务。 解决办法 在entity类的Docu…

JVM常见概念之条件移动

问题 当我们有分支频率数据时&#xff0c;有什么有趣的技巧可以做吗&#xff1f;什么是条件移动&#xff1f; 基础知识 如果您需要在来自一个分支的两个结果之间进行选择&#xff0c;那么您可以在 ISA 级别做两件不同的事情。 首先&#xff0c;你可以创建一个分支&#xff…

Android AI ChatBot-v1.6.3-28-开心版[免登录使用GPT-4o和DeepSeek]

Android AI ChatBot- 链接&#xff1a;https://pan.xunlei.com/s/VOLi1Ua071S6QZBGixcVL5eeA1?pwdp3tt# 免登录使用GPT-4o和DeepSeek

集成学习(上):Bagging集成方法

一、什么是集成学习&#xff1f; 在机器学习的世界里&#xff0c;没有哪个模型是完美无缺的。就像古希腊神话中的"盲人摸象"&#xff0c;单个模型往往只能捕捉到数据特征的某个侧面。但当我们把多个模型的智慧集合起来&#xff0c;就能像拼图一样还原出完整的真相&a…

DeepSeek R1 本地部署指南 (3) - 更换本地部署模型 Windows/macOS 通用

0.准备 完成 Windows 或 macOS 安装&#xff1a; DeepSeek R1 本地部署指南 (1) - Windows 本地部署-CSDN博客 DeepSeek R1 本地部署指南 (2) - macOS 本地部署-CSDN博客 以下内容 Windows 和 macOS 命令执行相同&#xff1a; Windows 管理员启动&#xff1a;命令提示符 CMD ma…

【TI MSPM0】Timer学习

一、计数器 加法计数器&#xff1a;每进入一个脉冲&#xff0c;就加一减法计算器&#xff1a;每进入一个脉冲&#xff0c;就减一 当计数器减到0&#xff0c;触发中断 1.最短计时时间 当时钟周期为1khz时&#xff0c;最短计时时间为1ms&#xff0c;最长计时时间为65535ms 当时…

Windows部署deepseek R1训练数据后通过AnythingLLM当服务器创建问答页面

如果要了解Windows部署Ollama 、deepseek R1请看我上一篇内容。 这是接上一篇的。 AnythingLLM是一个开源的全栈AI客户端&#xff0c;支持本地部署和API集成。它可以将任何文档或内容转化为上下文&#xff0c;供各种语言模型&#xff08;LLM&#xff09;在对话中使用。以下是…

信奥赛CSP-J复赛集训(模拟算法专题)(27):P5016 [NOIP 2018 普及组] 龙虎斗

信奥赛CSP-J复赛集训(模拟算法专题)(27):P5016 [NOIP 2018 普及组] 龙虎斗 题目背景 NOIP2018 普及组 T2 题目描述 轩轩和凯凯正在玩一款叫《龙虎斗》的游戏,游戏的棋盘是一条线段,线段上有 n n n 个兵营(自左至右编号 1 ∼ n 1 \sim n 1∼n),相邻编号的兵营之间…

多模态大模型常见问题

1.视觉编码器和 LLM 连接时&#xff0c;使用 BLIP2中 Q-Former那种复杂的 Adaptor 好还是 LLaVA中简单的 MLP 好&#xff0c;说说各自的优缺点&#xff1f; Q-Former&#xff08;BLIP2&#xff09;&#xff1a; 优点&#xff1a;Q-Former 通过查询机制有效融合了视觉和语言特征…

SpringBoot项目实战(初级)

目录 一、数据库搭建 二、代码开发 1.pom.xml 2.thymeleaf模块处理的配置类 3.application配置文件 4.配置&#xff08;在启动类中&#xff09; 5.编写数据层 ②编写dao层 ③编写service层 接口 实现类 注意 补充&#xff08;注入的3个注解&#xff09; 1.AutoWir…