概述
目录
- 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 源码选择
- 2.5 stable (通过参考链接三下载)
cmake 无法通过,检查CMakeError.log
,发现报错如下,无法解决:
/usr/bin/ld: cannot find -lpthreads
- 2.5.3 (通过 github 下载)
根据参考链接一的提示,由于源码中的libntrirpc
目录为空,将2.5 stable源码中的此目录复制过来,编译一次通过
- 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_CEPH
为ON
,以及-- USE_FSAL_RGW
为ON
。
如果是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 uidAccess_Key_Id
: s3 access keySecret_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:
- 与参考链接不同,cephfs 配置中必须加
Squash = No_root_squash;
,否则挂载后会变成只读。rgw 配置中不用添加此项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:
- 日志级别有多种类型,
DEBUG
级别产生的日志量非常巨大,可以不添加-N NIV_DEBUG
- ganesha 使用的默认配置文件位于
/etc/ganesha/ganesha.conf
,也可以直接修改此文件
如果一切顺利,你应该可以看到ganesha.nfsd
进程在那,如果进程不在,可以检查 log。
7. 挂载 NFS
使用showmount -e
很可能输出内容为空,但不影响后续挂载。
在客户端上使用
mount -t nfs4 IP:/ /mnt/
进行挂载,挂载成功后,使用mount
命令可以看到挂载信息。如果同时配置了rgw
和cephfs
,则在挂载点下可以看到自动生成了两个以配置文件中Pseudo
为名的挂载目录,分别挂载了rgw
和cephfs
。
如果使用df -h
看不到挂载点,则可以cd
到对应挂载目录后,再查看。
8. 简单测试
to do
9. 修订记录
时间 | 修订内容 |
---|---|
2019/5/28 | 创建 |
最后
以上就是尊敬康乃馨为你收集整理的Ceph Luminous 12.2.11 安装 nfs-ganesha的全部内容,希望文章能够帮你解决Ceph Luminous 12.2.11 安装 nfs-ganesha所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复