Ceph提供nfs服务

ceph除了可以提供cephfs之外,也是可以支持nfs的,因为如果直接对外提供cephfs的话,客户端挂载比较繁琐,而提供nfs的话就非常易用了

1. 前期准备

1.1 检查模块

[root@ceph01 ~]# ceph mgr module ls |grep nfs
"nfs",

默认基本都是启动的,如果没有启用可以执行

[root@ceph01 ~]# ceph mgr module enable nfs

1.2 检查是否有nfs-ganesha集群

[root@ceph01 ~]# ceph nfs cluster ls
[root@ceph01 ~]#

2. 创建nfs服务

通过自动创建的方式

[root@ceph01 ~]# ceph nfs cluster create 1 "ceph01 ceph02"
NFS Cluster Created Successfully
[root@ceph01 ~]# ceph nfs cluster ls
1
  • create 后面的1指的是集群的id,可以改为其他的
  • 引号里面的ceph01,ceph02指的是在哪些节点上启动进程

创建完之后再去查看集群就会有一个了,并且显示为1,这个1不是指集群的数量,而是你刚刚给他的ID,如果你的ID指定的是其他的,那么他这里就会显示你自己指定的ID

2.1 ceph提供的nfs的架构

ceph的nfs是有一个组件叫做nfs-ganesha,然而cephfs的是由mds组件提供的

你客户端通过nfs的方式去挂载ceph的话,就相当于nfs-ganesha是一个翻译器,将你的nfs连接请求转换成cephfs,在你看来你挂载的是nfs,其实底层给你提供的存储的还是cephfs

他的连接就是这样的:客户端存储请求---> nfs-ganesha--->mds

当然也可以存储到rgw,不过这一块的适配做的不是很好,有很多功能用不了

这样nfs服务就创建好了,但是还没有配置后端的存储

3. nfs导出

nfs导出也就是给他配置后端存储

3.1 创建cephfs

# 创建一个cephfs,如果有的话可以不做
[root@ceph01 ~]# ceph fs volume create cephfs
[root@ceph01 ~]# ceph osd pool ls
device_health_metrics
.nfs
cephfs.cephfs.meta
cephfs.cephfs.data

3.2 导出

[root@ceph01 ~]# ceph nfs export create cephfs --cluster-id 1 --pseudo-path /cephfs --fsname cephfs --path=/
{
"bind": "/cephfs",
"fs": "cephfs",
"path": "/",
"cluster": "1",
"mode": "RW"
}
  • 这里的意思就是从cephfs中创建一个nfs,cluster-id就是之前指定的id,导出的nfs路径为/cephfs
  • --fsname:这个意思是使用哪个cephfs,我的cephfs的名字就叫cephfs
  • --path: 指的是cephfs的路径

3.3 客户端尝试挂载

[root@master ~]# mount -t nfs 172.16.1.20:/cephfs /mnt
[root@master ~]# df |grep mnt
172.16.1.20:/cephfs 59736064 0 59736064 0% /mnt

挂载的ip写你自己的nfs的ip,我是用的公有云创建的ceph集群,所以这是一个公网IP

这种挂载方式就比直接挂载cephfs要方便的多了,因为如果要挂载cephfs的话我们还需要创建cephfs用户,还得授权,这种方式就不需要

3.4 验证

我们之前说这个nfs的数据也是存到cephfs里面了,我们来挂载cephfs看看

# 使用比较简单的授权方式,这种方式是后来更新的,较早的ceph版本可能没有这个命令
[root@ceph01 ~]# ceph fs authorize cephfs client.cephfs / rw -o ceph.client.cephfs.keyring

修改ceph.client.cephfs.keyring文件内容

# 只保留密钥部分
[root@ceph01 ~]# cat ceph.client.cephfs.keyring
AQBTNHFmDhxSABAAqB69R7Y3Rb89LA06R0pfmw==
# 挂载
[root@ceph01 ~]# mount -t ceph 172.16.1.20:6789:/ /mnt -o name=cephfs,secretfile=./ceph.client.cephfs.keyring

cephfs写入数据

[root@ceph01 mnt]# echo hello > cephfs

nfs查看数据

[root@master mnt]# ls
cephfs
[root@master mnt]# cat cephfs
hello

可以看到,数据写入到cephfs之后nfs端也是可以看见的

4. 高可用nfs-ganesha

ceph 内部是可以对nfs-ganesha,是通过haproxy+keepalived来做的

service_type: ingress
service_id: nfs.1 # 这里写的是nfs的id
placement:
hosts:
- ceph01
- ceph02
count_per_host: 1 # 每个节点部署几个nfs进程
spec:
backend_service: nfs.1 # 后端使用哪个
frontend_port: 20490 # nfs的端口号
monitor_port: 9000 # placement
virtual_ip: 172.16.1.100/24
  • frontend_port: 20490 这里默认是2049,改成20490的原因是我们在部署这个之前已经部署过了nfs,这个端口被nfs占用了,所以得换一个

不仅仅是nfs可以部署高可用,rgw也是可以的。

