首页 > 其他分享 >分布式存储——ceph集群部署

分布式存储——ceph集群部署

时间:2023-11-02 18:03:37浏览次数:31  
标签:ceph003 ceph001 ceph 集群 yum root 节点 分布式

一、部署结构

image
以x.x.x.150、x.x.x.151、x.x.x.152三台服务器搭建最基本的三节点ceph集群,服务器系统使用的是centos7版本,IP网段为x.x.x.0/24,三台服务器的名称分别为:

  • ceph001: x.x.x.150,管理节点
  • ceph002: x.x.x.151,子节点
  • ceph003:x.x.x.152,子节点

二、部署前准备

1. 修改hosts文件

以下操作需要在三台服务器依次执行

  • 查看服务器名称
[root@ceph001 ~]# cat /etc/hostname
ceph001
  • 编辑hosts文件
[root@ceph001 ~]# vim /etc/hosts

在hosts文件中追加服务器名称和IP地址

x.x.x.150 ceph001
x.x.x.151 ceph002
x.x.x.152 ceph003

2. 关闭防火墙

以下操作需要在三台服务器依次执行

[root@ceph001 ~]# systemctl stop firewalld
[root@ceph001 ~]# systemctl disable firewalld

编辑/etc/selinux/config修改:

[root@ceph001 ~]# vim /etc/selinux/config
SELINUX=disabled

3. 配置ssh免密

以下操作需要在管理节点ceph001执行

  • 在管理节点ceph001生成秘钥
[root@ceph001 ~]# ssh-keygen

按照默认提示点击enter即可,生成的秘钥默认存放于~/.ssh文件中
image

  • 分配秘钥至子节点
    将管理节点ceph001的秘钥,即将id_rsa.pub的内容分发给其它节点
[root@ceph001 ~]# ssh-copy-id root@ceph002
[root@ceph001 ~]# ssh-cpoy-id root@ceph003

4. 修改yum源

以下操作需要在三台服务器依次执行

  • 迁移旧的yum源
[root@ceph001 ~]# cd /etc/yum.repos.d
[root@ceph001 yum.repos.d]# mkdir unless
[root@ceph001 yum.repos.d]# mv *.repo unless
  • 创建新的yum源
[root@ceph001 yum.repos.d]# vi ceph.repo

将以下内容复制到新的yum源文件中

[ceph] 
name=Ceph packages for $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/x86_64/ 
enabled=1 
gpgcheck=1 
type=rpm-md 
gpgkey=https://download.ceph.com/keys/release.asc[ceph-noarch] 
name=Ceph noarch packages  
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch/ 
enabled=1 
gpgcheck=1 
type=rpm-md 
gpgkey=https://download.ceph.com/keys/release.asc[ceph-source] 
name=Ceph source packages
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS/ 
enabled=1 
gpgcheck=1 
type=rpm-md 
gpgkey=https://download.ceph.com/keys/release.asc
    1. 刷新yum源
[root@ceph001 yum.repos.d]# yum clean all
[root@ceph001 yum.repos.d]# yum makecache

6. 安装chrony时间同步工具

以下操作需要在三个服务器节点依次执行

[root@ceph001 ~]# yum -y install chrony
[root@ceph001 ~]# systemctl enable chrony
[root@ceph001 ~]# server ntp1.aliyun.com iburst
[root@ceph001 ~]# systemctl start chrony

7. 安装ceph部署工具

以下操作需要在管理节点ceph001执行

[root@ceph001 ~]# yum -y install ceph ceph-deploy

三、正式部署

1. 创建集群配置目录

以下操作需要在管理节点ceph001执行

[root@ceph001 ~]# cd /usr/local
[root@ceph001 local]# mkdir ceph
[root@ceph001 local]# cd ceph

2. 创建集群

以下操作需要在管理节点ceph001执行

  • 将三个服务器节点纳入ceph集群
[root@ceph ceph]# ceph-deploy new ceph001 ceph002 ceph003

创建成功后,会在该文件夹下生成名为ceph.conf的配置文件

  • 修改配置文件
[root@ceph001 ceph]# vi ceph.conf

加入以下内容:

[global]
# 网段
public network = x.x.x.0/24
# 允许删除pool
mon_allow_pool_delete = true

同样的,在/etc/ceph/ceph.conf也加入以上内容,以保持一致。

  • 执行安装
[root@ceph001 ceph]# ceph-deploy install ceph001 ceph002 ceph003
  • 初始化monitor信息
[root@ceph001 ceph]# ceph-deploy mon create-initial

执行成功后,会在该文件夹下生成以下内容:

image

  • 下发配置文件和管理信息至各节点
[root@ceph001 ceph]# ceph-deploy admin ceph001 ceph002 ceph003
  • 安装管理守护进程(mgr)
[root@ceph001 ceph]# ceph-deploy mgr create ceph001 ceph002 ceph003
  • 安装osd
    分别查看各服务器节点可用磁盘,在ceph001中,其中vdb盘已经被ceph集群纳管为osd,其中vdc为空盘。
[root@ceph001 ceph]# lsblk

image

创建osd

