- 部署工具:cephadm
- 操作系统:CentOS 8
- Ceph版本:Octopus
- 操作用户:root
部署前,请注意:根据目前(2020年8月)Ceph官方文档的介绍,cephadm的对各服务的支持情况如下:
- 完全支持:MON、MGR、OSD、CephFS、rbd-mirror
- 支持但文档不全:RGW、dmcrypt OSDs
- 开发中:NFS、iSCSI
准备
除非特别说明,本小节的操作在所有节点进行。
部署环境:
主机 | IP | 配置 | 磁盘(除系统盘) | 服务 |
---|---|---|---|---|
ceph-mon1(虚拟机) | 192.168.7.11 | 4C/8G | MON、prom+grafana | |
ceph-mon2(虚拟机) | 192.168.7.12 | 4C/8G | MON、MGR | |
ceph-mon3(虚拟机) | 192.168.7.13 | 4C/8G | MON、MGR | |
ceph-osd1(物理机) | 192.168.7.14 | 40C/64G | 1.6T SSD/4T SAS * 4 | OSD、MDS、NFS、RGW |
ceph-osd2(物理机) | 192.168.7.15 | 40C/64G | 1.6T SSD/4T SAS * 4 | OSD、MDS、NFS、RGW |
主机名
确定一下主机名是否正确,尤其是从虚拟机复制过来的节点:
hostnamectl set-hostname ceph-mon1
安装容器运行时
cephadm的部署方式是基于容器进行管理的,可以安装docker
或podman
。
dnf install -y podman
为podman
配置国内镜像源:
mv /etc/containers/registries.conf /etc/containers/registries.conf.bak
cat <<EOF > /etc/containers/registries.conf
unqualified-search-registries = ["docker.io"]
[[registry]]
prefix = "docker.io"
location = "anwk44qv.mirror.aliyuncs.com"
EOF
安装epel
库
并配置阿里云的源。
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
sed -i 's|^#baseurl=https://download.fedoraproject.org/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
安装和配置chrony
dnf install -y chrony
mv /etc/chrony.conf /etc/chrony.conf.bak
cat > /etc/chrony.conf <<EOF
server ntp.aliyun.com iburst
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
logchange 0.5
logdir /var/log/chrony
EOF
systemctl enable chronyd
systemctl restart chronyd
主机名可访问
修改/etc/hosts
文件,添加所有节点的IP(如果用DNS也可以)。
192.168.7.11 ceph-mon1
192.168.7.12 ceph-mon2
192.168.7.13 ceph-mon3
192.168.7.14 ceph-osd1
192.168.7.15 ceph-osd2
关闭SELINUX
setenforce 0
要使 SELinux 配置永久生效(如果它的确是问题根源),需修改其配置文件/etc/selinux/config
。
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
安装python3
cephadm以及ceph命令基于python3运行。
dnf install -y python3
安装cephadm
以下操作在ceph-mon1
节点上进行。
使用curl
下载最新的cephadm
脚本:
curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm
chmod +x cephadm
其实这个脚本就可以用来部署了,如果要安装的话:
./cephadm add-repo --release octopus
./cephadm install
部署一个小集群
除非特别说明,本小节的操作在cephadm所在节点进行。
bootstrap
cephadm的部署策略是先在一个节点上部署一个Ceph cluster,然后把其他节点加进来,再部署各种所需的服务。
首先部署的这个节点是一个MON,需要提供IP地址。