Ceph Luminous 12.2.11 安装 nfs-ganesha

1. 环境信息

1.1 硬件平台

  • Manufacturer: Lenovo
  • Product: ThinkSystem SR650 * 3
  • CPU: Intel Xeon Gold 6130 @ 2.10Ghz * 2 , 64 Threads
  • Memory: 128GB
  • Disk:
    • 1.8TB 10Krpm 2.5inch SAS HDD * 18
    • 800GB 2.5inch SAS SSD * 4
  • HBA: LSI SAS3508 RAID 930-24i 4GB (None raid)
  • Ethernet:
    • Intel X722 10G
    • Intel X550T 10G

1.2 软件平台

  • System: RHEL 7.4
  • Kernel: 3.10.0-862.14.4.el7.x86_64
  • Ceph: 12.2.5 luminous
  • COSBench: 0.4.2.10260615

2. 参考链接

通过ganesha-nfs导出Ceph为NFS(Luminous)

通过ganesha-nfs将 Ceph 导出为 NFS (徐小胖)

配置ganesha-nfs对接rgw

3. 安装依赖包

备注:YUM 源中的 ganesha 版本为 2.3.2,此次利用源码安装安装 2.5 版本

yum install gcc git cmake autoconf libtool bison flex doxygen openssl-devel gcc-c++ krb5-libs krb5-devel libuuid-devel nfs-utils libblkid-devel

我的环境中还需要安装以下包:

libcap-devel libwbclient-devel xfsprogs-devel

4. 源码安装

4.1 源码选择

  1. 2.5 stable (通过参考链接三下载)

cmake 无法通过,检查CMakeError.log,发现报错如下,无法解决:

/usr/bin/ld: cannot find -lpthreads
  1. 2.5.3 (通过 github 下载)

根据参考链接一的提示,由于源码中的libntrirpc目录为空,将2.5 stable源码中的此目录复制过来,编译一次通过

  1. 2.5.5 (通过 github 下载)

未验证

4.2 安装步骤

编译nfs-ganesha, 注意打开对应的模块:

如果需要生成FSAL_RGW模块,则在编译选项中添加: -DUSE_FSAL_RGW=ON

如果需要生成FSAL_CEPH模块,则在编译选项中添加: -DUSE_FSAL_CEPH=ON

cd src/
mkdir build
cd build/
cmake -DUSE_FSAL_RGW=ON -DUSE_FSAL_CEPH=ON ../

cmake的过程中会有以下输出:

-- Looking for ceph_ll_lookup_root in cephfs - found
-- Found cephfs libraries: /usr/lib64/libcephfs.so
-- Found CEPHFS: /usr/include  
-- Looking for rgw_mount in rgw
-- Looking for rgw_mount in rgw - found
-- Found rgw libraries: /usr/lib64/librgw.so
-- Found RGW: /usr (found suitable version "1.1", minimum required is "1.1") 
...
-- USE_FSAL_CEPH = ON
-- USE_FSAL_CEPH_MKNOD = OFF
-- USE_FSAL_CEPH_SETLK = OFF
-- USE_FSAL_CEPH_LL_LOOKUP_ROOT = ON
-- USE_FSAL_RGW = ON

这一步,很重要,很多时候会因为没有装好的librgw2-devel或者libcephfs1-devel导致这边的USE_FSAL_RGW或者USE_FSAL_CEPH状态为OFF

确保-- USE_FSAL_CEPHON,以及-- USE_FSAL_RGWON

如果是OFF,请检查下librgw2-devel或者libcephfs1-devel是否有安装,如果这两个包都已经安装了,还显示为OFF, 可以尝试下清空编译目录:

