ceph-mds文件系统操作指南

news2024/11/18 11:44:10

前言:ceph-mds文件系统操作,常规操作汇总,看这一篇就够了

一、文件系统简介

 Ceph 文件系统 (CephFS) 是兼容 POSIX 标准的文件系统,在 Ceph 的分布式对象存储基础上构建,称为 RADOS(可靠的自主分布式对象存储)

 Ceph 文件系统提供 Ceph 元数据服务器 (MDS) 的集群。一个处于活动状态,另一些处于待机模式。

Ceph 文件系统组件

Ceph 文件系统有两个主要组件:

1、客户端

CephFS 客户端代表使用 CephFS 的应用执行 I/O 操作,如用于 FUSE 客户端的 ceph-fuse,kcephfs 用于内核客户端。

2、元数据服务器 (MDS)

MDS 执行以下操作:

为 CephFS 客户端提供元数据。

管理与 Ceph 文件系统中存储的文件相关的元数据。

协调对共享 Red Hat Ceph Storage 的访问。

缓存热元数据,以减少对后备元数据池存储的请求。

管理 CephFS 客户端的缓存,以维护缓存一致性。

在活动 MDS 之间复制热元数据.

将元数据变异到压缩日志,并定期刷新到后备元数据池。

CephFS 要求至少运行一个元数据服务器守护进程 (ceph-mds)。

二、创建ceph文件系统

 重要:默认情况下,每个 Ceph 存储集群只能创建一个 CephFS。

1、查看crush rule

[root@ceph-mon01 ~]# ceph osd crush rule ls

replicated_rule

fq_rule01

2、创建两个池,一个用于存储数据,另一个用于存储元数据:

[root@ceph-mon01 ~]# ceph osd pool create cephfs_data 64 fq_rule01

pool 'cephfs_data' created

[root@ceph-mon01 ~]# ceph osd pool create cephfs_metadata 64 fq_rule01

pool 'cephfs_metadata' created

3、检测创建的两个池,使用的 crush_rule

[root@ceph-mon01 ~]# ceph osd dump |grep crush*

pool 9 'cephfs_metadata' replicated size 3 min_size 2 crush_rule 1 object_hash rjenkins pg_num 64 pgp_num 64 autoscale_mode on last_change 4047 flags hashpspool stripe_width 0

4、显示创建的池

[root@ceph-mon01 ~]# ceph osd pool ls

cephfs_data

cephfs_metadata

5、创建CephFS

[root@ceph-mon01 ~]# ceph fs new cephfs cephfs_metadata cephfs_data

new fs with metadata pool 9 and data pool 8

6、验证一个或多个 MDS 是否根据您的配置进入活跃状态

[root@ceph-mon01 ~]# ceph fs status cephfs

cephfs - 0 clients

======

RANK  STATE      MDS         ACTIVITY     DNS    INOS   DIRS   CAPS

 0    active  ceph-mon02  Reqs:    0 /s    10     13     12      0

      POOL         TYPE     USED  AVAIL

cephfs_metadata  metadata  2306    376G

  cephfs_data      data       0    376G

STANDBY MDS

 ceph-mon01

 ceph-mon03

MDS version: ceph version 16.2.10 (45fa1a083152e41a408d15505f594ec5f1b4fe17) pacific (stable)

三、为 Ceph 文件系统创建客户端用户

1、在 Ceph 监控节点上,创建一个客户端用户

  将客户端限制为仅在文件系统 cephfs 的 temp 目录中写入

[root@ceph-mon01 ~]# ceph fs authorize cephfs client.1 / r /temp rw

[client.1]

        key = AQCJ8qxjQlHaEhAAr69m8QKyT93WW6GdFrepvA==

要将客户端完全限制到 temp 目录,请删除根 (/) 目录:

示例:[root@mon ~]# ceph fs authorize cephfs_a client.1 /temp rw

2、验证创建的密钥:

[root@ceph-mon01 ~]# ceph auth get client.1

