如何使用deploy在多机环境下部署[Ceph 14.2.22]集群?
摘要:本文介绍如何使用ceph-deploy工具在ubuntu 18.04系统上部署ceph 14.2.22集群。
1. 前言
上表中是 Ceph 官方文档给出的 Ceph 14 系列的系统和内核推荐,其中在 centos 7、ubuntu 14.04、ubuntu 16.04、ubuntu 18.04 上都做了完整的测试。本文将介绍如何在ubuntu 18.04中使用 ceph-deploy 部署 ceph 集群,ceph 版本为14.2.22。
2. 基础集群部署
2.1. 基础集群规划
node name node ip component name
---------------------------------------------------------
admin 192.168.3.14 [ceph-deploy]
node0 192.168.3.10 [mon.node0, mgr.node0, osd.0]
node1 192.168.3.11 [mon.node1, mgr.node1, osd.1]
node2 192.168.3.12 [mon.node2, mgr.node2, osd.2]
上述 node0 node1 node2 是集群节点,每个节点都会部署 mon 服务、mgr 服务以及 osd 服务
除了 osd 服务外,ceph-deploy 不支持在同一个节点上部署多个同类别的 ceph 服务(mon、mgr、mds、rgw)。因此如果需要部署多个同类别的服务,只能在其他节点上部署。如果不使用 ceph-deploy 来部署集群,可以通过手动部署方式来实现在同一节点上部署多个同类别的服务。对于手动部署方式而言是没有任何限制的。
2.2. 环境配置
2.2.1. 关闭防火墙
在集群所有节点(node0 node1 node2)上执行以下命令:
systemctl stop ufw.service
systemctl disable ufw.service
2.2.2. 设置时间同步
在 ceph 集群中,osd 进程心跳机制,mon 进程维护集群 map,要求每个主机之间时间同步,否则会影响集群。在 ubuntu 系统上可以安装 ntp 服务和 ntpdate 客户端工具实现时间同步。在集群节点中只需要一个 ntp 服务,其他集群节点安装 ntpdate 客户端工具即可。
在 node0 节点上安装 ntp 服务:
apt install ntp
在 node1 node2 上安装 ntpdate 客户端:
apt install ntpdate
以上将 node0 作为 ntp 服务端,node1 node2 为 ntp 客户端,node1 node2 通过 ntpdate 工具实现与 node0 时间同步。
2.2.3. 设置 ssh 免密码登录
ceph-deploy 在部署 ceph 集群时,是通过 ssh 方式登录到不同节点上,然后执行一系列指令。由于 ceph-deploy 是完全自动化脚本,在部署 ceph 集群时,是不支持交互式操作。当使用 ssh 登录到集群中某个节点时,要求输入远程节点的密码,因此必须要设置 ssh 免密登录。同时 ceph-deploy 中使用了大量的 sudo 权限的指令,而普通用户执行 sudo 时必须要输入密码,为了省去该麻烦,建议直接使用 root 用户来操作。
修改/etc/hosts
在 admin 节点的 /etc/hosts 文件中追以下内容:
192.168.3.11 node0
192.168.3.12 node1
192.168.3.13 node2
192.168.3.14 admin
一定要确保每个节点上的 hostname 和上述配置文件中的 hostname 相同,如果没有更改 hostname,可以使用 hostnamectl set-hostname 命令来修改。
生成 ssh key
在 admin 节点上执行 ssh-keygen 命令,一路回车,不要输入任何东西。
将 ssh key 拷贝到所有集群节点上
在 admin 节点上执行以下命令:
ssh-copy-id node0
ssh-copy-id node1
ssh-copy-id node2
通过以上步骤,就可以直接用 ssh node0 方式直接远程登录集群中其他节点上,而不用输入用户名和密码。
2.2.4. 添加 ceph apt 源
为了加快下载速度,此处使用阿里云开源镜像站。
