nfs

nfs

nfs简介

nfs特点

  • NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源
  • 在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样
  • nfs适用于Linux与Unix之间实现文件共享,不能实现Linux与Windows间的文件共享功能
  • nfs是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字上
  • nfs服务只能基于IP进行认证

nfs的应用场景

nfs有很多实际应用场景,以下是一些常用的场景:

  • 多个机器共享一台CDROM或其他设备。这对于在多台机器中安装软件来说更加便宜与方便
  • 在大型网络中,配置一台中心NFS服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录
  • 不同客户端可在NFS上观看影视文件,节省本地空间
  • 在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下

nfs的体系组成

nfs体系至少有两个主要部分:

  • 一台nfs服务器
  • 若干台客户机

nfs工作机制

nfs是基于rpc来实现网络文件系统共享的。所以我们先来说说rpc

//NFS服务器端运行着四个进程:
    nfsd
    mountd
    idmapd
    portmapper

idmapd  //实现用户帐号的集中映射,把所有的帐号都映射为NFSNOBODY,但是在访问时却能以本地用户的身份去访问

mountd  //用于验证客户端是否在允许访问此NFS文件系统的客户端列表中,在则允许访问(发放一个令牌,持令牌去找nfsd),否则拒绝访问
        //mountd的服务端口是随机的,由rpc服务(portmapper)提供随机端口号

nfsd    //nfs的守护进程,监听在2049/tcp和2049/udp端口上
        //不负责文件存储(由NFS服务器本地内核负责调度存储),用于理解客户端发起的rpc请求,并将其转交给本地内核,而后存储在指定的文件系统上

portmapper  //NFS服务器的rpc服务,其监听于111/TCP和111/UDP套接字上,用于管理远程过程调用(RPC)

nfs管理

//安装
    yum -y install nfs-utils

//启动
    systemctl start rpcbind nfs-server

使用shoumount命令测试NFS服务器的输出目录状态

//语法:showmount [选项] [NFS服务器名称或地址]
//常用的选项有:
    -a  //显示指定NFS服务器的所有客户端主机及其所连接的目录
    -d  //显示指定的NFS服务器中已被客户端连接的所有输出目录
    -e  //显示指定的NFS服务器上所有输出的共享目录

使用shoumount命令测试NFS服务器的输出目录状态

mount -t nfs SERVER:/path/to/sharedfs /path/to/mount_point

在客户端设置开机自动挂载nfs:编辑/etc/fstab文件,添加如下格式的内容

SERVER:/PATH/TO/EXPORTED_FS /mnt_point nfs defaults,_netdev 0 0

检查输出目录所使用的选项

在配置文件/etc/exports中,即使在命令行中只设置了一两个选项,但在真正输出目录时,实际上还带有很多默认的选项。通过查看/var/lib/nfs/etab文件,可以看到具体使用了何选项

[root@yc1 ~]# cat /var/lib/nfs/etab

NFS安装与使用

#yc1
//安装nfs rpcbind
[root@yc1 ~]# yum -y install nfs-utils rpcbind

//关闭防火墙
[root@yc1 ~]# systemctl stop firewalld

//创建需要共享的abc文件
[root@yc1 ~]# mkdir -p /yqh/file
[root@yc1 ~]# cd /yqh/file/
[root@yc1 file]# touch abc

//配置NFS服务端配置文件,此文件用于定义共享的目录及权限 
[root@yc1 ~]# vim /etc/exports
/yc/file 192.168.23.141 *(rw)

//启动服务
[root@yc1 ~]# systemctl enable --now nfs-server
[root@yc1 ~]# systemctl enable --now rpcbind

#yc2
//安装showmount命令
[root@yc2 ~]# yum -y install showmount

//关闭防火墙
[root@yc2 ~]# systemctl stop firewalld

//显示NFS服务器列表
[root@yc2 ~]# showmount -e 192.168.23.140
Export list for 192.168.23.140:
/yc/file (everyone)

验证

[root@yc2 ~]# mount 192.168.100.1:/yqh /opt

//查看目录,挂载完成,共享文件成功
[root@yc2 ~]# cd /opt
[root@yc2 opt]# ls
file
[root@yc2 opt]# cd file/
[root@yc2 file]# ls
abc
[root@yc2 file]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               883M     0  883M   0% /dev
tmpfs                  901M     0  901M   0% /dev/shm
tmpfs                  901M  8.6M  892M   1% /run
tmpfs                  901M     0  901M   0% /sys/fs/cgroup
/dev/mapper/rhel-root   17G  1.5G   16G   9% /
/dev/sda1             1014M  179M  836M  18% /boot
tmpfs                  181M     0  181M   0% /run/user/0
/dev/sr0               7.9G  7.9G     0 100% /mnt
192.168.23.140:/yc      17G  2.1G   15G  13% /opt
posted @ 2021-04-01 23:43  吻如雪上霜  阅读(177)  评论(0编辑  收藏  举报