[client.1]

        key = AQCJ8qxjQlHaEhAAr69m8QKyT93WW6GdFrepvA==

        caps mds = "allow r fsname=cephfs, allow rw fsname=cephfs path=/temp"

        caps mon = "allow r fsname=cephfs"

        caps osd = "allow rw tag cephfs data=cephfs"

exported keyring for client.1

3、将密钥环复制到客户端。

在 Ceph 监控节点上,将密钥环导出到文件中:

[root@ceph-mon01 ~]# ceph auth get client.1 -o ceph.client.1.keyring

exported keyring for client.1

[root@ceph-mon01 ~]# ls

anaconda-ks.cfg  ceph-ansible  ceph.client.1.keyring  new.bin  test.bin  test.txt

4、将 Ceph 监控节点的客户端密钥环复制到客户端节点上的 /etc/ceph/ 目录中:

[root@ceph-mon01 ~]# scp ceph.client.1.keyring root@10.255.208.17:/etc/ceph/

四、将 Ceph 文件系统挂载为内核客户端

1、安装 ceph-common 软件包:

yum install ceph-common

2、将 Ceph 客户端密钥环从 Ceph 监控节点复制到客户端节点:

[root@client ~]# scp root@ceph-mon01:/etc/ceph/ceph.client.1.keyring  /etc/ceph/

3、将 Ceph 配置文件从 Ceph 监控节点复制到客户端节点:

      scp root@ceph-mon01:/etc/ceph/ceph.conf /etc/ceph/ceph.conf

[root@ceph-client01 ~]# ll /etc/ceph/

total 12

-rw-r--r-- 1 root root 212 Dec 29 09:55 ceph.client.1.keyring

-rw-r--r-- 1 ceph ceph 612 Dec 19 15:11 ceph.conf

-rw-r--r-- 1 root root  92 Jul 22 02:01 rbdmap

手动挂载

在客户端节点上创建挂载目录:

[root@client]# mkdir -p /mnt/cephfs

1、挂载 Ceph 文件系统.要指定多个 Ceph 监控地址,在 mount 命令中使用逗号将它们分隔,指定挂载点,并设置客户端名称:

[root@ceph-client01 ~]# mount -t ceph ceph-mon01:6789,ceph-mon02:6789,ceph-mon03:6789:/ /mnt/cephfs/ -o name=1

2、验证文件系统是否已成功挂载:

[root@ceph-client01 ~]# stat -f /mnt/cephfs/

  File: "/mnt/cephfs/"

    ID: 1050305fffffffff Namelen: 255     Type: ceph

Block size: 4194304    Fundamental block size: 4194304

Blocks: Total: 96398      Free: 96398      Available: 96398

Inodes: Total: 0          Free: -1

[root@ceph-client01 ~]# df -h

10.255.208.2:6789,10.255.208.4:6789,10.255.208.9:6789:/  377G     0  377G   0% /mnt/cephfs

[root@ceph-client01 ~]#

自动挂载

示例

#DEVICE         PATH                   TYPE    OPTIONS         DUMP  FSCK

mon1:6789,      /mnt/cephfs            ceph    name=1,            0     0

mon2:6789,                                     ceph.client_mountpoint=/my_vol/my_sub_vol_group/my_sub_vol/0,

mon3:6789:/                                    _netdev,noatime

Ceph 文件系统将挂载到下一次系统启动时。

Ceph 文件系统挂载为 FUSE 客户端

1、安装ceph-fuse软件

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

2、将 Ceph 客户端密钥环".keyring"和"ceph.conf"文件 从 Ceph 监控节点复制到客户端节点 /etc/ceph/

 [root@ceph-client02 ~]# scp root@ceph-mon01:/etc/ceph/ceph.conf /etc/ceph/

3、使用 ceph-fuse 实用程序挂载 Ceph 文件系统

[root@ceph-client02 ~]# ceph-fuse -n client.1 /mnt/cephfs/

ceph-fuse[69553]: starting ceph client

2022-12-29T10:25:24.917+0800 7f225be363c0 -1 init, newargv = 0x560e925622c0 newargc=15

ceph-fuse[69553]: starting fuse

4、验证文件系统是否已成功挂载

stat -f /mnt/cephfs

五、卸载挂载为 FUSE 客户端的 Ceph 文件系统

