NFS服务器的安装与配置

NFS服务器的安装与配置,第1张

由于实验室的项目需要实现在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 #查看是否挂载成功


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/205196.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-03
下一篇2023-04-03

发表评论

登录后才能评论

评论列表(0条)

    保存