14.1-14.3 NFS介绍,服务端安装,客户端挂载NFS

14.1 NFS介绍


NFS是Network File System的缩写

NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本

NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写。

NFS应用场景是:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致


NFS架构

blob.png

应用场景:

A B C为别是三台机器

他们分别需要访问同一个目录,且目录中都是图片。传统的做法就是把这些图片分别放到A,B,C中,

但若使用NFS,只需要把图片放到A上,然后A共享给B和C即可。访问B和C时,是通过网络的方式去访问A上的那个目录的。


NFS原理图

blob.png

NFS服务端 启动NFS服务,利用RPC服务(启动rpcbind,实现RPC通信)去提供NFS客户端使用NFS服务

rpcbind监听111端口

NFS服务需要借助RPC协议实现通信


14.2 NFS服务端安装配置

大纲

blob.png

准备工作:

2台或以上linux机器 

centos7-01(192.168.189.128)客户端

centos7-02(192.168.189.129)服务端

*以下全部操作都在服务端操作

1 先在服务端和客户端安装两个包

[root@centos7-01 ~]# yum install -y nfs-utils rpcbindc

[root@centos7-02 ~]# yum install -y nfs-utils rpcbindc

2 安装完成后,编辑exports文件

[root@centos7-01 ~]#vim /etc/exports //加入如下内容

/home/nfstestdir 192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

格式解释:

以空格(空格键)分割,分为三部分

第一部分是本地要分享出去的目录(如果不存在,需要自行创建)

第二部分是允许访问的主机(可以是一个IP,也可以是一个IP段)

第三部分是小括号里面的权限选项。

3 启动服务

3.1 启动服务之前的准备

[root@centos7-01 ~]#mkdir /home/nfstestdir创建分享目录

[root@centos7-01 ~]#chmod 777 /home/nfstestdir赋予777权限,方便后面测试权限通过

检查监听端口,看看rpcbind监听端口状态

[root@centos7-01 ~]# netstat -lntp |grep 111

tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd

其实111端口就是rpcbind的服务,这里显示systemd并不代表rpcbind没被监听,

只需记住111端口就是rpcbind服务使用即可。

3.2 启动服务

#systemctl start rpcbind 启动rpc服务

#systemctl start nfs启动nfs服务

#systemctl enable rpcbind 开机启动rpc服务

#systemctl enable nfs开机启动nfs服务(服务端)



14.3 NFS配置选项

大纲

blob.png

先看看服务端配置的参数选项

[root@centos7-01 home]# cat /etc/exports

/home/nfstestdir 192.168.189.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

选项解释:

 rw 读写

 ro 只读

 sync 同步模式,内存数据实时写入磁盘(降低磁盘效率)

 async 非同步模式,表示把内存中的数据定期写入磁盘。(好处:保证磁盘效率,坏处:断电可能会丢失某部分数据)

 no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大

 root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户

 all_squash 客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户

 anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid


客户端挂载NFS

大纲

blob.png

1 安装nfs-utils包

#yum install -y nfs-utils

2 查看指定ip挂载服务状态,下面的ip为NFS服务端ip

[root@centos7-02 ~]# showmount -e 192.168.189.128

clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

报错提示,网络不通,通讯失败(原因:防火墙、rpc的端口没被监听)

2.1 关闭客户端与服务端的防火墙服务

[root@centos7-01 home]# systemctl stop firewalld

[root@centos7-01 home]# setenforce 0

[root@centos7-02 home]# systemctl stop firewalld

[root@centos7-02 home]# setenforce 0

2.2 关闭防火墙后,再次showmount

[root@centos7-02 ~]# showmount -e 192.168.189.128

Export list for 192.168.189.128:

/home/nfstestdir 192.168.189.0/24

关闭防火墙后正常输出,可以看到状态信息和服务端的NFS设置一样

3 挂载NFS

[root@centos7-02 ~]# mount -t nfs 192.168.189.128:/home/nfstestdir /mnt/

3.1 检查挂载

[root@centos7-02 ~]# df -h

文件系统                          容量  已用  可用 已用% 挂载点

/dev/sda3                          28G  1.1G   27G    4% /

devtmpfs                          483M     0  483M    0% /dev

tmpfs                             493M     0  493M    0% /dev/shm

tmpfs                             493M  6.8M  486M    2% /run

tmpfs                             493M     0  493M    0% /sys/fs/cgroup

/dev/sda1                         187M   97M   91M   52% /boot

tmpfs                              99M     0   99M    0% /run/user/0

192.168.189.128:/home/nfstestdir   28G  9.3G   19G   34% /mnt

3.2 在客户端创建文件测试

3.2.1 在客户端上创建文件

[root@centos7-02 ~]# cd /mnt/

[root@centos7-02 mnt]# touch client.test

[root@centos7-02 mnt]# ls -l

总用量 0

-rw-r--r--. 1 user5 user5 0 5月   9 16:14 client.test

3.2.2 在服务端检查文件是否被建立

[root@centos7-01 home]# cd /home/nfstestdir/

[root@centos7-01 nfstestdir]# ls -l

总用量 0

-rw-r--r-- 1 aming aming 0 5月   9 16:14 client.test

文件被创建,

但可以看到客户端创建的文件用户名和组都不同。

原因是:在服务端限定了uid和gid为1000,所以 客户端和服务端的用户和用户组是不同的。

服务端ID为1000的用户

[root@centos7-01 nfstestdir]# cat /etc/passwd |grep 1000

aming:x:1000:1000::/home/aming:/bin/bash

客户端ID为1000的用户

[root@centos7-02 mnt]# cat /etc/passwd |grep 1000

user5:x:1000:1000::/home/user5:/bin/bash

由此可以证明,NFS搭建成功。

猜你喜欢

转载自blog.51cto.com/13578154/2114478