当前位置: 首页 > article >正文

ceph集群配置

4台机器

高度可扩展,分布式的存储文件系统,旨在提供高性能,高可靠性和高可用的对象存储,块存储,文件系统的存储。

使用分布式的算法保证数据的高可用和一致性。

ceph的架构:

1、ceph minitor

MON:负责存储和维护整个ceph集群的状态信息,主要是集群的成员信息,存储状态和配置数据等等。

确保集群的一致性,处理选举和状态的更新,集群内部成员的通信,包括故障转移。

ceph当中的mon至少有3个节点确保高可用。

2、ceph osd   object storage deamon

ceph存储系统的核心组件,负责存储数据,处理读写与请求,数据复制,数据恢复。

每个osd节点管理一个或者多个硬盘驱动。

存储实际的数据和副本

处理对象级别的数据操作,读,写,删

在节点付账时,进行数据恢复

3、ceph mds  metadata  server

对ceph的文件系统的元数据进行管理,文件和目录的结构,文件的权限,mds提供元数据服务

管理集群的元数据信息

处理客户端对文件系统的请求

ceph集群中,至少要有一个mds节点。

4、存储池和pg

存储池:ceph存储对象的容器,每个存储池可以定义不同的数据冗余的策略(副本数,默认都是3)crush映射规则等等。

存储池是一个逻辑上的概念。

管理和组织数据的对象

定义数据的冗余方式,只要是开副本,3个。

配置crush映射,数据如何在osd之间发布。

pg:placement group

pg也是ceph当中的一个逻辑概念,用于数据发布的基本单位,创建存储池,定义好pg的数量。

pg是由一组对象(object)组成的逻辑集合,每个对象都会映射到一个或者多个pg。

数据发布:数据写入集群,映射到存储池中的一个pg,crush算法决定将pg发布到哪些osd。

在ceph当中,pg和osd的数量是相关的,设置一个合理的pg数,有助于提高集群的性能。

3个osd为例

pg数量=(osd数量*100)/存储池的副本数

300/3=100           

pg的数量应该是2的幂值,   128

pg的数量一般是osd数量的一百倍,左右。

存储池,pg和osd之间的关系:

1、存储池(pool),管理数据的基本单位,组成和配置数据的存储和冗余的方式

2、pg存储池中的数据划分成多个pg,每个pg是数据发布的最小单位,pg负责对象存储的位置,通过crush的算法把数据发布到osd

3、osd是负责存储的数据基于物理设备的虚拟概念。

crush算法,ceph自带的一种算法:

数据发布的算法,把对象分配到集群的osd节点当中。

crush算法使用hash算法来决定数据的存储位置,确保数据是均匀分布在集群的osd上。

存储类型:

对象存储  云平台存储,基于apt接口,通过http(s)来对目标发起请求的方式获取数据。

块存储   RBD

文件系统  cephfs

集群的架构:

test1  mon   osd   admin

test2   mon   osd

test3   mon   osd

test4   客户端

ceph17版本------2024  17.2.24依赖于docker  python3-------ubuntu自带  lvm2

全部清空  更换相应版本的阿里云

安装docker

test1

wget https://mirrors.aliyun.com/ceph/debian-17.2.4/pool/main/c/ceph/cephadm_17.2.4-1focal_amd64.deb

cephadm bootstrap --mon-ip 192.168.32.20 --cluster-network 192.168.32.0/24 --allow-fqdn-hostname

--mon-ip  指定mon进程的节点地址,先指定admin节点。

--cluster-network   集群网络的只范围,ceph节点内部通信。

--allow-fqdn-hostname    允许ceph集群使用hostname来对节点进行标识。节点之间可以通过主机名进行通信

40

echo "192.168.32.21 nginx2" | tee -a /etc/hosts

test1 2 3 4

test1

修改mon节点的数量

等待对应数满

test1 2 3

在虚拟机中添加硬盘

刷新

for host in /sys/class/scsi_host/host*/scan; do
    echo "- - -" | sudo tee $host
done

作为ceph集群的底层的硬盘必须满足的两个条件:

1、容量必须大于5G

