Linux之NFS网络文件系统

  NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络资源共享。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

1、好处

(1)节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。

(2)用户不需要在网络中的每台计算机上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。

(3)一些存储设备如软驱、CDROM和ZIP等都可以在网络上被别的机器使用。这可以减少整个网络上移动介质设备的数量。

2、组成

NFS体系至少有两个主要部分:一台NFS服务器和若干台客户机,如图所示

客户机可以通过TCP/IP网络远程访问存放在NFS上的数据。

NFS实现是通过RPC服务来实现的

实现过程:

(1)NFS RPC的主要功能是记录每个NFS功能所对应的端口号,并将信息传递给请求数据的NFS客户端,从而实现数据的传输。

(2)NFS服务启动时会随机取用数个端口,并主动向RPC服务注册取用的相关端口信息,RPC服务就知道每个端口对应的NFS功能了,然后RPC会用固定的端口(111)来监听NFS客户端的请求,将正确的NFS端口传给NFS的客户端

服务启动顺序:RPC--》NFS

3、服务器端安装,配置过程

(1)检查是否安装NFS RPC服务

[[email protected] ~]# rpm -qa nfs-utils rpcbind
[[email protected] ~]# yum install nfs-utils rpcbind -y
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                   | 3.7 kB     00:00
extras                                                 | 3.4 kB     00:00
extras/primary_db                                      |  30 kB     00:00
updates                                                | 3.4 kB     00:00
Resolving Dependencies
--> Running transaction check
---> Package nfs-utils.x86_64 1:1.2.3-75.el6_9 will be installed
--> Processing Dependency: nfs-utils-lib >= 1.1.0-3 for package: 1:nfs-utils-1.2.3-75.el6_9.x86_64
--> Processing Dependency: libtirpc >= 0.2.1-11 for package: 1:nfs-utils-1.2.3-75.el6_9.x86_64
--> Processing Dependency: keyutils >= 1.4-4 for package: 1:nfs-utils-1.2.3-75.el6_9.x86_64
--> Processing Dependency: python-argparse for package: 1:nfs-utils-1.2.3-75.el6_9.x86_64
--> Processing Dependency: libgssglue.so.1(libgssapi_CITI_2)(64bit) for package: 1:nfs-utils-1.2.3-75.el6_9.x86_64
--> Processing Dependency: libgssglue for package: 1:nfs-utils-1.2.3-75.el6_9.x86_64
--> Processing Dependency: libevent for package: 1:nfs-utils-1.2.3-75.el6_9.x86_64
--> Processing Dependency: libtirpc.so.1()(64bit) for package: 1:nfs-utils-1.2.3-75.el6_9.x86_64
--> Processing Dependency: libnfsidmap.so.0()(64bit) for package: 1:nfs-utils-1.2.3-75.el6_9.x86_64
--> Processing Dependency: libgssglue.so.1()(64bit) for package: 1:nfs-utils-1.2.3-75.el6_9.x86_64
--> Processing Dependency: libevent-1.4.so.2()(64bit) for package: 1:nfs-utils-1.2.3-75.el6_9.x86_64
---> Package rpcbind.x86_64 0:0.2.0-13.el6_9.1 will be installed
--> Running transaction check
---> Package keyutils.x86_64 0:1.4-5.el6 will be installed
---> Package libevent.x86_64 0:1.4.13-4.el6 will be installed
---> Package libgssglue.x86_64 0:0.1-11.el6 will be installed
---> Package libtirpc.x86_64 0:0.2.1-13.el6_9 will be installed
---> Package nfs-utils-lib.x86_64 0:1.1.5-13.el6 will be installed
---> Package python-argparse.noarch 0:1.2.1-2.1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================
 Package              Arch        Version                  Repository    Size
==============================================================================
Installing:
 nfs-utils            x86_64      1:1.2.3-75.el6_9         updates      336 k
 rpcbind              x86_64      0.2.0-13.el6_9.1         updates       51 k
Installing for dependencies:
 keyutils             x86_64      1.4-5.el6                base          39 k
 libevent             x86_64      1.4.13-4.el6             base          66 k
 libgssglue           x86_64      0.1-11.el6               base          23 k
 libtirpc             x86_64      0.2.1-13.el6_9           updates       82 k
 nfs-utils-lib        x86_64      1.1.5-13.el6             base          71 k
 python-argparse      noarch      1.2.1-2.1.el6            base          48 k

Transaction Summary
==============================================================================
Install       8 Package(s)

Total download size: 716 k
Installed size: 2.0 M
Downloading Packages:
(1/8): keyutils-1.4-5.el6.x86_64.rpm                   |  39 kB     00:00
(2/8): libevent-1.4.13-4.el6.x86_64.rpm                |  66 kB     00:00
(3/8): libgssglue-0.1-11.el6.x86_64.rpm                |  23 kB     00:00
(4/8): libtirpc-0.2.1-13.el6_9.x86_64.rpm              |  82 kB     00:00
(5/8): nfs-utils-1.2.3-75.el6_9.x86_64.rpm             | 336 kB     00:00
(6/8): nfs-utils-lib-1.1.5-13.el6.x86_64.rpm           |  71 kB     00:00
(7/8): python-argparse-1.2.1-2.1.el6.noarch.rpm        |  48 kB     00:00
(8/8): rpcbind-0.2.0-13.el6_9.1.x86_64.rpm             |  51 kB     00:00
------------------------------------------------------------------------------
Total                                         1.1 MB/s | 716 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : libgssglue-0.1-11.el6.x86_64                               1/8
  Installing : libtirpc-0.2.1-13.el6_9.x86_64                             2/8
  Installing : rpcbind-0.2.0-13.el6_9.1.x86_64                            3/8
  Installing : python-argparse-1.2.1-2.1.el6.noarch                       4/8
  Installing : libevent-1.4.13-4.el6.x86_64                               5/8
  Installing : keyutils-1.4-5.el6.x86_64                                  6/8
  Installing : nfs-utils-lib-1.1.5-13.el6.x86_64                          7/8
  Installing : 1:nfs-utils-1.2.3-75.el6_9.x86_64                          8/8
  Verifying  : rpcbind-0.2.0-13.el6_9.1.x86_64                            1/8
  Verifying  : libtirpc-0.2.1-13.el6_9.x86_64                             2/8
  Verifying  : keyutils-1.4-5.el6.x86_64                                  3/8
  Verifying  : libevent-1.4.13-4.el6.x86_64                               4/8
  Verifying  : nfs-utils-lib-1.1.5-13.el6.x86_64                          5/8
  Verifying  : libgssglue-0.1-11.el6.x86_64                               6/8
  Verifying  : 1:nfs-utils-1.2.3-75.el6_9.x86_64                          7/8
  Verifying  : python-argparse-1.2.1-2.1.el6.noarch                       8/8 

Installed:
  nfs-utils.x86_64 1:1.2.3-75.el6_9     rpcbind.x86_64 0:0.2.0-13.el6_9.1    

Dependency Installed:
  keyutils.x86_64 0:1.4-5.el6          libevent.x86_64 0:1.4.13-4.el6
  libgssglue.x86_64 0:0.1-11.el6       libtirpc.x86_64 0:0.2.1-13.el6_9
  nfs-utils-lib.x86_64 0:1.1.5-13.el6  python-argparse.noarch 0:1.2.1-2.1.el6 

Complete!
[[email protected] ~]# rpm -qa nfs-utils rpcbind
rpcbind-0.2.0-13.el6_9.1.x86_64
nfs-utils-1.2.3-75.el6_9.x86_64

(2)安装完成后,启动相关服务

[[email protected] ~]# rpm -qa nfs-utils rpcbind
rpcbind-0.2.0-13.el6_9.1.x86_64
nfs-utils-1.2.3-75.el6_9.x86_64
[[email protected] ~]# /etc/init.d/rpcbind status
rpcbind is stopped
[[email protected] ~]# /etc/init.d/rpcbind start
Starting rpcbind:                                          [  OK  ]
[[email protected] ~]# /etc/init.d/rpcbind status
rpcbind (pid  1958) is running...
[[email protected] ~]# /etc/init.d/nfs
anaconda-ks.cfg     .bashrc             install.log.syslog
.bash_logout        .cshrc              .tcshrc
.bash_profile       install.log
[[email protected] ~]# /etc/init.d/nfs status
rpc.svcgssd is stopped
rpc.mountd is stopped
nfsd is stopped
[[email protected] ~]# rpcinfo -p localhost
   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
[[email protected] ~]# /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
[[email protected] ~]# rpcinfo -p localhost
   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  53776  mountd
    100005    1   tcp  45705  mountd
    100005    2   udp  59195  mountd
    100005    2   tcp  37339  mountd
    100005    3   udp  51079  mountd
    100005    3   tcp  42701  mountd
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    2   tcp   2049  nfs_acl
    100227    3   tcp   2049  nfs_acl
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    2   udp   2049  nfs_acl
    100227    3   udp   2049  nfs_acl
    100021    1   udp  55657  nlockmgr
    100021    3   udp  55657  nlockmgr
    100021    4   udp  55657  nlockmgr
    100021    1   tcp  56873  nlockmgr
    100021    3   tcp  56873  nlockmgr
    100021    4   tcp  56873  nlockmgr

