Linux网络文件共享服务2(基于NFC)

发布时间:2024年01月16日

目录

一、初步了解NFS

1、概念

2、工作原理

3、NFS优势和缺点

3.1优点

3.2缺点

二、NFS软件介绍

2.1 NFS共享配置文件格式

2.2 NFS工具

2.2.1 exportfs

2.2.2 showmount

2.2.3 mount.nfs

三、NFS服务部署

1、服务器部署配置

2、客户端配置

3、服务测试


一、初步了解NFS

1、概念

NFS:Network File System 网络文件系统,基于内核的文件系统。Sun 公司开发,通过使用 NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,基于RPC(Remote Procedure Call Protocol 远程过程调用)实现。

RPC采用C/S模式,客户机请求程序调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行

2、工作原理

如下图,当我们在nfs服务器设置好一个共享目录/data后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到本地。并且能够看到服务端/data的所有数据。因为挂载在本地的/data目录,其实就是服务器端的/data目录。如果服务器端配置的客户端只读,那么客户端就只能够只读。如果配置读写,客户端就能够进行读写。挂载后,NFS客户端查看磁盘信息命令:#df –h

NFS是通过网络来进行服务端和客户端之间的数据传输。两者之间要传输数据就要有想对应的网络端口来进行传输。NFS服务器到底使用什么网络端口来传输数据的,NFS服务器端其实是随机选择端口来进行数据传输。那NFS客户端又是如何知道NFS服务器端到底使用的是哪个端口呢?其实NFS服务器时通过远程过程调用(remote procedure call 简称RPC)协议/服务来实现的。也就是说RPC服务会统一管理NFS的端口,客户端和服务端通过RPC来先沟通NFS使用了哪些端口,之后再利用这些端口来进行数据的传输。

①首先服务器端启动RPC服务,并开启111端口
②服务器端启动NFS服务,并向RPC注册端口信息
③客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口
④服务端的RPC(portmap)服务反馈NFS端口信息给客户端。
⑤客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。

3、NFS优势和缺点

3.1优点

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

b.简单容易上手

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

3.2缺点

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

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

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

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

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

二、NFS软件介绍

软件包:nfs-utils(NFS主程序,包括服务器和客户端相关工具,CentOS8 最小化安装时默认没有安装)

相关软件包:rpcbind(必须,RPC主程序),tcp_wrappers

Kernel支持:nfs.ko

端口:2049(nfsd), 其它端口由portmap(111)分配

NFS服务主要进程:

rpc.nfsd最主要的NFS进程,管理客户端是否可登录
rpc.mountd挂载和卸载NFS文件系统,包括权限管理
rpc.lockd非必要,管理文件锁,避免同时写出错
rpc.statd非必要,检查文件一致性,可修复文件
说明:CentOS 6 开始portmap进程由rpcbind代替

日志:/var/lib/nfs/

NFS配置文件:

/etc/exports
/etc/exports.d/*.exports

2.1 NFS共享配置文件格式

/dir        主机1(opt1,opt2)     主机2(opt1,opt2)...

格式说明:

  • 以#开始的行为注释

  • 主机格式:

anonymous:表示使用*通配所有客户端
单个主机:ipv4,ipv6,FQDN

IP networks:两种掩码格式均支持
172.18.0.0/255.255.0.0
172.18.0.0/16

wildcards:主机名通配,例如:*.kgc.com,IP不可以


netgroups:NIS域的主机组,@group_name

常见参数

默认选项(ro,sync,root_squash,no_all_squash)

ro,rw只读和读写
async异步,数据变化后不立即写磁盘,先写入到缓冲区中,过一段时间再写入磁盘,性能高,安全性
sync(1.0.0后为默认)同步,数据在请求时立即写入共享存储磁盘,性能低,安全性高
root_squash

(默认)远程root映射为nfsnobody,UID为65534,

? CentOS8 为nobody,CentOS 7以前的版本为nfsnobody

no_root_squash远程root映射成NFS服务器的root用户
all_squash所有远程用户(包括root)都变成nfsnobody,CentOS8 为nobody
no_all_squash?(默认)保留共享文件的UID和GID
anonuid和anongid指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使用

2.2 NFS工具

2.2.1 exportfs

exportfs:可用于管理NFS导出的文件系统

常见选项:

-v? ? ?#查看本机所有NFS共享
-r? ? ?#重读配置文件,并共享目录
-a?? ?#输出本机所有共享
-au? #停止本机所有共享

2.2.2 showmount

常见用法:

showmount -e hostname ?

[root@centos7 ~]#showmount -e 10.0.0.8
Export list for 10.0.0.8:
/data/wordpress *

2.2.3 mount.nfs

客户端NFS挂载

NFS相关的挂载选项:man 5 nfs

fg? ? ? ? ? ? ?#(默认)前台挂载
bg? ? ? ? ? ? #后台挂载
hard? ? ? ? #(默认)持续请求
soft? ? ? ? ?#非持续请求
intr? ? ? ? ? #和hard配合,请求可中断
rsize? ? ? ?#和wsize 一次读和写数据最大字节数,rsize=32768
_netdev? #无网络连接不挂载
vers? ? ? ? #指定版本,客户端centos8默认4.2 ,centos7默认4.1 centos6默认4.0

三、NFS服务部署

1、服务器部署配置

1.检查并安装软件
rpm -q rpcbind nfs-utils
yum install -y rpcbind nfs-utils
2.创建共享目录
vim /etc/exports  //NFS的配置文件,默认文件内容为空(无任何共享)
/opt 192.168.80.0/24(rw,sync,no_root_squash)
//设置/opt为共享目录,允许192.168.48.0网段的IP地址主机访问
3.启动服务
systemctl start rpcbind  //一定要先开启rpcbind服务
systemctl start nfs      //如服务已启动,更改完配置信息后需要重启服务

①检查并安装软件

②创建共享目录

③启动服务

④查看服务器的共享目录及网段

⑤查看服务器的nfs详细信息

2、客户端配置

①检查并安装软件,开启服务

rpm -q rpcbind nfs-utils
yum install -y rpcbind nfs-utils
systemctl start rpcbind
systemctl start nfs

②将共享目录挂载到本地

mount -t nfs 192.168.80.111:/opt /mnt

3、服务测试

①进入服务器/opt文件夹下创建文件

②客户端进入挂载文件夹/mnt,查看

文章来源:https://blog.csdn.net/weixin_58376680/article/details/135607186
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。