网络文件系统 | NFS 服务

这篇具有很好参考价值的文章主要介绍了网络文件系统 | NFS 服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

NFS存储服务

定义

NFS即网络文件系统,是一种通过网络方式共享文件系统的通用共享解决方案。

版本对比

Centos 7 版本默认使用版本v4,最小化安装的应该没有。

更多的版本对比可以参考官方网站的FAQ:http://nfs.sourceforge.net/

版本 特点
NFSv2 被众多的操作系统支持,兼容性会更好
NFSv3 更多的特点:更快的速度、更大的单个文件大小、更多便于排错的错误及信息、对TCP/IP协议的支持…
NFSv4 提供有状态的连接,易被追踪连接状态,增强安全性…

NFS原理

nfs 文件锁,Linux系统运维,运维,linux,云计算

  • 服务端首先启动RPC服务,开启111端口

  • 服务端再启动NFS服务,并向RPC注册端口信息(每次启动NFS服务的端口不固定)

  • 客户端启动RPC服务,向服务端的RPC服务请求服务端的NFS端口号(因为此时服务端的NFS端口号已经在RPC服务中注册了)

  • 服务端的RPC反馈NFS端口号信息给客户端

  • 客户端通过获取的NFS端口号与服务端的NFS建立连接,进行数据的传输

注意事项:在Centos 7中rpcbind用来替换Centos老版本中的portmap提供RPC协议服务

NFS服务端的安装

服务端需要安装的服务:NFS和rpcbind

对应的安装服务名称: nfs-utils 和 rpcbind

# yum -y install nfs-utils  rpcbind

nfs 文件锁,Linux系统运维,运维,linux,云计算

启动服务

# 先启动rpcbind,再启动NFS
systemctl start rpcbind
systemctl start nfs
# 加入开机自启
systemctl enable rpcbind
systemctl enable nfs

nfs 文件锁,Linux系统运维,运维,linux,云计算

NFS服务器的配置

通过读取/etc/exports配置文件来获取哪些客户端可以访问哪些NFS共享文件系统:

  • 空白行将被忽略
  • 以#开头的内容为注释
  • 配置文件中可以通过\符号转义换行
  • 每个共享的文件系统需要独立一行
  • 客户端主机列表需要使用空格隔开
  • 支持通配符

一条完整的语法结构:(主机与选项之间没有空格)

共享路径 客户端主机(选项)

共享路径 客户端主机1(选项1) 客户端主机2(选项2)

NFS选项的属性表:

NFS选项 描述 NFS选项 描述
ro 只读共享 rw 可读可写共享
sync 同步写操作 async 异步写操作
wdelay 延迟写操作 root_squash 屏蔽远程root权限
no_root_squash 不屏蔽远程root权限 all_squash 屏蔽所有的远程用户权限
# 将/home/test配置成NFS共享文件
# 语法结构
/home/test *(rw,no_root_squash,no_all_squash,anonuid=0,anongid=0,sync)
# 查看共享的文件夹
[root@vm01 test]# showmount -e 192.168.137.2
Export list for 192.168.137.2:
/home/test *

nfs 文件锁,Linux系统运维,运维,linux,云计算

客户端访问NFS

客户端安装RPC服务:yum -y install nfs-utils

启动服务:systemctl start rpcbind

# 可通过showmount命令查看服务器共享文件夹信息
[root@vm02 ~]# showmount -e 192.168.137.2
Export list for 192.168.137.2:
/home/test *
[root@vm02 ~]#

客户端手动挂载访问方式:mount 服务端ip:共享路径 本机路径

# 将上述的NFS挂载到其他服务器的/home/test下
[root@vm02 ~]# mkdir /home/test
[root@vm02 ~]# mount 192.168.137.2:/home/test /home/test
[root@vm02 ~]# df -h
文件系统                  容量  已用  可用 已用% 挂载点
devtmpfs                  908M     0  908M    0% /dev
tmpfs                     919M     0  919M    0% /dev/shm
tmpfs                     919M  8.7M  911M    1% /run
tmpfs                     919M     0  919M    0% /sys/fs/cgroup
/dev/mapper/centos-root    18G  1.5G   17G    9% /
/dev/sda1                 297M  133M  164M   45% /boot
tmpfs                     184M     0  184M    0% /run/user/0
192.168.137.2:/home/test   18G  2.6G   16G   15% /home/test					# 挂载成功
[root@vm02 ~]#

