搭建服务器系列-第五篇-安装NFS服务器

第五篇-安装NFS服务器

NFS 简介

NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。

NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。

NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。

其中,NFS服务器设定好了分享出来的/home/shares(可以是其他目录)这个目录后,其他的客户端就可以将这个目录挂载到自己系统上的/mnt/nfs挂载点(挂载点可以自定),只要在PC1系统中进入/mnt/nfs目录内,就可以看到NFS服务器系统内的/home/shares目录下的所有数据(要有相应的权限),/home/shares就好像自己PC中的一个分区(但不占用磁盘空间)。用户可以使用cp、cd、 mv、rm等磁盘或文件相关的指令进行操作。虽然NFS有属于自己的协议和端口号,但是在传送数据或其他相关信息时,NFS使用的是远程过程调用(Remote Procedure Call,RPC)协议来协助NFS本身的运作。RPC即远程进程调用。当使用某些服务来进行远程联机的时候,主机的IP地址、服务的端口号及对应到的服务PID等信息都需要管理与对应,管理端口的对应与服务相关性的工作就是RPC的任务。

NFS本身的服务并没有提供数据传递的协议,因此,NFS使用RPC来实现网络传输功能。NFS本身就是一个使用RPC的程序,换句话说,NFS是RPC服务器。当然,不但运行NFS的服务器需要启动RPC的服务,要挂载NFS文件系统的客户端,也需要同步启动RPC,这样服务器端与客户端才能由RPC的协议进程序端口的对应,Linux系统默认时启动这一服务。

NFS 和 rpcbind 的关系 详细地址

NFS 安装

安装环境 (NFS服务器, 和 Nginx服务器) 进行安装
yum install nfs-utils rpcbind -y

首先 启动rpcbind

/etc/init.d/rpcbind start
Starting rpcbind: [ OK ]
表示启动成功

还可以通过 命令 netstat -lntup|grep rpcbind 来进行查看端口是否正常

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 4330/rpcbind
tcp 0 0 :::111 ::: * LISTEN 4330/rpcbind
udp 0 0 0.0.0.0:111 0.0.0.0:* 4330/rpcbind
udp 0 0 0.0.0.0:689 0.0.0.0:* 4330/rpcbind
udp 0 0 :::111 ::: * 4330/rpcbind
udp 0 0 :::689 ::: * 4330/rpcbind

查看是否有NFS进行注册 rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
目前没有NFS进行注册

启动NFS
/etc/init.d/nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
Starting RPC idmapd: [ OK ]

表示NFS启动正常.

再次进行rpcinfo命令查看.注册列表
rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100011 1 udp 875 rquotad
100011 2 udp 875 rquotad
100011 1 tcp 875 rquotad
100011 2 tcp 875 rquotad
100005 1 udp 42671 mountd
100005 1 tcp 54235 mountd
100005 2 udp 36779 mountd
100005 2 tcp 54843 mountd
100005 3 udp 56789 mountd
100005 3 tcp 48320 mountd
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100021 1 udp 48973 nlockmgr
100021 3 udp 48973 nlockmgr
100021 4 udp 48973 nlockmgr
100021 1 tcp 40766 nlockmgr
100021 3 tcp 40766 nlockmgr
100021 4 tcp 40766 nlockmgr
可以看到NFS服务已经注册成功.

加入开机自启动
chkconfig nfs on

注意:启动顺序必须是

1.先启动rpcbind
2.再启动NFS

可以通过命令进行查看顺序设定

ls /etc/rc.d/rc3.d/| grep -E "nfs|rpc"
K61nfs-rdma
K69rpcsvcgssd
S13rpcbind
S14nfslock
S19rpcgssd
S30nfs
明显可以看到 rpc 是在nfs 前进行启动的.

修改配置可通过
head /etc/init.d/nfs
进行修改.

查看NFS服务项目

通过命令进行查看进程 ps -ef | grep -E "rpc|nfs"
详细内容请点击查看

进行NFS配置

配置文件路径

/etc/exports
文件默认存在,但是是空的,可以通过 man export 进行查看具体的内容

配置内容的格式

NFS 共享的目录 NFS客户端地址1 (参数1, 参数2 …) 客户端地址(参数1,参数2,…)

创建共享目录

mkdir /data

修改权限

chown -R nfsnobody.nfsnobody /data

配置权限

vim /etc/exports

常见的选项:

   ro:默认选项,以只读的方式共享。

   rw:以读写的方式共享。

   root_squash:将客户端使用的是root用户时,则映射到NFS服务器的用户为NFS的匿名用户(nfsnobody)。

   no_root_squash:将客户端使用的是root用户时,则映射到FNS服务器的用户依然为root用户。

   all_squash:默认选项,将所有访问NFS服务器的客户端的用户都映射为匿名用户,不管客户端使用的是什么用户。

   anonuid:设置映射到本地的匿名用户的UID

   anongid:设置映射到本地的匿名用户的GID

   sync:默认选项,保持数据同步,数据同步写入到内存和硬盘。

   async:异步,先将数据写入到内存,在将数据写入到硬盘。

   secure:NFS客户端必须使用NFS保留端口(通常是1024以下的端口),默认选项。

   insecure:允许NFS客户端不使用NFS保留端口(通常是1024以上的端口)

进行简单的配置
/data 10.211.55.0/24(rw,sync)
拥有读写的权限, 同步写入磁盘

重启 NFS服务
/etc/init.d/nfs relaod
进行检查
showmount -e 10.211.55.12

显示
Export list for 10.211.55.12:
/data 10.211.55.0/24

恭喜NFS至此配置成功.

你可能感兴趣的:(Linux)