[root@ceph-client02 ~]# fusermount -u /mnt/cephfs

六、添加数据池

Ceph 文件系统 (CephFS) 支持添加多个池来存储数据。

1、创建新的数据池

[root@ceph-mon01 ~]# ceph osd pool create cephfs_data_ssd 64

2、在元数据服务器控制下添加新创建的池

[root@ceph-mon01 ~]# ceph fs add_data_pool cephfs cephfs_data_ssd

added data pool 10 to fsmap

[root@ceph-mon01 ~]# ceph fs ls

name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data cephfs_data_ssd ]

[root@ceph-mon01 ~]#

七、关闭ceph文件系统集群

1、将 CephFS 集群标记为 down

ceph fs set cephfs down true

使用 CephFS 集群备份

ceph fs set cephfs down false

快速关闭 CephFS 集群

ceph fs fail cephfs

八、使用命令行界面删除 Ceph 文件系统

1、显示 CephFS 状态以确定 MDS 等级。

ceph fs status

2、将 CephFS 标记为 down

ceph fs set cephfs down true

3、显示 CephFS 的状态以确定它已停止:

ceph fs status

4、将 RANK 替换为 MDS 守护进程的等级失败

ceph mds fail 0

5、移除 CephFS

ceph fs rm cephfs --yes-i-really-mean-it

6、可选:删除 CephFS 使用的池。

ceph osd pool ls

7、删除元数据池

ceph osd pool delete cephfs_metadata cephfs_metadata --yes-i-really-really-mean-it

  • 在减少的冗余池中存储日志数据
  • 在 SSD 或 NVMe 池中存储用户主目录
  • 基本数据分隔。

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

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

相关文章

用户级线程和内核级线程

线程的实现可以分为两类:用户级线程和内核级线程,后者又称为内核支持的线程或轻量级进程。在多线程操作系统中,各个系统的实现方式并不相同,在有的系统中实现了用户级线程,有的系统中实现了内核级线程。 用户级线程&am…

Python数据分析案例13——文本特征抽取(TfidfVectorizer)

在做机器学习的时候,构建特征变量有很多时候都是文本型的,比如电影分类的时候的电影标题,房价预测的时候房子地址,股吧评论等......都是文本类型的数据。 文本型数据怎么构建特征,它又不是分类变量不能直接独立热编码…

【再学Tensorflow2】TensorFlow2的模型训练组件(2)

TensorFlow2的模型训练组件(2)损失函数损失函数和正则化项Tensorflow2内置的损失函数自定义损失函数评估指标常用的内置评估指标自定义评估指标优化器优化器的使用使用optimizer.apply_gradients使用optimizer.minimize使用model.fitTensorflow2内置的优…

【nowcoder】笔试强训Day14

