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

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

相关文章:

ceph文件系统

ceph文件系统:高度可扩展,分布式的存储文件系统,旨在提高性能,高可靠性和高可用的对 象存储,块存储,文件系统的存储。使用分布式的算法保证数据的高可用和一致性。 ceph的组件 1、MON:ceph m…...

【数据结构-堆】力扣2530. 执行 K 次操作后的最大分数

给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你的 起始分数 为 0 。 在一步 操作 中&#xff1a; 选出一个满足 0 < i < nums.length 的下标 i &#xff0c; 将你的 分数 增加 nums[i] &#xff0c;并且 将 nums[i] 替换为 ceil(nums[i] / 3) 。 返回在 恰好…...

Java jdk8新特性:Stream 流

一. Stream 1. Stream也叫Stream流&#xff0c;是jdk8开始新增的一套API(java.util.stream.*)&#xff0c;可以用于操作集合或者数组的数据。 2. 优势&#xff1a;Stream流大量的结合了lambda的语言风格来编程&#xff0c;提供了一种更加强大&#xff0c;更加简洁的方式操作集合…...

房产销售系统(源码+数据库+文档)

亲测完美运行带论文&#xff1a;文末获取源码 文章目录 项目简介&#xff08;论文摘要&#xff09;运行视频包含的文件列表&#xff08;含论文&#xff09;前端运行截图后端运行截图 项目简介&#xff08;论文摘要&#xff09; 随着科学技术的飞速发展&#xff0c;各行各业都在…...

Vue 项目自动化部署:Coding + Jenkins + Nginx 实践分享

前言 本文详细记录如何使用 Coding (以 Jenkinsfile 为核心) 和 Nginx 部署 Vue 项目&#xff0c;包含完整流程、配置细节及注意事项&#xff0c;为开发者提供一个高效的实践参考。 准备工作 这里借用一个优秀的开源项目做演示&#xff1a;芋道源码/yudao-ui-admin-vue2。 以…...

从零开始开发纯血鸿蒙应用之实现起始页

从零开始开发纯血鸿蒙应用 一、前言二、主要页面三、应用起始页四、MainPageContent 实现1、一级结构2、二级结构2.1、EmptyContent2.2、FileListContent2.2.1、ViewAction&#xff1a;2.2.2、EditAction2.2.3、DeleteAction2.2.4、ShareAction 五、载入起始页的时机五、总结 一…...

CG顶会论文阅读|《科技论文写作》硕士课程报告

文章目录 一、基本信息1.1 论文基本信息1.2 课程基本信息1.3 博文基本信息 二、论文评述&#xff08;中英双语&#xff09;2.1 研究问题&#xff08;Research Problem&#xff09;2.2 创新点&#xff08;Innovation/Contribution&#xff09;2.3 优点&#xff08;Why this pape…...

【Python运维】使用Python与Docker进行高效的容器化应用管理

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着容器化技术的广泛应用,Docker已成为现代软件开发与运维中不可或缺的工具。Docker容器提供了一种轻量级、可移植的方式来部署和管理应用…...

【人工智能】基于Python与OpenCV构建简单车道检测算法:自动驾驶技术的入门与实践

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着自动驾驶技术的快速发展,车道检测作为自动驾驶系统中的一个重要组成部分,起着至关重要的作用。本文将介绍如何利用Python与OpenCV库构…...

实时数仓: Hudi 表管理、Flink 性能调优或治理工具脚本

1. Hudi 表管理 1.1 Hudi 表基础管理 创建 Hudi 表 在 HDFS 上创建一个 Hudi 表&#xff08;以 Merge-on-Read 为例&#xff09;&#xff1a; CREATE TABLE real_time_dw.dwd_order_fact (order_id STRING,user_id STRING,product_id STRING,amount DOUBLE,order_date STRIN…...

Kotlin 数据类与密封类

Kotlin 数据类与密封类 引言 在 Kotlin 中&#xff0c;数据类和密封类是两种非常重要的类类型&#xff0c;它们各自具有独特的用途和优势。数据类主要用于存储数据&#xff0c;而密封类则用于表示受限的类层次结构。在本篇文章中&#xff0c;我们将深入探讨 Kotlin 中的数据类…...

