ceph文件系统

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

象存储,块存储,文件系统的存储。使用分布式的算法保证数据的高可用和一致性。

ceph的组件

1、MON:ceph  monitor,负责存储和维护整个ceph集群的状态信息,主要是集群的成员信息,存

储状态和配置数据等等。

  • 确保集群的一致性
  • 处理选举和状态的更新
  • 处理集群内部成员的通信,包括故障转移
  • ceph当中mon至少要有3个节点确保高可用

2、osd:ceph  object  storage  daemon,ceph存储系统的核心组件,负责存储数据,处理

读写请求,数据复制,数据恢复。每个osd节点管理一个或多个硬盘驱动。

  • 存储实际的数据和副本
  • 处理对象级别的数据操作,读、写、删
  • 在节点付账时,进行数据恢复

3、mds:ceph  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数,有助于提高集群的性

能。pg数量=osd数量*100/存储池的副本数,且pg数量应该是2的幂值。以3个osd为例,pg的数量

为128为宜。pg的数量一般是osd数量的一百倍左右。

存储池和、pg和osd之间的关系

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

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

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

数据流向

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

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

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

存储类型:

对象存储:ceph  object  storge,云计算的后台的存储方式一般都是用对象存储,基于apt接口,通过http(s)来对目标发起请求的方式获取数据。

块存储 RDB

文件系统 cephfs

ceph的创建

这里我们使用三台服务器完成ceph架构,另一台服务器作为客户端,具体如下

zw4:192.168.254.14,mon   osd   admin

zw5:192.168.254.15,mon   osd

zw6:192.168.254.16,mon   osd

zw7:192.168.254.17,客户端

我们这里使用的是ceph17版本:2024 17.2.4依赖于docker、python3和lvm2,所有准备好阿里

源,不要使用ubuntu官方源。

1、使用免交户方式对四台主机名都进行主机映射

2、三台集群主机安装docker

apt -y install docker.io     

apt -y install lvm2

安装cephadm并初始化单节点集群(主节点zw4上执行)并编译安装

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

dkpg -i cephadm_17.2.4-1focal_amd64.deb 

3、主节点上开启集群初始化

  • --mon-ip:指定mon进程的节点地址,先指定admin节点。
  • --cluster-network:集群网络的地址范围,ceph节点内部通信。
  • --allow-fqdn-hostname:允许ceph集群使用hostname来对节点进行标识,节点之间可以通过主机名进行通信

初始化后得到账户密码以及登录地址,可以登录ceph可视化界面

4、集群和客户端之间免密登录

主节点zw4和其他三台服务器进行ssh免密登录

主节点与另外两台集群主机进行内部ssh免密登录

5、四台主机安装ceph客户端

apt -y install ceph-common

6、添加osd

ceph添加主机名

查看当前Ceph Orchestrator 管理的所有主机信息,包括它们的状态、角色以及其他相关信息

修改mon节点的数量

把zw4、zw5和zw6添加进mon节点

7、三台集群服务器添加硬盘并刷新接口

这里使用命令行刷新,你可以选择重启

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

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

  • 容量必须要大于5G
  • 不能对硬盘做任何分区和文件系统

8、添加osd硬盘

首先让ceph获取可用的节点并查看

添加osd硬盘

这时候ceph可视化界面显示我们集群搭建成功

ceph的使用

RDB存储方式

ceph  RDB:rados  block  device,主要用于虚拟化环境和数据库。

虚拟化环境:openstack、KVM

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

优点:

  • 支持动态扩展
  • 支持快照和克隆

缺点:

  • RBD的方式必须要创建文件系统
  • 使用方式:在云计算的平台经常被使用,尤其是大规模存储和高性能场景。

1、在主节点上创建存储池并给存储池创建类型

  • rdb1:存储池的名称,不能重复
  • 128:pg的数量
  • 128:pgp的数量

查看存储池是否成功,ceph osd pool ls

 2、在客户端zw7创建RDB镜像前,先传送主节点的配置文件和秘钥文件给客户端

在客户端上检查是否成功

3、在客户端zw7创建RDB镜像并做映射

  • 镜像是RDB存储的基本单位,是一个虚拟的磁盘。
  • 镜像提供了一个虚拟的块设备的接口,可以挂载的方式进行使用。
  • 创建RDB镜像,实际上就是类似磁盘的一个分区

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

4、在客户端创建文件系统、挂载使用

