源码编译安装 ganesha
源码编译安装 ganesha
简介
- 系统环境:CentOS 7.5
- ceph:luminous
- nfs-ganesha:v2.6 stable
安装步骤
安装依赖
- 首先需要安装编译会用到的公共库
|
|
如果是使用 Ubuntu 系统,主要有以下几个包不同
gcc-c++->g++libuuid-devel->uuid-devnfs-utils->nfs-kernel-server
- 如果要生成
FSAL_RGW模块,需要安装librgw2-devel
|
|
- 如果要生成
FSAL_CEPH模块,需要安装libcephfs1-devel
|
|
源码下载
克隆源码到本地
|
|
编译
cmakenfs-ganesha源码- 如果需要生成
FSAL_RGW模块,则在编译选项中添加:-DUSE_FSAL_RGW=ON - 如果需要生成
FSAL_CEPH模块,则在编译选项中添加:-DUSE_FSAL_CEPH=ON
- 如果需要生成
|
|
cmake的过程中会有以下输出
|
|
请确保 -- USE_FSAL_CEPH 为 ON ,以及 -- USE_FSAL_RGW 为 ON
- 在
build目录下进行编译和安装
|
|
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
这两个文件就是配置将
RGW和CephFS配置为ganesha-nfs的配置模板
配置 service
将 nfs-ganesha 源码目录下的 nfs-ganesha/src/scripts/systemd 目录下的 service 文件复制到系统 /usr/lib/systemd/system/ 目录下,将 nfs-ganesha 配置为系统服务让 systemd 接管,然后设置开机自启
|
|
The DBUS Interface
配置系统 DBUS 服务(编译安装需要手动执行这个过程)
- 将文件
src/scripts/ganeshactl/org.ganesha.nfsd.conf复制到该目录/etc/dbus-1/system.d/。需要重新启动 DBus 服务(messagebus)才能加载此文件
|
|
- 重启
nfs-ganesha服务,因为与 DBus 服务器的连接只在服务初始化时执行,所以如果之前忘了复制org.ganesha.nfsd.conf文件就需要重启nfs-ganesha服务
|
|
- 可查看
nfs-ganesha日志观察服务是否正常启动运行,通常是/var/log/ganesha/ganesha.log
|
|
编辑配置文件
其实这一步可以略过的,只是为了后面 Check Export 能检测到一个挂载点而已,如果这一步不配置,
manila也会通过 SSH 连接到主机对每个 share 进行单独的配置文件的添加
编辑 /etc/ganesha/ganesha.conf 文件,写入以下内容
|
|
启动 nfs-ganesha 服务
- 编译安装有个坑,就是少了个
nfs-ganesha-ceph包,导致manila传递过来的命令无法正常执行,需要单独使用yum命令进行安装(因为我没找到源码地址,也没法自己编译安装了,所以编译安装nfs-ganesha还不如直接用添加源的方式进行安装···)
经测试这步可以省略:
|
|
- 执行以下命令重新启动
nfs-ganesha
|
|
- 使用以下命令查看
nfs-ganesha服务是否正常运行
|
|
Check Export
使用以下命令检测挂载点
|
|
参考链接
- https://segmentfault.com/a/1190000012348558
- https://github.com/nfs-ganesha/nfs-ganesha/wiki/Dbusinterface
- https://docs.openstack.org/manila/queens/contributor/ganesha.html
源码编译安装 ganesha的更多相关文章
- SSH/SSL 源码编译安装简易操作说明
环境:CentOS 6.7 安全加固需求,由于某盟扫描系统主机有SSL系列漏洞,客户要求必须修复: 解决方案:将SSH/SSL升级到最新版本,删除SSL旧版本(实测不删除旧版本某盟扫描无法通过). 当 ...
- 源码编译安装 MySQL 5.5.x 实践
1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...
- 烂泥:mysql5.5数据库cmake源码编译安装
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 以前也写过一篇有关mysql5.0源码编译的文章,该文章为<烂泥:mysql5.0数据库源码编译安装>.但是MySQL自5.5版本以后,就开 ...
- Centos7.X 源码编译安装subversion svn1.8.x
说明:SVN(subversion)的运行方式有两种:一种是基于Apache的http.https网页访问形式:还有一种是基于svnserve的独立服务器模式.SVN的数据存储方式也有两种:一种是在B ...
- centos6.5环境源码编译安装mysql5.6.34
centos6.5环境源码编译安装mysql5.6.34 源码下载地址http://dev.mysql.com/downloads/mysql/5.6.html#downloads 选择Generic ...
- centos 6.5源码编译安装subversion 1.8.10
一.简介 CentOS 6.5的yum源可以安装的SVN客户端版本太低了,1.6.11,所以需要升级到1.8.10,而官网有没有找到1.8.10的安装包,只能选择源码编译安装. 二.安装步骤 参考官网 ...
- Linux环境PostgreSQL源码编译安装
Linux环境PostgreSQL源码编译安装 Linux版本: Red Hat 6.4 PostgreSQL版本: postgresql-9.3.2.tar.gz 数据存放目录: /var/post ...
- 总结源码编译安装mysql
最近在学习源码编译安装LAMP.LNMP时,一直遇到一个难题,就是就是mysql无论怎么源码编译安装,到最后启动服务都提示"Starting MySQL.The server quit wi ...
- Linux下源码编译安装rpy2
R(又称R语言)是一款开源的跨平台的数值统计和数值图形化展现工具.rpy2是Python直接调用R的第三方库,它可以实现使用python读取R的对象.调用R的方法以及Python与R数据结构转换等.这 ...
随机推荐
- 你能说说Java中Comparable和Comparator的区别吗
之前面试中被问到这个问题,当时不屑(会)回答,下来特意查了查,整理如下. Java 中为我们提供了两种比较机制:Comparable 和 Comparator,二者都是用来实现对象的比较.排序. 下面 ...
- Arduino 将 String 转化为 int
Arduino 将 String 转化为 int 函数:toInt() 实例: String my_str = "; int my_int = my_str.toInt();
- 初识JVM内存模型
计算机内存模型 在程序运行时,CPU通过访问主存获取数据,但随着CPU的快速发展,CPU访问速度越来越高,硬件无法满足CPU的条件下,大多内存加入了高速缓存机制,不同CPU都有对应的多级(一般为三)缓 ...
- SpringBoot学习(一)—— idea 快速搭建 Spring boot 框架
简介 优点 Spring Boot 可以以jar包的形式独立运行,运行一个Spring Boot 项目只需要通过 java -jar xx.jar 来运行. Spring Boot 可以选择内嵌Tom ...
- 使用boost实现线程池thread pool | boost thread pool example
本文首发于个人博客https://kezunlin.me/post/f241bd30/,欢迎阅读! boost thread pool example Guide boost thread pool ...
- 如何进行Flink项目构建,快速开发Flink应用程序?
项目模板 Flink应用项目可以使用Maven或SBT来构建项目,Flink针对这些构建工具提供了相应项目模板. Maven模板命令如下,我们只需要根据提示输入应用项目的groupId.artifac ...
- 使用runc直接运行容器
组件containerd负责集群节点上容器的生命周期管理,并向上为docker daemon提供gRPC接口,containerd依靠runC去创建容器进程.而在容器启动之后,runC进程会退出. 可 ...
- TypeError: Cannot read property '_t' of undefined (VUE + ElementUI + i18n)
在使用vue的ElementUI库,在多语言时报错: TypeError: Cannot read property '_t' of undefined 错误是在点菜单栏时随机抛出的,F12抓不到,只 ...
- 有效的减少代码中太多的if、else?-策略模式
写这篇文章的目的和上一篇单例模式一样,策略模式也是一种常用的设计模式,太多的if-else不仅看着不太美观而且不好维护,对于自己来说也等于复习了一遍策略模式.先说一下策略 模式的定义: 策略模式封装了 ...
- JVM(2)--深入理解java对象创建始终
java对象探秘 java是一门面向对象的语言,我们无时无刻不在创建对象和使用对象,那么java虚拟机是如何创建对象的?又是如何访问对象的?java对象中究竟存储了什么运行时所必需的数据?在学习了ja ...