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

相关推荐
Mr.王8354 天前
Kubernetes宿主机本地盘池化管理
ceph·云原生·容器·kubernetes
一个行走的民8 天前
CEPH OSD心跳机制
ceph
一个行走的民8 天前
Ceph PG 状态详解与线上故障处理
网络·ceph
一个行走的民8 天前
Ceph MDS 状态机与 Monitor 中的状态流转分析
ceph
Virtual_human080613 天前
在VMware workstation上,部署3节点ceph测试,及加入openstack
ceph·云计算·openstack·osd·ceph集群
Brandon汐20 天前
从0开始搭建一主两节点k8s集群对接Ceph集群
ceph·容器·kubernetes
泡沫·23 天前
CEPH的基本认识
ceph
2301_7679026425 天前
ceph分布式存储(三)
分布式·ceph
2301_7679026425 天前
ceph分布式存储(一)
分布式·ceph
2301_7679026425 天前
ceph分布式存储(二)
分布式·ceph