mkfs.ext4 /dev/rbd0                           #创建文件系统

mount /dev/rbd0 /data/                      #挂载

创建一个100M的文件

这时候我们发现这个文件已经开始占用存储池的空间了

cephfs的存储方式

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

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

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

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

ceph需要两个存储池:

数据池:cephfs.data,用来存储数据,这是根据osd的数量和总空间的大小,创建cephfs的时候,系统自动分配给cephfs文件系统的大小,按照一般情况是总大小的三分之一。

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

1、在主节点上创建cephfs的存储池

可以看出有两个cephfs存储池

查看cephfs存储池的名称和状态

2、在客户端挂载使用

首先在客户端上获取密钥对,ceph auth get-key client.admin

挂载

创建一个100M的文件

这时候我们发现这个文件已经开始占用存储池的空间了

ceph的nfs方式

1、在主节点创建一个nfs服务和一个池

ceph orch apply nfs nfs-share

ceph osd pool create nfs-pools

查看集群当中所有的存储池,ceph osd lspools

2、创建一个nfs的高可用名字是my-nfs,分别运行在zw4,再加入zw5和zw6
ceph orch apply nfs my-nfs nfs-pools --placement="zw5,zw6"

回到ceph的可视化界面,创建NFS

3、客户端挂载使用

mount -t ceph 192.168.254.14:6789,192.168.254.15:6789,192.168.254.16:6789:/ /data2 -o name=admin,secret=AQBTVXdnKEBBKRAA4pFJAA5oG4FwuEIkONCaNg==

可以发现使用nfs的挂载目录和cephfs数据池挂载的大小和可用空间都一样,是因为通过nfs的挂载

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

ceph  object  storge 对象存储

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

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

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

总结

ceph需要使用分布式文件系统的企业一般都是需要存储海量数据,以及保证数据的高可用非常严谨的场景。ceph的存储方式的数据流向:主要包括存储池、pg和osd

创建存储池,分配pg

数据按照对象分配给pg

pg再数据包分配到osd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/947675.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

牛客网刷题 ——C语言初阶——BC117 小乐乐走台阶

1.题目 :BC117 小乐乐走台阶 牛客OJ题链接 描述 小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法? 输入描述: 输入包含一个整数n (1 ≤ n ≤ 30) …

flux文生图 生成高质量图像

flux文生图 生成高质量图像 flyfish import torch from diffusers import FluxPipeline# 初始化 FluxPipeline model_path "/home/FLUX___1-dev" pipe FluxPipeline.from_pretrained(model_path, torch_dtypetorch.bfloat16) pipe.enable_model_cpu_offload() #…

设计模式 结构型 装饰器模式(Decorator Pattern)与 常见技术框架应用 解析

