基础概念
目前Ceph官方提供三种部署Ceph集群的方法,分别是ceph-deploy,cephadm和手动安装
- ceph-deploy
一个集群自动化部署工具,使用较久,成熟稳定,被很多自动化工具所集成,可用于生产部署
- cephadm
从Octopus开始提供的新集群部署工具,支持通过图形界面或者命令行界面添加节点,目前不建议用于生产环境,有兴趣可以尝试
- manual
手动部署,一步步部署Ceph集群,支持较多定制化和了解部署细节,安装难度较大,但可以清晰掌握安装部署的细节
这里我们采用成熟、简单的ceph-deploy实现Ceph集群的部署
ceph-deploy的基础架构
查看ip: ip addr 查看网关: ip route show 查看DNS: cat /etc/resolv.conf
注:大家可以根据自己的环境修改上面的网段
公共网络&集群网络
- 公共网配置用于明确地为公共网定义IP地址和子网(ceph默认所有主机都运行于公共网)。
- 集群网络的作用:处理OSD心跳、对象复制、恢复流量
OSD为客户端处理数据复制,产生的网络负载会影响到客户端和ceph集群的通讯,故为性能和安全考虑,需要配置集群网络与公共网络相互独立
本文复用了Public网络和Cluster网络
集群中的角色
- admin-node
需要一个安装管理节点,安装节点负责集群整体部署,这里用cephnode-01为admin-node和Ceph-Mon节点;
- mon
monitor节点,即是Ceph的监视管理节点,承担Ceph集群重要的管理任务 一般需要3或5个节点,此处部署简单的一个Monitor节点
- osd
OSD即Object Storage Daemon,实际负责数据存储的节点 3个节点上分别有1块20G的磁盘充当OSD角色
注:生产环境如果有多个节点也可以继续横向扩容;如果磁盘容量不够也可以根据使用需求进行纵向扩容
安装3节点Ceph集群
- 硬件环境
虚拟机,2core+4G+20G磁盘
- 操作系统
cat /proc/version CentOS Linux 7.9.2009 Core
- 部署版本
ceph-deploy 2.0.1
集群规划
系统初始化
注:如果没有特殊说明,本小节所有操作需要在所有节点上执行本文档的初始化操作
配置主机名
hostnamectl set-hostname cephnode-01 hostnamectl set-hostname cephnode-02 hostnamectl set-hostname cephnode-03
在每台机器的 /etc/hosts 文件中添加主机名和 IP 的对应关系
cat >> /etc/hosts <<EOF # Ceph Cluster Network 192.168.168.138 cephnode-01 192.168.168.137 cephnode-02 192.168.168.132 cephnode-03 # Ceph Public Network 192.168.168.138 cephnode-01 192.168.168.137 cephnode-02 192.168.168.132 cephnode-03 EOF 然后退出,重新登录 root 账号,可以看到主机名生效
添加节点SSH互信
ssh-keygen -t rsa ssh-copy-id root@cephnode-01 ssh-copy-id root@cephnode-02 ssh-copy-id root@cephnode-03
关闭防火墙
systemctl stop firewalld systemctl disable firewalld iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat iptables -P FORWARD ACCEPT
注:关闭防火墙,清理防火墙规则,设置默认转发策略
关闭swap分区
swapoff -a sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
关闭SELinux
setenforce 0 sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
配置EPEL源
配置yum源,由于网络环境因素,因此将yum源统一配置到国内阿里云,加快rpm的安装配置,需要配置CentOS的基础源、EPEL源和Ceph源