源码编译安装 ganesha

简介

  • 系统环境:CentOS 7.5
  • ceph:luminous
  • nfs-ganesha:v2.6 stable

安装步骤

安装依赖

  • 首先需要安装编译会用到的公共库
1
  yum install gcc git cmake autoconf libtool bison flex doxygen openssl-devel gcc-c++ krb5-libs krb5-devel libuuid-devel nfs-utils -y

如果是使用 Ubuntu 系统,主要有以下几个包不同

  • gcc-c++ -> g++
  • libuuid-devel -> uuid-dev
  • nfs-utils -> nfs-kernel-server
  • 如果要生成 FSAL_RGW 模块,需要安装 librgw2-devel
1
  yum install librgw2-devel -y
  • 如果要生成 FSAL_CEPH 模块,需要安装 libcephfs1-devel
1
  yum install libcephfs-devel -y

源码下载

克隆源码到本地

1
git clone -b V2.6-stable https://github.com/nfs-ganesha/nfs-ganesha.git --recursive

编译

  • cmake nfs-ganesha 源码

    • 如果需要生成 FSAL_RGW 模块,则在编译选项中添加: -DUSE_FSAL_RGW=ON
    • 如果需要生成 FSAL_CEPH 模块,则在编译选项中添加: -DUSE_FSAL_CEPH=ON
1
2
3
4
5
  cd nfs-ganesha
cd src/
mkdir build
cd build/
cmake -DUSE_FSAL_RGW=ON -DUSE_FSAL_CEPH=ON ../
  • cmake 的过程中会有以下输出
 1
2
3
4
5
6
7
8
9
10
11
12
13
  -- 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

请确保 -- USE_FSAL_CEPH 为 ON ,以及 -- USE_FSAL_RGW 为 ON

  • 在 build 目录下进行编译和安装
1
2
  make
make install

PS: 在 make install 生成的输出中,可以看到:

– Up-to-date: /usr/share/doc/ganesha/config_samples/rgw.conf … – Up-to-date: /usr/share/doc/ganesha/config_samples/ceph.conf

这两个文件就是配置将RGWCephFS配置为ganesha-nfs的配置模板

配置 service

将 nfs-ganesha 源码目录下的 nfs-ganesha/src/scripts/systemd 目录下的 service 文件复制到系统 /usr/lib/systemd/system/ 目录下,将 nfs-ganesha 配置为系统服务让 systemd 接管,然后设置开机自启

1
2
3
4
5
cd nfs-ganesha/src/scripts/systemd
cp nfs-ganesha-config.service /usr/lib/systemd/system/nfs-ganesha-config.service
cp nfs-ganesha.service.el7 /usr/lib/systemd/system/nfs-ganesha.service
cp nfs-ganesha-lock.service.el7 /usr/lib/systemd/system/nfs-ganesha-lock.service
systemctl enable nfs-ganesha

The DBUS Interface

配置系统 DBUS 服务(编译安装需要手动执行这个过程)

  • 将文件 src/scripts/ganeshactl/org.ganesha.nfsd.conf 复制到该目录 /etc/dbus-1/system.d/ 。需要重新启动 DBus 服务(messagebus)才能加载此文件
1
2
  cp src/scripts/ganeshactl/org.ganesha.nfsd.conf /etc/dbus-1/system.d/
systemctl restart messagebus
  • 重启 nfs-ganesha 服务,因为与 DBus 服务器的连接只在服务初始化时执行,所以如果之前忘了复制 org.ganesha.nfsd.conf 文件就需要重启 nfs-ganesha 服务
1
  systemctl restart nfs-ganesha
  • 可查看 nfs-ganesha 日志观察服务是否正常启动运行,通常是/var/log/ganesha/ganesha.log
1
  tail -f /var/log/ganesha/ganesha.log

编辑配置文件

其实这一步可以略过的,只是为了后面 Check Export 能检测到一个挂载点而已,如果这一步不配置,manila 也会通过 SSH 连接到主机对每个 share 进行单独的配置文件的添加

编辑 /etc/ganesha/ganesha.conf 文件,写入以下内容

 1
2
3
4
5
6
7
8
9
10
11
12
EXPORT
{
Export_ID=1;
Path = "/";
Pseudo = /;
Access_Type = RW;
NFS_Protocols = 4;
Transport_Protocols = TCP;
FSAL {
Name = CEPH;
}
}

启动 nfs-ganesha 服务

  • 编译安装有个坑,就是少了个 nfs-ganesha-ceph 包,导致 manila 传递过来的命令无法正常执行,需要单独使用 yum 命令进行安装(因为我没找到源码地址,也没法自己编译安装了,所以编译安装 nfs-ganesha 还不如直接用添加源的方式进行安装···)
    经测试这步可以省略:
1
  yum install nfs-ganesha-ceph
  • 执行以下命令重新启动 nfs-ganesha
1
  systemctl restart nfs-ganesha
  • 使用以下命令查看 nfs-ganesha 服务是否正常运行
1
  systemctl status nfs-ganesha

Check Export

使用以下命令检测挂载点

