【Ceph集群应用】CephFS文件系统之MDS接口详解

CephFS文件系统之MDS接口详解

  • 1.创建CephFS文件系统MDS接口
    • 1.1 创建cephfs
    • 1.2 基于内核的客户端挂载
    • 1.3 基于fuse工具方式的客户端挂载

接上文基于ceph-deploy部署Ceph集群详解

1.创建CephFS文件系统MDS接口

服务端操作

(1)在admin管理节点创建mds服务

cd /etc/ceph
ceph-deploy mds create node01 node02 node03

在这里插入图片描述

(2)查看各个节点的mds服务

ssh root@node01 systemctl status ceph-mds@node01
ssh root@node02 systemctl status ceph-mds@node02
ssh root@node03 systemctl status ceph-mds@node03

在这里插入图片描述

(3)创建存储池,启用ceph文件系统

ceph文件系统至少需要两个rado池,一个用于存储数据,一个用于存储元数据。此时数据池就类似于文件系统的共享目录。

ceph osd pool create cephfs_data 128					#创建数据Poolceph osd pool create cephfs_metadata 128				#创建元数据Pool

在这里插入图片描述

1.1 创建cephfs

命令格式:

ceph fs new <FS_NAME> <CEPHFS_METADATA_NAME> <CEPHFS_DATA_NAME>
ceph fs new mycephfs cephfs_metadata cephfs_data		#启用ceph,元数据Pool在前,数据Pool在后ceph fs ls					#查看cephfs

在这里插入图片描述

(4)查看mds状态,一个up,其余两个待命,目前的工作是由node01上的mds提供服务

ceph -s
ceph mds stat

在这里插入图片描述

(5)创建用户

语法格式:

ceph fs authorize  <fs_name>  client.<client_id>  <path-in-cephfs>  rw
#账户为client.zhangsan,用户name为zhangsan,zhangsan对ceph文件系统的 / 根目录(注意不是操作系统的根目录)有读写权限
ceph fs authorize mycephfs client.zhangsan / rw | tee /etc/ceph/zhangsan.keyring#账户为client.lisi,用户name为lisi,lisi对文件系统的 / 根目录只有读权限,对文件系统的根目录的子目录 /test有读写权限
ceph fs authorize mycephfs client.lisi / r /test rw | tee /etc/ceph/lisi.keyring

在这里插入图片描述

客户端操作

(1)客户端要在public网络内

在这里插入图片描述

(2)在客户端创建工作目录

mkdir /etc/ceph

(3)在 ceph 的管理节点给客户端拷贝 ceph 的配置文件 ceph.conf 和账号的秘钥环文件zhangsan.keyring、lisi.keyring

scp ceph.conf zhangsan.keyring lisi.keyring root@client:/etc/ceph

在这里插入图片描述

(4)在客户端安装ceph依赖包和软件包

cd /opt
yum -y install epel-release
yum -y install yum-plugin-priorities yum-utils ntpdate python-setuptools python-pip gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel zip unzip ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssh openssl-devel nss_ldap openldap openldap-devel openldap-clients openldap-servers libxslt-devel libevent-devel ntp libtool-ltdl bison libtool vim-enhanced python wget lsof iptraf strace lrzsz kernel-devel kernel-headers pam-devel tcl tk cmake ncurses-devel bison setuptool popt-devel net-snmp screen perl-devel pcre-devel net-snmp screen tcpdump rsync sysstat man iptables sudo libconfig git bind-utils tmux elinks numactl iftop bwm-ng net-tools expect snappy leveldb gdisk python-argparse gperftools-libs conntrack ipset jq libseccomp socat chrony sshpasswget https://download.ceph.com/rpm-nautilus/el7/noarch/ceph-release-1-1.el7.noarch.rpm --no-check-certificate
rpm -ivh ceph-release-1-1.el7.noarch.rpm
yum install -y ceph 

在这里插入图片描述

(5)在客户端制作秘钥文件

cd /etc/ceph
ceph-authtool -n client.zhangsan -p zhangsan.keyring > zhangsan.key			#把zhangsan用户的秘钥导出到 zhangsan.keyl
ceph-authtool -n client.lisi -p lisi.keyring > lisi.key						#把lisi用户的秘钥导出到lisi.key

在这里插入图片描述

(6)客户端挂载

cd /data/aa
ceph-fuse -m node01:6789,node02:6789,node03:6789 /data/aa -o nonempty		#挂载时,如果挂载点不为空会挂载失败,指定-o nonempty可以忽略

1.2 基于内核的客户端挂载

语法格式:

mount -t ceph node01:6789,node02:6789,node03:6789:/  <本地挂载点目录>  -o name=<用户名>,secret=<秘钥>
mount -t ceph node01:6789,node02:6789,node03:6789:/  <本地挂载点目录>  -o name=<用户名>,secretfile=<秘钥文件>