NFS高级设置

  1. NFS服务相关进程说明

    nfs:NFS服务器的主进程

    nfslock:为NFS文件系统提供锁机制

    rpcbind:提供地址与端口注册服务

    rpc.mountd:处理NFSv2与NFSv3的mount请求

    rpc.nfsd:动态处理客户端请求

    lockd:内核线程,服务端与客户端运行,用来实现NLM网络协议,允许NFSv2与NFSv3客户端对文件加锁

    rpc.statd:网络状态监控协议

    rpc.rquotad:提供用户配额信息

    rpc.idmapd:提供NFSv4名称映射,/etc/idmapd.conf必须配置

  2. NFS客户端的高级设置

客户端手动挂载NFS访问格式:

mount -t nfs -o 选项 主机地址:共享目录 本地挂载目录

选项可多个同时使用,彼此使用逗号分隔

挂载选项的属性:

挂载选项 说明
-t 挂载的设备上的文件系统类型
-r 只读挂载
-w 读写挂载
-n 不更新/etc/mtab
-a 自动挂载所有支持自动挂载的设备:定义在了/etc/fstab文件中,且挂载选项中有“自动挂载”功能
-L 以卷标指定挂载设备
-U 以UUID指定要挂载的设备
-B 绑定目录到另一个目录上
-o 挂载文件系统的选项
async:异步模式;
sync:同步模式;
atime/noatime:包含目录和文件;
diratime/nodiratime:目录的访问时间戳
auto/noauto:是否支持自动挂载
exec/noexec:是否支持将文件系统上应用程序运行为进程
dev/nodev:是否支持在此文件系统上使用设备文件;
suid/nosuid是否支持在此文件系统上使用特殊权限
remount:重新挂载
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载此设备
acl:启用此文件系统上的acl功能
mount -t nfs -o noac,nfsvers=4,_netdev 192.168.137.2:/home/test /home/test

NFS命令工具

exportfs

# 重新读取/etc/exports文件
exportfs -r
# 显示详细信息
exportfs -v

nfs 文件锁,Linux系统运维,运维,linux,云计算

nfsstat

查看NFS共享状态

# 显示NFS服务端状态
[root@vm01 ~]# nfsstat -s
Server rpc stats:
calls      badcalls   badclnt    badauth    xdrcall
29         0          0          0          0

Server nfs v4:
null         compound
1         3% 28       96%

Server nfs v4 operations:
op0-unused   op1-unused   op2-future   access       close        commit
0         0% 0         0% 0         0% 2         2% 0         0% 0         0%
create       delegpurge   delegreturn  getattr      getfh        link
0         0% 0         0% 0         0% 23       26% 4         4% 0         0%
lock         lockt        locku        lookup       lookup_root  nverify
0         0% 0         0% 0         0% 3         3% 0         0% 0         0%
open         openattr     open_conf    open_dgrd    putfh        putpubfh
0         0% 0         0% 0         0% 0         0% 22       25% 0         0%
putrootfh    read         readdir      readlink     remove       rename
2         2% 0         0% 0         0% 0         0% 0         0% 0         0%
renew        restorefh    savefh       secinfo      setattr      setcltid
0         0% 0         0% 0         0% 0         0% 0         0% 0         0%
setcltidconf verify       write        rellockowner bc_ctl       bind_conn
0         0% 0         0% 0         0% 0         0% 0         0% 0         0%
exchange_id  create_ses   destroy_ses  free_stateid getdirdeleg  getdevinfo
1         1% 1         1% 0         0% 0         0% 0         0% 0         0%
getdevlist   layoutcommit layoutget    layoutreturn secinfononam sequence
0         0% 0         0% 0         0% 0         0% 1         1% 26       30%
set_ssv      test_stateid want_deleg   destroy_clid reclaim_comp
0         0% 0         0% 0         0% 0         0% 1         1%
# 仅显示客户端状态
[root@vm02 ~]# nfsstat -c				# 客户端执行
Client rpc stats:
calls      retrans    authrefrsh
31         0          31

