一、什么是nfs文件系统共享?

NFS(Network FileSystem)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源
在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样

二、nfs文件系统的优点?

节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。
这可以减少整个网络上可移动介质设备的数量。
特点:用的时候挂载,不用的时侯自己卸载

客户端与服务端连接步骤:

  • showmount #客户端查看共享端口
  • rpc-bind #服务端告诉客户端(showmount)有没有共享端口
  • mountd #服务端提供(showmount)共享端口在那里
  • nfs #服务端提供(showmount)共享端口能不能访问,限制共享端口被谁访问,能不能访问

三、搭建实验环境

1、重置虚拟机server和desktop,保持实验环境纯净

电脑nfs共享 nfs共享软件_客户端


2、在真机中挂载与虚拟机版本相同的镜像7.0

电脑nfs共享 nfs共享软件_电脑nfs共享_02


3、设置虚拟机server网络

server做服务端

ip为172.25.254.176

电脑nfs共享 nfs共享软件_客户端_03


电脑nfs共享 nfs共享软件_客户端_04


电脑nfs共享 nfs共享软件_客户端_05


4、修改yum源地址

真机76上挂载了7.0版本的镜像,可供使用

电脑nfs共享 nfs共享软件_客户端_06


电脑nfs共享 nfs共享软件_电脑nfs共享_07


5、desktop做客户端

设置shell框颜色,用于区分客户端与服务端

电脑nfs共享 nfs共享软件_vim_08


6、设置虚拟机desktop网络

ip为172.25.254.20

电脑nfs共享 nfs共享软件_vim_09


电脑nfs共享 nfs共享软件_vim_10


电脑nfs共享 nfs共享软件_电脑nfs共享_11


7、配置desktop虚拟机yum源

电脑nfs共享 nfs共享软件_客户端_12


电脑nfs共享 nfs共享软件_电脑nfs共享_13


四、nfs文件系统服务端与客户端的部署

服务端:

【1】

yum search nfs #寻找nfs安装包
yum install nfs-utils -y #下载文件系统共享软件
systemctl start nfs-server #开启nfs文件共享服务
systemctl enable nfs-server #开机自启动

电脑nfs共享 nfs共享软件_电脑nfs共享_14


电脑nfs共享 nfs共享软件_服务端_15


【2】

firewall-cmd --permanent --add-service=nfs   #限制端口访问
firewall-cmd --permanent --add-service=rpc-bind   #服务端给客户端提供有没有端口
firewall-cmd --permanent --add-service=mountd   #服务端给客户端提供共享端口位置
firewall-cmd --reload
firewall-cmd --list-all

电脑nfs共享 nfs共享软件_服务端_16


【3】

mkdir /yan_nfs
vim /etc/exports #共享存在的目录
/yan_nfs *(sync) #用sync这种方式将目录共享给所有人
exportfs -rv #刷新

注:

sync 硬访问,连接不到则不断访问

anyc 尝试三次,连接不到就自动断开

电脑nfs共享 nfs共享软件_vim_17


电脑nfs共享 nfs共享软件_电脑nfs共享_18


【4】

systemctl restart nfs  #重启nfs服务

客户端:
【1】

showmount -e 172.25.254.176 #查看176共享端口能否使用

电脑nfs共享 nfs共享软件_服务端_19


【2】

yum install autofs -y  #客户端下载nfs文件系统连接服务
systemctl start autofs.service

电脑nfs共享 nfs共享软件_服务端_20


电脑nfs共享 nfs共享软件_服务端_21


【3】

cd /net/172.25.254.176   #/net为autofs默认生成的目录,里边有所有查看过nfs共享系统的主机
ls
cd yan_nfs
ls

#数据同步性较强,不需要刷新

电脑nfs共享 nfs共享软件_vim_22


电脑nfs共享 nfs共享软件_客户端_23


电脑nfs共享 nfs共享软件_电脑nfs共享_24


【4】

df #此时已自动挂载上
cd #退出
df #默认300s后自动卸载

电脑nfs共享 nfs共享软件_服务端_25


电脑nfs共享 nfs共享软件_电脑nfs共享_26


vim /etc/sysconfig/autofs

原因:默认退出后持续挂载时间300s

电脑nfs共享 nfs共享软件_电脑nfs共享_27


【5】

vim /etc/sysconfig/autofs
timeout=3 #修改退出自动卸载时间
systemctl restart autofs.service
df #3秒后自动卸载

电脑nfs共享 nfs共享软件_电脑nfs共享_28


电脑nfs共享 nfs共享软件_电脑nfs共享_29


2、修改挂载点

客户端:

主策略文件 /etc/auto.master

【1】

vim /etc/auto.master
14 /mnt  /etc/auto.nfs
systemctl restart autofs

注:

/mnt #最终挂载点的上层目录

/etc/auto.nfs #子策略文件,挂载方式。自己建立

电脑nfs共享 nfs共享软件_客户端_30


【2】

vim /etc/auto.nfs
text 172.25.254.119:/yan_nfs
systemctl restart autofs

注:

text #最终挂载点

172.25.254.119:/yan_nfs #挂载点上挂载的设备

电脑nfs共享 nfs共享软件_vim_31


测试:

cd /mnt/text
df #此时设备已挂载到/mnt/text
mount
    rw,vers=4 #读写挂载,挂载版本nfs4.0

电脑nfs共享 nfs共享软件_服务端_32


电脑nfs共享 nfs共享软件_电脑nfs共享_33


2、修改挂载参数

(1)sync数据写完后以只读rw方式传给客户端

【1】

