ceph-ansible部署Ceph Pacific版本集群

环境规划

总共9个节点,3个mon节点,6个osd节点,每个osd节点3块50G的osd磁盘

主机名 os 角色 public_ip cluster_ip osd磁盘
ceph-mon-01.linux.io ubuntu20.04 mon/mgr/deploy-node 192.168.122.33 192.168.200.2
ceph-mon-02.linux.io ubuntu20.04 mon/mgr 192.168.122.34 192.168.200.2
ceph-mon-03.linux.io ubuntu20.04 osd 192.168.122.35 192.168.200.2
ceph-osd-01.linux.io ubuntu20.04 osd 192.168.122.36 192.168.200.2 vdb/vdc/vdd
ceph-osd-02.linux.io ubuntu20.04 osd 192.168.122.37 192.168.200.2 vdb/vdc/vdd
ceph-osd-03.linux.io ubuntu20.04 osd 192.168.122.38 192.168.200.2 vdb/vdc/vdd
ceph-osd-04 .linux.io ubuntu20.04 osd 192.168.122.39 192.168.200.2 vdb/vdc/vdd
ceph-osd-05.linux.io ubuntu20.04 osd 192.168.122.40 192.168.200.2 vdb/vdc/vdd
ceph-osd-06.linux.io ubuntu20.04 osd 192.168.122.41 192.168.200.2 vdb/vdc/vdd

节点初始化设置

ssh免密

配置mon-01到所有节点的ssh免密

for i in {
    
    33..41};do ssh-copy-id 192.168.122.$i;done

主机名解析

在所有主机的/etc/hosts添加以下解析

192.168.122.33 ceph-mon-01.linux.io ceph-mon-01
192.168.122.34 ceph-mon-02.linux.io ceph-mon-02
192.168.122.35 ceph-mon-03.linux.io ceph-mon-03
192.168.122.36 ceph-osd-01.linux.io ceph-osd-01
192.168.122.37 ceph-osd-02.linux.io ceph-osd-02
192.168.122.38 ceph-osd-03.linux.io ceph-osd-03
192.168.122.39 ceph-osd-04.linux.io ceph-osd-04
192.168.122.40 ceph-osd-05.linux.io ceph-osd-05
192.168.122.41 ceph-osd-06.linux.io ceph-osd-06

时间同步

设置mon-01作为时间同步服务器,其他节点同步mon-01时间

在所有节点安装chrony

apt -y install chrony

修改mon-01节点chrony配置

# cat /etc/chrony/chrony.conf |grep -Ev '^#'

server ntp.aliyun.com iburst

keyfile /etc/chrony/chrony.keys

driftfile /var/lib/chrony/chrony.drift


logdir /var/log/chrony

allow 192.168.122.0/24

maxupdateskew 100.0

rtcsync

makestep 1 3

修改其它节点chrony配置

# cat /etc/chrony/chrony.conf |grep -Ev '^#'

server 192.168.122.33 iburst

keyfile /etc/chrony/chrony.keys

driftfile /var/lib/chrony/chrony.drift

logdir /var/log/chrony

maxupdateskew 100.0

rtcsync
makestep 1 3

所有节点启动chrony服务

systemctl restart chrony.service

验证时间同步状态

chronyc sources -v

在这里插入图片描述

关闭防火墙

ufw disable

部署ceph

下载ceph-ansible

ceph-ansible项目地址:https://github.com/ceph/ceph-ansible
ceph-ansible官方文档:https://docs.ceph.com/projects/ceph-ansible/en/latest/

安装Ceph Pacific需要使用ceph-asible stable-6.0分支,同时ceph-asible stable-6.0对ansible的版本要求是2.10往上
在这里插入图片描述

wget https://github.com/ceph/ceph-ansible/archive/refs/heads/stable-6.0.zip -O ceph-ansible-stable-6.0.zip
unzip ceph-ansible-stable-6.0.zip
cd ceph-ansible-stable-6.0
pip install -r requirements.txt	#这一步会安装ansible和其它依赖

修改配置文件

定义主机清单inventroy文件

cd ceph-ansible-stable-6.0/
vim hosts	#暂时只包含1个mon和5个osd节点,剩余的节点用于后边扩容测试
#################
[mons]
ceph-mon-01

