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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 入门大全:运算符

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

Px4 V2.4.8飞控Mavlink命令控制说明

首先,可以使用两种方法连接飞控,使用虚拟机(LINUX)或使用地面站(QGC)连接。 在px4的代码文件位置打开命令终端,输入连接命令: ./Tools/mavlink_shell.py 在控制台使用help来获取所有…

【Vim Masterclass 笔记05】第 4 章:Vim 的帮助系统与同步练习

文章目录 Section 4:The Vim Help System(Vim 帮助系统)S04L14 Getting Help1 打开帮助系统2 退出帮助系统3 查看具体命令的帮助文档4 查看帮助文档中的主题5 帮助文档间的上翻、下翻6 关于 linewise7 查看光标所在术语名词的帮助文档8 关于退…

java Redisson 实现限流每秒/分钟/小时限制N个

1.引入maven包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.redisson</groupId><artifactId>red…

C# 标准数字格式字符串

总目录 前言 当前文章为 C# 中的格式设置(格式化字符串) 大全 中的一个小章节。 一、概述 1. 基本信息 标准数字格式字符串用于格式化通用数值类型。标准数字格式字符串采用 [format specifier][precision specifier] 的形式 format specifier 格式说明符&#xff0c;负责指…

网络分析工具-tcpdump

文章目录 前言一、tcpdump基础官网链接命令选项详解常规过滤规则tcpdump输出 一、tcpdump实践HTTP协议ICMP状态抓包 前言 当遇到网络疑难问题的时候&#xff0c;抓包是最基本的技能&#xff0c;通过抓包才能看到网络底层的问题 一、tcpdump基础 tcpdump是一个常用的网络分析工…

【微软,模型规模】模型参数规模泄露:理解大型语言模型的参数量级

模型参数规模泄露&#xff1a;理解大型语言模型的参数量级 关键词&#xff1a; #大型语言模型 Large Language Model #参数规模 Parameter Scale #GPT-4o #GPT-4o-mini #Claude 3.5 Sonnet 具体实例与推演 近日&#xff0c;微软在一篇医学相关论文中意外泄露了OpenAI及Claud…

springboot集成qq邮箱服务

springboot集成qq邮箱服务 1.获取QQ邮箱授权码 1.1 登录QQ邮箱 1.2 开启SMTP服务 找到下图中的SMTP服务区域&#xff0c;如果当前账号未开启的话自己手动开启。 1.3 获取授权码 进入上图中的【管理服务】后&#xff1a;在【安全设置中生成授权码】,也可以直接点击【继续生成…

Windows系统提示ffmpeg.dll丢失怎么解决?

一、了解ffmpeg.dll文件 ffmpeg.dll是FFmpeg项目的一个动态链接库文件&#xff0c;FFmpeg是一个开源的多媒体处理框架&#xff0c;能够解码、编码、转码、混流、过滤和播放几乎所有已知格式的音频和视频文件。当Windows系统提示ffmpeg.dll丢失时&#xff0c;通常意味着某个需要…

直观解读 JuiceFS 的数据和元数据设计(一)

大家读完觉得有意义和帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 1 JuiceFS 高层架构与组件2 搭建极简 JuiceFS 集群 2.1 搭建元数据集群2.2 搭建对象存储&#xff08;MinIO&#xff09; 2.2.1 启动 MinIO server2.2.2 创建 bucket2.3 下载 juicefs 客户端2.4 创…

分布式微服务项目___某污水处理项目

一.分布式微服务项目___污水处理项目 项目地址:https://gitee.com/yanyigege/collaborative-water-springboot.git ​ 1.项目背景 总公司在全国各地有处理污水的项目部,各项目部处理自己的污水,总部需要监控各地分项目部每天处理污水的原料用量,掌握各分部的污水处理情况 ​…

鸿蒙HarmonyOS开发:拨打电话、短信服务、网络搜索、蜂窝数据、SIM卡管理、observer订阅管理

文章目录 一、call模块&#xff08;拨打电话&#xff09;1、使用makeCall拨打电话2、获取当前通话状态3、判断是否存在通话4、检查当前设备是否具备语音通话能力 二、sms模块&#xff08;短信服务&#xff09;1、创建短信2、发送短信 三、radio模块&#xff08;网络搜索&#x…

TVS二极管选型【EMC】

TVS器件并联在电路中&#xff0c;当电路正常工作时&#xff0c;他处于截止状态&#xff08;高阻态&#xff09;&#xff0c;不影响线路正常工作&#xff0c;当线路处于异常过压并达到其击穿电压时&#xff0c;他迅速由高阻态变为低阻态&#xff0c;给瞬间电流提供一个低阻抗导通…

sqlalchemy-access库操作MS Access

因目前项目中数据处理的量稍大&#xff0c;为了方便和业务进行交互&#xff0c;对数据的加工和处理放到微软桌面数据库MS Access中。然后有些地方通过 Python 来操作 MS Access 数据库&#xff0c;用到 sqlalchemy-access库。本文对操作的要点做简单的描述。 之前写过一篇 Pyt…

UnityRenderStreaming使用记录(三)

测试UnityRenderStreaming在Ubuntu24.04.1LTS上的表现 先放上运行图操作系统 Ubuntu24.04.1LTSUnity测试工程环境相关修改遇到的问题 先放上运行图 操作系统 Ubuntu24.04.1LTS 系统下载地址 https://cn.ubuntu.com/download/desktop安装UnityHub https://blog.csdn.net/AWNUXC…

==和===的区别,被坑的一天

在 JavaScript 中&#xff0c; 和 都用于比较两个值&#xff0c;但它们有一个重要的区别&#xff1a; 1. (宽松相等运算符) 进行比较时&#xff0c;会 自动类型转换&#xff08;也叫做强制类型转换&#xff09;&#xff0c;即如果比较的两个值的类型不同&#xff0c;JavaScr…

Git的使用流程(详细教程)

目录 01.Git是什么&#xff1f; 1.1 Git简介 1.2 SVN与Git的最主要的区别 1.3 GIt主要特点 02.Git是干什么的&#xff1f; 2.1.Git概念汇总 2.2 工作区/暂存区/仓库 2.3 Git使用流程 03.Git的安装配置 3.1 Git的配置文件 3.2 配置-初始化用户 3.3 Git可视化…

使用Docker部署最新版JupyterHub

拉取镜像 docker pull jupyterhub/jupyterhub:latest启动镜像 docker run -d -p 8000:8000 --name jupyterhub jupyterhub/jupyterhub:latest jupyterhub进入容器 docker exec -it jupyterhub bash生成jupyterhub的配置文件 jupyterhub --generate-config# 有需要可以安装中…

liunx下载gitlab

1.地址&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ 安装 postfix 并启动 yum install postfix systemctl start postfix systemctl enable postfix ssh服务启动 systemctl enable sshd systemctl start sshd开放 ssh 以及 http 服务&#xff0c…

【AI大模型】深入GPT-2模型细节:揭秘其卓越性能的秘密

目录 &#x1f354; GPT2的架构 &#x1f354; GPT2模型的细节 2.1 模型过程 2.2 GPT2工作细节探究 &#x1f354; 小结 学习目标 掌握GPT2的架构掌握GPT2的训练任务和模型细节 &#x1f354; GPT2的架构 从模型架构上看, GPT2并没有特别新颖的架构, 它和只带有解码器模块…