CephFs使用

2023-05-16

CephFS简介

官方文档:https://docs.ceph.com/en/quincy/cephfs

CephFS即ceph filesystem,可以实现文件系统共享功能(POSIX标准),客户端通过ceph协议挂载并使用CephFS存储数据。

CephFs需要用到MDS(metadata-service)服务,其守护进程为ceph-mds,ceph-mds进程管理CephFS上存储的文件相关的元数据,并协调对ceph集群的访问。

在linux系统使用ls等操作查看某个目录下的文件时,会由保存在磁盘上的分区表记录文件的名称、创建日期、大小、inode及存储位置等元数据信息。在cephfs中,由于数据被分散为若干个object进行分布式存储,因此并没有统一的保存文件元数据,而是将元数据保存到一个单独的存储池(metadata pool),但是客户端并不能直接访问metadata pool中的元数据,而是在读写数据的时候由mds进行处理,读数据的时候由mds从metadata pool中加载元数据然后缓存在内存中(用于后期快速响应其它客户端请求)并返回给客户端,写数据的时候由MDS缓存在内存并定期同步到metadata pool。

在这里插入图片描述

如下图,mds的数据结构类似于linux系统的根型目录结构以及nginx中的缓存目录分层一样,是一个倒置的树状结构。使用多个mds时,cephfs会将文件系统树分割成子树,每个子树可以交给特定的MDS进行权威管理,从而达到了随着元数据服务器数量的增加,集群性能线性地扩展。例如,集群中有3个active的mds,假设根目录下有3个子目录/a、、/b和/c,此时/a的元数据可以交给mds1处理,/b的元数据可以交给mds2处理,/c的元数据可以交给mds2处理,这样就可以提升cephfs的性能。

在这里插入图片描述

启用cephfs

首先确认集群中已经部署了至少一个mds服务
在这里插入图片描述

创建两个存储池:cephfs_data和cephfs_metadata,前者用于存储cephfs的数据,后者用于存储cephfs的元数据

ceph osd pool create cephfs_data 32 32
ceph osd pool create cephfs_metatdata 64 64

在这里插入图片描述

创建一个CephFS,并验证其状态

ceph fs new cephfs cephfs_metatdata cephfs_data	#创建一个名为cephfs的文件系统
ceph fs ls	#列出集群中所有的文件系统
ceph fs status cephfs	#查看cephfs的状态

在这里插入图片描述

cephalexin

客户端挂载

客户端挂载CephFS时支持两种方式,分别是:

  1. 内核空间挂载,需要内核支持ceph模块
  2. 用户空间挂载,需要安装ceph-fuse,不建议使用,性能较差

创建客户端认证

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

ceph auth print-key client.cephfs-user -o /etc/ceph/cephfs-user.key

在这里插入图片描述

将keyring文件和ceph.conf分发至客户端

scp /etc/ceph/ceph.conf /etc/ceph/ceph.client.cephfs-user.keyring /etc/ceph/cephfs-user.key root@192.168.211.15:/etc/ceph/

内核挂载

客户端安装ceph-common

apt -y install ceph-common

挂载cephfs

#将cephfs挂载至/data目录
mount -t ceph 192.168.211.23:6789,192.168.211.24:6789,192.168.211.25:6789:/ /data -o name=cephfs-user,secretfile=/etc/ceph/cephfs-user.key

在这里插入图片描述

挂载点写入数据测试

cd /data/
cp /var/log/syslog ./
dd if=/dev/zero of=/data/testfile bs=1M count=100
stat /data	#查看挂载点状态

在这里插入图片描述

配置开机自动挂载

vim /etc/fstab	#添加下面一行内容
192.168.211.23:6789,192.168.211.24:6789,192.168.211.25:6789:/  /data  ceph defaults,name=cephfs-user,secretfile=/etc/ceph/cephfs-user.key,_netdev,noatime  0 0

用户空间挂载

如果内核版本较低而没有ceph模块,那么可以使用用户空间挂载,但是推荐使用内核挂载

客户端安装ceph-fuse

apt -y install ceph-fuse