Client nfs v4:
null         read         write        commit       open         open_conf
0         0% 0         0% 0         0% 0         0% 0         0% 0         0%
open_noat    open_dgrd    close        setattr      fsinfo       renew
0         0% 0         0% 0         0% 0         0% 3        10% 0         0%
setclntid    confirm      lock         lockt        locku        access
0         0% 0         0% 0         0% 0         0% 0         0% 2         6%
getattr      lookup       lookup_root  remove       rename       link
6        20% 3        10% 1         3% 0         0% 0         0% 0         0%
symlink      create       pathconf     statfs       readlink     readdir
0         0% 0         0% 2         6% 1         3% 0         0% 0         0%
server_caps  delegreturn  getacl       setacl       fs_locations rel_lkowner
5        16% 0         0% 0         0% 0         0% 0         0% 0         0%
secinfo      exchange_id  create_ses   destroy_ses  sequence     get_lease_t
0         0% 0         0% 1         3% 1         3% 0         0% 3        10%
reclaim_comp layoutget    getdevinfo   layoutcommit layoutreturn getdevlist
0         0% 1         3% 0         0% 0         0% 0         0% 0         0%
(null)
1         3%
# 显示挂载信息
[root@vm02 ~]# nfsstat -m
/home/test from 192.168.137.2:/home/test
 Flags: rw,sync,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,acregmin=0,acregmax=0,acdirmin=0,acdirmax=0,hard,noac,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.137.3,local_lock=none,addr=192.168.137.2
# 以列表形式显示信息
[root@vm02 ~]# nfsstat -l
nfs v4 client        total:       31
------------- ------------- --------
nfs v4 client       fsinfo:        3
nfs v4 client       access:        2
nfs v4 client      getattr:        6
nfs v4 client       lookup:        3
nfs v4 client  lookup_root:        1
nfs v4 client     pathconf:        2
nfs v4 client       statfs:        1
nfs v4 client  server_caps:        5
nfs v4 client   create_ses:        1
nfs v4 client  destroy_ses:        1
nfs v4 client  get_lease_t:        4
nfs v4 client    layoutget:        1
nfs v4 client       (null):        1
# 都可以与-l组合使用,便于查看信息

rpcinfo

# 生成RPC信息报表
# 显示指定主机rpcbind操作信息表
[root@vm01 ~]# rpcinfo -m
PORTMAP (version 2) statistics
NULL    SET     UNSET   GETPORT DUMP    CALLIT
0       0/0     0/0     1/1     0       0/0

PMAP_GETPORT call statistics
prog            vers    netid     success       failure
mountd          3       tcp       1             0

RPCBIND (version 3) statistics
NULL    SET     UNSET   GETADDR DUMP    CALLIT  TIME    U2T     T2U
0       0/0     0/0     0/0     0       0/0     0       0       0

RPCBIND (version 4) statistics
NULL    SET     UNSET   GETADDR DUMP    CALLIT  TIME    U2T     T2U
0       0/0     0/0     0/0     0       0/0     0       0       0
VERADDR INDRECT GETLIST GETSTAT
0       0       0       1
# 显示指定主机RPC注册信息
[root@vm01 ~]# rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  20048  mountd
    100005    1   tcp  20048  mountd
    100024    1   udp  44103  status
    100024    1   tcp  45007  status
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  47704  nlockmgr
    100021    3   udp  47704  nlockmgr
    100021    4   udp  47704  nlockmgr
    100021    1   tcp  35644  nlockmgr
    100021    3   tcp  35644  nlockmgr
    100021    4   tcp  35644  nlockmgr
# 显示指定主机所有注册RPC的信息程序,不指定主机时默认显示本机信息
[root@vm01 ~]# rpcinfo -s
   program version(s) netid(s)                         service     owner
    100000  2,3,4     local,udp,tcp,udp6,tcp6          portmapper  superuser
    100005  3,2,1     tcp6,udp6,tcp,udp                mountd      superuser
    100024  1         tcp6,udp6,tcp,udp                status      29
    100003  4,3       udp6,tcp6,udp,tcp                nfs         superuser
    100227  3         udp6,tcp6,udp,tcp                nfs_acl     superuser
    100021  4,3,1     tcp6,udp6,tcp,udp                nlockmgr    superuser

配置固定的端口号

NFS向rpcbind动态注册端口信息,端口信息是动态随机生成的,如果配置固定的端口号有助于我们进行防火墙规则的设置

