(文章目录)


NFS概述

NFS(Network File System)是一种分布式文件系统,可以使多个计算机之间共享文件,其基本工作原理是通过将文件系统挂载到远程服务器来实现。NFS最初由Sun公司开发,现在已经成为了一种在Unix和Linux操作系统中广泛使用的文件系统。


NFS的优点: 1.可以实现异构网络环境的文件共享,支持多种操作系统平台。 2.对于文件的读写速度较快,能够提供高效的数据访问。 3.NFS的管理和维护比较简单,易于部署和使用。 4.能够实现透明化的文件读写操作,用户无需关注网络上文件的具体存储位置和存储细节。

NFS的缺点: 1.NFS的安全性并不是很好,传输数据时容易被窃听和篡改,如果要增强其安全性需要额外的安全措施。 2.在跨越网络连接时,NFS的性能可能会受到影响,例如延迟和带宽限制等。 3.如果NFS服务器故障或者网络连接中断,则客户端可能无法访问文件。 4.NFS不支持文件锁定,这会导致多个客户端同时写入同一个文件时出现冲突等问题。


总体来说,NFS是一种高效简单的文件系统,它为不同操作系统平台上文件共享提供了方便。然而,对于安全、性能和可靠性等问题需要进行详细的分析和解决。

搭建步骤

一.下载nfs软件

yum install nfs-utils -y

二.启动nfs服务

service nfs start

三.编写配置文件

# vim /etc/exports
/web    192.168.10.0/255.255.255.0(rw,all_squash,sync)

/web为共享目录,ip为允许来访问的网段

rw:可读写,ro:只读(raed only)

all_squash:对所有访问的用户都视为普通用户,root_squash:当NFS客户端来访问的是root,将其映射为匿名用户

sync:同步读入内存和磁盘,asnyc:先将数据保存在内存,有空时再写入磁盘,效率更高,但可能丢失数据

四.创建共享文件并添加一些文件

[root@web1 /]# mkdir web
[root@web1 /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  web
[root@web1 /]# cd web
[root@web1 web]# mkdir zh54
[root@web1 web]# cd zh54/
[root@web1 zh54]# vim first.hmtl

五.开启自启和刷新服务

[root@web1 zh54]# service nfs restart	# 重启服务
Redirecting to /bin/systemctl restart nfs.service
[root@web1 zh54]# exportfs -rv		# 刷新输出文件的列表,重启和刷新列表用一个即可
exporting 192.168.10.0:/web
# service firewalld stop	# 临时关闭防火墙
# systemctl disable firewalld	# 永久关闭防火墙
[root@web1 web]# echo "service nfs start">>/etc/rc.local 	# 开启自动启动nfs服务

六.客户机配置

下载nfs工具并将html目录挂载到NFS服务器的web目录下

yum install nfs-utils -y
mount 192.168.10.142:/web /usr/local/zh54/html	# mount 源路径文件(远程机器上)	挂载点(本机上)

用df命令查看挂载情况

[root@web1 zh54]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root 17811456 1611280 16200176   10% /
devtmpfs                  920416       0   920416    0% /dev
tmpfs                     932640       0   932640    0% /dev/shm
tmpfs                     932640    9760   922880    2% /run
tmpfs                     932640       0   932640    0% /sys/fs/cgroup
/dev/sda1                1038336  145060   893276   14% /boot
tmpfs                     186528       0   186528    0% /run/user/0
192.168.10.142:/web     17811456 1574400 16237056    9% /usr/local/zh54/html	# 如此显示即挂载成功

此时访问html目录相当于访问nfs服务器的web目录,即html目录的指针指向了web,当umount时,指针重新指向原html目录下的文件

[root@web1 zh54]# cd html/
[root@web1 html]# ls
zh54
[root@web1 html]# cd zh54/
[root@web1 zh54]# ls
first.hmtl
[root@web1 zh54]# cat first.hmtl 
hello zh54!

七.开机自动挂载

第一种方法:将挂载目录写入到/etc/rc.local文件里

[root@web1 html]# echo "mount 192.168.10.142:/web /usr/local/zh54/html">>/etc/rc.local
[root@web1 html]# chmod +x /etc/rc.d/rc.local

第二种方法:修改/etc/fstab文件

[root@web1 etc]# vim /etc/fstab 
192.168.10.142:/web /usr/local/zh54/html        nfs     defaults        0 0

linux系统开机会根据/etc/fstab文件里的内容进行挂载磁盘分区 ——file system table

192.168.10.142:/web 	/usr/local/zh54/html        nfs     defaults        0 				0
远程源文件				本地挂载点			文件系统类型		挂载选项默认		是否支持dump备份	开机是否检查分区文件系统	

权限

服务器远程访问受到两种权限的限制:exports里的共享权限、linux普通用户对文件的操作权限,两个权限都拥有时才能进行相应的操作

当exports里指定了all_squash属性,则所有的远程访问用户都会使用一个nfsnobody的匿名用户进行操作,而该用户权限默认仅为普通用户

[root@web1 web]# tail -1 /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin