由于实验室的项目需要实现在CephFS之上建立NFS之上,所以记录一下NFS服务器的安装与配置流程。
NFS 服务器可以让客户端将网络远程的 NFS 服务器分享的目录,直接挂载到本地端的机器当中。本地端的机器通过直接读写挂载的目录,就可以同步到NFS服务器之上。
系统平台:Ubuntu 14.04
NFS Server IP:192.168.1.2
iptables关闭: Firewall is disable.(NFS端口使用在默认情况下是不固定,所以若配置NFS服务器需要搭配防火墙使用的话,请配置固定端口)
SELINUX=disabled
NFS的安装只需要安装rpcbind与nfs-server就可以对外提供服务了。
NFS服务器的主要配置文件就是:/etc/exports。不过这个配置文件不一定会存在,可能需要使用 vim 主动新建这个文件。
/etc/exports文件由以下选项构成:
每一行最前面是要分享出来的目录,目录可以依照不同的权限分享给不同的主机。若权限参数不止一个时,则以逗号 (,) 分开。且主机名与小括号是连在一起的喔!其中参数是可选的,当不指定参数时,nfs将使用默认选项。默认的共享选项是 sync,ro,root_squash,no_delay 当主机名或IP地址为空时,则代表共享给任意客户机提供服务。
下面是一些NFS共享的常用参数:
这里我们使用了NFS v3的配置,如下图所示:
配置完/etc/exports之后,接下来就可以启动NFS服务器了。
为了使NFS服务器能正常工作,需要启动rpcbind和nfs-kernel-server两个服务,并且rpcbind一定要先于nfs-kernel-server启动。
若要开机自启动nfs服务,可以通过sysv-rc-conf配置自启动服务。
客户端的挂载很简单,先建立一个挂载目录
之后客户端对应的文件目录便挂载上对应的文件系统了。
客户端可以通过命令配置开机自启动挂载NFS的文件系统。
将对应的命令 mount -t nfs 192.168.12:/tmp /mnt/nfs
添加至/etc/rc.d/local,不要尝试在直接在/etc/fstab/里挂载
小结 :梳理了一下在ubuntu之下NFS服务器的安装与配置。当然RedHat系列的发行版也是大同小异。若有疏漏,望指点斧正。
NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的。
NFS应用场景,常用于高可用文件共享,多台服务器共享同样的数据,可扩展性比较差,本身高可用方案不完善,取而代之的数据量比较大的可以采用MFS、TFS、HDFS等等分布式文件系统。
1. 环境准备两台Centos7.6虚拟机:
服务端:192.168.199.180
客户端:192.168.199.190
2.创建用户,指定用户访问共享文件夹:
useradd test #创建test用户
passwd test #设置test密码为123456
6.编辑nfs主配置文件/etc/exports;并添加以下内容:
/www 192.168.199.190(rw,sync,root_squash,no_all_squash,anonuid=1002,anongid=1002)
参数详解:
NFS安装完毕,需要创建共享目录,共享目录在/etc/exports文件里面配置,可配置参数如下:
/www 192.168.199.190(rw,sync,root_squash,no_all_squash,anonuid=1002,anongid=1002)
第一列/www 表示需要共享的目录
IP表示允许哪个客户端访问
IP后括号里的设置表示对该共享文件的权限
ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
anonuid 指定用户UID
anongid 指定用户组ID
7.启动nfs服务:systemctl start nfs
8.查看nfs及rpc端口是否启动成功:
9. rpcinfo -p 192.168.199.180 查看,如图所示:
RPC命令详解: rpcinfo 命令会向 RPC 服务器发出 RPC 调用,并将得到的结果显示出来。rpcinfo 会列出所有在主机 host 上向 rpcbind 注册的 RPC 服务。
10. 使用showmount -e localhost 命令用于查询NFS服务器的相关信息,显示NFS服务器的输出清单。
11. 创建共享文件夹目录www 并在www目录下新建jfedu.txt并加入内容,授予www用户用户组的nfsnobody.nfsnobody权限
mkdir -p /www #创建www共享目录
touch /www/jfedu.txt #在www目录下创建jfedu.txt文件
chown -R test:test /www #授权用户用户组test给www目录
二、安装客户端:(192.168.199.190)
1. yum install nfs-utils -y
客户端上不需要启动nfs服务,只是为了使用showmount工具
2. 查看RPC端口是否启动:netstat -ntpl
3.使用showmount -e 192.168.199.180命令显示NFS服务器输出结果:
4.远程挂载www共享目录到客户端的/mnt目录下:mount -t nfs 192.168.199.180:/www /mnt
5. 进入到/mnt挂载盘符目录下cd /mnt 确认是否有jfedu.txt文件存在及查看文件权限属于谁:
确认文件已存在,用户用户组均为test用户所属,其他用户不能操作此目录下的文件及文件夹;包括root用户都不能操作删除及修改文件,例如root用户都不能删除jfedu.txt文件:
6.如果也只需要客户端的test用户去对www共享文件夹有增删改查权限的话,需要以下步骤:
a. 在客户端创建相同的test用户,并保证UID一致的情况下才能对共享目录有权限进行操作
b. 设置tets用户密码为123456
c. 查看test用户UID参数值是多少 cat /etc/passwd
d. 那么问题来了,服务端的test用户UID为1002,客户端test用户UID为1004,共享目录在客户端的权限也为1002,那么1004是没有权限去访问共享目录的,可参考下目前状态的错误图;首先切换到test用户,然后进入到/mnt目录下进行jfedu.txt文件删除看是否报错:
e. 经过测试同样的tets用户,但是客户端的用户UID跟服务端不一致,所以是没有权限删除文件的,首先退出tets用户,切换root用户后,需要修改客户端test用户UID跟服务端一致即可解决问题,命令:usermod -u 1002 tets
7.修改完客户端test用户UID为1002后,切换到test用户,查看是否有jfedu.txt文件存在;然后追加新内容123456到jfedu.txt中;最后新建123.txt文件成功,代表NFS共享目录指定用户读取(增删改查)成功。
8. 在NFS服务端把NFS跟RPC服务加入开机自启动:
systemctl enable nfs-server
systemctl enable rpcbind
9. 在客户端将NFS远程共享目录挂载命令加入fstab配置,不然服务器重启挂载点将消失,加入以下配置到/etc/fstab配置文件
192.168.199.180:/www /mnt nfs defaults 0 0
1、选取192.168.65.10作为主服务器,192.168.65.11作为从服务器
2、主机安装rpcbind、nfs服务
yum install nfs-utils rpcbind
3、主机编写配置文件
vim /etc/exports
/data/nginx 192.168.65.0/24(rw,sync,fsid=0)
#同192.168.65.0/24一个网络号的主机可以挂载NFS服务器上的/home/nfs/目录到自己的文件系统中,rw表示可读写;sync表示同步写,fsid=0表示将/data找个目录包装成根目录
4、先为rpcbind和nfs做开机启动:(必须先启动rpcbind服务)
systemctl start rpcbind.service
systemctl start nfs-server.service
systemctl enable rpcbind.service//开机启动
systemctl enable nfs-server.service//开机启动
5、rpcinfo -p #检查 NFS 服务器是否挂载我们想共享的目录
6、exportfs -r #使配置生效
7、exportfs#查看共享目录
8、丛机安装主机安装nfs
9、启动rpcbind
systemctl start rpcbind.service#不需要启动nfs
10、showmount -e 192.168.65.10 #检查 NFS 服务器端是否有目录共享:showmount -e nfs服务器的IP
11、mount -t nfs 192.168.65.10:/data/nginx /data/nginx#挂载目录到共享服务器
12、df -h #查看是否挂载成功
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)