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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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架构

技术分享图片

应用场景:

A B C为别是三台机器

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

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


NFS原理图

技术分享图片

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

rpcbind监听111端口

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


14.2 NFS服务端安装配置

大纲

技术分享图片

准备工作:

2台或以上linux机器 

centos7-01(192.168.189.128)客户端

centos7-02(192.168.189.129)服务端

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

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

[[email protected] ~]# yum install -y nfs-utils rpcbindc

[[email protected] ~]# yum install -y nfs-utils rpcbindc

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

[[email protected] ~]#vim /etc/exports //加入如下内容

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

格式解释:

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

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

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

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

3 启动服务

3.1 启动服务之前的准备

[[email protected] ~]#mkdir /home/nfstestdir创建分享目录

[[email protected] ~]#chmod 777 /home/nfstestdir赋予777权限,方便后面测试权限通过

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

[[email protected] ~]# 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配置选项

大纲

技术分享图片

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

[[email protected] 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

大纲

技术分享图片

1 安装nfs-utils包

#yum install -y nfs-utils

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

[[email protected] ~]# showmount -e 192.168.189.128

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

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

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

[[email protected] home]# systemctl stop firewalld

[[email protected] home]# setenforce 0

[[email protected] home]# systemctl stop firewalld

[[email protected] home]# setenforce 0

2.2 关闭防火墙后,再次showmount

[[email protected] ~]# showmount -e 192.168.189.128

Export list for 192.168.189.128:

/home/nfstestdir 192.168.189.0/24

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

3 挂载NFS

[[email protected] ~]# mount -t nfs 192.168.189.128:/home/nfstestdir /mnt/

3.1 检查挂载

[[email protected] ~]# 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 在客户端上创建文件

[[email protected] ~]# cd /mnt/

[[email protected] mnt]# touch client.test

[[email protected] mnt]# ls -l

总用量 0

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

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

[[email protected] home]# cd /home/nfstestdir/

[[email protected] nfstestdir]# ls -l

总用量 0

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

文件被创建,

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

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

服务端ID为1000的用户

[[email protected] nfstestdir]# cat /etc/passwd |grep 1000

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

客户端ID为1000的用户

[[email protected] mnt]# cat /etc/passwd |grep 1000

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

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

以上是关于14.1-14.3 NFS介绍,服务端安装,客户端挂载NFS的主要内容,如果未能解决你的问题,请参考以下文章

53次课( NFS介绍 NFS服务端安装配置NFS配置选项)

14.1 NFS介绍14.2 NFS服务端安装配置14.3 NFS配置选项

NFSNFS介绍 NFS服务端安装配置配置选项exportfs命令NFS客户端问题

NFS介绍 NFS服务端安装配置 NFS配置选项

NFS介绍NFS服务端安装配置NFS配置选项

NFS介绍NFS服务端安装配置NFS配置选项