nfs-ganesha 导出多个目录

本文详细介绍了如何在ganesha配置文件中设置两个Ceph-FUSE挂载目录,并展示启动服务后的挂载测试过程。通过nfs-ganesha,管理员可以灵活地对外部提供多个NFS共享资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

针对于nfsd,通常可以在配置文件中做配置如下:

$ cat/etc/exports 
/mnt/待暴露卷1 *(rw,async,no_root_squash,no_subtree_check,fsid=唯一的一个id号)
/mnt/待暴露卷2 *(rw,async,no_root_squash,no_subtree_check,fsid=唯一的一个id号)
...

就可以通过启动一个nfsd server,对外export多个挂载卷。那么,nfs-ganesha是如何做的呢?在ganesha配置文件中,添加EXPORT条目就可以

一、操作步骤

1. 挂载路径初始状态

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
...
ceph-fuse       8.5G     0  8.5G   0% /mnt/mycephfs

$ tree /mnt/mycephfs/
/mnt/mycephfs/
├── dir1
│   └── file1
└── dir2
    └── file2

2 directories, 2 files

2. 配置ganesha.conf

EXPORT
{
        Export_ID=100;
        Protocols = 4;
        Transports = TCP;
        Path = /dir1;
        pseudo = /cephfs1;
        Access_Type = RW;
    Squash = No_root_squash;

        FSAL {
                Name = CEPH;
        Filesystem = "cephfs";
        User_Id = "admin";
        Secret_Access_Key = "/etc/ceph/ceph.client.admin.keyring中key值";
        }
}

EXPORT
{
        Export_ID=200;
        Protocols = 4;
        Transports = TCP;
        Path = /dir2;
        pseudo = /cephfs2;
        Access_Type = RW;
    Squash = No_root_squash;

        FSAL {
        Name = CEPH;
        Filesystem = "cephfs";
        User_Id = "admin";
        Secret_Access_Key = "/etc/ceph/ceph.client.admin.keyring中key值";
        }
}

3. 启动ganesha服务后,在其他节点挂载测试

选择另外一台节点,挂载export出来的目录。

$ mount -t nfs -o nfsvers=4.1,proto=tcp ganesha-IP:/cephfs2 /nfs-ganesha-cephfs2
$ mount -t nfs -o nfsvers=4.1,proto=tcp ganesha-IP:/cephfs1 /nfs-ganesha-cephfs1
$ df -h
ganesha-IP:/cephfs2  8.5G     0  8.5G   0% /nfs-ganesha-cephfs2
ganesha-IP:/cephfs1  8.5G     0  8.5G   0% /nfs-ganesha-cephfs1
$ ls /nfs-ganesha-cephfs1/
file1
$ ls /nfs-ganesha-cephfs2/
file2
$ dd if=/dev/zero of=/nfs-ganesha-cephfs1/dd1 bs=4K count=1024
1024+0 records in
1024+0 records out
4194304 bytes (4.2 MB) copied, 0.0288327 s, 145 MB/s
$ dd if=/dev/zero of=/nfs-ganesha-cephfs2/dd2 bs=4K count=1024
1024+0 records in
1024+0 records out
4194304 bytes (4.2 MB) copied, 0.0322968 s, 130 MB/s
$ tree /mnt/mycephfs/
/mnt/mycephfs/
├── dir1
│   ├── dd1
│   └── file1
└── dir2
    ├── dd2
    └── file2

2 directories, 4 files
### NFS-GaneshaNFS-Utils 的区别 #### 功能对比 NFS-Ganesha 是一个高度可扩展的企业级网络文件系统 (NFS) 服务器实现,支持多种后端存储技术,包括 CephFS、GlusterFS 等[^1]。它通过模块化设计提供了灵活的功能集,能够适应复杂的存储需求。 相比之下,NFS-Utils 主要是一个基础工具集合,用于管理标准的 Linux NFS 客户端和服务端功能[^2]。它的主要职责在于提供基本的 NFS 协议支持和简单的挂载操作。 #### 特性差异 - **灵活性**: NFS-Ganesha 提供了更高级别的定制能力,允许管理员定义特定的导出策略并集成复杂存储解决方案[^3]。而 NFS-Utils 则专注于传统磁盘分区或目录共享。 - **性能优化**: 对于大规模分布式环境下的高性能要求场景来说,NFS-Ganesha 可能表现得更好因为它专为处理大量并发连接进行了优化[^1]。然而,在小型局域网环境中,默认配置下运行良好的 NFS-Utils 就已经足够用了[^2]。 - **协议兼容性**: 虽然两者都支持最新的 NFSv4 标准,但是只有像Ganesha这样的专用软件才能更好地适配非POSIX 文件系统的特性映射问题[^3]。 #### 配置方式的不同 安装与启用服务方面也存在明显差别。例如对于基于CephFS作为后端的情况,需要先设置好相应的export规则再启动相关组件;而对于常规用途,则只需简单几步命令即可完成整个流程[^1]: ```bash # 启动NFS-Ganesha服务及相关依赖项 systemctl enable nfs-ganesha nfs-utils rpcbind systemctl start nfs-ganesha nfs-utils rpcbind # 创建目标路径并执行挂载动作(针对CEPH FS) mkdir /opt/ganesha mount -t nfs 172.16.2.237:/cephfs /opt/ganesha** ``` 另一方面,如果只是普通的远程数据同步任务的话: ```bash yum -y install nfs-utils rpcbind systemctl start rpcbind systemctl enable rpcbind # 准备本地接收位置并实施具体挂载过程 mkdir /home/dwweiyinwen/logs/ mount -t nfs -o vers=4,proto=tcp,port=2049 10.102.23.44:/data01 /home/dwweiyinwen/logs/ ``` 综上所述,尽管二者都能达成相似的目标——即让不同机器之间可以方便快捷地访问彼此上的资源文件夹等内容物,但在实际应用过程中还是各有侧重领域适用范围有所区分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值