基于FastCFS的NFS搭建及常见问题排查

通过 POSIX 兼容性测试的v3.7发布后,FastCFS完全可以作为NFS的后端存储,推荐使用FastCFS v3.7.1及后续版本。FastCFS的搭建参见gitee上的FastCFS项目官网,本文着重介绍FastCFS作为后端存储的NFS搭建及常见问题排查。

一、服务端

NFS服务端运行在FastCFS的fuse client节点上,需要事先部署好FastCFS集群和fuse client。

1.1 安装

CentOS和RHEL:yum install -y nfs-utils rpcbind

Ubuntu和Debian:apt install nfs-kernel-server -y

1.2 配置

NFS服务配置文件/etc/exports示例:

/opt/fastcfs/fuse 192.168.25.57(rw,sync,all_squash,anonuid=501,anongid=504)

参数注解:

/opt/fastcfs/fuse 要共享的目录

192.168.25.57 表示只允许该客户端挂载共享目录,可以是CIDR网段192.168.25.0/24,也可以用*代表允许所有的网段访问

rw 可读写权限

sync 数据同步写入内存和硬盘

all_squash 表示不管使用NFS目录的用户是谁,其身份被限定为一个指定的普通用户身份设置gid和uid权限;

anonuid/anongid: # 要和root_squash以及all_squash一同使用,用于指定使用NFS的用户限定到的uid和gid, 注意:服务端和客户端uid和gid的用户和组必须存在,否则以root用户身份使用

注意:rw、sync等之间是不能有空格或参数不完整,否则报exportfs: /etc/exports:1: syntax error: bad option list

1.3 服务启动

systemctl restart rpcbind && systemctl restart nfs-server

1.4 重新加载配置文件

exportfs -arv

二、客户端

2.1 安装

CentOS和RHEL:yum install nfs-utils -y

Ubuntu和Debian:apt install nfs-common -y

2.2 挂载

客户端测试是否能连接服务端:

showmount 192.168.25.118 -e

mount命令示例:

mount -t nfs -onolock,nfsvers=3 192.168.25.118:/opt/fastcfs/fuse /mnt/nfs

或者:

mount -t nfs -onolock,nfsvers=4 192.168.25.118:/ /mnt/nfs

三、NFS部署FAQ

3.1 如何查看nfs版本

服务端查看:rpcinfo -p | grep -iE "service|NFS"

客户端查看:nfsstat

3.2 NFS服务端如何设置开机启动

1)查看rpcbind和nfs-server是否开机启动

systemctl list-unit-files --type=service | grep enable | grep rpcbind

systemctl list-unit-files --type=service | grep enable | grep nfs-server

注:输出为空则开机启动没有生效

2)设置开机启动

systemctl enable rpcbind && systemctl enable nfs-server

3.3 两台虚拟机都是Centos6客户端口登录总是提示:mount.nfs: access denied server while mounting

服务端关闭防火墙,以及设置目录权限,都解决不了,在/etc/exports文件中引入如下配置,问题解决。NFS默认支持的端口小于1024,加入insecure参数开启大于1024端口的支持,/etc/exports配置示例:/opt/fastcfs/fuse 192.168.25.118 (insecure,rw,sync,no_root_squash)

3.4 客户端NFS操作提示没有权限(Permission denied)

故障原因:服务端NFS共享目录的权限设置问题

解决方法:在服务端设置NFS共享目录权限为777,客户端就可以写入文件

3.5 目录操作错误提示:mount: mount to NFS server '192.168.25.118' failed: System Error: No route to host. mount clntudp_create: rpc: port mapper failure - rpc: unable to receive

问题原因:开启了防火墙

解决方法:关闭防火墙

3.6 FastCFS作为NFS后端存储时NFS client mount失败

出错信息:reason given by server: No such file or directory

解决方法:

NFS v3直接使用服务端配置的目录如:/opt/fastcfs/fuse,而v4将服务端配置的路径作为基路径,mount要使用/

NFS挂载默认会使用最新的NFS协议,挂载命令示例(支持v4前提下使用):

mount -t nfs -onolock 172.16.168.131:/ /mnt/nfs

NFS v3挂载命令示例:

mount -t nfs -onolock 172.16.168.131:/opt/fastcfs/fuse /mnt/nfs

指定NFS v4挂载命令示例:

mount -t nfs -onolock,nfsvers=4 172.16.168.131:/ /mnt/nfs

友情提示

CentOS 6需要使用NFS v3挂载

/etc/exports中需要设置fsid=0,例如:/opt/fastcfs/fuse 172.16.168.130(fsid=0,rw,sync,no_root_squash,no_all_squash)

附一、NFS server配置文件/etc/exports 参数注解

配置示例:

/opt/fastcfs/fuse 10.10.31.0/24: (rw,no_root_squash,no_all_squash,sync)

10.10.31.0/24:这是允许访问NFS server的IP范围,也就是10.10.31开头的IP,24是掩码长度。

可以设定的参数主要有以下这些:

rw或ro:rw表示可读写权限,ro表示只读权限

no_root_squash:登入到NFS主机的用户如果是root,该用户即拥有root权限

no_all_squash:透传普通用户ID及其用户组

root_squash:登入NFS主机的用户如果是root,该用户权限将被限定为匿名使用者anonuid

all_squash:不管登陆NFS主机的用户是何权限都会被重新设定为匿名使用者anongid

anonuid:将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中,默认为nobody或nfsnobody

anongid:将登入NFS主机的用户组都设定成指定的group id,此ID必须存在于/etc/group中,默认为nobody或nfsnobody

sync:数据同步写入硬盘

async:数据会先存放在内存中,然后再异步写入硬盘

insecure:允许对本共享目录的非授权访问

附二、NFS client在高并发下挂载磁盘参数优化

async:异步同步,此参数会提高I/O性能,但会降低数据安全(除非对性能要求很高,对数据可靠性不要求的场合),不推荐使用;

noatime:取消更新文件系统上的inode访问时间,提升I/O性能,优化I/O目的,推荐使用;

nodiratime:取消更新文件系统上的directory inode访问时间,高并发环境可以提高系统性能,推荐使用。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 175,490评论 5 419
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 74,060评论 2 335
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 124,407评论 0 291
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 47,741评论 0 248
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 56,543评论 3 329
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 43,040评论 1 246
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 34,107评论 3 358
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 32,646评论 0 229
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 36,694评论 1 271
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 32,398评论 2 279
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 33,987评论 1 288
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 30,097评论 3 285
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 35,298评论 3 282
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 27,278评论 0 14
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 28,413评论 1 232
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 38,397评论 2 309
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 38,099评论 2 314

推荐阅读更多精彩内容