挂载cephfs

ceph-fuse -n client.cephfs-user -m 192.168.211.23:6789,192.168.211.24:6789,192.168.211.25:6789 /mnt

在这里插入图片描述

挂载点读写数据测试

cd /mnt
cp /etc/hosts ./
cat ./hosts

在这里插入图片描述

卸载cephfs

fusermount -u /mnt

在这里插入图片描述

设置开机自动挂载

vim /etc/fstab	#添加下面一行
none    /mnt    fuse.ceph       ceph.id=cephfs-user,ceph.conf=/etc/ceph/ceph.conf,_netdev,defaults      0 0

MDS高可用

MDS作为CephFS的访问入口,需要实现高性能及数据备份,ceph支持多MDS结构,以实现MDS的高可用和高性能。集群存在多个MDS服务时,MDS的高可用实现方式有以下两种:

  • 专用备份mds,每个主mds都有一个专用的备mds,主mds故障时,它的专用备用mds会接替它提供服务,切换速度快
  • 公用备份mds,多个主mds共用一个或多个备mds,主mds故障时,会有一个公用的备mds来接替它提供服务,切换速度较慢,因为备mds需要重新从元数据池加载元数据

例如有4个mds服务,可以设置3个为主,一个为共用的备,也可以设置两个为主,剩余两个设置为一一对应两个主做备份,如下图所示:
在这里插入图片描述

设置备份mds常用的选项如下:

  • max_standby_replay:true或false,true表示开启replay模式,这种模式下主mds内的数据会实时与备mds同步,如果主故障,备可以快速的切换。如果为false,只有故障的时候才会去同步数据这样会有一段时间的中端。将备mds设置为某个主mds的专用备份时需要设置为true
  • mds_standby_for_name:设置当前mds只用于备份指定名称的mds
  • mds_standby_for_rank:设置当前mds只用于备份指定rank编号的mds
  • mds_standby_for_fscid:指定CephFS文件系统ID,需要联合mds_standby_rank使用,如果设置mds_standby_rank,那么就是用于备份指定文件系统中指定rank编号的mds,如果没有设置,就是用于备份指定文件系统中所有rank编号的mds

另外可以使用max_mds参数来控制处于启用状态的mds的数量

查看集群中当前mds的状态

ceph fs status

在这里插入图片描述
如上图所示,集群中有4个mds服务,处于激活状态的mds有一个,处于备份状态的mds有3个

可以通过以下两种方式优化mds的结构,实现高可用:

  1. 设置其中3个为主mds,剩余一个为备mds(公用备份)
ceph fs set cephfs max_mds 3	#设置最多处于active的mds数量为3
ceph fs status	#验证

在这里插入图片描述

  1. 设置mon-01、mon-02上的mds为主,设置mon-03上的mds为mon-01上mds的专用备份,设置osd-01上的mds为mon-02上mds的专用备份
ceph fs set cephfs max_mds 2	#将主mds的最大数量设置为2

#在所有mds节点修改ceph配置文件,添加以下内容
vim /etc/ceph.conf	添加以下内容
#################################
[mds.ceph-mon-03]
mds_standby_replay = true
mds_standby_for_name = ceph-mon-01

[mds.ceph-osd-01]
mds_standby_replay = true
mds_standby_for_name = ceph-mon-02

[mds.ceph-mon-01]
mds_standby_replay = true
mds_standby_for_name = ceph-mon-03

[mds.ceph-mon-02]
mds_standby_replay = true
mds_standby_for_name = ceph-osd-01
#################################

#依次在所有mds节点重启mds服务
systemctl restart ceph-mds.target

#验证mds状态
ceph fs status

如下图所示,目前mon-1和mon-02为主mds,osd-01和mon-03为备mds

在这里插入图片描述

测试停掉mon-01的mds服务,验证是否是mon-03来接替它

systemctl stop ceph-mds@ceph-mon-01.service

ceph fs status

如下图所示,停掉mon-01的mds后,mon-03的mds成为主
在这里插入图片描述

通过ganesha将CephFS导出为NFS使用