通过配置文件进行设置:/etc/sysconfig/nfs文章来源地址https://www.toymoban.com/news/detail-744206.html

  • MOUNTD_PORT:设置mountd程序端口号
  • LOCKD_TCPPORT:设置TCP的lockd程序端口号
  • LOCKD_UDPPORT:设置UDP的lockd程序端口号
  • STATD_PORT:设置rpc.statd程序端口号
  • NFS端口:TCP/UDP 2049
  • rpcbind端口:TCP/UDP 111

到了这里,关于网络文件系统 | NFS 服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux系统安装NFS服务器

    NFS是一种网络文件系统,英文全称Network File System,通过NFS可以让不同的主机系统之间共享文件或目录。通过NFS,用户可以直接在本地NFS客户端读写NFS服务端上的文件,是非常好的共享存储工具。本篇文章将介绍如何在CentOS7上安装NFS服务器,包括服务端和客户端安装两部分。

    2024年01月21日
    浏览(52)
  • Linux - 进阶 NFS服务器 详解网络共享服务器 ( 预备知识)

               N  :  就是 网络 Network          F   :     就是  File  文件         S   :  system          简称为 网络文件系统                 官方   :               NFS 是一种古老的用于UNIX/LINUX主机之间进行文件共享的协议              Network  File  System 网

    2024年02月13日
    浏览(49)
  • NFS网络文件共享服务

    NFS(network file system)网络文件系统 可以把对方主机资源直接挂载到自己电脑上,比FTP更加方便   明文传输   没有认证机制 安全性很差 只在局域网使用   依赖RPC(远程过程调用)   需要安装nfs-utils(提供NFS服务),rpcbind(提供RPC服务)软件包   系统服务:nfs、rpcbind   共享配置

    2023年04月24日
    浏览(45)
  • 【Linux】怎么看nfs服务是否已经启动与安装nfs服务

    可以执行以下命令来检查nfs服务是否已经启动: 如果nfs服务已经启动,你会看到如下输出: 如果nfs服务没有启动,则会看到如下输出: 在这个输出中,如果 Active 状态为 active (exited) ,则表示nfs服务已经启动;如果 Active 状态为 inactive (dead) ,则表示nfs服务没有启动。 结果:

    2024年02月04日
    浏览(34)
  • 【Linux】linux nfs共享存储服务

    目录 一、nfs服务 二、nfs优点 三、配置文件 四、共享文件配置过程 五、实验 1.创建共享文件(两台终端共享) 概念:网络上共享文件系统的协议,运行多个服务器之间通过网络共享文件和目录 服务端:将指定目录标记为共享目录,服务段有访问权限,共享目录有全部权限

    2024年02月10日
    浏览(38)
  • Linux 安装 NFS 服务

           NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一

    2024年02月05日
    浏览(34)
  • linux nfs共享存储服务

    目录 一、nfs服务 二、nfs优点 三、配置文件 四、共享文件配置过程 五、实验 1.创建共享文件(两台终端共享)                             一、nfs服务 概念:网络上共享文件系统的协议,运行多个服务器之间通过网络共享文件和目录 服务端:将指定目录标记为共享目录

    2024年02月06日
    浏览(55)
  • Linux搭建简单NFS服务

    目录 准备工作: 需求一: 需求二: 需求三: 安装需要的软件(服务端和客户端都需要安装):  关闭防火墙以及selinux:  启动程序:   因为nfs服务需要rpc服务为其确定端口号,所以我们先启动rpc服务。  开放/nfs/shared目录,供所有用户查询资料 先创建该目录文件: 配置

    2024年01月18日
    浏览(32)
  • linux上搭建nfs服务

    NFS(Network File System):它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。 NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,

    2024年02月11日
    浏览(34)
  • 计算机网络 应用层上 | 域名解析系统DNS 文件传输协议FTP,NFS 万维网URL HTTP HTML

    之前我们讲运输层的时候已经讲了运输层可以给不同进程之间通信,但我们还需要应用层原因是,许多 应用需要多个进程之间相互配合完成,所以应用层进程用来约束这些配合! 每个应用层协议用来解决一个问题 应用层的许多协议都是基于客户服务器方式 客户是请求方,服

    2024年01月24日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包