Linux下如何查询NFS? (linux 查询nfs)

NFS(Network File System)是一种分布式文件系统,它可以让计算机之间共享文件。在Linux下,NFS是一个常用的文件共享协议,它可以通过网络访问远程文件系统。在许多情况下,我们需要查询NFS以了解系统的状态和运行状况。本文将介绍如何在Linux下查询NFS。

一、查询已安装NFS的软件包

在Linux下,我们可以使用rpm或者dpkg等命令来查询已经安装的软件包,以验证NFS是否已经安装。以CentOS系统为例,我们可以在终端中输入以下命令:

rpm -qa|grep nfs

如果系统中已经安装了NFS软件包,则会输出相关信息,如下:

nfs-utils-1.3.0-0.65.el7_9.x86_64

nfs-utils-lib-1.1.5-18.el7.x86_64

nfs4-acl-tools-0.3.6-1.el7.x86_64

如果没有任何输出,则表示系统中没有安装NFS软件包,需要手动安装。

二、检查nfs-utils服务是否正在运行

在Linux下,我们可以使用systemctl命令来查询服务状态。在查询NFS时,我们需要检查nfs-utils服务是否正在运行。在终端中输入以下命令:

systemctl status nfs-utils

如果nfs-utils服务正在运行,则会输出类似如下信息:

● nfs-server.service – NFS server and services

Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)

Active: active (exited) since Fri 2023-11-26 16:48:24 UTC; 2 days ago

Process: 2023 ExecStartPost=/bin/sh -c systemctl start nfs-server.service (code=exited, status=0/SUCCESS)

Process: 2023 ExecStart=/usr/in/rpc.nfsd $RPCNFSDARGS $RPCNFSDCOUNT (code=exited, status=0/SUCCESS)

Process: 1994 ExecStartPre=/usr/in/exportfs -r (code=exited, status=0/SUCCESS)

Mn PID: 2023 (code=exited, status=0/SUCCESS)

CGroup: /system.slice/nfs-server.service

如果nfs-utils服务没有运行,则会输出类似如下信息:

● nfs-server.service – NFS server and services

Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)

Active: inactive (dead) since Fri 2023-11-26 16:58:53 UTC; 2 days ago

Process: 2023 ExecStartPost=/bin/sh -c systemctl start nfs-server.service (code=exited, status=0/SUCCESS)

Process: 2023 ExecStart=/usr/in/rpc.nfsd $RPCNFSDARGS $RPCNFSDCOUNT (code=exited, status=0/SUCCESS)

Process: 1994 ExecStartPre=/usr/in/exportfs -r (code=exited, status=0/SUCCESS)

三、使用showmount命令查询客户端的NFS挂载点

showmount命令可以查询NFS服务器上的挂载列表,以及客户端上挂载的文件系统。在客户端终端中输入以下命令:

showmount -e [nfs服务器地址]

其中,[nfs服务器地址]为NFS服务器的IP地址或主机名。

如果客户端没有挂载任何文件系统,则会输出类似如下信息:

clnt_create: RPC: Port mapper flure – Unable to receive: errno 111 (Connection refused)

如果客户端已经挂载了文件系统,则会输出类似如下信息:

Export list for [nfs服务器地址]:

/[共享目录] [客户端地址]

/[共享目录] [客户端地址]

其中,[共享目录]为NFS服务器上共享的目录名称,[客户端地址]为客户端的IP地址或主机名。

四、使用rpcinfo命令查询NFS相关信息

rpcinfo命令可以查询与RPC相关的信息,例如NFS服务器的状态等。在终端中输入以下命令:

rpcinfo -p [nfs服务器地址]

其中,[nfs服务器地址]为NFS服务器的IP地址或主机名。

如果NFS服务器正常运行,则会输出类似如下信息:

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 20238 mountd

100005 1 tcp 20238 mountd

100005 2 udp 20238 mountd

100005 2 tcp 20238 mountd

100005 3 udp 20238 mountd

100005 3 tcp 20238 mountd

100003 3 udp 2023 nfs

100003 4 udp 2023 nfs

100021 1 udp 37468 nlockmgr

100021 3 udp 37468 nlockmgr

100021 4 udp 37468 nlockmgr

100021 1 tcp 44189 nlockmgr

100021 3 tcp 44189 nlockmgr

100021 4 tcp 44189 nlockmgr

100024 1 udp 51909 status

100024 1 tcp 40709 status

其中,100003代表NFS,100005代表mountd,100021代表nlockmgr。