让RPC、NFS服务开机自启,在实际生产环境中都会将配置放在/etc/rc.local下面

[[email protected] ~]# vim /etc/rc.local
[[email protected] ~]# cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don‘t
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/etc/init.d/rpcbind start
/etc/init.d/nfs start

(3)配置服务端NFS配置文件/etc/exports

[[email protected] ~]# cat /etc/exports
##nfs server created by cairui at 2018-2-17
/home/cairui 192.168.181.128(rw)
[[email protected] ~]# /etc/init.d/nfs
anaconda-ks.cfg     .bashrc             install.log.syslog
.bash_logout        .cshrc              .tcshrc
.bash_profile       install.log         .viminfo
[[email protected] ~]# /etc/init.d/nfs reload
[[email protected] ~]# /etc/init.d/nfs restart
Shutting down NFS daemon:                                  [  OK  ]
Shutting down NFS mountd:                                  [  OK  ]
Shutting down NFS services:                                [  OK  ]
Shutting down RPC idmapd:                                  [  OK  ]
Starting NFS services:                                     [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]

4、客户端配置

[[email protected] ~]# rpm -qa | grep nfs
nfs-utils-lib-1.1.5-13.el6.x86_64
nfs-utils-1.2.3-75.el6_9.x86_64
[[email protected] ~]# rpm -qa | grep rpc
rpcbind-0.2.0-13.el6_9.1.x86_64
libtirpc-0.2.1-13.el6_9.x86_64
[[email protected] ~]# /etc/init.d/rpcbind status
rpcbind is stopped
[[email protected] ~]# /etc/init.d/rpcbind start
Starting rpcbind:                                          [  OK  ]
[[email protected] ~]# /etc/init.d/rpcbind status
rpcbind (pid  1463) is running...
[[email protected] ~]# /etc/init.d/nfs status
rpc.svcgssd is stopped
rpc.mountd is stopped
nfsd is stopped
[[email protected] ~]# /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
[[email protected] ~]# showmount -e 192.168.181.129
Export list for 192.168.181.129:
/home/cairui 192.168.181.128
[[email protected] ~]# ping 192.168.181.129
PING 192.168.181.129 (192.168.181.129) 56(84) bytes of data.
64 bytes from 192.168.181.129: icmp_seq=1 ttl=64 time=0.348 ms
64 bytes from 192.168.181.129: icmp_seq=2 ttl=64 time=0.706 ms
64 bytes from 192.168.181.129: icmp_seq=3 ttl=64 time=0.512 ms
^C
--- 192.168.181.129 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2760ms
rtt min/avg/max/mdev = 0.348/0.522/0.706/0.146 ms
[[email protected] ~]# iptables -F
[[email protected] ~]# showmount -e 192.168.181.129
Export list for 192.168.181.129:
/home/cairui 192.168.181.128

客户端进行NFS挂载