示例一:

mkdir -p /data/zhangsan
mount -t ceph node01:6789,node02:6789,node03:6789:/ /data/zhangsan -o name=zhangsan,secretfile=/etc/ceph/zhangsan.key

在这里插入图片描述

示例二:

mkdir -p /data/lisi
mount -t ceph node01:6789,node02:6789,node03:6789:/ /data/lisi -o name=lisi,secretfile=/etc/ceph/lisi.key

在这里插入图片描述

验证用户权限

cd /data/lisi
echo 123 > 2.txt

在这里插入图片描述

cd /data/zhangsan
mkdir test       #lisi用户只有读取权限,没有修改权限,需要先切换到zhangsan用户下创建/test目录
cd /data/lisi
echo 123 > test/2.txt
cat test/2.txt

在这里插入图片描述

示例三:

#停掉node02上的mds服务
ssh root@node02 "systemctl stop ceph-mds@node02"ceph -s
#测试客户端的挂载点仍然是可以用的,如果停掉所有的 mds,客户端就不能用了

在这里插入图片描述

1.3 基于fuse工具方式的客户端挂载

(1)在 ceph 的管理节点给客户端拷贝用户账号的秘钥环文件zhangsan.keyring、lisi.keyring

cd /etc/ceph
scp ceph.client.admin.keyring root@client:/etc/ceph

在这里插入图片描述

(2)在客户端安装ceph-fuse

yum install -y ceph-fuse

在这里插入图片描述

(3)客户端挂载

mkdir -p /data/aa
cd /data/aa
ceph-fuse -m node01:6789,node02:6789,node03:6789 /data/aa [-o nonempty]			#挂载时,如果挂载点不为空会挂载失败,指定 -o nonempty 可以忽略

在这里插入图片描述

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

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

相关文章

在Ubuntu中如何更改主机名 - 完整教程与5个网络相关的关键要点

参考文章&#xff1a; https://www.howtouseubuntu.com/network/change-hostname-in-ubuntu-linux/ 大家好&#xff01;我很荣幸能为您带来这篇客座博文&#xff0c;今天我们将深入讨论如何在Ubuntu操作系统中更改主机名。主机名是计算机在网络中的身份标识&#xff0c;对于网…

Java打怪升级路线的相关知识

第一关:JavaSE阶段 1、计算机基础 2、java入门学习 3、java基础语法 4、流程控制和方法 5、数组 6、面向对象编程 7、异常 8、常用类 9、集合框架 10、IO 11、多线程 12、GUI编程 13、网络编程 14、注解与反射 15、JUC编程 16、JVM探究 17、23种设计模式 18、数据结构与算法 1…

PowerDesigner 数据库建模使用详解

目录 一、前言 二、PowerDesigner概述 2.1 PowerDesigner核心能力 2.1.1 集成多种建模能力 2.1.2 自动生产代码能力 2.1.3 强大的逆向工程能力 2.1.4 可扩展的企业库解决方案 2.2 PowerDesigner常用的几种模型 2.2.1 概念模型 2.2.2 逻辑数据模型 2.2.3 物理模型 2.2…

学习AJAX

AJAX &#x1f680; HTTP请求报文响应报文 &#x1f684; express框架&#x1f6ac; express基本使用 &#x1f692; 原生AJAX&#x1f6ac; GET.HTML&#x1f6ac; POST.HTML&#x1f6ac; JSON.HTML&#x1f6ac; nodemon工具可以帮助重启服务&#x1f6ac; IE缓存问题&#…

【Rust 基础篇】Rust 文档注释

导言 在 Rust 中&#xff0c;文档注释&#xff08;doc comments&#xff09;是一种特殊的注释格式&#xff0c;用于为代码提供文档和说明。文档注释可以包含在函数、结构体、枚举、模块等代码元素之前&#xff0c;以提供关于代码功能、使用方法和示例的详细说明。本篇博客将详…

ELK 企业级日志分析系统(四)

ELK 一、部署Kafka集群二、Kafka的命令行操作三、Kafka架构深入四、FilebeatKafkaELK部署 一、部署Kafka集群 1.下载安装包 官方下载地址&#xff1a;http://kafka.apache.org/downloads.html cd /opt wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.7.1/kafka_2…

铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

函数进阶

一、参数的补充 在函数基础部分&#xff0c;我们掌握函数和参数基础知识&#xff0c;掌握这些其实完全就可以进行项目的开发。 今天的补充的内容属于进阶知识&#xff0c;包含&#xff1a;内存地址相关、面试题相关等&#xff0c;在特定情况下也可以让代码更加简洁&#xff0…