大模型推理加速调研(框架、方法)

大模型推理加速调研&#xff08;框架、方法&#xff09; 大模型推理框架调研总结推理框架TensorRT-LLMllama.cppmnn-llmfastllmmlc-llm 环境搭建&部署推理环境llama.cppfastllmmnn-llmvllm vllm_openai_completions.pylmdeployTensorRT-LLM 大模型加速技术总结模型压缩量化…...

C语言进阶(3)--字符函数和字符串函数

本章重点 重点介绍处理字符和字符串的库函数的使用和注意事项 目录 0.前言 1.函数介绍 1.1 strlen - 计算字符串长度 1.2 strcpy - 复制字符串 1.3 strcat - 追加字符串 1.4 strcmp - 字符串比较 1.5 strncpy - 受限制复制 1.6 strncat - 受限制追加 1.7 strncmp - 受限制比…...

微服务拆分的艺术:构建高效、灵活的系统架构

目录 一、微服务拆分的重要性 二、微服务拆分的策略 1. 按照业务领域拆分 2. 按照团队结构拆分 3. 按照业务边界拆分 4. 按照数据和数据库拆分 5. 按照用户界面或外部接口拆分 6. 按照功能模块或领域驱动设计拆分 7. 按照性能和可伸缩性需求拆分 三、微服务拆分的实践…...

记录一次电脑被入侵用来挖矿的过程(Trojan、Miner、Hack、turminoob)

文章目录 0、总结1、背景2、端倪3、有个微软的系统更新&#xff0c;就想着更新看看&#xff08;能否冲掉问题&#xff09;4、更新没成功&#xff0c;自动重启电脑5、风险文件&#xff08;好家伙命名还挺规范&#xff0c;一看名字就知道出问题了&#xff09;6、开机有一些注册表…...

计算机xinput1_4.dll丢失怎么修复?

电脑运行时常见问题及修复指南 作为软件开发从业者&#xff0c;深知电脑在日常使用中难免会遇到各种问题&#xff0c;如文件丢失、文件损坏和系统报错等。这些问题不仅影响工作效率&#xff0c;还可能带来数据丢失的风险。本文将详细介绍一些常见问题及其解决办法&#xff0c;…...

高等数学学习笔记 ☞ 连续函数的运算与性质

1. 连续函数的运算 1. 连续函数的四则运算&#xff1a; &#xff08;1&#xff09;若函数在点处连续&#xff0c;则函数在点处也连续。 &#xff08;2&#xff09;若函数在区间上连续&#xff0c;则函数在区间上也连续。 2. 反函数的连续性&#xff1a; 若函数在定义域上是单…...

k8s基础(4)—Kubernetes-Service

Service概述 抽象层 ‌k8s的Service是一种抽象层&#xff0c;用于为一组具有相同功能的Pod提供一个统一的入口地址&#xff0c;并通过负载均衡将网络流量分发到这些Pod上。‌ Service解决了Pod动态变化的问题&#xff0c;例如Pod的IP地址和端口可能会发生变化&#xff0c;通过…...

CAN或者CANFD的Busoff的恢复时间会受到报文周期的影响么?

目录 分析恢复机制角度快恢复和慢恢复策略角度特殊情况分析分析 Busoff的恢复时间通常不会直接受到报文周期的影响,以下是具体分析: 恢复机制角度 CAN总线的节点在Busoff状态下,恢复过程主要是等待总线上出现128个连续的11bit隐性位,与报文周期并无直接关联。无论报文周…...

【DevOps】Jenkins部署

Jenkins部署 文章目录 Jenkins部署资源列表基础环境一、部署Gilab1.1、安装Gitlab1.2、修改配置文件1.3、加载配置文件1.4、访问Gitlab1.5、修改root登录密码1.6、创建demo测试项目1.7、上传代码1.8、验证上传的代码 二、部署Jenkins所需软件2.1、部署JDK2.2、部署Tomcat2.3、部…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...