vim /etc/auto.master
  14 /mnt /etc/auto.nfs
systemctl restart autofs

【2】

vim /etc/auto.nfs
  text -ro,vers=3 172.25.254.119:/yan_nfs
systemctl restart autofs

注:-ro,vers=3 #挂载参数,只读挂载,版本3.0

电脑nfs共享 nfs共享软件_电脑nfs共享_34

测试:

cd /mnt/nfs
mount
     ro,vers=3 #nfs3.0版本

电脑nfs共享 nfs共享软件_电脑nfs共享_35


电脑nfs共享 nfs共享软件_电脑nfs共享_36


2、修改共享参数

服务端:

【1】

vim /etc/exports
  /nfs_ll *(rw,sync) #读写共享

电脑nfs共享 nfs共享软件_电脑nfs共享_37


【2】

mkdir /nfs_ll
ls -ld /nfs_ll
drwxr-xr-x root root
#读写共享 ,只对服务端超级用户可写,客户端不可写
exportfs -rv

客户端:
【1】

showmount -e 172.25.254.176

电脑nfs共享 nfs共享软件_服务端_38


【2】

vim /etc/auto.master
  15 /mnt/ll /etc/auto.ll
vim /etc/auto.ll
  nfs 172.25.254.119:/nfs_ll
systemctl restart autofs

电脑nfs共享 nfs共享软件_vim_39


电脑nfs共享 nfs共享软件_vim_40


【3】

cd /mnt/ll/nfs  #进入挂载目录
df
mount #读写方式挂载
touch file #错误,文件系统不允许,客户端超级用户不可写

电脑nfs共享 nfs共享软件_vim_41


电脑nfs共享 nfs共享软件_vim_42


电脑nfs共享 nfs共享软件_客户端_43


2、修改挂载参数,使客户端可写

vim /etc/exports
/yan_nfs *(sync) 172.25.254.20(rw,anonuid=1001,anongid=1001,no_root_squash)

注:

async

实时同步

sync

完成服务后共享

ro

只读挂载

rw

读写挂载

anonuid

转换超级用户身份为指定的westos

anongid

转换超级用户组为指定的westos

no_root_squash

客户端超级用户挂载时不做身份转换,沿用客户器端的超级用户(包括客户端普通用户沿用自己身份,在服务端查看时显示的是与客户端用户建立文件时使用的用户相同id对应的用户)

all-squash

客户端所有用户建立文件均使用服务端设置的用户

注:不写身份转换条件客户建立文件默认建立的文件所有人所有组属于服务端设置用户
【1】
服务端:

vim /etc/exports
/yan_nfs *(sync) 172.25.254.20(rw)
exportfs -rv
chmod 777 /yan_nfs

电脑nfs共享 nfs共享软件_客户端_44


电脑nfs共享 nfs共享软件_服务端_45


客户端:

vim /etc/auto.nfs
  text -rw,ver=3 172.25.254.176:/yan_nfs
systemctl restart autofs
cd /mnt/text
touch testfile1  #新建文件
ll testfile1    #查看文件属性
  nfsnobody nfsnobody

电脑nfs共享 nfs共享软件_电脑nfs共享_46


电脑nfs共享 nfs共享软件_客户端_47


电脑nfs共享 nfs共享软件_客户端_48


【2】

服务端:

id westos
vim /etc/exports
/yan_nfs *(sync) 172.25.254.20(rw,anonuid=1001,anongid=1001)  #20主机用户登陆时可读写并且转换身份为id为服务器端1001的用户
exportfs -rv   #刷新

电脑nfs共享 nfs共享软件_服务端_49


电脑nfs共享 nfs共享软件_电脑nfs共享_50


客户端:

cd /mnt/ll
touch textfile2
ll textfile2
  1001 1001

电脑nfs共享 nfs共享软件_服务端_51


服务端:

cd /yan_nfs
ll

电脑nfs共享 nfs共享软件_服务端_52


【3】

服务端:

vim /etc/exports
/westos_nfs *(sync) 172.25.254.219(rw,anonuid=1001,anongid=1001,no_root_squash)#客户端超级用户挂载时不做身份转换,沿用客户器端的超级用户(包括客户端普通用户沿用自己身份,在服务端查看时显示的是与客户端用户建立文件时使用的用户相同id对应的用户)|
exportfs -rv

电脑nfs共享 nfs共享软件_客户端_53

电脑nfs共享 nfs共享软件_服务端_54


客户端:

cd /mnt/westos
touch textfile3
ll textfile3
root root
su - student
cd /etc/text
touch textfile4
ll

#客户端普通用户不能挂载设备,使用nfs挂载时默认成为超级用户,所建立文件属于服务端student

电脑nfs共享 nfs共享软件_客户端_55


电脑nfs共享 nfs共享软件_电脑nfs共享_56


服务端:

电脑nfs共享 nfs共享软件_服务端_57


【4】

服务端:

vim /etc/exports   #修改挂载策略
/westos_nfs *(sync) 172.25.254.219(rw,anonuid=1001,anongid=1001,all_squash)#客户端所有用户建立文件均使用服务端设置的用户,与不写all_squash时效果相同
exportfs -rv

电脑nfs共享 nfs共享软件_vim_58


客户端:

cd /etc/text
touch textfile6
ll
su - student  #切换到student用户
cd /etc/text   #进入共享目录
touch textfile6
ll

电脑nfs共享 nfs共享软件_电脑nfs共享_59


电脑nfs共享 nfs共享软件_电脑nfs共享_60


服务端查看:

电脑nfs共享 nfs共享软件_服务端_61