[mgrs]
ceph-mon-0[1:3]

[osds]
ceph-osd-0[1:5]

[monitoring]
ceph-mon-0[1:3]
####################

修改ceph部署过程中需要使用的配置参数

cd ceph-ansible-stable-6.0/
cp group_vars/all.yml.sample group_vars/all.yml	
cp osds.yml.sample osds.yml	

vim group_vars/all.yml	#ceph全局配置参数
#######################
---
dummy:
mon_group_name: mons
osd_group_name: osds
rgw_group_name: rgws
mds_group_name: mdss
iscsi_gw_group_name: iscsigws
mgr_group_name: mgrs
monitoring_group_name: monitoring
#ceph安装方式设置,详细解释可以参考官网文档https://docs.ceph.com/projects/ceph-ansible/en/latest/installation/non-containerized.html
ceph_origin: repository
ceph_repository: community
ceph_mirror: https://mirrors.tuna.tsinghua.edu.cn/ceph/		#ceph安装源
ceph_stable_key: https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc
ceph_stable_release: pacific	#ceph版本
ceph_stable_repo: "{
    
    { ceph_mirror }}/debian-{
    
    { ceph_stable_release }}"
monitor_interface: enp1s0	#ceph-mon节点服务监听网卡
monitor_address_block: 192.168.122.0/24	#ceph-mon节点服务监听地址所在网段
ip_version: ipv4
public_network: 192.168.122.0/24	#public-netework子网
cluster_network: 192.168.200.0/24	#cluster-network子网
osd_objectstore: bluestore		#osd使用的存储后端
dashboard_enabled: True		#启用ceph-dashboard
dashboard_admin_user: admin	#ceph-dashboard用户名和密码
dashboard_admin_password: Admin@123
grafana_admin_user: admin	#grafana用户名和密码
grafana_admin_password: admin
#######################

vim  group_vars/osds.yml	#osd相关配置参数
########################
---
dummy:
devices:	#每个节点上用作osd的磁盘
  - /dev/vdb
  - /dev/vdc
  - /dev/vdd
osd_auto_discovery: false	#关闭osd自动发现
#########################

执行部署

cd ceph-ansible-stable-6.0/
cp site.yml.sample site.yaml

ansible-playbook -i hosts site.yaml

等待playbook执行完成且无报错即可

在这里插入图片描述

验证集群状态

再mon-01节点执行ceph -s查看集群状态
在这里插入图片描述

这里存在一个警告,执行下面的命令,禁用mon节点不安全模式即可消除

ceph config set mon auth_allow_insecure_global_id_reclaim false

在这里插入图片描述

登录ceph-dashboard,https://192.168.122.33:8443

在这里插入图片描述

扩容mon节点

修改hosts文件,将新的mon节点,加入到对应的组中

cd ceph-ansible-stable-6.0/
vim hosts
##################
[mons]
ceph-mon-01
ceph-mon-02	#添加
ceph-mon-03 #添加

[mgrs]
ceph-mon-01
ceph-mon-02
ceph-mon-03

[osds]
ceph-osd-0[1:5]

[monitoring]
ceph-mon-0[1:3]
###################

执行扩容

cd ceph-ansible-stable-6.0/
ansible-playbook -i hosts infrastructure-playbooks/add-mon.yml

等待playbook执行完成后,查看集群状态,可以看到新的mon节点已经添加进去
在这里插入图片描述

扩容osd节点

修改hosts文件,将新的mon节点,加入到对应的组中

cd ceph-ansible-stable-6.0/
vim hosts
##################
[mons]
ceph-mon-01
ceph-mon-02
ceph-mon-03

[mgrs]
ceph-mon-01
ceph-mon-02
ceph-mon-03

[osds]
ceph-osd-0[1:5]
ceph-osd-06 #添加

[monitoring]
ceph-mon-0[1:3]
###################

执行扩容

cd ceph-ansible-stable-6.0/
ansible-playbook -vv -i hosts site.yaml --limit ceph-osd-06

等待playbook执行完成后,查看集群状态,可以看到新的osd已经添加进去

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43266367/article/details/129334898