2021-11-10如何快速部署Ceph分布式高可用集群

基础概念

目前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源

# 删除默认yum源并配置阿里yum源
rm -f /etc/yum.repos.d/*.repo
wget http://mirrors.aliyun.com/repo/Centos-7.repo  -P /etc/yum.repos.d/
# 安装EPEL源
wget http://mirrors.aliyun.com/repo/epel-7.repo -P /etc/yum.repos.d/

配置Ceph源

cat > /etc/yum.repos.d/ceph.repo <<EOF
[noarch] 
name=Ceph noarch 
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/ 
enabled=1 
gpgcheck=0 

[x86_64] 
name=Ceph x86_64 
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/ 
enabled=1 
gpgcheck=0
EOF

安装依赖包

安装Ceph-deploy部署工具,默认EPEL源提供的ceph-deploy版本是1.5,务必确保安装版本为2.0.1或之上版本,否则安装过程中会有很多问题

# 更新yum源
yum update -y
# 安装工具包、python-setuptools一定要安装、不然会报错的
yum install -y chrony conntrack ipset jq iptables curl sysstat libseccomp wget socat git python-setuptools

# 安装ceph-deploy部署工具
yum install ceph-deploy -y
#校验版本
ceph-deploy --version

配置系统时间

timedatectl set-timezone Asia/Shanghai

配置时钟同步

timedatectl status

注:System clock synchronized: yes,表示时钟已同步; NTP service: active,表示开启了时钟同步服务

写入硬件时钟

# 将当前的 UTC 时间写入硬件时钟
timedatectl set-local-rtc 0

# 重启依赖于系统时间的服务
systemctl restart rsyslog 
systemctl restart crond

关闭无关服务

systemctl stop postfix && systemctl disable postfix

执行完上面所有的操作之后我们就可以重启所有主机了

sync
reboot

部署Ceph集群

Ceph-deploy部署过程中会生成一些集群初始化配置文件和key
后续扩容的时候也需要使用到
因此,建议在admin-node上创建一个单独的目录
后续操作都进入到该目录中进行操作
以创建的ceph-admin为例
这里在/root/下面创建一个ceph-admin目录

mkdir -p ceph-admin
# 后续所有的操作均需要在ceph-admin目录下面完成
cd ceph-admin

安装Ceph所需的安装包

安装过程中可以使用ceph-deploy install提供的安装方式
这个命令会自动安装EPEL源,重新设定Ceph源
这里我们已经设置到国内源了
因此采用手动安装Ceph安装包方式
为了保障后续的安装
在三个节点上将Ceph的安装包都部署上,在三个节点上分别执行下面的命令即可

yum install ceph-mon ceph-radosgw ceph-mds ceph-mgr ceph-osd ceph-common -y

创建一个Ceph Cluster集群

需要指定cluster-network(集群内部通讯)和public-network(外部访问Ceph集群)

ceph-deploy new --cluster-network 192.168.168.0/24 --public-network 192.168.168.0/24 cephnode-01
通过上面的输出可以看到
new初始化集群过程中会生成ssh key密钥,ceph.conf配置文件,ceph.mon.keyring认证管理密钥
配置cluster network和pubic network
此时查看目录下的文件可以看到如下内容

初始化monitor节点

ceph-deploy mon create-initial

可能出现的异常

安装好ceph之后 会生成/var/run/ceph/ceph-mon.cephnode-01.asok这个文件

执行这个命令的时候
ceph --cluster=ceph --admin-daemon /var/run/ceph/ceph-mon.cephnode-01.asok mon_status

如果找不到这个文件就会报这个错误

此时要确认主机名和/etc/hosts配置的名称是否一致
初始化完毕后会自动生成以下几个文件,这些文件用于后续和Ceph认证交互使用

初始化完成之后我们将admin的认证密钥拷贝到其他节点上
便于ceph命令行可以通过keyring和ceph集群进行交互

ceph-deploy --overwrite-conf admin cephnode-01 cephnode-02 cephnode-03

查看集群状态

Ceph集群已经建立起来
当前的Ceph集群包含一个monitor节点
通过 ceph -s 我们可以查看当前ceph集群的状态
但是此时并没有任何的OSD节点,因此无法往集群中写数据等操作
从上面的截图我们可以看到、目前集群中目前还没有OSD节点
因此没法存储数据,接下来开始往集群中添加OSD节点
在前面我们说过每个节点上都有1块20G的磁盘/dev/sda
下篇文章将介绍下下如何将磁盘加入到集群中作为OSD节点以及其他操作的过程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值