1
2
3
4
[root@c1 ~]# showmount -e
Export list for c1:
/ (everyone)
[root@c1 ~]#

参考链接

源码编译安装 ganesha的更多相关文章

  1. SSH/SSL 源码编译安装简易操作说明

    环境:CentOS 6.7 安全加固需求,由于某盟扫描系统主机有SSL系列漏洞,客户要求必须修复: 解决方案:将SSH/SSL升级到最新版本,删除SSL旧版本(实测不删除旧版本某盟扫描无法通过). 当 ...

  2. 源码编译安装 MySQL 5.5.x 实践

    1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...

  3. 烂泥:mysql5.5数据库cmake源码编译安装

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 以前也写过一篇有关mysql5.0源码编译的文章,该文章为<烂泥:mysql5.0数据库源码编译安装>.但是MySQL自5.5版本以后,就开 ...

  4. Centos7.X 源码编译安装subversion svn1.8.x

    说明:SVN(subversion)的运行方式有两种:一种是基于Apache的http.https网页访问形式:还有一种是基于svnserve的独立服务器模式.SVN的数据存储方式也有两种:一种是在B ...

  5. centos6.5环境源码编译安装mysql5.6.34

    centos6.5环境源码编译安装mysql5.6.34 源码下载地址http://dev.mysql.com/downloads/mysql/5.6.html#downloads 选择Generic ...

  6. centos 6.5源码编译安装subversion 1.8.10

    一.简介 CentOS 6.5的yum源可以安装的SVN客户端版本太低了,1.6.11,所以需要升级到1.8.10,而官网有没有找到1.8.10的安装包,只能选择源码编译安装. 二.安装步骤 参考官网 ...

  7. Linux环境PostgreSQL源码编译安装

    Linux环境PostgreSQL源码编译安装 Linux版本: Red Hat 6.4 PostgreSQL版本: postgresql-9.3.2.tar.gz 数据存放目录: /var/post ...

  8. 总结源码编译安装mysql

    最近在学习源码编译安装LAMP.LNMP时,一直遇到一个难题,就是就是mysql无论怎么源码编译安装,到最后启动服务都提示"Starting MySQL.The server quit wi ...

  9. Linux下源码编译安装rpy2

    R(又称R语言)是一款开源的跨平台的数值统计和数值图形化展现工具.rpy2是Python直接调用R的第三方库,它可以实现使用python读取R的对象.调用R的方法以及Python与R数据结构转换等.这 ...

随机推荐

  1. Servlet——用户登录案例

    案例:用户登录 * 用户登录案例需求: 1.编写login.html登录页面 username & password 两个输入框 2.使用Druid数据库连接池技术,操作mysql,day14 ...

  2. spark集群搭建(三台虚拟机)——hadoop集群搭建(2)

    !!!该系列使用三台虚拟机搭建一个完整的spark集群,集群环境如下: virtualBox5.2.Ubuntu14.04.securecrt7.3.6_x64英文版(连接虚拟机) jdk1.7.0. ...

  3. Java开发者入职必备条件

    01.基础技术体系 我认为知识技能体系化是判断技术是否过关的第一步.知识体系化包含两层含义: 1. 能够知道技术知识图谱(高清版图谱扫文末二维码)的内容 比如分布式系统中常用的RPC技术,其背后就涉及 ...

  4. .net画二叉树

    代码下载地址: 链接: https://pan.baidu.com/s/1bpHayoJ 密码: k6su 接下来看主要代码 1.先构建二叉树的类 public class Node { public ...

  5. Openlayers Overlay导致偏移

    说明: 在做项目过程中,用overlay做了一个infowindow弹窗,但是在使用过程中发现一个bug:overlay.setPosition以后,会出现偏移,但是拖动一下地图或者点击一下地图其他地 ...

  6. 小程序取消IOS虚拟支付解决方案

    前因 本来我们的小程序用的好好的,结果突然有一天,微信就把小程序的ios端的虚拟支付给关了...坑爹啊!搞的安卓端的可以支付,ios的支付不了.于是就在网上找解决办法. 一说通过app跳转支付,总不能 ...

  7. 【Luogu P3376】网络最大流

    Luogu P3376 最大流是网络流模型的一个基础问题. 网络流模型就是一种特殊的有向图. 概念: 源点:提供流的节点(入度为0),类比成为一个无限放水的水厂 汇点:接受流的节点(出度为0),类比成 ...

  8. 浅析scrapy与scrapy-redis的区别

    首先,要了解两者的区别,就要清楚scrapy-redis是如何产生的,有需求才会有发展,社会在日新月异的飞速发展,大量相似网页框架的飞速产生,人们已经不满足于当前爬取网页的速度,因此有了分布式爬虫,让 ...

  9. length of the longest substring without repeating character

    Given a string, find the length of the longest substring without repeating characters. 来源:力扣(LeetCod ...

  10. Chapter 02—Creating a dataset(Part1)

    一. 数据集 1. 在R语言中,进行数据分析的第一步是创建一个包含待研究数据并且符合要求的数据集. · 选择装数据的数据结构 · 把数据装入数据结构中 2. 理解数据集 (1)数据集通常是矩形的数据列 ...