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

基于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
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.kler.cn/a/597665.html

相关文章:

  • SQL——创建临时表方法总结
  • 城市街拍人像自拍电影风格Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • Opencv计算机视觉编程攻略-第一节 图像读取与基本处理
  • 百度SEO和必应SEO优化方法
  • 【css酷炫效果】纯CSS实现科技感网格背景
  • JVM运行时数据区内部结构难记?一个例子优化记忆
  • 摄影工作室预约管理系统基于Spring BootSSM
  • 校园自习室预约小程序(源码+部署教程)
  • 基于Spring Boot的健身房管理系统的设计与实现(LW+源码+讲解)
  • python网络爬虫开发实战之网页数据的解析提取
  • 如何在Spring Boot项目中集成LangChain4J开源开发框架
  • 论文阅读:2024-NAACL Semstamp、2024-ACL (Findings) k-SemStamp
  • 【第21节】windows sdk编程:网络编程基础
  • 【Spring】Spring Task详解
  • java设计模式之建造者模式《装修启示录》​
  • MAC-在使用@Async注解的方法时,分布式锁管理和释放
  • 嵌入式开发之STM32学习笔记day08
  • Mac:Ant 下载+安装+环境配置(详细讲解)
  • Web3如何影响未来的社交平台:去中心化社交的兴起
  • 区块链在医疗数据共享中的应用:解锁安全与透明的新维度