我是靠谱客的博主 尊敬康乃馨,最近开发中收集的这篇文章主要介绍Ceph Luminous 12.2.11 安装 nfs-ganesha,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

    • 1. 环境信息
      • 1.1 硬件平台
      • 1.2 软件平台
    • 2. 参考链接
    • 3. 安装依赖包
    • 4. 源码安装
      • 4.1 源码选择
      • 4.2 安装步骤
    • 5. 编辑配置文件
    • 6. 启动 ganesha
    • 7. 挂载 NFS
    • 8. 简单测试
    • 9. 修订记录

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创建

最后

以上就是尊敬康乃馨为你收集整理的Ceph Luminous 12.2.11 安装 nfs-ganesha的全部内容,希望文章能够帮你解决Ceph Luminous 12.2.11 安装 nfs-ganesha所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部