【关于C++中----特殊类设计和单例模式】

文章目录 一、设计一个类&#xff0c;不能被拷贝1.1C98的实现方法及其弊端1.2 C11的实现方法 二、设计一个类&#xff0c;只能在堆上创建对象三、设计一个类&#xff0c;只能在栈上创建对象四、设计一个类&#xff0c;不能被继承五、设计一个类&#xff0c;只能创建一个对象(单…

Leecode316: 去除重复字母

下面这里使用有序map——TreeMap来实现Map接口&#xff0c;但是相对顺序是不能改变的&#xff01;这样会使得后面的跑到前面去&#xff0c;所以有问题 最简单的思想肯定是暴力思想&#xff0c;就是从前往后寻找&#xff0c;一旦遇到存在的情况就. 重点在于明确两点&#xff1a…

【Docker】了解和使用Docker

文章底部有投票活动&#xff0c;赶快参与进来吧&#x1f603; 相信大家在开发过程中都听说过 Docker 一词&#xff0c;至于 Docker 在开发中扮演的角色&#xff0c;估计好多人都说不上来&#xff0c;今天就让阿Q带大家一起揭开它神秘的面纱&#xff01; 文章目录 什么是容器&a…

dolphinscheduler伪分布式安装

1、上传安装包 2、安装 #解压 重命名 [rootdatacollection conf]# cd /opt/modules/ [rootdatacollection modules]# tar -zxf apache-dolphinscheduler-2.0.6-bin.tar.gz -C /opt/installs/ [rootdatacollection modules]# cd ../installs/ [rootdatacollection installs]# m…

【HDFS】与单测编写相关的一些工具类及方法(大纲篇)持续更新

集群创建启动 MiniDFSCluster 可以用这个类创建一个单进程的DFS集群用来进行单元测试。 一般是采用MiniDFSCluster$Builder去建造出一个MiniDFSCluster对象。builder可以指定很多参数 MiniRouterDFSCluster 用来模拟一个有多台Router的HDFS联邦集群。 写一个测试文件 副…

【广州华锐互动】智慧交通3D可视化交互平台

智慧交通3D可视化交互平台由广州华锐互动开发&#xff0c;是一种基于现代科技的智能交通管理系统&#xff0c;它能够实现对车站内部人员和车辆的实时监控和管理。该平台采用了先进的三维可视化技术&#xff0c;将车站内部的结构和设备以立体、直观的方式呈现在用户面前&#xf…

LangChain大型语言模型(LLM)应用开发(四):QA over Documents

LangChain是一个基于大语言模型&#xff08;如ChatGPT&#xff09;用于构建端到端语言模型应用的 Python 框架。它提供了一套工具、组件和接口&#xff0c;可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互&#x…

springboot整合ehcache和redis实现多级缓存实战案例

一、概述 在实际的工作中&#xff0c;我们通常会使用多级缓存机制&#xff0c;将本地缓存和分布式缓存结合起来&#xff0c;从而提高系统性能和响应速度。本文通过springboot整合ehcache和redis实现多级缓存案例实战&#xff0c;从源码角度分析下多级缓存实现原理。 二、实战案…

赛效:如何将PDF文件免费转换成Word文档

1&#xff1a;在网页上打开wdashi&#xff0c;默认进入PDF转Word页面&#xff0c;点击中间的上传文件图标。 2&#xff1a;将PDF文件添加上去之后&#xff0c;点击右下角的“开始转换”。 3&#xff1a;稍等片刻转换成功后&#xff0c;点击绿色的“立即下载”按钮&#xff0c;将…

做私域选个微还是企微,哪个有优势?

做私域&#xff0c;你必须要有一个&#xff0c;引流新客户及留存老客户的地方。 于是&#xff0c;就有很多人讨论或者纠结&#xff1a;做私域&#xff0c;选择个人微信&#xff1f;还是企业微信&#xff1f; 让我们一起来看看个人微信和企业微信在功能和使用上有哪些区别&…

QT学习之旅 - Udp编程注意点

我们在QT中可以使用信号和槽来判断UDP接收数据 connect(qudpsocket,&QUdpSocket::readyRead,this,[](){});接收到的是一个完整的包&#xff0c;但是这个包的大小是不固定的&#xff0c;你可以传入任何格式的包&#xff0c;也不受限制&#xff0c;所以&#xff0c;任何ip端口…

[SpringBoot]单点登录

关于单点登录 单点登录的基本实现思想&#xff1a; 当客户端提交登录请求时&#xff0c;服务器端在验证登录成功后&#xff0c;将生成此用户对应的JWT数据&#xff0c;并响应到客户端 客户端在后续的访问中&#xff0c;将自行携带JWT数据发起请求&#xff0c;通常&#xff0c…