2、不能对硬盘做任何分区和文件系统

test1

获取可用的节点

等待

添加osd  1   2   3 

ceph RBD

rados block device

虚拟化环境,openstack,KVM

数据库:性能高,延迟低的块存储方式

优点:

1、支持动态扩展

2、支持快照和克隆

缺点:

1、rdb的方式必须要创建文件系统

使用方式:在云计算的平台经常被使用,尤其是大规模存储和高性能存储场景。

test1

创建存储池

ceph osd pool rdb1 存储池的名称

128 pg_num  pgd数量

128 pgp_num 的数量

给存储池创建类型(可以不写)

做映射   客户端 test 4

创建rdb镜像

镜像是rdb存储的基本单位,是一个虚拟的磁盘。

镜像提供了一个虚拟的块设备的接口,可以挂载的方式进行使用。

创建rdb镜像,实际上就是类似磁盘的一个分区

test1 复制文件系统 和 miyaod

test4

创建镜像

做映射

映射之后,会虚拟出一个逻辑上的硬盘,要创建文件系统,然后挂载才可以使用。

mkfs

2、cephfs的存储方式:

文件系统分布式存储方式,基于内核是实现共享文件的存储方式

大数据存储,文件服务器(文件共享,企业的镜像服务源)

优点:内核兼容,NFS方式也可以实现,部署速度比较快,跨节点实现

缺点:配置比rdb的比较复杂,在大集群当中比较复杂

ceph需要两个存储池

数据池cephfs.data,用来存储数据

元数据池,保存数据的元信息,cephfs.meta

cephfs:数据池cephfs.data

test1

查看名称

查看状态

test4

ceph auth  get-key client.admin

创建集群

test1

创建nfs的高可用,分别运行test1,再加入test2,test3

nfs的挂载目录和cephfs数据池之间的关系:

通过nfs的挂载方式,依然使用的cephfs.data的数据的空间,文件实际上还是存储在cephfs.data的数据池当中。

3、ceph object storge 对象存储

云计算的后台的存储方式一般都是用对象存储

对象存储:高扩展,处理文件的级别可以达到PB级别。

缺点:如果数据量不是特别巨大一般不需要该场景。

ceph需要使用分布式文件系统的企业一般都是需要存储海量数据,可以保证数据的高可用非常严谨的场景。

ceph的存储方式的数据流向:

存储池 pg  osd

创建存储池,分配pg   

数据按照对象分配给pg

pg再把数据分配给osd


http://www.kler.cn/a/472552.html

相关文章:

  • 案例解读 | 香港某多元化综合金融企业基础监控+网管平台建设实践
  • 【杂谈】-50+个生成式人工智能面试问题(一)
  • html + css 顶部滚动通知栏示例
  • 33.3K 的Freqtrade:开启加密货币自动化交易之旅
  • C# 实现 gRPC 进程间通讯:两台设备的数据交换之道
  • 【网络安全 | 漏洞挖掘】HubSpot 全账户接管(万字详析)
  • IDEA的常用设置
  • LabVIEW软件Bug的定义与修改
  • HTML 音频(Audio)
  • IDEA 字符串拼接符号“+”位于下一行的前面,而不是当前行的末尾
  • 导航技术的分类
  • Swoole v6 正式发布
  • 软件架构的康威定律:AI如何重构团队协作模式
  • 【VUE+ElementUI】通过接口下载blob流文件设置全局Loading加载进度
  • 在 CentOS 上安装 Docker 和 Docker Compose(可指定版本或安装最新版本)
  • MySQL安装,配置教程
  • 如何设计一个能根据任务优先级来执行的线程池
  • 计算机的错误计算(二百零五)
  • RPM包的制作
  • HTML5实现好看的中秋节网页源码
  • 《浮岛风云》V1.0中文学习版
  • 接口项目uuid算法开发及验证-thinkphp6-rabbitmq
  • 大模型(LLM)面试全解:主流架构、训练目标、涌现能力全面解析
  • 20250108-实验+神经网络
  • 2025年01月08日Github流行趋势
  • 你好,2025!JumpServer开启新十年