装饰器模式(Decorator Pattern),又称为包装器模式(Wrapper Pattern),是一种结构型设计模式。它允许在不改变原有对象结构的基础上,动态地给对象添加一些新的职责(即增加其额外功能&a…

计算机毕业设计Python+Vue.js游戏推荐系统 Steam游戏推荐系统 Django Flask 游 戏可视化 游戏数据分析 游戏大数据 爬虫

2021年12月21日 姓名 专业 软件工程 班级 20-IBM-企Java2 题目 基于hadoopSpark的游戏推荐与可视化系统的设计与实现 指导教师 王文钧、王春娴 一、与本题目有关的国内外研究情况、题目研究的目的和意义、主要内容、本课题创新之处、拟解决的问题: 国内外…

[创业之路-222]:波士顿矩阵与GE矩阵在业务组合选中作用、优缺点比较

目录 一、波士顿矩阵 1、基本原理 2、各象限产品的定义及战略对策 3、应用 4、优点与局限性 二、技术成熟度模型与产品生命周期模型的配对 1、技术成熟度模型 2、产品生命周期模型 3、技术成熟度模型与产品生命周期模型的配对 三、产品生命周期与产品类型的对应关系 …

使用Python类库pandas操作Excel表格

Date: 2025.01.02 20:33:30 author: lijianzhan 简述:pandas 是处理 Excel 文件的强大工具,它提供了简单易用的接口来读取、操作和写入 Excel 数据。以下是使用 pandas 处理 Excel 文件的详细指南,包括常见操作和示例代码。 安装依赖,pandas …

Deepseek v3 的笔记

基本概述 Deepseek v3是Deepseek发布的旗舰模型,属于607B的混合专家(MoE)模型,其中活跃参数为37B。在当前的模型领域,它堪称最佳的开源模型,性能超越了Llama 3.1 405b、Qwen和Mistral等知名模型。根据基准…

Python多分类Logistic回归详解与实践

在机器学习中,Logistic回归是一种基本但非常有效的分类算法。它不仅可以用于二分类问题,还可以扩展应用于多分类问题。本文将详细介绍如何使用Python实现一个多分类的Logistic回归模型,并给出详细的代码示例。 一、Logistic回归简介 Logist…

前端,npm install安装依赖卡在sill idealTree buildDeps(设置淘宝依赖)

输入npm i后,一直卡在sill idealTree buildDeps,一动不动 cnpm可以安装成功,但使用cnpm不会生成package-lock.json文件 设置淘宝依赖,依然卡住,挂梯子也不行 解决方法: // 取消ssl验证 set strict-ssl …

装饰者模式

1、定义 装饰者模式:在不必改变原类和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象 2、实际应用 星巴克的咖啡系统项目: 星巴克要求的各种下单功能:大杯原味、大…

招银网路Java后端一面,难度有点大!

这是一位武汉理工大学同学的招银网络一面面经,同样附带超详细的参考答案。大家可以用来查漏补缺,针对性地补短板。 招银网络一面还是比较简单的,基本都是一些比较重要且高频的常规八股,项目问的不多。到了二面的时候, 会开始主要考察你的项目。 1、自我介绍 自我介绍一般…

C++之设计模式

设计模式 简介单例模式饿汉模式懒汉模式 工厂模式简单工厂模式工厂方法模式抽象工厂模式 建造者模式代理模式 简介 设计模式是前辈们对代码开发经验的总结,是解决特定问题的⼀系列套路它不是语法规定,而是⼀套⽤来提高代码可复用性、可维护性、可读性、…

云效流水线使用Node构建部署前端web项目

云效流水线实现自动化部署 背景新建流水线配置流水线运行流水线总结 背景 先来看看没有配置云效流水线之前的部署流程: 而且宝塔会经常要求重新登录,麻烦的很 网上博客分享了不少的配置流程,这一篇博客的亮点就是不仅给出了npm命令构建&…

pycharm如何拉取一个git项目,然后,修改后再上传到自建的项目中?

以chattts为例 https://github.com/2noise/ChatTTS.git 1.建一个虚拟环境,用于项目使用 2.pycharm新建工程 3.忽略 提示 勾选,新建远程仓库 设置账号和密码 设置git路径,一般是正确的,点测试即可 &…

(五)开机自启动以及scp工具文件传输小问题

文章目录 程序开机自启动先制作一个可执行程序第一种 通过命令行实现程序开机自启动第二种 通过 Linux 系统镜像实现程序开机自启动 scp工具文件传输小问题 程序开机自启动 原因:做成产品后,用户直接开机使用,总不能在开机执行程序后才可以使…

供需平台信息发布付费查看小程序系统开发方案

供需平台信息发布付费查看小程序系统主要是为了满足个人及企业用户的供需信息发布与匹配需求。 一、目标用户群体 个人用户:寻找兼职工作、二手物品交换、本地服务(如家政、维修)等。 小微企业:推广产品和服务,寻找合…

中建海龙:科技助力福城南产业片区绿色建筑发展

在快速发展的城市化进程中,绿色建筑以其环保、节能、可持续的特点日益受到重视。作为建筑工业化领域的领军企业,中建海龙科技有限公司(简称“中建海龙”)凭借其卓越的科技实力和创新举措,在推动绿色建筑发展方面做出了…

OJ随机链表的复制题目分析

题目内容: 138. 随机链表的复制 - 力扣(LeetCode) 分析: 这道题目,第一眼感觉非常乱,这是正常的,但是我们经过仔细分析示例明白后,其实也并不是那么难。现在让我们一起来分析分析…

动态规划回文串问题系列一>回文子串

题目: 解析: 注意:字串和子数组差不多 状态表示: 状态转移方程: 初始化: 填表顺序: 返回值: 返回dp表里true的个数

万里数据库GreatSQL监控解析

GreatSQL是MySQL的一个分支,专注于提升MGR(MySQL Group Replication)的可靠性及性能。乐维监控平台可以有效地监控GreatSQL,帮助用户及时发现并解决潜在的性能问题。 通过在GreatSQL服务器上安装监控代理,收集数据库性…