Ceph集群2025(Squid版)导出高可用NFS集群(上集)

shell 复制代码
#创建一个CephFS 文件系统
ceph fs volume create cephfs02

#创建子卷
ceph fs subvolumegroup create cephfs02  myfsg2


#查看子卷
ceph fs subvolumegroup ls cephfs02

[
    {
        "name": "myfsg2"
    }
]

创建 NFS Ganesha 集群

shell 复制代码
#例子
$ ceph nfs cluster create <cluster_id> [<placement>] [--ingress] [--virtual_ip <value>] [--ingress-mode {default|keepalive-only|haproxy-standard|haproxy-protocol}] [--port <int>]



ceph nfs cluster create my-ha-nfs \  ---集群id 
  --placement="ceph-100,ceph-102,ceph-103" \ -- 使用3个节点
  --ingress \
  --virtual_ip=172.16.8.99 \ -----这个虚拟IP必须要和你的客户端挂载IP一致
  --ingress-mode=haproxy-standard \
  --port=2049
  
#查看集群
ceph nfs cluster ls
[
  "my-ha-nfs"
]

创建完之后查看集群是否正常

最后导出NFS

shell 复制代码
导出nfs
ceph nfs export create cephfs \
  --cluster-id my-ha-nfs \
  --pseudo-path /my-nfs \
  --fsname cephfs02 \ 
  --squash no_root_squash


这个参数是伪路径。系统不存在的目录
--pseudo-path /my-nfs

获取cluster-id 
ceph nfs cluster ls 

获取fsname
ceph fs ls

这句是死的,因为nfs建立在cephfs之上的 
ceph nfs export create cephfs 

这段就不解释大家都懂的
--squash no_root_squash

⚠️⚠️注意假如你又想增加挂载目录

复制代码
删除配置
ceph nfs export rm my-ha-nfs /my-nfs

再查看为空
# ceph nfs export get my-ha-nfs /my-nfs
{}
重新创建
ceph nfs export create cephfs  \
 --cluster-id my-ha-nfs \ 
 --pseudo-path /my-nfs \
 --fsname cephfs02 \
 --path=/volumes/myfsg2 \
 --squash no_root_squash

新增了
--path=/volumes/myfsg2

这个不是目录是一个子卷 挂载到子卷,
--path=/volumes/myfsg2
# 如果觉得麻烦可以跳过这步直接挂载根目录

修改完之后

客户端测试
shell 复制代码
我的系统是debian12
apt install -y nfs-common

使用刚才的虚拟IP挂载
mkdir /mnt/nfs-client
mount -t nfs 172.16.8.99:/my-nfs /mnt/nfs-client/

测试
echo 2222222222222 > /mnt/nfs-client/2.txt 

好多网友以前都是这样创建其实不是高可用的,

复制代码
ceph nfs cluster create my-nfs --placement="node1,node2" --port=2049

更多权限

复制代码
# 高级导出命令(含访问控制与安全配置)
ceph nfs export create cephfs \
  --cluster-id my-nfs \
  --pseudo-path /secure-nfs \
  --fsname cephfs01 \
  --path=/secure-data \
  --readonly \
  --client_addr 192.168.1.100 \
  --client_addr 10.0.0.0/24 \
  --sectype sys,krb5i \
  --squash none

更多原理概念你们自己看官网

相关推荐
Java后端的Ai之路2 分钟前
14、Python - 责任链模式
服务器·开发语言·人工智能·python·责任链模式
深入云栈12 分钟前
Netty 4.2.x 源码深度解析 (十一):EventExecutor 业务线程池 —— 防止 IO 线程阻塞的并发模型
java·后端
吴声子夜歌15 分钟前
Java——基本类型
java·开发语言
从入门到退休1 小时前
企业远程控制选型:向日葵SDK vs RustDesk自建,谁是更务实的选择?
运维·服务器·网络·远程工作·远程控制
CoderYanger2 小时前
A.每日一题:输入单词需要的最少按键次数 Ⅰ+Ⅱ
java·数据结构·算法·leetcode·面试
Cosolar2 小时前
一文弄懂 Agent Harness 与 Agent Runtime 的区别
java·后端·github
吴声子夜歌2 小时前
Java——类、对象及方法(一)
java·开发语言
程序员夏洛2 小时前
Redis 的持久化机制有哪些?
java·数据库·redis
凯尔萨厮2 小时前
Java学习笔记十(注解)
java·笔记·学习
钱栈up3 小时前
VSCode 调试多模块 Maven + Spring Boot 后端:从启动失败到一次跑通
java·spring boot·maven