ceph集群搭建

一、前言

本次搭建ceph集群,使用centos7版本的系统,最高支持ceph版本为15.2.13,如需更高的版本需要使用centos8版本以上的系统,使用cephadm进行搭建,Cephadm 是一个用于部署、管理和监控 Ceph 集群的工具,它是 Ceph 社区官方提供的一种部署方式。Cephadm 的目标是简化 Ceph 集群的部署和管理,并提供了一种简单而灵活的方式来管理 Ceph 集群

主机信息

|--------|-------------|-----------------|
| 主机 | ip | 服务 |
| ceph01 | 10.1.60.126 | mon、osd、mgr、mds |
| ceph02 | 10.1.60.127 | mon、osd、mgr、mds |
| ceph03 | 10.1.60.128 | mon、osd、mds |
| ceph04 | 10.1.60.129 | osd |

ceph04后面作为新增节点加入集群

二、搭建

以下操作在每个节点都需执行

关于系统优化

参考:centos系统优化_root soft nproc unlimited-CSDN博客

配置主机名称

bash 复制代码
hostnamectl set-hostname ceph01

配置主机解析

vi /etc/hosts

bash 复制代码
10.1.60.126 ceph01
10.1.60.127 ceph02
10.1.60.128 ceph03
10.1.60.129 ceph04

安装docker

参考:部署docker-ce_安装部署docker-ce-CSDN博客

配置ceph yum源

vi /etc/yum.repos.d/ceph.repo

bash 复制代码
[Ceph]
name=Ceph
baseurl=https://mirrors.aliyun.com/ceph/rpm-15.2.9/el7/x86_64/
enabled=1
gpgcheck=0

[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-15.2.9/el7/noarch/
enabled=1
gpgcheck=0

以下操作只需要在ceph01节点执行即可

安装cephadm

bash 复制代码
yum install -y cephadm

创建ceph文件存放目录

bash 复制代码
mkdir /etc/ceph

安装mon服务

bash 复制代码
cephadm bootstrap  --mon-ip 10.1.60.126 --allow-fqdn-hostname --initial-dashboard-user admin --initial-dashboard-password 12345678 --dashboard-password-noupdate

正常最后会输出用户名和密码还有url,如果部署dashboard报错的话就手动部署一下

部署dashboard报错的情况下手动执行以下操作

bash 复制代码
进入ceph集群进行命令行操作
cephadm shell
开启dashboard功能
ceph mgr module enable dashboard
生成dashboard的自签证书
ceph dashboard create-self-signed-cert 
创建dashboard密码文件
vi ceph_password
12345678
指定dashboard的用户名和密码
ceph dashboard set-login-credentials admin -i ceph_password
查看dashboard的访问url
ceph mgr services

通过以上url和用户名密码访问dashboard

查看拉起的镜像服务

bash 复制代码
docker ps

部署的过程中还生成了配置文件和密钥文件

bash 复制代码
ls /etc/ceph 

由于是cephadm部署的ceph集群,没有安装客户端的情况下只能通过cephadm交互式的方式查看集群信息

bash 复制代码
cephadm shell
ceph -s

安装ceph客户端

需要先安装epel,不然会提示没有依赖

bash 复制代码
yum -y install epel-release
yum -y install ceph-common

安装完成后可以直接使用ceph命令查看集群信息

bash 复制代码
ceph -s
ceph orch ps

将ceph集群的公钥分配到其它节点中

bash 复制代码
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph02
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph03
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph04

在其余节点加入前需要先安装python3,不然会出现报错

yum -y install python3

将其余节点加入到集群中

bash 复制代码
ceph orch host add ceph02
ceph orch host add ceph03

扩展mon节点数量

bash 复制代码
ceph orch apply mon ceph01,ceph02,ceph03

指定mgr节点

bash 复制代码
ceph orch apply mgr ceph01,ceph02

指定osd

查看集群磁盘清单

bash 复制代码
ceph orch device ls

指定磁盘为osd

bash 复制代码
ceph orch apply osd --all-available-devices   #指定所有可用磁盘为osd
ceph orch daemon add osd hostname:磁盘路径    #指定单个磁盘为osd
#这里使用指定单个磁盘为osd的方式
for i in ceph01 ceph02 ceph03; do for b in sdb sdc sdd; do ceph orch daemon add osd $i:/dev/$b; done; done

查看集群信息

bash 复制代码
ceph -s

至此ceph集群部署完成

新增ceph04节点,该节点作为单纯的osd节点,即存储节点

因为上面已经分配了集群公钥到ceph04节点就不需要再分配了

bash 复制代码
ceph orch host add ceph04

查看集群磁盘清单

bash 复制代码
ceph orch device ls

将ceph04的磁盘指定为osd

bash 复制代码
ceph orch daemon add osd ceph04:/dev/sdb
ceph orch daemon add osd ceph04:/dev/sdc
ceph orch daemon add osd ceph04:/dev/sdd

通过dashborad查看

故障测试(这里是创建了存储池并且使用后测试)

将ceph03节点直接关闭模拟故障

关闭后osd会进入in down状态,表明osd还在集群内但是不存活,obeject和pg也会显示有部分不可用状态

当挂掉的osd为out down状态,表明osd不在集群内不存活,ceph集群会自动重新平衡object和pg,还有存储的值

挂掉的ceph03节点恢复后会重新加入集群中

相关推荐
大新新大浩浩4 天前
k8s环境中的rook-ceph的osd报Permission denied无法正常运行问题的处理方式
java·ceph·kubernetes
大新新大浩浩7 天前
ceph部署-14版本(nautilus)-使用ceph-ansible部署实验记录
ceph·ansible
我科绝伦(Huanhuan Zhou)7 天前
共享存储-一步一步部署ceph分布式文件系统
ceph
野猪佩挤7 天前
Ceph集群搭建2025(squid版)
ceph
野猪佩挤7 天前
Rook-ceph(1.92最新版)
ceph
斯普信专业组11 天前
从零到一:基于Rook构建云原生Ceph存储的全面指南(上)
ceph·云原生
斯普信专业组12 天前
从零到一:基于Rook构建云原生Ceph存储的全面指南(下)
ceph·云原生
佟晖14 天前
ceph 16.2.15(Pacific)编译
linux·ceph·分布式存储
淡黄的Cherry1 个月前
ceph新增节点,OSD设备,标签管理(二)
ceph
Linux运维老纪1 个月前
分布式存储的技术选型之HDFS、Ceph、MinIO对比
大数据·分布式·ceph·hdfs·云原生·云计算·运维开发