ceph集群部署(ceph command,单机)

1. 前言

本文详细介绍如何使用ceph原生命令部署一个完整的ceph集群。系统环境如下:

Ceph版本:17.2.7
操作系统:almalinux 8.9

 
 

2. 准备

2.1. 集群规划

service         host ip           host name
mon.a           192.168.3.12      quincy
mon.b           192.168.3.12      quincy
mon.c           192.168.3.12      quincy
mgr.a           192.168.3.12      quincy
mgr.b           192.168.3.12      quincy
mgr.c           192.168.3.12      quincy
mds.a           192.168.3.12      quincy
mds.b           192.168.3.12      quincy
mds.c           192.168.3.12      quincy
rgw.a           192.168.3.12      quincy
rgw.b           192.168.3.12      quincy
rgw.c           192.168.3.12      quincy
osd.0           192.168.3.12      quincy
osd.1           192.168.3.12      quincy
osd.2           192.168.3.12      quincy

2.2. 更换almalinux yum源

sed -e 's|^mirrorlist=|#mirrorlist=|g' \
       -e 's|^# baseurl=https://repo.almalinux.org/almalinux/$releasever|baseurl=https://mirrors.nju.edu.cn/almalinux-vault/8.9|g' \
       -e 's|^# baseurl=https://repo.almalinux.org/vault/$releasever|baseurl=https://mirrors.nju.edu.cn/almalinux-vault/8.9|g' \
       -i.bak /etc/yum.repos.d/almalinux*.repo

2.3. 设置ceph yum源

[ceph]
name=Ceph packages for $basearch
baseurl=https://mirror.nju.edu.cn/ceph/rpm-17.2.7/el8/$basearch
enabled=1
priority=2
gpgcheck=0

[ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirror.nju.edu.cn/ceph/rpm-17.2.7/el8/noarch
enabled=1
priority=2
gpgcheck=0

[ceph-source]
name=Ceph source packages
baseurl=https://mirror.nju.edu.cn/ceph/rpm-17.2.7/el8/SRPMS
enabled=0
priority=2
gpgcheck=0

默认情况下gpgcheck=1,表示安装rpm包时要进行签名验证,需要安装ceph签名。这里问了省事,直接关闭gpgcheck。

2.4. 设置epel源

2.4.1. 安装epel源

有些ceph依赖的rpm在almalinux上没有,需要安装epel源。

wget https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/e/epel-release-8-20.el8.noarch.rpm
rpm -i epel-release-8-20.el8.noarch.rpm

2.4.2. 配置epel源

[epel]
name=Extra Packages for Enterprise Linux 8 - $basearch
# It is much more secure to use the metalink, but if you wish to use a local mirror
# place its address here.
#baseurl=https://download.example/pub/epel/8/Everything/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-8&arch=$basearch&infra=$infra&content=$contentdir
enabled=1
gpgcheck=0
priority=3
countme=1

2.5. 更新

dnf makecache

2.6. 安装依赖

dnf install gperftools-libs liboath python3-asyncssh \
	python3-cachetools python3-certifi python3-defusedxml \
	python3-google-auth python3-isodate python3-kubernetes \
	python3-msgpack python3-natsort python3-pkgconfig \
	python3-repoze-lru python3-routes  python3-rsa \
	python3-websocket-client python3-xmlsec thrift \
	python3-influxdb python3-saml

2.7. 安装ceph

dnf install ceph ceph-mon ceph-mgr ceph-osd ceph-mds radosgw

 
 

3. 集群部署

3.1. 创建mon

3.1.1. 创建mon data

mkdir -p /var/lib/ceph/mon/mon.a
mkdir -p /var/lib/ceph/mon/mon.b
mkdir -p /var/lib/ceph/mon/mon.c

3.1.2. 创建mon key

ceph-authtool /etc/ceph/keyring --create-keyring --gen-key -n mon.  --cap mon 'allow *'

测试发现,在创建mon key的时候,mon name必须是mon.,不能是具体的mon.a这种形式,也不能单独为每个mon创建key。

3.1.3. 创建client.admin key

ceph-authtool  /etc/ceph/keyring --gen-key -n client.admin \
	--cap mon 'allow *' \</