rm -rf build/*

再进行编译。

编译和安装,在build目录下

make
make install

5. 编辑配置文件

编译完成后,会看到配置模板文件的位置:

/usr/share/doc/ganesha/config_samples/rgw.conf
/usr/share/doc/ganesha/config_samples/ceph.conf

复制出来修改其中的rgw.conf

EXPORT
{
        Export_ID=1;
        Path = "/";
        Pseudo = "/";
        Access_Type = RW;
        Protocols = 4;
        Transports = TCP;
        FSAL {
                Name = RGW;
                User_Id = "zous3";
                Access_Key_Id ="1MWH3LWM1BS4ZF4HN5IH";
                Secret_Access_Key = "cuObxYgtl1lJgqNxOIpENycVqXfxLxZ8z5IXDM0O";
        }
}
RGW {
    ceph_conf = "/etc/ceph/ceph.conf";
}

其中填写以下三项:

  • User_Id: s3 uid
  • Access_Key_Id: s3 access key
  • Secret_Access_Key: s3 secret key

如果需要同时转换 rgw 和 cephfs,则配置文件如下:

EXPORT
{
        Export_ID=1;
        Path = /;
        Pseudo = /cephfs;
        Access_Type = RW;
        Squash = No_root_squash;
        Protocols = 4;
        Transports = TCP;
        FSAL {
                Name = CEPH;
        }
}
EXPORT
{
        Export_ID=2;
        Path = /;
        Pseudo = /rgw;
        Access_Type = RW;
        Protocols = 4;
        Transports = TCP;
        FSAL {
                Name = RGW;
                User_Id = "zous3";
                Access_Key_Id ="M54WD1J33ZRZA7D6YX8E";
                Secret_Access_Key = "lXu1DgwO1YLoV8IPlbH9FpaCIZyHcOBIrMLQ2xUi";
        }
}

RGW {
    ceph_conf = "/etc/ceph/ceph.conf";
}

TIPS:

  1. 与参考链接不同,cephfs 配置中必须加Squash = No_root_squash;,否则挂载后会变成只读。rgw 配置中不用添加此项
  2. Pseudo项的值即为挂载成功后自行生成的挂载点

6. 启动 ganesha

重要

在启动进程前,关闭所有节点的CephX权限认证,将/etc/ceph/ceph.conf内的三个 cephx 改为 none,然后重启 ceph-mon,ceph-osd,ceph-radosgw,ceph-mds 进程,再启动 ganesha-nfs。

ganesha.nfsd -f /root/rgw.conf -L /var/log/nfs-ganesha.log -N NIV_DEBUG

TIPS:

  1. 日志级别有多种类型,DEBUG级别产生的日志量非常巨大,可以不添加-N NIV_DEBUG
  2. ganesha 使用的默认配置文件位于/etc/ganesha/ganesha.conf,也可以直接修改此文件

如果一切顺利,你应该可以看到ganesha.nfsd 进程在那,如果进程不在,可以检查 log。

7. 挂载 NFS

使用showmount -e很可能输出内容为空,但不影响后续挂载。

在客户端上使用

mount -t nfs4 IP:/  /mnt/

进行挂载,挂载成功后,使用mount命令可以看到挂载信息。如果同时配置了rgwcephfs,则在挂载点下可以看到自动生成了两个以配置文件中Pseudo为名的挂载目录,分别挂载了rgwcephfs
如果使用df -h看不到挂载点,则可以cd到对应挂载目录后,再查看。

8. 简单测试

to do

9. 修订记录

时间修订内容
2019/5/28创建
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Ceph NFS-Ganesha是一个在Ceph分布式存储系统上部署的NFS网关服务。Ceph是一个开源的分布式存储系统,它提供了高度可扩展的对象存储和块存储服务。而NFS-Ganesha是一个开源的用户空间NFS服务器,它允许将Ceph存储系统通过NFS协议暴露给客户端。 通过部署Ceph NFS-Ganesha,用户可以使用标准的NFS协议从客户端访问Ceph存储。这样一来,用户可以像访问本地文件系统一样访问Ceph存储,而无需额外的客户端软件或驱动程序。这提供了更方便和统一的访问方式,并增强了Ceph存储的可用性和可访问性。 Ceph NFS-Ganesha提供了多种配置选项和管理功能,用户可以根据自己的需求和场景来灵活配置和管理NFS-Ganesha服务。它支持多种NFS协议版本(如NFSv3、NFSv4)和安全认证机制(如Kerberos、SASL),并提供了高级的特性,如文件锁定、ACL支持等。 此外,Ceph NFS-Ganesha还具备高可用性和容错性。通过多个NFS-Ganesha网关的部署,可以实现NFS服务的冗余和负载均衡。当某个网关节点故障时,其他节点可以接管服务,确保数据的持续可访问性。 总之,Ceph NFS-GaneshaCeph存储系统提供了一个方便、高效、可扩展的NFS接口,使得用户可以更加灵活地使用Ceph存储,并提供了高可用性和容错性保证。这是一个强大的工具,可用于构建大规模分布式存储和数据共享解决方案。 ### 回答2: Ceph NFS-Ganesha是一个基于Ceph存储集群的分布式文件系统解决方案。它结合了Ceph的高可用、可伸缩性和数据冗余特性,与NFS-Ganesha的协议转换能力相结合,提供了一种可靠、高效的共享文件系统。 在Ceph NFS-Ganesha中,NFS-Ganesha作为一个用户空间的文件系统服务器,负责将NFS请求转换为与Ceph存储集群通信的RADOS Gateway请求。RADOS Gateway是Ceph存储集群的一部分,负责与客户端通信,提供对象存储和块存储的功能。 通过将NFS请求转换为RADOS Gateway请求,Ceph NFS-Ganesha可以将数据分布到Ceph存储集群的多个节点上,实现数据的冗余和可靠性。同时,由于Ceph存储集群的分布式特性,可以实现高可用和可伸缩性,提供更好的性能和扩展性。 另外,Ceph NFS-Ganesha还支持多种认证机制,可以通过Kerberos、LDAP等方式进行用户认证和授权管理,以确保数据的安全性和访问控制。 总的来说,Ceph NFS-Ganesha是一个强大而灵活的分布式文件系统解决方案,结合了Ceph存储集群和NFS-Ganesha的优势,提供可靠、高效的共享文件系统功能。无论是在大规模的数据存储环境还是小型的个人或企业需求中,Ceph NFS-Ganesha都可以提供稳定、可靠的文件系统服务。 ### 回答3: Ceph NFS-Ganesha是一个基于Ceph存储系统的开源文件共享解决方案。它通过将Ceph的分布式存储和NFS协议相结合,为用户提供了一个可靠、高性能的共享文件系统。 NFS-Ganesha充分利用了Ceph的特性,如分布式存储、数据冗余和自动恢复等。它通过将Ceph集群的存储空间划分为多个块,每个块由多个存储节点组成,来实现数据的高可靠性和可扩展性。该解决方案还提供了快速的数据访问速度,支持高吞吐量和低延迟的文件访问。 NFS-Ganesha还具有灵活性和可配置性。用户可以根据自己的需求调整不同的参数,以优化性能和功能。它支持多种NFS版本,可以与其他存储系统和应用程序集成,并提供高级功能,如文件锁定、权限控制和文件级别的快照。 通过使用Ceph NFS-Ganesha,用户可以轻松共享和访问数据。无论是在企业中的文件共享,还是在科学研究中的数据交换,都可以通过该解决方案实现高效的文件共享和传输。同时,Ceph的分布式存储能力保证了数据的可靠性和可扩展性,为用户提供了一个可靠的存储基础设施。 总之,Ceph NFS-Ganesha是一个功能强大的文件共享解决方案,它结合了Ceph的分布式存储和NFS协议,并提供了高性能、可靠性和可配置性,为用户提供了一个完整的文件共享和访问解决方案。无论是在企业还是科研领域,它都是一个值得考虑的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值