AIX之浅谈NFS文件系统

332 阅读5分钟

 温故:     

        上一篇文章和大家聊了Linux的用户账号以及账号的密码的设置,不知道大家是否还记得。咱们在这里再简单强调一下下哈。创建用户使用的命令是useradd,删除用户使用的命令是userdel 。重点来了,查看用户密码属性的命令是chage  -l user,      修改用户密码的有效期的设置命令是 chage   -M  时间段   user , 修改用户密码失效日期的命令是  chage  -I   时间段  user (参数是大写的 i ),修改用户账号的有效期的命令是 chage  -E  时间 user(时间举例:2021-12-31).

        关于这部分内容就暂且说到这里,有兴趣的朋友可以去看我的文档,或者在网上找找相关资料。

链接如下:Linux之设置账户或密码有效期

知新:

        今天咱们要聊聊AIX的NFS文件系统,之所以要和大家聊这个,也是因为在前段时间的运维工作中出现了和NFS文件系统相关的内容,感觉这个知识点挺有意思的就拿来和大家聊聊。

一、NFS的前世今生

****  说到NFS的由来,我就要给大家讲一个故事了。话说为什么会有NFS呢,原来是天地初开之时,有一神兽应运而生,这只神兽能帮助人们将网络上的数据传输到本地方便进行修改,修改完之后再将其传送回去,因此人们将之称为“FTP”;隋然FTP的存在帮助人们解决了很多的问题,但是还存在很多问题,比如张三将文件拷贝了出来进行修改,但是修改之后忘记上传回去,这时候李四看到的文件就是旧版本,造成了信息不对称。而且随着数据量的不断变大,上传和下载需要的时间会越来越多,也不利于运维。

        于是人们决定努力寻找一只新的神兽,为了避免FTP所带来的数据不同步和开销越来越大的问题,大家就尝试寻找一只可以实现在远程主机中直接操作数据的的神兽,保证数据在修改的过程中一直保存在远程主机上,经过大家的不懈努力,终于这只新神兽被发现,它的名字就是“Telnet”.大家对于这个工具应该不会陌生,应该经常用到telnet 、ssh这些工具。但是随着技术的进步,人们又发现了一些问题,就是使用Telnet的时候需要使用一台终端远程连接到远程主机,本来可以做很多工作的终端却只是被用来当作连接终端,属实有些浪费,而且连接到远程主机后,对于数据的操作都是在远程主机上操作的,增加了远程主机的负载。而且把整个网络系统的数据库都放在一台服务器上,就极大的增加了系统的风险。

        所以NFS文件系统出现了,正应了那句“时势造英雄”啊。NFS是一个分布式文件系统,它允许用户访问远程系统的文件和目录,虽然是远程访问,但是对于用户来说就像是在看本地数据一样。用户可以对这些文件和目录进行权限允许下的增删改查。在NFS系统中两个实现不同功能的主机,拥有实际的物理磁盘并且通过NFS将这个磁盘共享的主机叫NFS服务器,通过NFS访问远程文件系统的主机叫NFS 客户机。一个NFS客户机可以使用多个NFS服务器提供的服务,同样一个NFS服务器也可以为多个NFS客户机提供共享的磁盘。简单的说,一个系统既可以是NFS服务器,也能充当另一个NFS服务器的客户机。

        人们通常认为 NFS 是一个应用程序,但它却是由几个具有特殊功能的不同协议组成。 NFS 的具体协议是 RPC(远程过程调用)协议和 XDR(外部数据表示)协议。

二、NFS工作过程

        在客户机上,用户发出访问某个文件或目录的调用时,vnode/vfs(虚拟节点\虚拟文件系统)会分析这个系统调用请求,如果要访问的是本地文件系统就直接对本地磁盘操作即可;如果要访问的是NFS服务器上的文件,此时就需要把这个请求交给NFS客户进程,NFS客户进程把这个请求转化为远程过程调用,由RPC通过TCP/UDP向服务器上的RPC发出执行过程调用请求。

        在服务器上,RPC将所要完成的任务交给NFS服务进程,再由vnode/vfs执行系统调用,实现具体的操作。最后把任务执行结果原路返回给客户机的用户进程。

 拓展:

RPC(远程过程调用): 远程过程调用(Remote Procedure Call,简称 RPC)采用了一种客户机/服务器结构的技术。RPC 由—系列过程组成,这些过程允许—个进程(客户进程)让另—个进程(服务器进程)执行某个过程调用,就好像客户进程在它自己的地址空间中运行这个过程调用。由于客户进程和服务器进程是两个独立的进程,因此并不需要让它们运行在同一台主机中(尽管它们也可以运行在同一台主机上)。 在实际应用中,RPC 是一个用于开发分布式应用程序的应用编程接口(API),它允许程序调用一个在远程系统上将被执行的过程。对用户来说,他使用的远程过程好像是本地过程。调用程序(被称为客户进程)发送一个调用消息给服务器进程,然后等待回应消息。RPC 调用消息和 RPC回应消息的数据是按照 XDR(外部数据表示) 标准来编码。

三、NFS启停方式   

        NFS服务的启动,NFS的服务是由/etc/rc.nfs命令文件来启动的。默认情况下,由init进程依据 /etc/inittab文件的配置来执行rc.nfs。所有的NFS守护进程由SRC来控制,可以用SRC的命令来启动(startsrc)或停止(stopsrc)这些进程,还可以显示(lssrc)这些进程的状态。在启动所有的NFS守护进程前,必须先启动portmap进程。通常新安装的AIX系统默认是不启动NFS服务的。因此第一次启动NFS时可以用mknfs命令来启动NFS服务

   mknfs命令有三个参数:

   -I :使用该参数时会在/etc/inittab文件中添加一条记录,便于系统重启时调用rc.nfg

  -N:使用该参数时,mknfs立即执行/etc/rc.nfs文件,但是并不在inittab文件中添加记录。

        -B:使用该参数,不仅在inittab文件中添加记录,同时还执行/etc/rc.nfs文件

        另外:也可以用SRC的命令来启动NFS服务。既可以启动NFS所有进程,也可以单独启动某一进程。如:

   # startsrc  -g nfs     -----启动NFS服务所有进程

 

   # startsrc  -s rpc.mountd   -----单独启动rc.mountd进程

         2、停止NFS服务。停止NFS服务也有两种方式:使用rmnfs命令或者用SRC的命令停止服务。

         rmnfs 命令同样有三个参数:

        -I :删除/etc/inittab文件中的调用rc.nfs文件的记录

        -N:立即停止NFS服务,但是不删除inittab文件中的记录

        -B:立即停止NFS服务,同时删除inittab文件中的记录  

    # stopsrc –g nfs      -----停止NFS服务所有进程

 

    # stopsrc –s rpc.mountd  ---单独停止rpc.mount

接下来我用测试环境给执行这几条命令给大家瞧瞧

image.png

今天关于NFS文件系统就先讲到这里,欲知后事如何请听下回分解