NFS文件共享

NFS(Network File System)网络文件系统,是一种通过网络方式共享文件系统的通用共享解决方案。目前NFS有三个版本,NFSv2,NFSv3,和NFSv4.其中NFSv2是最早的一个版本,被众多的操作系统支持,兼容性好。NFSv3,速度更快,单个文件大小更大,支持TCP协议等。NFSv4提供了有状态连接,更容易追踪连接状态,这个版本增加了安全性。而现在centos7使用的是是NFSv4版本。

首先在服务器端(192.168.0.3)进行安装,配置NFS服务

#####在服务端(192.168.0.3)#####

####安装NFS的相关软件####
yum -y install nfs-utils rpcbind

####创建一个用于NFS的共享账号,名为nsf####
useradd -u 1003 nfs

####在/var路径下创建一个名为web的目录,用于共享使用####
mkdir /var/web

####给所有用户对这个共享目录赋予可写的权限####
chmod a+w /var/web/

####修改NFS的配置文件(也可以使用vim编辑的方式,vim /etc/exports)####
echo "/var/web/ 192.168.0.2(rw,async,no_root_squash)" > /etc/exports
#####/var/web目录对于192.168.0.2这个IP的主机拥有的权限,也可以用*代替,*代表所有主机####
##### rw 代表读写####
##### async 代表允许NFS服务器在没有完全把数据写入硬盘前就向客户端回复成功的消息#####
##### no_root_squash 默认情况下NFS会自动屏蔽root用户的权限,而root_squash让客户端使用root账号访问NFS时,服务器系统默认会自动将root当做本地匿名用户,而no_root_squash可以防止服务器这样做并且保留root权限。#####

####配置好后启动NFS服务####
systemctl start nfs

在客户端(192.168.0.2)中通过 showmount 命令查看服务器的共享信息,并且创建用户,将服务器端的目录挂载到本地

#####在客户端(192.168.0.2)#####

#####查看共享信息(如果有报错信息说连接不上,可以关掉服务器和客户端的防火墙再查看)#####
showmount -e 192.168.0.3
 Export list for 192.168.0.3:
 /var/web   192.168.0.2

#####创建一个和服务器一样的用户,nfs#####
useradd -u 1003 nfs

#####在本地创建一个目录,用户挂载服务器端的共享目录#####
mkdir /var/web

#####将192.168.0.3的/var/web目录挂载到本地的/var/web下#####
mount 192.168.0.3:/var/web /var/web/

#####让所有用户对这个目录拥有写的权限#####
chmod a+w /var/web/

#####下面切换到本地的/var/web目录#####
cd /var/web/ 

#####创建一个文本文件,名为nfs.txt(当前是使用root用户创建的)#####
touch nfs.txt

#####切换到nfs用户#####
su nfs

#####在nfs用户下创建一个文本#####
touch test.txt

服务端,在/var/web目录下可以看到客户端所创建的文本,在服务器这端给这两个文本写入内容

#####在192.168.0.3,服务端#####

#####切换路径#####
cd /var/web

#####查看当前路径下的目录文件,可以看到客户端所创建的两个文本#####
ls
 nfs.txt  test.txt

#####向nfs.txt文本写入内容#####
echo "test 123 hhh " > nfs.txt

#####查看nfs.txt文本的内容#####
cat nfs.txt 
 test 123 hhh 

在客户端能看到服务端对文本写入的内容

#####在客户端(192.168.0.2)#####
cat nfs.txt 
 test 123 hhh 

#####现在NFS文件共享配置已经完成了#####

######NFS的相关命令工具######

exportfs

当NFS服务启动时,/usr/sbin/exportfs命令会自动启动并读取/etc/exports文件,手动运行exports命令允许root在不重启NFS服务的情况下选择共享或者取消部分共享目录

#####重新读取NFS配置文件(/etc/exports)的信息#####
exportfs -r

#####全部共享或者取消全部共享#####
exportfs -a

#####取消共享,和参数a一起使用可以取消全部共享文件系统#####
exportfs -u

#####显示共享的详细信息#####
exportfs -v
 /var/web      	
 192.168.0.2(rw,async,wdelay,hide,no_subtree_check,sec=sys,secure,no_root_squash,no_all_squash)

nfsstat(查看NFS共享状态)

#####在服务端(192.168.0.3)#####
####以列表的形式显示NFS的共享状态####
nfsstat -l
 nfs v4 server        total:      129 
 ------------- ------------- --------
 nfs v4 server         null:        1 
 nfs v4 server     compound:      128 

 nfs v4 servop        total:      260 
 ------------- ------------- --------
 nfs v4 servop       access:       10 
 nfs v4 servop        close:        3 
 nfs v4 servop  delegreturn:        1 
 nfs v4 servop      getattr:       45 
 nfs v4 servop        getfh:        6 
 nfs v4 servop       lookup:        5 
 nfs v4 servop         open:        3 
 nfs v4 servop        putfh:       49 
 nfs v4 servop    putrootfh:        2 
 nfs v4 servop         read:        1 
 nfs v4 servop      readdir:        2 
 nfs v4 servop      setattr:        3 
 nfs v4 servop  exchange_id:        1 
 nfs v4 servop   create_ses:        1 
 nfs v4 servop secinfononam:        1 
 nfs v4 servop     sequence:      126 
 nfs v4 servop reclaim_comp:        1 
#####在客户端(192.168.0.2)#####
####以列表的形式显示NFS共享状态####
nfsstat -l
 nfs v4 client        total:      124 
 ------------- ------------- --------
 nfs v4 client         read:        1 
 nfs v4 client         open:        2 
 nfs v4 client    open_noat:        1 
 nfs v4 client        close:        3 
 nfs v4 client      setattr:        3 
 nfs v4 client       fsinfo:        3 
 nfs v4 client       access:        7 
 nfs v4 client      getattr:       14 
 nfs v4 client       lookup:        5 
 nfs v4 client  lookup_root:        1 
 nfs v4 client     pathconf:        2 
 nfs v4 client      readdir:        2 
 nfs v4 client  server_caps:        5 
 nfs v4 client  delegreturn:        1 
 nfs v4 client   create_ses:        1 
 nfs v4 client  destroy_ses:        1 
 nfs v4 client  get_lease_t:       70 
 nfs v4 client    layoutget:        1 
 nfs v4 client       (null):        1 
#####在客户端(192.168.0.2)#####
####显示挂载信息####
nfsstat -m
 /var/web from 192.168.0.3:/var/web
  Flags:	
 rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,
 retrans=2,sec=sys,clientaddr=192.168.0.2,local_lock=none,addr=192.168.0.3

 

你可能感兴趣的:(Linux,Linux)