您的位置:首页 > 其它

NFS-Ganesha 安装部署及测试

2018-01-23 09:57 615 查看
一、概览

自从Jewel版本,nfs-ganesha开始支持ceph,ganesha通过两种方式支持将ceph通过posix及nfs语义导出。一种通过rgw,一种通过cephfs,通过FSAL模块 连接到RGW或者CephFS, 其中,FSAL_RGW调用librgw2将NFS协议转义为S3协议再通过RGW存入到Ceph中,FSAL_CEPH 调用libcephfs1将NFS转义为Cephfs协议再存入到Ceph 中。

因此在实际安装部署中需要额外安装这两个基础库,以提供协议转换的支撑。

文章所载基于Jewel 10.2.7版本所示,将J版本的ceph基于ganesha导出nfs部署,并且简单测试一下rgw和cephfs的性能。

二、环境

os: ubuntu16.04

ceph: jewel

nfs-gnesha: v2.5分支

三、安装

3.1 安装基础依赖库

apt install gcc git cmake libtool flex g++ krb5-dev uuid-dev nfs-kernel-server librgw2-dev


3.2 下载nfs-ganesha源码

在源码下载的时候有众多版本供选择,试过其中的v2.5以及v2.3版本,都在编译过程中出现不同程度的错误,排查是jewel版本和nfs-ganesha版本不匹配造成的。至于排查的过程无非与查源码、查环境之类,最终找到一个网友共享出来的源码可供编译。

3.3 编译

由于测试需要支持rgw和cephfs,需要在编译的过程中加上 -DUSE_FSAL_RGW=ON -DUSE_FSAL_CEPH=ON

值得注意的是,需要确保configure输出中检测到rgw和cephfs模块,否则这两个模块将不会被编译进去。

如果安装过程中没有安装好librgw2-devel或者libcephfs1-devel,USE_FSAL_RGW或者USE_FSAL_CEPH状态将为OFF,因此需要观察configure输出,确保– USE_FSAL_CEPH为ON,以及– USE_FSAL_RGW为ON

接下来

make && make install

3.4 配置

EXPORT
{
## Export Id (mandatory, each EXPORT must have a unique Export_Id)
Export_Id = 12345;

## Exported path (mandatory)
Path = "/";

## Pseudo Path (required for NFSv4 or if mount_path_pseudo = true)
Pseudo = "/";

## Restrict the protocols that may use this export.  This cannot allow
## access that is denied in NFS_CORE_PARAM.
Protocols = 4;

## Access type for clients.  Default is None, so some access must be
## given. It can be here, in the EXPORT_DEFAULTS, or in a CLIENT block
Access_Type = RW;

## Whether to squash various users.
Squash = No_root_squash;
Transport_Protocols = TCP;

## Allowed security types for this export
#Sectype = sys,krb5,krb5i,krb5p;

## Exporting FSAL
FSAL {
Name = RGW;
User_Id = "s3test";//对应修改成用户id
Access_Key_Id = "TEVE5KUE7CVGFWHRMBO0";//对应修改accessid
Secret_Access_Key = "tZhkG3oyHkCyczI3Ll2UXGxCJwDNF2jmkpdH8qrc";//对应修改成secertid
}
}

RGW
{
ceph_conf = "/etc/ceph/ceph.conf";
cluster = "ceph";
name = "client.rgw.mon1";//对应修改成rgw实例名
init_args = "-d --debug-rgw=16";
}


配置的方法查过部分资料,很多说需要关闭集群cephx认证,首次配置时没有对应配置RGW部分,因此没有成功,关闭cephx后成功。但因实际项目需要开启cephx,因此开启cephx后,配置RGW后意外发现正常启动。

3.5 启动ganesha

启动 Ganesha

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

3.6 挂载 NFS

[root@node1 mnt]# mount -t nfs4 192.168.3.4:/ /mnt/nfs

4.测试

在挂载成功后,进行实际测试:

for i in {1..10000};do dd if=/dev/zero of=/mnt/nfs/file_$i bs=4K count=$i


测试过程中发现,bs>4M 时,表现不稳定,有IO ERROR出现。

利用iozone工具测试,发现当进行非4K对齐写时,出现测试失败情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nfs-ganesh