[root@ceph001 ceph]# ceph osd create --data /dev/vdc ceph001
[root@ceph001 ceph]# ceph osd create --data /dev/vdc ceph002
[root@ceph001 ceph]# ceph osd create --data /dev/vdc ceph003

为新增的节点收集认证秘钥

[root@ceph001 ceph]# ceph-deploy gatherkeys ceph001
[root@ceph001 ceph]# ceph-deploy gatherkeys ceph002
[root@ceph001 ceph]# ceph-deploy gatherkeys ceph003
  • 创建pool
    pool的数量要大于30,数量为以2为底的指数
[root@ceph001 ~]# ceph osd pool create myPool 32 32
[root@ceph001 ~]# ceph osd pool application enable myPool rgw

3. 验证集群

出现HEALTH_OK代表正常

[root@ceph001 ceph]# ceph -s

四、问题总结与解决

待更新

标签:ceph003,ceph001,ceph,集群,yum,root,节点,分布式
From: https://www.cnblogs.com/hopeto/p/17800815.html

相关文章

  • nebula-br local-store 模式,快速搭建主备集群实践
    因为线上图数据库目前为单集群,数据量比较大,有以下缺点:单点风险,一旦集群崩溃或者因为某些查询拖垮整个集群,就会导致所有图操作受影响很多优化类但会影响读写的操作不好执行,比如:compact、balanceleader等;双集群在升级的时候也非常有优势,完全可以做到不影响业务运行,比如先升级......
  • odigos 基于ebpf 以及OpenTelemetry 的分布式tracing 解决方案
    按照odigos官方的介绍是不需要进行代码的修改就可以实现方便的跨应用的分布式trace,目前支持java,python,net,go,js等语言目前看官方的介绍,安装是比较简单的(核心基于了k8s),目前官方文档比较清晰可以试用下说明目前开源分布式trace的工具是越来越多了,同时基于ebpf以及OpenTelemetry......
  • 关于pacemaker集群stonith:fence_azure_arm资源-SP-服务主机-密码过期的处理方法
    在pacemaker中,一般都会创建一个stonith资源(ShootTheOtherNodeInTheHead),笔者因为是在Azure平台、于是使用的为 stonith:fence_azure_arm最近发现有一个与之关联的服务主体的密码过期了,导致状态异常,通过pcsstatus可以看到FailresourceActions信息FailedResourceAc......
  • 904-907 Prometheus自动发现机制 kube-state-metrics和metrics-server Prometheus监
    一、Prometheus自动发现机制服务发现机制:为了实现自动将被监控目标添加到PermethusPrometheus数据源的配置分为静态配置和动态发现,常见为以下几类:static_configs:静态服务发现,即将配置直接写到配置文件或Configmapfile_sd_config:文件服务器发现,创建一个专门配置target的配置文......
  • 分布式锁在Redis集群中的实践与探讨
    分布式锁的基本概念分布式锁是在分布式计算环境下,用来确保多个进程或线程在访问某些共享资源时能够避免冲突的一种同步机制。其主要目的是为了保持数据的一致性和完整性。为了达到这个目的,分布式锁需要满足互斥性、无死锁和容错性三个基本条件。互斥性:这是分布式锁最基本的要求,它确......
  • elasticsearch运维调优-集群和冷热集群
    集群:node1-node3专用主节点node3仅投票节点 启动服务:./bin/elasticsearch后台启动守护进程./bin/elasticsearch推荐方式./bin/elasticsearch-d-ppid关闭进程ps-ef|grepelastic杀进程kill-9'catpid'pkill-Fpid常见问题:本地无法访问:关闭防火墙,生产环境建......
  • 分布式系统
    什么是分布式系统一个系统各组件分别部署在不同服务器上,彼此通过网络通信和协调的系统。表现形式: 可以指多个不同组件分布在网络上互相协作,比如电商网站 也可以一个组件的多个副本组成集群,互相协作如同一个组件,比如数据存储服务中为了数据不丢失而采取多个服务备份冗余,当......
  • Redis集群模式incr保证原子性的原理
    1.主要是redis的key会解析到固定的主机上,比如集群上有host1,host2,host3;然后key1可能会解析后发现是要发到host2上,则在host2正常的情况下(有点像kafkarebalance;consumer处理哪些分区),key1会一直在host2上进行操作;因此在redis集群正常情况下不会出现对key1第一次incr是在host2,第二次......
  • DHorse改用fabric8的SDK与k8s集群交互
    现状在dhorse1.4.0版本之前,一直使用k8s官方提供的sdk与k8s集群交互,官方sdk的Maven坐标如下:<dependency> <groupId>io.kubernetes</groupId> <artifactId>client-java</artifactId> <version>18.0.0</version></dependency>但是自从1.4.0版本以后,dhor......
  • 使用 Sealos 一键部署 Kubernetes 集群
    Sealos是一款以Kubernetes为内核的云操作系统发行版,使用户能够像使用个人电脑一样简单地使用云。与此同时,Sealos还提供一套强大的工具,可以便利地管理整个Kubernetes集群的生命周期。Sealos不仅可以一键安装一个单节点的Kubernetes开发环境,还能构建数千节点的生产高可......