小干货~ NFS在Linux系统中的应用

Linux系统中的经典的语句”一切皆文件”,意思就是说在Linux系统中,我们要达成任何目标,都是通过配置文件去实现的。既然这样,那我们就少不了跟文件打交道,今天就跟大家分享下如何在Linux系统中配置网络文件系统(Network File System, NFS)服务来达到Linux系统之间的文件共享的目的。

之前有跟大家介绍过FTP(文件传输)协议,使得不同网络系统上的文件可以互相传输,类似Windows系统中的复制粘贴功能,这样同一文件在不同系统之间都要占内存,如果传输的文件比较大,对系统内存就不是很友好,而且修改文件也比较麻烦。今天跟大家分享的就是使用NFS服务将Linux服务端的共享资源挂载到客户端,这样客户端基于TCP/IP协议,就像操作本地资源那样对服务端的资源进行操作。

那么该如何使用NFS服务呢?且看以下步骤:

  1. 首先检查你所使用的Linux操作系统是否已经安装NFS软件包

执行命令:dnf install nfs-utils

  1. 为了检查NFS是否达到配置效果,我们需要两台Linux主机(一台用作服务端,一台用作客户端)。假设服务端使用的IP地址是192.168.10.10,客户端使用的IP地址是192.168.10.20
  2. 检查防火墙配置,防止防火墙阻止了正常的NFS共享服务
  3. 在NFS的服务端,也就是IP地址为192.168.10.10的Linux主机上创建一个共享文件目录,并给足权限

执行命令: mkdir  /sharefile

                   chmod -R  777  /sharefile

   echo  “welcome to linuxprobe.com” > /sharefile/readme

  1. NFS默认的配置文件为/etc/exports, 这个文件没有任何东西,我们可以按照自己的需求进行配置,配置规则为”共享目录的路径 允许访问的客户端参数”。例如:

执行命令: vim /etc/exports

   /sharefile  192.168.10.*(rw,sync,root_squash)

  1. 重启NFS服务程序,因为在使用NFS共享服务的时候要用到远程调用服务,所以也要重启RPC服务

执行命令:systemctl restart rpcbind

systemctl enable rpcbind

systemctl start nfs-server

systemctl enable nfs-server

  1. 使用showmount命令查询NFS服务的远程共享信息

执行命令:showmount -e  192.168.10.10

  1. 在客户端创建挂载目录,并挂载到客户端。挂载命令的格式为服务器IP地址,服务器上的共享目录以及客户端的挂载目录

执行命令: mkdir  /clientsharefile

       mount  -t  nfs  192.168.10.10:/sharefile /clientsharefile

这样整个NFS服务的配置就配置好啦,如果想要NFS挂载共享服务一直有效,需要将其写入到fstab文件中,这样服务端的资源就会随着服务器的开机而挂载。但是这样会产生一个问题,如果挂载的资源太多或者资源长期挂载而不使用的话,就会造成资源浪费,如果每次在使用的时候会自动挂载,就会解决这一问题。autofs服务会解决这一问题,当客户端需要访问某一文件时,autofs会自动挂载这一文件。autofs使用方法如下:

  1. 安装autofs服务:dnf  install  autofs
  2. 将挂载信息写入配置文件,一般Linux服务器会同时管理多台设备的挂载,如果把这些信息都写进一个配置文件里,那么文件的可读性大大降低,也不利于服务器的执行效率,一般采取的方法是先在主配置文件里按照”挂载目录 子配置文件”的格式填写,然后再在子配置文件里按照”挂载目录 挂载文件类型及权限:设备名称”的规则填写
  3. 重启autofs服务程序

执行命令:systemctl start autofs

systemctl enable autofs

这样autofs服务就配置好啦,是不是特别简单。Autofs服务只有检测到有需要挂载的文件时才会自动挂载,大大提高工作效率。

这里要特别强调的一点是NFS服务只能用于Linux操作系统之间的文件共享,如果有Linux和Windows之间的文件共享需要考虑 用其他服务,如Samba服务程序等,这里就不详述。如果想要深入了解NFS服务和Samba服务的小伙伴可以查阅《Linux就该这么学(第2版)》这本书,这本书里会比本文介绍的更加详细,如执行命令需要配置的参数,每个参数表示什么意思,每个操作需要的注意事项,书中都会有,诚挚推荐给有需要的小伙伴。

你可能感兴趣的:(linux,运维,服务器)