首先将ceph.client.admin.keyring和ceph.conf拷贝只ganesha服务端

scp /etc/ceph/ceph.conf /etc/ceph/ceph.client.admin.keyring root@192.168.122.15:/etc/ceph/

然后安装配置ganesha服务端

apt -y install nfs-ganesha-ceph

vim /etc/ganesha/ganesha.conf	#修改ganesha配置
#############################
NFS_CORE_PARAM {
        Enable_NLM = false;
        Protocols = 3,4;
        Enable_RQUOTA = false;
}
EXPORT_DEFAULTS {
        Access_Type = RW;
}
EXPORT
{
        Export_Id = 1;
        Path = /;	#cephfs的路径
        Pseudo = /data;	#对外提供nfs的路径
        Access_Type = RW;
        Squash = No_root_squash;
        Sectype = sys;
        FSAL {
                Name = CEPH;
                hostname = "192.168.211.15";	#本机地址
        }
}
LOG {
        Default_Log_Level = WARN;
}
#################################

systemctl restart nfs-ganesha		#重启ganesha服务
tail -f /var/log/ganesha/ganesha.log	#查看ganesha的日志,确没有报错

在这里插入图片描述

客户端挂载使用

#安装nfs客户端
apt -y install nfs-common

#挂载
mount -t nfs 192.168.211.15:/data /mnt

#挂载点写入数据验证
cd /mnt
cat hosts
dd if=/dev/zero of=./file1 bs=1M count=50

在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CephFs使用 的相关文章

