Ceph----CephFS文件系统的使用:详细实践过程实战版

news2024/11/27 6:16:26

CephFS 介绍

是一个基于 ceph 集群 且兼容 POSIX 标准的文件系统。
创建 cephfs 文件系统时 需要在 ceph 集群中添加 mds 服务,该服务 负责处理 POSIX 文件系统中的 metadata 部分,
实际的数据部分交由 ceph 集群中的 OSD 处理。

cephfs 支持以内核模块方式加载 也支持 fuse(普通用户) 方式加载。无论是内核 模式还是 fuse 模式,
都是通过调用 lib cephfs 库来实现 cephfs 文件 系统的加载,
而 libcephfs 库又调用 librados 库与 ceph 集群进行通 信,从而实现 cephfs 的加载
在这里插入图片描述

实验环境

服务器:153 IP:192.168.121.153 系统:Centos7.9 角色:ceph-deploy,osd
服务器:154 IP:192.168.121.154 系统:Centos7.9 角色:osd
服务器:155 IP:192.168.121.155 系统:Centos7.9 角色:osd
服务器:151 IP:192.168.121.151 系统:Centos7.9 角色:客户端

实验步骤

从MDS的部署开始,ceph的部署我前面的博文有详细介绍过,忘记了的话可以去看看
在cepe-deploy节点执行下面的命令在每个节点部署MDS

[root@server153 ceph-cluster]#  ceph-deploy  mds  create server153 server154 server155

然后查看MDS的服务是否启动

[root@server153 ceph-cluster]# ps axu | grep mds

查看mds节点的状况,如下是3个节点都已启动

[root@server153 ceph-cluster]# ceph mds stat
 3 up:standby

然后创建两个新的存储池,一个存储数据,一个存储元数据
需要注意一个存储池只能创建一个cephfs

[root@server153 ceph-cluster]# ceph osd pool create cephfs-test 128 128
pool 'cephfs-test' created

但是多个cephfs可以共用一个元数据的 存储池

[root@server153 ceph-cluster]# ceph osd pool create cephfs-metadata 128 128
pool 'cephfs-metadata' created

查看创建的存储池

[root@server153 ceph-cluster]# ceph osd pool ls
device_health_metrics
cephfs-test
cephfs-metadata

[root@server153 ceph-cluster]# ceph df
--- RAW STORAGE ---
CLASS  SIZE    AVAIL   USED     RAW USED  %RAW USED
hdd    60 GiB  57 GiB  276 MiB   3.3 GiB       5.45
TOTAL  60 GiB  57 GiB  276 MiB   3.3 GiB       5.45
 
--- POOLS ---
POOL                   ID  PGS  STORED  OBJECTS  USED  %USED  MAX AVAIL
device_health_metrics   1    1     0 B        0   0 B      0     18 GiB
cephfs-test             6  102     0 B        0   0 B      0     18 GiB
cephfs-metadata         7  117     0 B        0   0 B      0     18 GiB

目前我们只是创建了存储池,文件系统还是空的

[root@server153 ceph-cluster]# ceph  fs  ls
No filesystems enabled

接下来创建文件系统

