• 1. 概述
  • 2. 前提条件
  • 3. 版本说明
  • 4. 安装
    • 4.1. 配置yum源
    • 4.2. 安装软件
  • 5. 配置
  • 6. 使用
  • 7. 部署问题
    • 7.1. nfs挂载之后无法创建文件、文件夹
  • 8. 剩下的问题
  • 9. 参考文档

1. 概述

cephfs直接使用不变,需要安装较多的依赖,相对来说nfs更加通用。
FSAL_CEPH 调用 libcephfs2 将 NFS 转义为 Cephfs 协议再存入到 Ceph 中,通过这种途径来实现cephfs导出为NFS

2. 前提条件

  • 有一个cephfs集群
  • 安装 nfs-ganesha nfs-ganesha-ceph libcephfs2
  • nfs-ganesha服务需要能连接到ceph的public网络
  • 安装nfs必要软件 rpcbind nfs-utils

3. 版本说明

  • nfs-ceph 2.8 nautilus

4. 安装

4.1. 配置yum源

cat /etc/yum.repos.d/storage.repo

[nfsganesha]
name=nfsganesha
baseurl=https://mirrors.cloud.tencent.com/ceph/nfs-ganesha/rpm-V2.8-stable/nautilus/x86_64/
gpgcheck=0
enable=1
yum clean all
yum repolist

4.2. 安装软件

yum install nfs-ganesha nfs-ganesha-ceph libcephfs2 -y

5. 配置

配置文件 /etc/ganesha/ganesha.conf

EXPORT
{Export_ID=1;# cephfs的目录Path = /;# nfs-ganesha挂载的目录Pseudo = /cephfs;Access_Type = RW;protocols = 3, 4;transports = "UDP", "TCP";Squash = no_root_squash;FSAL {# 访问ceph用户对应的secretkey  secret_access_key = "AQDk18FgMo7NABAA4ufuz3O6/0lE4vsVgHs1yQ==";  # 访问ceph的用户  user_id = "admin";  name = "CEPH";  # cephfs 的fsname  filesystem = "cephfs";  }
}
LOG {                         Facility {name = FILE;  destination = "/var/log/ganesha/ganesha.log";  enable = active;  }
}

启动服务

systemctl enable nfs-ganesha nfs-utils rpcbind
systemctl start nfs-ganesha nfs-utils rpcbind

6. 使用

mkdir /opt/ganesha
mount -t nfs 172.16.2.237:/cephfs  /opt/ganesha**

查看挂载

df
# output
172.16.2.237:/cephfs 6576680960 96047104 6480633856    2% /opt/ganesha

进入挂载点就可以进行文件系统操作了

性能测试结果见, 小集群下性能差距非常小 https://docs.qq.com/doc/DR3RlaGh2ZXpqV1pT

7. 部署问题

7.1. nfs挂载之后无法创建文件、文件夹

touch  aax
touch: 无法创建"aax": 权限不够

解决方式参照 https://github.com/ceph/ceph-ansible/issues/5300

在 ganesha的配置中添加 Squash = no_root_squash; 重启服务即可

这个配置项是nfs的配置项,客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行!

8. 剩下的问题

  • 如何调用api使得nfs-ganesha生成配置且重新加载
    ceph中的实现是将nfs-ganesha的配置存储为ceph的对象,新建修改删除操作的都是ceph上的对象

    需要注意⚠️: 创建nfs-ganesha配置之后还需另外在cephfs上创建对应的目录;删除nfs-ganesha配置之后cephfs对应的目录也不会手动删除,如需清理则需另外操作删除

  • nfs-ganesha如何对指定目录做quota
    早期ceph版本在nfs-ganesha配置 client_quota = true 即可,后来社区把这个参数取消了,强制使用cephfs的quota,所以设置好cephfs的quota,在nfs-ganesha不用做什么即可达到目的

  • nfs-ganesha如何实现高可用
    nfs-ganesha 本身是个无状态服务,当前有以下几种方式实现高可用

    • pacemaker + corosync
    • ctds + lvs
    • haproxy
    • keepalived
    • k8s service+pod

    既然可以用k8s service来实现,是否也可以通过简单的ha+keepalived来实现(待验证)

9. 参考文档

  • 鸟哥私房菜nfs
  • nfs-ganasha

