首页 > 其他分享 >Ceph提供nfs服务

Ceph提供nfs服务

时间:2024-06-18 15:55:09浏览次数:22  
标签:ceph 服务 Ceph ceph01 nfs 挂载 cephfs root

目录

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,服务,Ceph,ceph01,nfs,挂载,cephfs,root
From: https://www.cnblogs.com/fsdstudy/p/18254504

相关文章

  • 3、k8s-服务的部署(nginx)
    说明:pod是kubernetes的最小单元-而容器时运行在pod中的、服务是运行在容器中的、所以:pod>容器>服务  --(这是一个包含的关系) 1、创建部署nginx:kubectlcreatedeploymentnginx--image=nginx:1.14-alpine#kubectlcreatedeployment是一个Kubernetes命令,用于创建一个......
  • 5、k8s-资源管理-yaml语言--使用yaml语言创建nginx服务
    YAML语言是一个类似XML、JSON的标记性语言、他强调以数据为中心、而不是以标识语言为重点、因而YANL本身定义比较简单:对比如下XML语言:<html><age>15</age><address>hainan</address></html>YAML语言:heima:age:15address:hainanyaml语言没有过多的......
  • 服务器硬盘数据怎么恢复?
    在高度信息化的当今,数据的重要性日益凸显。服务器作为企业信息的重要载体,其硬盘中存储的数据更是具有极高的价值。但因为各种意外原因,服务器硬盘数据丢失的情况时有发生,服务器硬盘数据怎么恢复?如何有效地恢复?成为我们必须面对的问题。对于重要数据,我们必然需要想办法找回,不妨一起......
  • 一台20年前的服务器数据恢复案例
    停用十多年的一台老服务器损坏了,最近在查一些档案、记录,需要来调取这台服务器的数据。看看我们能不能提供一些帮助,能让这台服务器呢能恢复机器工作拿到这台机器的时候,我也是一愣,这台机器将近快20年的时间了,谁开会用这么老的机器呢?运行速度也可想而知了,机器是浪潮NP370RG2的,生......
  • 服务器数据恢复成功但无法安装金蝶数据库?
    服务器数据恢复成功但无法安装金蝶数据库?服务器系统安装好了,在安装数据库时需要安装netfromwork3.5,在安装3.5的时候又报错,这个问题应该怎么解决呢?本期告诉你答案,数据恢复完成后,经常帮助他们重装系统,还原数据,还有应用软件配置,这样拿到一台机器,就可以直接使用了。看一个案例,一......
  • 目标检测——室内服务机器人LifelongSLAM数据集
    引言亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。OpenLORIS-SceneDataset推动室内服务机器人定位技术的新里程碑随着科技......
  • 14DNS 域名解析服务
    目录14.1BIND域名服务基础14.1.1DNS系统的作用及类型14.1.2BIND的安装和控制1、安装BIND软件2、BIND服务控制14.1.3BIND服务的配置文件1、主配置文件按2、区域数据配置文件14.2使用BIND构建域名服务器14.2.1 构建缓存域名服务器1.建立主配置文件named.conf......
  • 使用.NET Core创建Windows服务
    一、使用VS创建打开VisualStudio,创建新项目,找到WorkerService模板。 二、项目结构说明创建出来的项目,包含两个主要文件:1)其中Program.cs文件是应用的启动“引导程序”;2)另外一个文件是worker.cs文件,在这个文件中,可以编写自己的服务逻辑。 三、将应用转换成Window服务......
  • 项目运维时,某用户通过RDP远程桌面连接服务器...任务管理器显示用户状态断开连接!记录运
    目录问题出现解决方式测试参考  今天处理项目运维问题,发现服务器任务管理器出现用户状态断开连接......问题出现项目运维时,某用户通过rdp远程桌面连接Windowsserver服务器时,出现服务器发布的进度计划无法执行,打开服务器任务管理界面出现用户状态断开连接标志,如下......
  • Centos7配置ntp时间服务器
    Centos7配置ntp时间服务器,服务端:1、安装ntp服务yuminstallntpntpdate-y 2、查找当前地区,最适合的时间服务器步骤一:打开网站:http://www.pool.ntp.org/zone/asia步骤二:复制自动推荐的最合适的同步服务器 3、编辑/etc/ntp.confvim/etc/ntp.conf复制上述查到的时......