五、使用nfsstat命令查询NFS的统计数据

nfsstat命令可以查询NFS的统计数据。在终端中输入以下命令:

nfsstat

如果NFS正常运行,则会输出类似如下信息:

Server rpc stats:

calls retrans authrefrsh

0 0 0

sends badxids timeouts

0 0 0

newcreds badverfs timers

0 0 0

Client rpc stats:

calls retrans authrefrsh

0 0 0

sends badxids timeousts

0 0 0

newcreds badverfs timers

0 0 0

其中,calls表示RPC调用数,retrans表示重新传输数,badxids表示无效的XID,timeouts表示超时次数。

综上所述,本文介绍了在Linux下查询NFS的方法,包括查询已安装NFS的软件包、检查nfs-utils服务是否正在运行、使用showmount命令查询客户端的NFS挂载点、使用rpcinfo命令查询NFS相关信息,以及使用nfsstat命令查询NFS的统计数据。通过这些方法,我们可以了解NFS的运行情况和状态,并进行必要的维护和优化。

相关问题拓展阅读:

Linux 环境下搭建NFS服务

NFS(Network File System),网络文件存储系统,它最早是由 Sun 公司开发的,也是 FreeBSD 支持的文件系统中的一个,它允许网络中的计算机之间通过TCP/IP 网络共享资源。通过 NFS 协议,我们本地 NFS 的客户端应用可以透明的读写位于服务端 NFS 服务器上的文件,就像访问本地文件一样方便。简单的理解,NFS 就是可以透过网络,让不同的主机,不同的操作系统可以共享存储的服务。

NFS 在文件传送或信息传送过程中依赖 RPC(Remote Procedure Call)协议,即远程过程调用,NFS的各项功能都必须向 RPC 来注册,如此一来 RPC 才能了解 NFS 这服务的各项功能 Port,PID,NFS 在服务器所监听的 IP 等,而客户端才能透过 RPC 的询问找到正确对应的端口,所以 NFS 必须要有 RPC 存在是才能成功的提供服务,简单的理解二者关系:NFS 是一个文件存储系统,而 RPC 是负责信息的传输。

通过上面的简介,我们知道 NFS 服务需要依赖 RPC 服务,所以这里 NFS 服务端需要安装 rpcbind 和 nfs-utils ,客户端只需要安装 nfs-utils 即可,由于我们选用 CentOS 系统,所以可以使用 yum 快速的安装。

然后安装 NFS 服务

另:Ubuntu 16.04 安装命令

我们在服务端创建一个共享目录 /data/share ,作为客户端挂载在远端入口,然后设置权限

然后,修改 NFS 配置文件 /etx/exports

说明一下,这里配置后边有很多参数,每个参数有不同的含义,具体可以参考下边。此处,我配置了将 /data/share 文件目录设置为允许IP为 192.168.0.0/24 区间的客户端挂载。然后,如果客户端IP不在该区间也想要挂载的话,可以设置IP区间更大或者设置为 * 即允许所有客户端挂载,例如: /home *(ro, sync,insecure,no_root_squash) 设置 /home 目录允许所有客户端只读挂载。

接下来,我们先启动 RPC 服务

我们发现,启动了 NFS 服务后,RPC 注册的端口列表明显增多。现在服务端都启动起来了,在服务端看下是否正确加载了设置的 /etc/exports 配置

最后,在另一台Linux虚拟机上测试一下,是否能够正确挂载。首先,我们可以在客户端查看下NFS服务端设置可共享的目录信息

然后,在客户端创建挂载目录/share

最后,挂载远端目录到本地 /share 目录

可以看到,可以正确将远端 NFS 目录挂载到本地。注意:挂载点 /share 目录必须已经存在,而且目录中没有文件或子目录

最后,我们在 NFS 服务端 /data/share 目录下创建一个文件,看下客户端能否正确读取并修改

都可以了,这里因为上面设置了 NFS 远端目录权限为 rw 拥有读写权限,如果设置为 ro ,那么客户端只能读取,不能写入。根据实际应用场景合理配置。

NFS 默认使用 UDP协议进行挂载,为了提供 NFS 的稳定性,可以使用 TCP 协议挂载,那么客户端挂载命令如下:

最后,卸载命令

linux 查询nfs的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 查询nfs,Linux下如何查询NFS?,Linux 环境下搭建NFS服务的信息别忘了在本站进行查找喔。


数据运维技术 » Linux下如何查询NFS? (linux 查询nfs)