目录 一、选择题 二、编程题 2.1计算日期到天数转换 2.2幸运的袋子 一、选择题 1.定义学生、教师和课程的关系模式 S (S#,Sn,Sd,Dc,SA )(其属性分别为学号、姓名、所在系、所在系的系主任、年龄); C ( C#,Cn,P# &…

ansible的安装以及实例

目录 ansible的安装: 一、配置centos8基本源 二、配置epel 三、安装ansible 四、查看ansible是否安装以及版本 实例: 实例一:控制主机和受控主机通过root用户免密验证远程控制主机实施对应任务 实例二:控制主机连接受控主机…

SSH协议理论讲解

目录 基本概念 SSH协议的组成 SSH工作原理 SSH版本协商阶段(确定V1版本或V2版本) 算法协商阶段 密钥交换阶段 用户认证阶段 会话交互阶段 基本概念 SSH(Secure Shell)安全外壳协议,是一种用于在不安全网络上进…

Redisson实现延迟队列

k8s部署单点Redis (1)k8s部署redis的yaml文件 apiVersion: apps/v1 kind: Deployment metadata:creationTimestamp: nulllabels:app: redisname: redis spec:replicas: 1selector:matchLabels:app: redisstrategy: {}template:metadata:creationTimestamp: nulllabels:app: r…

Jmeter系统学习

Jmeter体系结构 Jmeter概念: 元件:每一个功能,例如Http请求,响应断言等。 组件:每一类元件的组合,例如采样器,配置元件。 Jmeter体系可以分为3个维度: X1--X5:负载模…

(二十八)Vue之组件化编码流程

文章目录组件化编码流程拆分静态组件实现动态组件实现交互实现添加实现勾选实现删除实现全选与全不选实现清除已完成任务TodoList案例小细节Vue学习目录上一篇:(二十七)Vue组件的样式 先看一个需求:TodoList案例 功能&#xff1a…

c# http请求使用multipart/form-data 方式上传文件及其他参数

这次的需求是请求java那边的一个excel批量上传的接口。但是他们的接口要求是这样的 于是自己写了个方法: 调用: 控制器层 var file this.HttpContext.Request.Files[0];//获取前端传来的文件 var fileName file.FileName; //注意&…

控制RK3568的GPIO

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、设备树中是如何描述引脚的?1.pinctrl子系统2.gpio子系统二、使用步骤总结前言 RK3568的引脚资源还是相当多的,一共有5组GPIO&#x…

数图互通高校房产管理——房屋修缮管理

数图互通房产管理系统在这方面做得比较全面; 实现房屋修缮改造、装修维护、零星维修线上管理,建立机制规范管理,避免私自改扩建。 建筑物立项审批全流程资料和过程管理,建筑物修建施工、维修审批流程管理。整套系统包含了建筑物从…

链下签名实现

什么是签名 比如我们在使用 opensea 的时候,经常会提示我们进行数字签名,如下图: 用户进行 sign 确认,即用自己的私钥对一段数据进行签名,得到一个 signature,其他人可以使用你私钥对应的公钥&#xff0c…

推荐5款Windows桌面效率工具

今天我想分享一些自己比较喜欢的桌面端软件,还请大家包涵指正。如果你曾搜索过 Windows 效率工具推荐,对下文的软件或许有所了解。不过为了凑字数,我还是会再介绍一遍。 1.文件定位——Listary Listary 是我使用频率最高的软件之一&#xf…

Java重点源码回顾——HashMap1.8

1. 概述 在之前的文章中,我们介绍了HashMap1.7的源码,今天我们来看下HashMap1.8的源码。HashMap1.8相比于1.7最大的改变就是改变了1.7中采用数组链表的方式存储键值对,转而由数组链表红黑树的方式来存储键值对。HashMap1.8的底层结构如下图所…

RPC 好,还是 RESTful 好

OSI网络七层模型 RPC服务 RPC架构 同步调用与异步调用 流行的RPC框架 HTTP服务 总之 RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更…

【python】py课后作业程序题5「PTA」

py字典合集7-1 Python猜数游戏7-2 jmu-python-分段函数7-3 循环求e的近似值(高教社,《Python编程基础及应用》习题6-7)7-4 jmu-python-判断是否构成三角形7-5 jmu-python-输入输出-计算字符串中的数7-6 jmu-python-随机生成密码7-7 jmu-pytho…

vscode使用CMake Tool插件构建第一个CMake的helloworld工程

vscode使用CMake Tool插件构建第一个CMake的helloworld工程一、linux环境准备1.1 CMake安装1.2 gcc/g的安装二、vscode 插件安装2.1 C扩展2.2 CMake Tool三、使用CMake构建第一个工程3.1 创建工程目录3.2 使用CMake Tool创建第一个Project3.3 Configure 第一个project四、构建工…

Java中序列化接口Serializable的serialVersionUID的作用

原文网址:Java中序列化接口Serializable的serialVersionUID的作用_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Java中序列化接口Serializable的serialVersionUID的作用。 序列化与反序列化 含义 序列化:将java对象转化为字节序列。反序列化&#xff1a…

【mysql】索引的基本使用

文章目录1. 索引的声明与使用1.1 索引的分类1.2 创建索引1.2.1 创建表的时候创建索引(隐式)1.2.2 在已经存在的表上创建索引(显式)1、创建普通索引2、创建唯一索引3、主键索引4、创建单列索引5、创建联合索引6、创建全文索引7、创…