[root@server153 ceph-cluster]# ceph fs ls
name: testfs, metadata pool: cephfs-metadata, data pools: [cephfs-test 

Cephfs 有 用户态 fuse 和 内核态 mount 两种使用方式:
接下来两种都实验一遍

用户态fush

在测试服务器客户端151先下载 fuse

[root@server151 ~]# yum install -y ceph-fuse

下载完毕就可以直接挂载使用了

[root@server151 ~]# df | grep /mnt
[root@server151 ~]#  ceph-fuse  -m 192.168.121.153:6789,192.168.121.154:6789,192.168.121.155:6789    /mnt 
ceph-fuse[2023-11-22T20:04:20.596+0800 7fe5152aaf40 -1 init, newargv = 0x561047ec4920 newargc=9
107213]: starting ceph client
ceph-fuse[107213]: starting fuse
[root@server151 ~]# df | grep /mnt
ceph-fuse                   18788352       0  18788352   0% /mnt

在这里插入图片描述
然后再用服务器155来挂载相同的目录
先在服务器151往挂载的目录中添加点数据

[root@server151 ~]# echo aaaaaaa > /mnt/test.txt
[root@server151 ~]# ls /mnt/
test.txt

在这里插入图片描述
在这里插入图片描述
可以看到一开始没有挂载的时候/mnt目录下是没有文件的,挂载上去以后就看到了测试的文件
然后也添加一个文件数据

[root@server155 ~]# ls /mnt/
test.txt
[root@server155 ~]# echo bbbbbbbb > /mnt/bbbbbb.test

去刚才挂载的151服务器查看
在这里插入图片描述

由结果可以看出,cephfs是可以被多台服务器挂载同一个目录和读写的

内核态挂载

现在到内核态的挂载
在需要挂载的服务器安装 ceph-common 包

[root@server151 ~]# yum  install ceph-common

然后在服务端创建客户端的认证,注意是在服务端

ceph auth get-or-create client.cephfs-user \
    mon 'allow r' osd 'allow rwx pool=cephfs_data' mds 'allow'  \
    -o /etc/ceph/ceph.client.cephfs-user.keyring

在这里插入图片描述
然后查看创建的身份认证信息

[root@server153 ceph-cluster]# ceph auth  list  | grep -A 5 cephfs-user
installed auth entries:

client.cephfs-user
	key: AQDK1l1lhM2kCBAAjVDVQJO022R3cBUMeVrFUQ==
	caps: [mds] allow
	caps: [mon] allow r
	caps: [osd] allow rwx pool=cephfs_data

将认证用户的key输出为文件,并将配置文件及key文件复制到客户端

[root@server153 ceph-cluster]# ceph auth print-key client.cephfs-user -o /etc/ceph/cephfs-user.key
[root@server153 ceph-cluster]# scp  /etc/ceph/ceph.conf   /etc/ceph/cephfs-user.key   192.168.121.151:/etc/ceph/
root@192.168.121.151's password: 
ceph.conf                             100%  292   316.0KB/s   00:00    
cephfs-user.key                       100%   40    54.3KB/s   00:00 

然后就去客户端挂载测试

[root@server151 ~]# mkdir /mounttest
[root@server151 ~]# mount -t ceph 192.168.121.153:6789,192.168.121.154:6789,192.168.121.155:6789:/     /mounttest  -o name=cephfs-user,secretfile=/etc/ceph/cephfs-user.key
[root@server151 ~]# ls /mounttest/
bbbbbb.test  test.txt

这里我先创建了一个测试目录,然后挂载到该目录,可以看到刚才我们添加的测试数据都在
我们只是挂载方式不同,但是文件系统是不变的
cephfs的时候大概就是这样子,希望对大家有帮助

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机服务器中了mallox勒索病毒如何处理,mallox勒索病毒解密文件恢复

科技技术的发展推动了企业的生产运营,网络技术的不断应用,极大地方便了企业日常生产生活,但网络毕竟是一把双刃剑,网络安全威胁一直存在,近期,云天数据恢复中心接到很多企业的求助,企业的计算机…

2023年【起重机司机(限桥式起重机)】试题及解析及起重机司机(限桥式起重机)复审模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 起重机司机(限桥式起重机)试题及解析根据新起重机司机(限桥式起重机)考试大纲要求,安全生产模拟考试一点通将起重机司机(限桥式起重机)模拟考试试题进行汇编,组成一套起重机司机(限桥式起重机)…

【Ambari】HDP单机自动化安装(基础环境和MySQL脚本一键安装)

🦄 个人主页——🎐开着拖拉机回家_Linux,大数据运维-CSDN博客 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁&am…

基于Java SSM框架+Vue实现大学生兼职信息网站项目【项目源码+论文说明】

基于java的SSM框架Vue实现大学生兼职信息网站演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认…

基于PLC的果园灌溉系统设计(论文+源码)

1.系统设计 系统示意图如图2-1所示。某一果园 共有3个灌溉区域,分别为灌溉1#区,灌溉2#区,灌溉3#区,分别使用不同湿度传感器检测湿度,用于各区域控制湿度,进行灌溉,使用相应的灌溉阀进行灌溉。这…

Deep Learning(wu--46)

文章目录 ContentsBeginBasic逻辑回归SGD导数计算图(反向传播)向量化广播numpy Neural Network向量化激活函数梯度下降深层表示反向传播 Contents Begin Basic 逻辑回归 SGD 导数 计算图(反向传播) 向量化 广播 numpy Neural Netw…

Matplotlib不规则子图_Python数据分析与可视化

除了网格子图,matplotlib还支持不规则的多行多列子图网格。 plt.GridSpec()对象本事不能直接创建一个图形,他只是 plt.subplot()命令可以识别的简易接口。 这里创建了一个带行列间距的23网格: grid plt.GridSpec(2, 3, wspace0.4, hspace0…

unity学习笔记06

一、预制体 1.定义: 预制体是一种存储了一个或多个游戏对象及其组件的资产。可以将预制体视为游戏对象的模板,它包含了对象的所有属性、组件和初始状态。 2.创建预制体: 在Unity中,可以通过将一个或多个游戏对象拖动到项目窗口…

阳阳抖客斗音直播间私信引流脚本,支持发送图片精准引流获客,快手私信引流软件+小红书私信引流工具

功能介绍: 1.直播精准引流客源 2.首页推荐精准引流客源 3.新增引流方式 4.支持多个文本图片随机发送 5.评论引流支持图文一体 6.自定义时间/个数 7.自动引流减少人工成本 8.私信效果最佳 9.杜绝封号 时间把控好 10.功能不断完善更新 直播间引流 手动打开…

答题活动小程序竞品分析

答题小程序竞品分析 答题活动小程序竞品分析 知识竞赛小程序竞品分析 ~ 从2020年开始,机缘巧合,我开始涉及答题小程序的开发,从最初的刷题场景到答题活动场景,已经走过了三个年头,这期间我开发的答题小程序产品也逐…

基于python协同过滤推荐算法的音乐推荐与管理系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于Python的协同过滤推荐算法的音乐推荐与管理系统是一个集成了音乐推荐和管理的系统,它使用协同过滤算…

居家适老化设计第三十二条---卫生间之扶手

以上产品图片均来源于淘宝 侵权联系删除 居家适老化中的扶手是指在家居环境中,为老年人提供支撑和帮助的装置,通常安装在家中的各个需要扶抓的位置,如楼梯、卫生间、浴室、厨房等处。扶手的设计应考虑老年人的体力、平衡和安全需求&#xf…

使用NVM管理多个Nodejs版同时本支持vue2、vue3

1.安装nvm,下载地址: https://github.com/coreybutler/nvm-windows/releases/tag/1.1.12 2.nvm常用命令 Usage:nvm arch : Show if node is running in 32 or 64 bit mode.nvm current : Display active version.nvm debug …

Ant Design:企业级 UI 设计语言和 React 库 | 开源日报 No.88

ant-design/ant-design Stars: 87.9k License: MIT Ant Design 是一个企业级 UI 设计语言和 React UI 库。 为 Web 应用程序设计的企业级 UI。提供一套高质量的开箱即用的 React 组件。使用可预测静态类型编写 TypeScript 代码。包含完整的设计资源和开发工具包。支持数十种语…

电脑投屏到电视的软件,Mac,Linux,Win均可使用

电脑投屏到电视的软件,Mac,Linux,Win均可使用 AirDroid Cast的TV版,可以上笔记本电脑或台式电脑直接投屏到各种安卓电视上。 无线投屏可以实现本地投屏及远程投屏,AirPlay协议可以实现本地投屏,大家可以按需…

【Python】使用globals()函数成功解决tkinter多个新窗口问题

我在近期的一个项目(tkinter复刻记事本)里遇到一个棘手的问题:如何在创建多个新窗口后,每个窗口还能独立运行。当时我尝试如何去解决,但是无果,于是觉得非要使用线程不可,便留了一个坑。直到今天…

6.12路径总和(LC112-E)

算法: 用累减,每遍历一个节点就用target减去其值,减到叶子节点的时候,再判断叶子结点处累减的结果是否为0,若是,说明刚刚的路径有效。 调试过程: /*** Definition for a binary tree node.* p…

BetaFlight模块设计之三十六:SoftSerial

BetaFlight模块设计之三十六:SoftSerial 1. 源由2. API接口2.1 openSoftSerial2.2 onSerialRxPinChange2.3 onSerialTimerOverflow2.4 processTxState2.5 processRxState 3. 辅助函数3.1 applyChangedBits3.2 extractAndStoreRxByte3.3 prepareForNextRxByte 4. 总结…

盘点43个Android项目源码安卓爱好者不容错过

盘点43个Android项目源码安卓爱好者不容错过 学习知识费力气,收集整理更不易。 知识付费甚欢喜,为咱码农谋福利。 链接:https://pan.baidu.com/s/1yHmkUeX4vxVag9Yr0yeQRg?pwd8888 提取码:8888 项目名称 Android NDK直播项…

单片机学习5——外部中断程序

#include<reg52.h>unsigned char a; sbit lcden P3^4;void main() {lcden0;EA1;EX01;IT00;a0xF0; //点亮4位小灯while(1){P1a;} }//中断服务程序 void ext0() interrupt 0 // 0 表示的是外部中断源0 {a0x0f; // 中断处理完&#xff0c;再返回主…