Ceph提供nfs服务的更多相关文章

  1. Llinux,NFS服务搭建(文件共享)

    NFS配置文件权限参数说明(/etc/exports) 1.rw :表示可读写权限. 2.ro :表示只读权限. 3.sync :请求或写入数据时,数据同步写入到NFS Server的硬盘后才返回.( ...

  2. nfs服务部署记录

    一.概念介绍NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能 ...

  3. Percona 开始尝试基于Ceph做上层感知的分布式 MySQL 集群,使用 Ceph 提供的快照,备份和 HA 功能来解决分布式数据库的底层存储问题

    本文由 Ceph 中国社区 -QiYu 翻译 英文出处:Using Ceph with MySQL 欢迎加入CCTG Over the last year, the Ceph world drew m ...

  4. redhat enterprixe 5.0 NFS服务配置与管理

    一.了解NFS Samba 是主要用于实现Linux和Windows操作系统之间文件共享的协议,而NFS则是实现UNIX和Linux操作系统之间文件共享的协议. NFS可以把网络上远程的文件挂载到本机 ...

  5. 搭建自己的XenServer+CloudStack云平台,提供IaaS服务(一)环境搭建

    目标 搭建一个完整的基于XenServer和CloudStack的虚拟化平台,提供IaaS服务. 搭建三台安装了XenServer的服务器 搭建一台安装了CloudStack的服务器用以管理云平台 搭 ...

  6. LINUX nfs服务

    1.什么是NFS(Network FileSystem)  NFS 就是 Network FileSystem 的缩写,最早之前是由 Sun 所发展出来的.他最大的功能就是可以透过网络,让不同的机器. ...

  7. 安装、配置、启动FTP、SSH或NFS服务

    (1)准备使用软件维护工具apt-get. Ubuntu7.10中没有安装FTP.SSH.NFS服务器软件,它提供了一个很方便的安装.升级.维护软件的工具apt-get.apt-get从光盘.网络上下 ...

  8. Linux下开启nfs服务

    1.什么是NFS(Network FileSystem) NFS 就是 Network FileSystem 的缩写,最早之前是由 Sun 所发展出来的.他最大的功能就是可以透过网络,让不同的机器.不 ...

  9. 配置NFS服务与tftp服务

    在VMware在安装ubuntu的图解 链接:http://pan.baidu.com/s/1jIofvYu 密码:da72 图解里已经解压安装了VMware Tools,接下来必须要安装的就是NFS ...

  10. linux(十四)之linux NFS服务管理

    学到这里差不多就结束了linux的基础学习了,其实linux的内容并不难,我们要经常的反复的去操作它,多多和它去联络感情才能很好的掌握这个linux. 加油!今天是星期二.没有什么比努力让人更加热血沸 ...

随机推荐

  1. 360 政企安全集团基于 Flink 的 PB 级数据即席查询实践

    简介: Threat Hunting 平台的架构与设计,及以降低 IO 为目标的优化与探索.为什么以及如何使用块索引. 本文整理自 360 政企安全集团的大数据工程师苏军以及刘佳在 Flink For ...

  2. [Blockchain] 以太坊主流测试网 ropsten 和 kovan 的区别 以及 如何选择

    ropsten 采用 POW (Proof-of-Work)共识机制,挖矿难度系数非常低,容易被攻击,不够低碳环保. kovan 采用 POA (Proof-of-Authority)共识机制,不需要 ...

  3. WPF 不安装 WindowsAppSDK 使用 WinRT 功能的方法

    安装 Microsoft.WindowsAppSDK 库会限制应用程序只能分发 windows 10 应用,如果自己的应用程序依然需要兼容 Win7 等旧系统,那直接采用安装 WindowsAppSD ...

  4. dotnet 使用 NamedPipeClientStream 连接一个不存在管道服务名将不断空跑 CPU 资源

    本文记录一个开发和代码审查过程中,需要关注的细节.在 dotnet 里,在 .NET 6 和以下版本,包括 .NET Framework 版本,使用 NamedPipeClientStream 进行连 ...

  5. CF1912K

    题意:给定一个长度为 n 的序列,求有多少个子序列满足该子序列内任意相邻 3 个数的和为偶数. 只与奇偶有关,所以可以把状态转化为 01 的. 设 \(f[i][x][y]\) 表示在前 i 个数中, ...

  6. WEB服务与NGINX(21)- nginx 的fastcgi反向代理功能

    目录 1. NGINX实现fastcgi反向代理 1.1 fastcgi概述 1.2 nginx实现fastcgi相关参数 1.3 nginx与php-fpm部署在一台服务器 1.3.1 php服务器 ...

  7. postgresql 开启审计日志

    1.审计清单说明 logging_collector     --是否开启日志收集开关,默认off,推荐on log_destination       --日志记录类型,默认是stderr,只记录错 ...

  8. Windows远程连接工具有哪些

    Windows远程连接工具,一般称为远程桌面软件,更准确的叫远程访问软件或远程控制软件,可以让你从一台电脑远程控制另一台电脑.远程桌面软件允许您控制连接的计算机,就好像它就在您面前一样. 远程桌面工具 ...

  9. pageOffice插件 springboot实现服务器上Word文档在线打开编辑保存

    需求: 在oa系统上,想实现在线,服务器上doc,docx文档,在web打开,编辑.编辑后,可以再同步保存到服务器端. 开发环境: java springboot,thymeleaf 服务器环境: 无 ...

  10. 内网渗透 Metasploit(MSF)基础使用

    免责申明 以下内容仅供学习使用,非法使用造成的问题由使用人承担 攻击思路 漏洞探测(信息收集) <- fsacn,namp | 漏洞利用 <- 工具(msf等) | 获取服务器权限 MSF ...