NFS服务介绍

1. NFS服务介绍

1.1什么是NFS服务

NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样,也就是说客户端PC可以挂载NFS服务器所提供的目录并且挂载之后这个目录看起来如同本地的磁盘分区一样,可以使用cp、cd、mv、rm及df等与磁盘相关的命令。

1.2 NFS服务的优缺点

1.2.1优点

a.节省本地存储空间将常用的数据存放在一台服务器可以通过网络访问

b.简单容易上手

c.方便部署非常快速,维护十分简单

1.2.2缺点

a.局限性容易发生单点故障,及server机宕机了所有客户端都不能访问

b.在高并发下NFS效率/性能有限

c.客户端没用用户认证机制,且数据是通过明文传送,安全性一般(一般建议在局域网内使用)

d.NFS的数据是明文的,对数据完整性不做验证

e.多台机器挂载NFS服务器时,连接管理维护麻烦

2. NFS服务工作原理

2.1 NFS原理简单介绍

NFS Server服务器上设定/data目录被分享,而客户端可以通过internet将/data目录挂载到本地的挂载点(常用mnt)后,客户端就可以进入挂载点目录进行文件的读写。NFS客户端所开放的端口是随机的我们不知道,那该怎么办呢?那是不是就不能进行数据传输了呢?

2.2 RPC简单介绍

2.2.1什么是rpc服务

RPC(Remote Procedure Call)即远程过程调用。RPC 最主要的功能就是在指定每个 NFS 功能所对应的 port number ,并且回报给客户端,让客户端可以连结到正确的port上去。

2.2.2 RPC服务原理

a.执行顺序:1(注册端口)--à2(达成协议)-à3(直接建立联系)--à4(达成协议)--à5(建立连接)

b.那为啥rpc能够找到对应的port呢?这是因为当服务器在启动NFS时会随机取用数个port,并且主动的向RPC注册,因此RPC可以知道每个NFS的port对应的NFS功能,然后RPC又是固定使用port111来监听客户端的需求并汇报客户端的正确的port。

2.2.3 portmap

功能:主要是把RPC程序号转化为Internet的端口号。

特点:只在第一次建立连接时候帮助网络应用程序找到正确的port,当当双方正确连接时,端 口就和应用绑定,portmap就无用。相当于媒婆。

                   RPC:Remote Procedure Call,远程过程调用,如NFS

如:window—服务--

如打印机,是由你计算机上对应的程序去调用打印机上相应的程序来进行工作的。

二、部署

1、进程

rpc.nfsd        NFS守护进程

rpc.mountd        管理文件系统和权限

portmap        端口映射

uid,gid

2、常用目录和文件

/etc/exports

/usr/sbin/exportfs

/usr/sbin/showmount

/var/lib/nfs/*tab

etab        记录NFS分享出来的目录的完整权限设定值

xtab        记录曾经链接到此NFS主机的相关客户端数据

3、配置文件

/etc/exports

格式

输出目录        客户端 选项        [访问权限,用户映射,其他]   

输出目录:        需要共享的目录路径

客户端:        服务的用户对象

选项:        共享的权限,紧跟客户端列

例:

cat /etc/exports

/test *(ro)

#共享/test目录,*所有用户(ro)权限为只读权限

4、客户端

指定ip地址的主机:192.168.171.144

指定子网中的所有主机:192.168.171.0/24, 192.168.171.0/255.255.255.0

指定域名的主机:www.baidu.com

指定域中的所有主机:*.baidu.com

所有主机:*                                                张三                      李四 S

5、选项                                               root   

访问权限选项:

ro        只读

rw        读写

A

/test   

用户映射选项:(张三用了李四家的nfs服务,但是张三用root的身份在李四上面创建了一个文件,这个文件默认的所属用户所属组都是root,但是对于李四来说他可能将这个文件认为是自己服务端上的root创建的文件所以张三创建的这个root用户的文件在nfs上会默认映射为匿名用户和组。还有如果张三用redhat用户在李四上创建但是李四端就没有redhat用户,默认创建就不会显示为redhat了。)

no_all_squash                      对普通用户不映射(默认设置)

all_squash                将所有普通用户和组映射为匿名用户和组

root_squash                将root用户和组映射为匿名用户和组(默认设置)

no_root_squash        对root用户和组不映射

anonuid=xxx                将用户映射为服务器上的指定UID

anongid=xxx                将用户组映射为服务器上的指定GID

其他选项:

secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);

insecure:允许客户端从大于1024的tcp/ip端口连接服务器;

sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

async:将数据先保存在内存缓冲区中,必要时才写入磁盘;

wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);

no_wdelay:若有写操作则立即执行,应与sync配合使用;

subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);

no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

案例一:

服务端

配置#vim /etc/exports

/data *(ro)                        :wq

#mkdir /data

配置完成后重启服务

#systemctl restart nfs

用以下命令来查看共享的nfs

#showmount -e 192.168.221.250  

Export list for 192.168.140.250:

/data *

关闭防火墙

#systemctl stop firewalld

客户端

#mount (服务端地址)192.168.140.250:/data /mnt

服务端

[root@r ~]# exportfs -r  重新读一遍

#ehco haha >> /data/haha

客户端

[root@hehe mnt]# ll /mnt

总用量 4

-rw-r--r--. 1 root root 5 2月  11 10:28 haha

注意:在客户端如果要删除haha文件需要在服务端的主配置文件更改为

data *(rw)

将ll -d /data 权限更改为如下

[root@r ~]# ll -d /data

drwxr-xrwx. 2 root root 17 2月  11 10:28 /data

然后在客户端删除/mnt/haha

在客户端写入文件

[root@hehe mnt]# echo hehe >> /mnt/hehe.txt

[root@hehe mnt]# ll /mnt

总用量 4

-rw-r--r--. 1 nfsnobody nfsnobody 5 2月  11 10:55 hehe.txt   root用户直接映射为匿名用户

如果是在客户端用普通用户创建文件在/mnt 在服务端查看/data的权限是客户端普通用户的uid,gid 如果在服务端有与客户端相对应的uid gid就显示用户名。

/data  *(rw,all_squash)

exportfs -r

练习:

架设一台NFS服务器,并按照以下要求配置

1、开放/nfs/shared目录,供所有用户查询资料

2、开放/nfs/upload目录作为192.168.171.0/24网段的数据上传目录,

并将所有用户及所属的用户组映射为nfs-upload,其UID和GID均为210

3、将/home/tom目录仅共享给192.168.171.144这台主机,并只有用户tom可以完全访问该目录

注意:tom是一个用户目录,并且在客户端创建tom用户一定与服务端的tom用户的uid/gid保持一致。

#案例配置示例

[root@localhost tom]# cat /etc/exports

/nfs/shared                *(ro)

/nfs/upload                192.168.171.0/24(rw,all_squash,anonuid=201,anongid=201)

/home/tom                192.168.171.144(rw)

B

/home/tom    700

Tom 1003 1003    

333

Nfs:     333

A                   B

Root   123           root   haha

B

Mount /test/

A

/3

abc 1003 1003

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

the uzi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值