nfs网络文件系统应用

导读:本篇文章讲解 nfs网络文件系统应用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

概述

NFS(NetworkFileSystem)即网络文件系统,是Linux/Unix支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。是在类Unix系统间实现磁盘文件共享的一种方法。一般用来存储共享图片、视频等静态数据。

工作原理

NFS是通过网络来进行服务端和客户端之间的数据传输。两者之间要传输数据就要有想对应的网络端口来进行传输。NFS服务器到底使用什么网络端口来传输数据的,NFS服务器端其实是随机选择端口来进行数据传输。那NFS客户端又是如何知道NFS服务器端到底使用的是哪个端口呢?其实NFS服务器通过远程过程调用(remote procedure call 简称RPC)协议/服务来实现的。也就是说RPC服务会统一管理NFS的端口,客户端和服务端通过RPC来先沟通NFS使用了哪些端口,之后利用这些端口进行数据传输。
客户端与服务端通讯过程过程:
首先RPC启运后要开启111端口,再启动NFS服务时会随机生成一些端口,RPC将记录NFS的这些端口号,在有客户端访问NFS服务器时,RPC将记录的端口号推送给客户端,客户端然后用得到的端口号向NSF服务器进行文件的传输

nfs网络文件系统应用

nfs网络文件系统应用 

 

安装NFS及RPC(默认已安装)

yum -y insatll rpcbind
yum -y install nfs-utils

设置开机自启
systemctl enable rpcbind
systemctl enable nfs-server
启动NSF,先启动RPC服务
systemctl start rpcbind
systemctl start nfs-server

配置

NFS服务的配置文件是:/etc/exports  如果没有则自己创建
文件内容格式:  共享目录 客户端(访问权限,用户映射,其他) 客户端2 (访问权限,用户映射,其他)
a 共享目录:是指NFS服务器共享给客户机使用的目录
b 客户端:客户端是指网络中可以访问这个NFS共享目录的计算机
客户端常用的指定方式:
指定IP地址的主机:192.168.1.100
指定子网中的所有主机:192.168.1.0  或192.168.1.*
指定域名的主机:www.aaa.com
指定域中的所有主机:*.aaa.com
所有主机:*

设置输出目录的访问权限、用户映射等
访问权限选项:
只读:ro    读写:rw

用户映射选项:
root_squash:将root用户的访问映射为匿名(nfsnobody) 用户uid和gid;(默认生效)
no_root_squash:保留管理员权限,以服务器管理员的权限管理
all_squash: 将远程访问的用户及所属组都映射为指定的uid、gid的匿名用户
anonuid=xxx: 将远程访问的所有用户都指定为uid的匿名用户
anongid=xxx: 将远程访问的所有用户都指定为gid的匿名组账户

其它选项:
sync: 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一至性(同步)
async:将数据先保存在内存缓冲区中,必要时才写入磁盘(异步)

相关命令

重新读取配置文件
service nsf reload 

查看共享资源   
rpcinfo -p 192.168.85.20     查看在服务器192.168.85.20中,rpc服务管理了哪些端口及程序
showmount -e 本机IP   NFS服务器端查看有哪些共享的资源
showmount -e  192.168.85.20     客户端查看NFS服务器192.168.85.20有哪些共享资源

卸载:
1、卸载客户端的挂载目录
umount 挂载点
2、停止服务器端的共享
exportfs -au

挂载:
自动挂载
#vi /etc/fstab
格式:<server>:</remote/export> </local/directory> nfs  <options> 0 0
# 192.168.85.22:/testnfs /testnfs nfs defaults,vers=3 0 0
#mount -a

exportfs
格式:exportfs [-aruv]
-a 全部挂载或卸载 /etc/export 中的内容
-r 重新读取/etc/export中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab
-u 卸装单一目录(和-a一起使用为卸载所有/etc/export文件中的目录)
-v 在export的时候,将详细的信息输出到屏幕上
例:
#exportfs -au   卸载所有共享目录
#exportfs -rav    重新共享所有目录并输出详细信息

配置实例,NFS ip为192.168.85.22为例

将NFS服务器的/testnfs共享给192.168.85.33客户端 rw权限

  • 创建testnfs目录 
    # mkdir  /testnfs
    #chmod o+w /testnfs
  • b、修改exports文件   
    # vi /etc/exports
    #将根目录下的testnsf共享给ip为192.168.85.33的主机可读写访问
        配置1:/testnfs 192.168.85.33(rw)    默认为root_squash
        配置2:/testnfs 192.168.85.33(rw,no_root_squash)    操作文件时,都以root的身份来操作
        配置3:/testnfs 192.168.85.33(rw,all_squash,anonuid=1000,anongid=1000)    所有客户端操作文件时,都以用户id为1000、组id为1000的身份来操作,服务器事先指定一个id号来创建用户,useradd -u 1000
  • c 、重启nfs服务
    #systemctl restart nfs-server 或 service nfs reload
  • d、在客户端,创建一个目录,并挂nfs共享目录
    #mkdir  /testnfs
    #mount 192.168.85.22:/testnfs -t nfs -o vers=3

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/71241.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!