nfs-ganesha导出cephfs为nfs相关推荐

  1. RH236配置IP故障转移--配置NFS Ganesha

    RH236配置IP故障转移–配置NFS Ganesha 本章节学习配置NFS Ganesha解决高可用问题. RHCA专栏地址:https://blog.csdn.net/qq_41765918/ca ...

  2. Ceph性能测试(RBD、CephFS、NFS、Cache Tier)

    本文是以下两篇文章的后续: 探索fio参数如何选择以及全方位对比HDD和SSD性能:部署Ceph前测试磁盘性能,同时基于fio测试参数的变化深入了解fio原理和磁盘IO特点. CentOS8使用cep ...

  3. Gluster部署及ganesha导出实践

    1.   基础环境 机器:腾讯云CVM OS:centos7.4x86--64 IP地址: 10.154.14.207 10.154.51.185 10.105.17.180 10.105.73.90 ...

  4. linux nfs命令,linux命令:NFS服务

    NFS服务器端:nfs-utils nfs服务器启动的进程: nfsd(nfs服务主进程),mountd(挂载进程),quotod(磁盘配额进程) nfsd端口:2049/tcp, 2049/udp ...

  5. 嵌入式linux开发,开机NFS文件系统启动,使用nfs挂载根文件系统

    NFS( Network File System)即网络文件系统,是 FreeBSD 支持的文件系统中的一种,它允许网络中的计算机之间通过 TCP/IP 网络共享资源.在 NFS 的应用中, NFS ...

  6. linux 6.7 nfs安装yum,centos7下NFS使用与配置

    NFS是Network File System的缩写,即网络文件系统.客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下 nfs为什么需要RPC? 因为NFS支持的功能很多,不同功能会 ...

  7. linux nfs 进程,【Linux】 nfs 故障处理

    一台备份机down 机了,在服务器启动之后,nfs服务并没有启动,其他使用nfs 挂载此备份机目录的机器使用df -h 会hang住.在启动备份机的nfs 犯了一点小错,没有确认备份机的版本以后还是r ...

  8. nfs文件服务器读取文件夹,NFS文件服务器.ppt

    <NFS文件服务器.ppt>由会员分享,可在线阅读,更多相关<NFS文件服务器.ppt(22页珍藏版)>请在人人文库网上搜索. 1.NFS文件系统,本章目标,掌握NFS服务器的 ...

  9. NFS - MIPS架构下构建NFS共享目录服务

    文章目录 概 Lin 和 Win 共享文件 需求 原理 环境信息 检查依赖 如何找mips的rpm包 NFS服务端 上传RPM安装包 安装RPCBIND和NFSSERVER 创建共享目录 配置文件/e ...

最新文章

  1. iOS UIButton(按钮)
  2. Nginx深入了解-基础(一)
  3. 企业搜索引擎开发之连接器connector(二十九)
  4. Unity3d DLL脚本通用解密方法
  5. Codeforces Round #507 (Div. 1) D. You Are Given a Tree 根号分治 + dp
  6. 工作185:解决vue+el-element二级联动,选项选择后不显示的问题
  7. PageHelper分页插件
  8. windows理论基础(一)
  9. 安卓下最强的3款pdf阅读器测评
  10. DRM之Widevine学习入门
  11. 坤坤音效键盘(Python实现)
  12. python之爬虫(十一) 实例爬取上海高级人民法院网开庭公告数据
  13. Gromacs相关基础知识
  14. pandas 改列名称_01_Pandas.DataFrame的行名和列名的修改
  15. Shell编程基本指令
  16. vue中利用gif.js实现GIF动图下载
  17. 输入一行字符,分别统计出其中的英文字母大写小写、空格、数字和其它字符的个数。
  18. FPGA入门嵌入式 块RAM双口RAM使用
  19. 修改定位工具相关的app
  20. css中下划线,背景和边框的属性

热门文章

  1. Linux 下手动查杀木马过程
  2. 纪实:嵌入式Elasticsearch服务因为gc无法释放内存,导致宕机事件
  3. 中型研发组织管理之--组织架构设置
  4. Qt杂谈小技巧集锦()如何高效储存以及读取数据
  5. 算法6.6 采用邻接表表示图的深度优先搜索遍历
  6. 激活策略 查询_苹果Apple Search Ads搜索竞价广告全攻略——从入门到运营优化策略 推广人员不得不看...
  7. 【C++】STL常用容器总结之十二:string类
  8. chmod 报错Operation not permitted
  9. APP切图详细规范终极指南
  10. android 支付吧 漏洞,趋势科技发现支付宝安卓版漏洞