在之前的文章中介绍了ceph的版本发行周期以及命名规则,本文将通过cephadm工具来搭建个octopus版集群。
cephadm通过ssh从管理端的守护进程连接到主机部署和管理ceph集群,管理端的守护进程能够添加、删除和更新ceph容器。cephadm不依赖外部部署工具,如:Ansible、Rook和Salt。
cephadm管理ceph集群的整个生命周期,cephadm首先在单个节点上创建一个微型的集群,该集群由一个monitor和一个mgr组成,然后使用业务流程接口扩展群集,添加所有主机并配置所有ceph守护进程和服务,可以通过ceph命令行或仪表盘执行管理。
cephadm是Ceph v15.2.0 (Octopus)版本中的新功能,不支持旧版本的Ceph
规划
三台CentOS7.9服务器,2核CPU,2G内存,根磁盘50GB,数据盘100GB(磁盘不需要初始化)
集群ceph1 管理IP:10.10.10.161
集群ceph2 管理IP:10.10.10.162
集群ceph3 管理IP:10.10.10.163
关闭防火墙关闭selinux
1 2 3 4 |
systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config |
1、同步时间
同步时间都不会的话,后面也不用看啦
2、分别修改三台机器hostname
1 2 3 |
hostnamectl set-hostname ceph1 hostnamectl set-hostname ceph2 hostnamectl set-hostname ceph3 |
3、在三台机器分别添加配置hosts
1 |
vi /etc/hosts |
1 2 3 |
10.10.10.161 ceph1 10.10.10.162 ceph2 10.10.10.163 ceph3 |
4、在三台机器分别安装配置docker
1 2 3 4 5 |
yum install yum-utils device-mapper-persistent-data lvm2 python3 wget yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install docker-ce-20.10.13 docker-ce-cli-20.10.13 containerd.io-1.5.10 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io systemctl enable docker && systemctl start docker |
以下步骤仅在ceph1上执行即可
5、安装cephadm
如果网络不佳,请选择离线安装(建议),离线安装表示,在后续cephadm初始化时,不连接公网docker pull镜像,因为在pull的时候容易导致耗时很长,从而出现失败现象。
在线安装(以下地址任选其一):
1 2 3 4 |
curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm 或 或curl --silent --remote-name --location https://hub.fastgit.xyz/ceph/ceph/raw/pacific/src/cephadm/cephadm 或curl --silent --remote-name --location https://cdn.jsdelivr.net/gh/ceph/ceph@pacific/src/cephadm/cephadm |
离线安装:
1 |
curl --silent --remote-name --location https://down.whsir.com/downloads/cephadm |
6、导入离线包
如果在第5步,使用了在线安装,本步骤可忽略。
如果在第5步,使用了离线安装,此处需下载包并导入docker(如果下载慢,可通过迅雷或三方软件下载完成后,再上传到服务器上)。
1 2 3 4 5 6 7 |
wget https://down.whsir.com/downloads/ceph_octopus_packges.tar.gz tar xf ceph_octopus_packges.tar.gz docker load < ceph_v15.tar docker load < ceph-grafana_6.7.4.tar docker load < node-exporter_v0.18.1.tar docker load < prometheus_v2.18.1.tar docker load < alertmanager_v0.20.0.tar |
使用docker images命令看到,包已经全部导入成功
7、给予cephadm执行权限
1 |
chmod +x cephadm |
8、生成ceph yum源
1 |
./cephadm add-repo --release octopus |
(可选)替换yum源为阿里云源
1 |
sed -i 's#download.ceph.com#mirrors.aliyun.com/ceph#' /etc/yum.repos.d/ceph.repo |
9、导入密钥
1 |
rpm --import 'https://download.ceph.com/keys/release.asc' |
10、安装cephadm到当前节点
1 |
./cephadm install |
11、引导ceph集群
1 |
cephadm bootstrap --mon-ip 10.10.10.161 |
引导完成后,可看到仪表盘访问地址,建议首次登录一下,修改下密码,将ceph1替换为IP即可
(注)如果仪表盘(dashboard)密码忘了,可以使用以下命令重置密码
1 |
ceph dashboard ac-user-set-password admin redhat |
12、安装ceph工具包(可选)
ceph工具包包括ceph,rbd,mount.ceph等命令
1 |
cephadm install ceph-common |
注:如果没有安装ceph工具包,那么需要先执行cephadm shell命令,再执行ceph操作
13、查看ceph集群所有组件运行状态
1 |
ceph orch ps |
14、将另外两个主机添加至集群中
1 |
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph2 |
1 |
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph3 |
1 |
ceph orch host add ceph2 |
1 |
ceph orch host add ceph3 |
15、创建OSD
每个主机至少需要有一块全新硬盘,该硬盘不能被格式化过,我这里已经添加好了100GB的磁盘
如果在前面步骤中安装了ceph工具包,此处就可以直接执行以下命令,否则先执行cephadm shell,再执行以下内容。
注意:使用手工指定的方式添加OSD,即添加磁盘,可能会出现卡住的现象,这是由于刚刚关联好集群,ceph orch device ls还未扫描完成节点磁盘,所以会卡住很长时间,此观点仅代表个人想法。
两种创建方式,建议使用方法一,自动添加
方法一:自动添加所有满足条件的OSD
1 |
ceph orch apply osd --all-available-devices |
方法二:手工指定的方式添加OSD
1 2 3 |
ceph orch daemon add osd ceph1:/dev/vdb ceph orch daemon add osd ceph2:/dev/vdb ceph orch daemon add osd ceph3:/dev/vdb |
稍等片刻,通过命令检查,Available显示no,表示OSD创建完成
1 |
ceph orch device ls |
此时通过仪表盘可看到集群正常
最后可通过命令看下集群状态
1 |
ceph -s |
至此ceph version 15.2.16 octopus(stable)集群部署完成
原文链接:cephadm搭建Ceph集群(octopus版),转载请注明来源!