ceph文件系统

ceph文件系统:

使用设备:4台机器

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

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

ceph的架构:

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

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

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

  • 2、OSD (object storage daemon )
    ceph存储系统的核心组件,负责存储数据,处理读写请求,数据复制,数据恢复

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

存储实际的数据和副本

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

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

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

管理集群的元数据信息

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

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

  • 4、存储池和pg

存储池(pool):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的幂值

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 192.168.31.10 mon osd admin

test2 192.168.31.11 mon osd

test3 192.168.31.12 mon osd

test4 192.168.31.13 客户端

ceph 17版本:2024 17.2.4 新版 依赖于docker 和 python3 ------- Ubuntu自带,lvm2

cephadm bootstrap --mon-ip 192.168.233.10 --cluster-network 192.168.233.0/24 --allow-fqdn-hostname

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

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

复制代码
集群和客户端之间进行免密登录
↓
添加OSD
ceph orch host add test2 / test3
↓
Ceph Dashboard is now available at:
URL: https://test1:8443/
User: admin
Password: 47cqqsv839

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

1、容量必须大于5G

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

ceph的RBD模式

RBD:rados block device
用于虚拟化环境,openstack,kvm

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

优点:
1、支持动态扩展
2、支持快照和克隆

缺点:
1、RBD的方式必须要先创建文件系统
使用方式:在云计算平台当中使用,尤其是大规模存储和高性能存储场景

复制代码
ceph osd pool create rbd1 128 128 #创建存储池的命令

ceph osd pool rbd1 这是存储池的名称
128 128
128 pg_num pg的数量
128 pgp_num 的数量

rbd create myrbd1 -size 2G --pool rbd1 创建镜像的命令:
镜像RBD存储的基本单位,他是一个虚拟的磁盘
镜像提供了一个虚拟的块设备的接口,可以挂载的方式进行使用

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

复制代码
root@test4:/etc/ceph# rbd create myrbd1 --size 2G --pool rbd1
创建镜像

root@test4:/etc/ceph# rbd map myrbd1 --pool rbd1
映射之后,会虚拟出一个逻辑上的硬盘,要创建文件系统,然后挂载才可以使用

2、cephfs的存储方式:

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

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

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

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

ceph需要两个存储池

  • 数据池:cephfs.data,用来存储数据,根据OSD的数量和总空间的大小,创建cephfs时,系统自动分配给cephfs文件系统的大小,按照一般情况是总大小的3分之1左右

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

ceph fs volunme create cephfs:创建ceph文件系统

NFS方式:

3、ceph object storge 对象存储

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

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


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

ceph的存储方式的数据流向

存储池 pg osd

创建存储池,分配pg

数据按照对象分配给pg

pg再把数据分配到osd

相关推荐
mixboot8 天前
Ceph OSD.419 故障分析
ceph·osd
赵成ccc8 天前
离线部署三节点 Ceph 分布式存储
分布式·ceph
赵成ccc8 天前
三节点Ceph分布式存储搭建指南
分布式·ceph
免檒8 天前
windows11下基于docker单机部署ceph集群
ceph·后端·docker·容器
mixboot8 天前
Ceph集群OSD崩溃恢复
ceph·osd
羌俊恩12 天前
分布式存储之Ceph使用指南--部署篇(未完待续)
分布式·ceph·pg·osd·rados
大咖分享课18 天前
深度剖析:Ceph分布式存储系统架构
分布式·ceph·架构·分布式存储
虚伪的空想家22 天前
rook-ceph配置dashboard代理无法访问
ceph·云原生·k8s·存储·rook
QF_2 个月前
debian搭建ceph记录(接入libvirt)
ceph·debian·kvm·libvirt
斯普信专业组3 个月前
Ceph集群OSD运维手册:基础操作与节点扩缩容实战
运维·ceph