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 |
ceph2 | 192.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: