如何快速部署Ceph分布式高可用集群(上)

简介: 如何快速部署Ceph分布式高可用集群(上)

基础概念


目前Ceph官方提供三种部署Ceph集群的方法,分别是ceph-deploy,cephadm和手动安装

  • ceph-deploy
一个集群自动化部署工具,使用较久,成熟稳定,被很多自动化工具所集成,可用于生产部署
  • cephadm
从Octopus开始提供的新集群部署工具,支持通过图形界面或者命令行界面添加节点,目前不建议用于生产环境,有兴趣可以尝试
  • manual
手动部署,一步步部署Ceph集群,支持较多定制化和了解部署细节,安装难度较大,但可以清晰掌握安装部署的细节


这里我们采用成熟、简单的ceph-deploy实现Ceph集群的部署

ceph-deploy的基础架构

image.png


查看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

集群规划

image.png


系统初始化


注:如果没有特殊说明,本小节所有操作需要在所有节点上执行本文档的初始化操作

配置主机名

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 账号,可以看到主机名生效

image.png


添加节点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源

相关文章
|
25天前
|
NoSQL Redis
基于Redis的高可用分布式锁——RedLock
这篇文章介绍了基于Redis的高可用分布式锁RedLock的概念、工作流程、获取和释放锁的方法,以及RedLock相比单机锁在高可用性上的优势,同时指出了其在某些特殊场景下的不足,并提到了ZooKeeper作为另一种实现分布式锁的方案。
60 2
基于Redis的高可用分布式锁——RedLock
|
18天前
|
存储 块存储
ceph分布式存储系统常见术语篇
关于Ceph分布式存储系统的常见术语解释和概述。
37 1
ceph分布式存储系统常见术语篇
|
18天前
|
存储
cephFS高可用分布式文件系统部署指南
关于如何部署高可用的cephFS分布式文件系统,包括集群的搭建、验证高可用性以及实现两主一从架构的详细指南。
38 9
|
18天前
|
存储 Kubernetes 数据安全/隐私保护
k8s对接ceph集群的分布式文件系统CephFS
文章介绍了如何在Kubernetes集群中使用CephFS作为持久化存储,包括通过secretFile和secretRef两种方式进行认证和配置。
25 5
|
18天前
|
分布式计算 资源调度 Hadoop
在YARN集群上运行部署MapReduce分布式计算框架
主要介绍了如何在YARN集群上配置和运行MapReduce分布式计算框架,包括准备数据、运行MapReduce任务、查看任务日志,并启动HistoryServer服务以便于日志查看。
31 0
|
1月前
|
Java Nacos Docker
"揭秘!Docker部署Seata遇上Nacos,注册成功却报错?这些坑你不得不防!一网打尽解决秘籍,让你的分布式事务稳如老狗!"
【8月更文挑战第15天】在微服务架构中,Nacos搭配Seata确保数据一致性时,Docker部署Seata后可能出现客户端连接错误,如“can not connect to services-server”。此问题多由网络配置不当、配置文件错误或版本不兼容引起。解决策略包括:调整Docker网络设置确保可达性;检查并修正`file.conf`和`registry.conf`中的Nacos地址和端口;验证Seata与Nacos版本兼容性;修改配置后重启服务;参考官方文档和最佳实践进行配置。通过这些步骤,能有效排除故障,保障服务稳定运行。
36 0
|
1月前
|
缓存 NoSQL Java
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
这篇文章是关于如何在SpringBoot应用中整合Redis并处理分布式场景下的缓存问题,包括缓存穿透、缓存雪崩和缓存击穿。文章详细讨论了在分布式情况下如何添加分布式锁来解决缓存击穿问题,提供了加锁和解锁的实现过程,并展示了使用JMeter进行压力测试来验证锁机制有效性的方法。
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
|
2月前
|
存储 缓存 NoSQL
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
redis分布式锁、redisson、可重入、主从一致性、WatchDog、Redlock红锁、zookeeper;Redis集群、主从复制,全量同步、增量同步;哨兵,分片集群,Redis为什么这么快,I/O多路复用模型——用户空间和内核空间、阻塞IO、非阻塞IO、IO多路复用,Redis网络模型
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
|
2月前
|
NoSQL Java Redis
分布式锁实现原理问题之使用Redis的setNx命令来实现分布式锁问题如何解决
分布式锁实现原理问题之使用Redis的setNx命令来实现分布式锁问题如何解决
|
8天前
|
存储 NoSQL Redis
SpringCloud基础7——Redis分布式缓存,RDB,AOF持久化+主从+哨兵+分片集群
Redis持久化、RDB和AOF方案、Redis主从集群、哨兵、分片集群、散列插槽、自动手动故障转移
SpringCloud基础7——Redis分布式缓存,RDB,AOF持久化+主从+哨兵+分片集群