[[email protected] ~]# mount -t nfs 192.168.181.129:/home/cairui /mnt
[[email protected] ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              18G  1.4G   16G   9% /
tmpfs                 491M     0  491M   0% /dev/shm
/dev/sda1             190M   30M  150M  17% /boot
192.168.181.129:/home/cairui
                       18G  809M   16G   5% /mnt

5、测试

服务端

[[email protected] ~]# cd /home/cairui/
[[email protected] cairui]# touch 1.txt
[[email protected] cairui]# ls -ll /home/cairui/
total 0
-rw-r--r--. 1 root root 0 Feb 17 17:15 1.txt
[[email protected] cairui]# ls -ld /home/cairui/
drwx------. 2 cairui cairui 4096 Feb 17 17:15 /home/cairui/
[[email protected] cairui]# chmod 777 /home/cairui/
[[email protected] cairui]# ls -ld /home/cairui/
drwxrwxrwx. 2 cairui cairui 4096 Feb 17 17:15 /home/cairui/

 [[email protected] cairui]# mkdir nfs

客户端

[[email protected] ~]# cd /mnt/
-bash: cd: /mnt/: Permission denied
[[email protected] ~]# ls -ll /mnt/
ls: cannot open directory /mnt/: Permission denied
[[email protected]lhost ~]# cd /m
media/ mnt/
[[email protected] ~]# cd /mnt/
[[email protected] mnt]# ls
1.txt
[[email protected] mnt]# ls
1.txt  nfs
[[email protected] mnt]# 

八.启动自动挂载nfs文件系统

格式:<server>:<remote/export>

</local/directory> nfs <option> 0 0

#vim /etc/fstab

最后一行为后加的

保存退出,重启系统

原文地址:https://www.cnblogs.com/caicairui/p/8452261.html

时间: 2024-10-07 17:15:07

Linux之NFS网络文件系统的相关文章

linux下NFS网络文件系统的搭建

1.首先准备两台主机,一台做服务器,一台做客户机,保证两台能够相互通信 服务器IP地址:192.168.4.5 客户机IP地址:192.168.4.205 2.给服务器配置NFS服务 [[email protected] /]# rpm -q nfs-utils rpcbind nfs-utils-1.2.3-39.el6.x86_64 rpcbind-0.2.0-11.el6.x86_64 确定这两个软件包已经安装,如果没有安装需要安装 3.修改nfs的配置文件 新建共享目录 [[email 

linux中NFS网络文件系统共享

1.NFS:NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样.优点:1.节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用2.用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络

tiny4412 linux+qtopia nfs网络文件系统的挂载

1,首先确定uboot启动内核的bootargs参数 Linux-CommandLine = root=/dev/nfs nfsroot=192.168.1.131:/home/tiny4412/rootfs_qtopia_qt4 ip=192.168.1.230:192.168.1.131:192.168.1.1:255.255.255.0::eth0:off rootfstype=nfs console=ttySAC0,115200 init=/linuxrc ctp=2 skipcali=

linux系统之间通过nfs网络文件系统挂载设置方法

linux系统之间通过nfs网络文件系统挂载设置方法 NFS允许一个系统在网络上与他人共享目录和文件,通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,下面介绍linux系统之间通过nfs网络文件系统挂载的设置方法 NFS简介 NFS是Network File System的简写,即网络文件系统. 网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上

NFS网络文件系统的应用

    NFS是linux中非常常见的一种网络文件系统,其的搭建配置也非常简单,在一般的企业应用中较为广泛.下面就介绍一下NFS在企业环境中的基本应用,在应用中我们也可以更好的理解NFS网络文件系统的工作原理. 1)企业中一般应用场景 如上图一般我们要在中心服务器上设置好共享目录,由其他客户端挂在相应的共享目录,这样客户端服务器就可以想在本地一样往中心服务器上读写数据了.由上图也可以看出NFS服务一般由服务端和客户端组成. 2)rpc服务 既然想使用NFS服务就必须了解RPC服务的相关内容,因为

NFS 网络文件系统 简单搭建

NFS网络文件系统搭建简单 NFS依赖于RPC(远程调用)端口号:2049 功能:用于Unix间数据共享和数据传输(挂载完成数据同步) Linux系统与Linux系统  Linux系统与aix系统  aix系统与aix系统 实验环境 Redhat7.3Linux系统 两台机器可以Ping通 IP配置服务端192.168.10.1 客户端192.168.10.5 安装步骤如下: 关闭防火墙 systemctl stop firewalld.service 查看是否关闭 systemctl stat

NFS 网络文件系统挂载在A8板子上

我承认自己是菜鸟,没什么网络知识就来搞挂载nfs网络文件系统,花费了5天的时间才把nfs网络文件系统成功挂载在A8板子上,实现了A8板子和虚拟机的文件共享.分享一下个人经验: 以下是基于nfs已经完成安装来说 板子接线问题:我是把板子和电脑都接到同一个路由器上的,保证在同一个网段,我的网关是192.168.0.1,故我的电脑.虚拟机.板子的网关也是它,我的电脑ip地址是192.168.0.111.虚拟机ip为192.168.0.121,板子ip为192.168.0.120,发现上面就是192.1

NFS网络文件系统的搭建

NFS网络文件系统的搭建 什么是NFS网络文件系统? NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样. 在linux中,NFS主要用来做网络数据共享的.NFS网络文件一般被用来存储共享视屏.图片.附件等静态的资源文件. 由于NFS在linux中端口并不是固定的,所以很难确定NFS使用

[学习嵌入式开发板]iTOP-4412实现NFS网络文件系统

本文转自迅为:http://www.topeetboard.com 学习平台:iTOP-4412开发板 本文讲解如何在 iTOP-4412 开发板上实现 NFS 网络文件系统. 我们使用的软硬件环境是:一台 PC,上面运行虚拟机 Ubuntu,iTOP-4412 开发板一块,PC 机和iTOP-4412 开发板通过网线连接到路由器上面,路由器分配的网段是 192.168.1.x 的 ip 地址,默认网关是路由器的 ip 地址,即 192.168.1.1.PC 机的 ip 地址是 192.168.