随机推荐

  • 数据结构考研408复习必看

    原创不易 麻烦点个关注 点个赞 谢谢各位 数据结构要点 第一章 概 论 数据就是指能够被计算机识别 存储和加工处理的信息的载体 数据元素是数据的基本单位 可以由若干个数据项组成 数据项是具有独立含义的最小标识单位 数据结构的定义 逻辑结构
  • 思科网络工程师必学

    网络工程师学习笔记 第一章 计算机基础知识 一 硬件知识 1 计算机系统的组成包括硬件系统和软件系统 硬件系统分为三种典型结构 1 单总线结构 2 双总线结构 3 采用通道的大型系统结构 中央处理器 CPU 包含运算器和控制器 2 指令系统
  • 什么是数字技术?

    数字技术 xff08 Digital Technology xff09 xff0c 是一项与电子计算机相伴相生的科学技术 xff0c 它是指借助一定的设备将各种信息 xff0c 包括 xff1a 图 文 声 像等 xff0c 转化为电子计算
  • 启示录:新加坡纬壹科技城成功建设经验

    数字TOD xff1a 在各省市新一年的重点工作中 xff0c 产业园区都被放在非常显赫的位置加以强调 xff0c 有的被冠以 高质量发展主战场 的地位 xff0c 有的则异常鲜明地提出 园区兴则产业兴 xff0c 园区强则经济强 的口号
  • 区块链技术赋能数字经济建设

    区块链技术是一项利用密码学算法 以去中心化方式集体维护一个可靠分布式数据库的新兴技术 它具有分布式 不可篡改 可追溯等特征 xff0c 能够弥补传统信用体系不足 防止信息篡改和伪造 节省全社会信用成本 xff0c 对金融 电子商务 智慧医疗
  • 启示录:日本涉谷未来之光TOD成功建设经验

    启示录 xff1a 日本涉谷未来之光TOD成功建设经验 数字TOD 在城市土地供应日益紧张 城市人口膨胀 公共交通快速发展的今天 xff0c 涩谷之光以复合业态功能叠加和选择重点业态精心打造 xff0c 并最大限度对接公共交通资源的开发策略
  • 夜间经济:激发新⼀轮消费潜力升级的新引擎

    数字TOD 夜间经济是现代城市业态之一 xff0c 指从当日下午6点到次日早上6点所包含的经济文化活动 xff0c 其业态囊括晚间购物 餐饮 旅游 娱乐 学习 影视 休闲等 夜间经济是现代城市经济的重要组成部分 xff0c 是促消费 稳就业
  • os模块和序列化

    os模块 和操作系统交互的模块 import os os makedirs dir1 dir2 创建多个文件夹 os mkdir dir3 创建一个文件夹 os removedirs 39 dir3 dir4 删除多个空文件夹 os rmd
  • 启示录:日本东京都二子玉川站TOD成功建设经验

    数字TOD 在成都两会期间印发的 关于实施幸福美好生活十大工程的报告 指出 xff0c 实施幸福美好生活十大工程 xff0c 将以满足人民群众日益增长的美好生活需要为根本目的 xff0c 从市民和企业反映最强烈 最迫切的领域着手 特别提出
  • 启示录:TOD分类及用地功能结构组成

    数字TOD 彼得 卡尔索普在 The Next American Metropolis 一书中描述了两类TOD 一类是城市TOD xff08 Urban TODs xff09 xff0c 位于区域性的干道的轻轨 重轨或快速的公交汽车的站点
  • 启示录:了解TOD模式的正确打开方式(一)

    数字TOD 提起TOD xff0c 到目前很多人可能还很懵懂 科普TOD xff0c 是笔者不可推卸的责任 所以一起回忆下电影 lt 流浪地球 gt 电影魔性台词先上 xff1a 34 北京第三区交通委提醒您 xff1a 道路千万条 xff
  • 启示录:了解TOD模式的正确打开方式(二)

    数字TOD 在中国的城市化进程中 xff0c 城市病 也在加速蔓延 xff0c 交通问题的加重以及土地资源的日益紧缺 xff0c 让生活在其中的人们饱受困扰 xff0c 这同时也引发了人们对城市发展模式的反思 为了实现城市的可持续化发展 x
  • 问题解决方案1-------------catkin_make编译时候的各种问题汇总

    文件移植和编译出现的问题汇总 我真实服了 xff0c 我几乎每一步都能遇到问题 xff0c 这是我catkin make时候遇到的新问题 xff1a 百度总结了一下 xff0c 文末附上链接 xff1a 1 Could not find a
  • CoreDNS介绍与使用

    介绍 在Kubernetes中DNS组件为整个集群提供DNS服务 xff0c 从而实现服务之间的访问 Kubernetes的DNS服务在Kubernetes中经历了3个阶段 xff1a 1 3版本之前skydns1 3 1 10版本kube
  • k8s日志收集

    日志收集介绍 日志收集的目的 xff1a 分布式日志数据统一收集 xff0c 实现集中式查询和管理故障排查安全信息和事件管理报表统计及展示功能 日志收集的价值 xff1a 日志查询 问题排查 故障恢复和故障自愈应用日志分析 xff0c 错误
  • k8s网络插件之Calico

    Calico简介 Calico官方文档 xff1a https projectcalico docs tigera io getting started kubernetes quickstart Calico是一套开源的网络和网络安全解决
  • ceph集群维护常用操作

    文章目录 通过套接字进行单机管理集群启停移除节点ceph配置文件存储池分类副本池IO纠删码池IO PG与PGPPG数量计算PG常见状态存储池管理创建存储池查看存储池删除存储池存储池配额 存储池可用参数存储池快照 通过套接字进行单机管理 可以
  • rbd块存储使用

    文章目录 rbd存储池镜像管理创建镜像查看镜像删除镜像镜像回收站功能镜像特性管理创建image时指定要启用的特性启用特性 xff08 针对已存在的image添加特性 xff09 禁用特性 xff08 针对已存在的image移除特性 xff0
  • 基于fo-dicom 的 Worklist & CStore 我的学习实现路线

    学习了三个周的DICOM协议 xff0c 主要进行了Worklist CStore应用测试 xff0c 下面总结一下过程中收获的心得 刚开始接触DICOM这个东西领导提出两个需求测试实现Worklist和DICOM文件下载 xff0c 后面
  • CephFs使用

    CephFS简介 官方文档 xff1a https docs ceph com en quincy cephfs CephFS即ceph filesystem xff0c 可以实现文件系统共享功能 xff08 POSIX标准 xff09 x