Centos centos NFS 局域网磁盘文件共享服务安装与配置

yj6983292 · 2019年11月01日 · 最后由 lework 回复于 2019年11月01日 · 210 次阅读

centos NFS 服务搭建与使用

一. NFS 服务简介

  NFS 是 Network File System 的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由 Sun 公司开发,于 1984 年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类 Unix 系统间实现磁盘文件共享的一种方法。

  NFS 的基本原则是 “容许不同的客户端及服务端通过一组 RPC 分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。

  NFS 在文件传送或信息传送过程中依赖于 RPC 协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS 本身是没有提供信息传输的协议和功能的,但 NFS 却能让我们通过网络进行资料的分享,这是因为 NFS 使用了一些其它的传输协议。而这些传输协议用到这个 RPC 功能的。可以说 NFS 本身就是使用 RPC 的一个程序。或者说 NFS 也是一个 RPC SERVER。所以只要用到 NFS 的地方都要启动 RPC 服务,不论是 NFS SERVER 或者 NFS CLIENT。这样 SERVER 和 CLIENT 才能通过 RPC 来实现 PROGRAM PORT 的对应。可以这么理解 RPC 和 NFS 的关系:NFS 是一个文件系统,而 RPC 是负责负责信息的传输。

二. 使用的系统环境

系统 : CentOS release 6.8 (Final)

NFS server IP : 192.168.1.181

关闭防火墙和 SELINUX

三.安装 NFS 服务

centos 下安装 NFS 服务器不是很困难,相信大家经常使用 Linux 系统的没什么问题.

服务端:

先安装 nfs 服务

yum install nfs-utils -y

然后再安装 protmap 服务,改服务在 centos 中更名为 rpcbind

yum install rpcbind -y

客户端:

只需安装 nfs 服务

yum install nfs-utils -y

四.NFS 系统守护进程

nfsd:它是基本的 NFS 守护进程,主要功能是管理客户端是否能够登录服务器;

mountd:它是 RPC 安装守护进程,主要功能是管理 NFS 的文件系统。当客户端顺利通过 nfsd 登录 NFS 服务器后,在使用 NFS 服务所提供的文件前,还必须通过文件使用权限的验证。它会读取 NFS 的配置文件/etc/exports 来对比客户端权限。

portmap:主要功能是进行端口映射工作。当客户端尝试连接并使用 RPC 服务器提供的服务(如 NFS 服务)时,portmap 会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。

五.NFS 服务端配置

NFS 的常用目录

/etc/exports NFS 服务的主要配置文件

/usr/sbin/exportfs NFS 服务的管理命令

/usr/sbin/showmount 客户端的查看命令

/var/lib/nfs/etab 记录 NFS 分享出来的目录的完整权限设定值

/var/lib/nfs/xtab 记录曾经登录过的客户端信息

NFS 服务器的配置可以通过/etc/exports 这个文件进行,设定格式如下:

vi /etc/exports

分享目录 主机名称或者 IP(参数 1,参数 2)

/arm2410s 192.168.1.*(rw,sync,no_root_squash)

可以设定的参数主要有以下这些:

rw:可读写的权限; ro:只读的权限; no_root_squash:登入到 NFS 主机的用户如果是 root,该用户即拥有 root 权限; root_squash:登入 NFS 主机的用户如果是 root,该用户权限将被限定为匿名使用者 nobody; all_squash:不管登陆 NFS 主机的用户是何权限都会被重新设定为匿名使用者 nobody。 anonuid:将登入 NFS 主机的用户都设定成指定的 user id,此 ID 必须存在于/etc/passwd 中。 anongid:同 anonuid,但是变成 group ID 就是了! sync:资料同步写入存储器中。 async:资料会先暂时存放在内存中,不会直接写入硬盘。 insecure:允许从这台机器过来的非授权访问。

例如可以编辑/etc/exports 为:

/tmp     (rw,no_root_squash) /home/public 192.168.0.(rw)   *(ro) /home/test  192.168.0.100(rw) /home/linux  *.the9.com(rw,all_squash,anonuid=40,anongid=40)

设定好后可以使用以下命令启动 NFS: service rpcbind start
service nfs start exportfs 命令 如果我们在启动了 NFS 之后又修改了/etc/exports,是不是还要重新启动 nfs 呢?这个时候我们就可以用 exportfs 命令来使改动立刻生效,该命令格式如下: exportfs [-aruv] -a :全部 mount 或者 unmount /etc/exports 中的内容 -r :重新 mount /etc/exports 中分享出来的目录 -u :umount 目录 -v :在 export 的时候,将详细的信息输出到屏幕上。 具体例子: [root @test root]# exportfs -rv (全部重新 export 一次!) exporting 192.168.0.100:/home/test exporting 192.168.0.*:/home/public exporting *.the9.com:/home/linux exporting *:/home/public exporting *:/tmp reexporting 192.168.0.100:/home/test to kernel 具体例子: [root @test root]#exportfs -au(全部都卸载了) [root @test root]# vi /etc/exports

/home/soft 192.168.2.11(rw) [root@localhost /]# servcie nfs start Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS daemon: [ OK ] Starting NFS mountd: [ OK ]

六.NFS 客户端的配置

客户端使用 showmount 命令查询 NFS 的共享状态

showmount -e NFS 服务器 IP

客户端挂载

mount -t nfs 192.168.1.100:/opt/test /mnt

将挂载信息写入 fstab 文件

vi /etc/fstab

192.168.1.100:/opt/test /mnt nfs defaults

保存退出

mount -a

mount 相关参数

ro 以只读模式加载。 rw 以可读写模式加载。

sync 以同步方式执行文件系统的输入输出动作。

async 以非同步的方式执行文件系统的输入输出动作。 defaults 使用默认的选项。默认选项为 rw、suid、dev、exec、anto nouser 与 async。

atime 每次存取都更新 inode 的存取时间,默认设置,取消选项为 noatime。

noatime 每次存取时不更新 inode 的存取时间。 dev 可读文件系统上的字符或块设备,取消选项为 nodev。

nodev 不读文件系统上的字符或块设备。 exec 可执行二进制文件,取消选项为 noexec。

noexec 无法执行二进制文件。

auto 必须在/etc/fstab 文件中指定此选项。执行-a 参数时,会加载设置为 auto 的设备,取消选取为 noauto。 noauto 无法使用-a 参数来加载。

suid 启动 set-user-identifier(设置用户 ID) 与 set-group-identifer(设置组 ID) 设置位,取消选项为 nosuid。

nosuid 关闭 set-user-identifier(设置用户 ID) 与 set-group-identifer(设置组 ID) 设置位。

user 普通用户可以执行加载操作。 nouser 普通用户无法执行加载操作,默认设置。 remount 重新加载设备。通常用于改变设备的设置状态。

rsize 读取数据缓冲大小,默认设置 1024。

wsize 写入数据缓冲大小,默认设置 1024。

fg 以前台形式执行挂载操作,默认设置。在挂载失败时会影响正常操作响应。

bg 以后台形式执行挂载操作。

hard 硬式挂载,默认设置。如果与服务器通讯失败,让试图访问它的操作被阻塞,直到服务器恢复为止。 soft 软式挂载。如果服务器通讯失败,让试图访问它的操作失败,返回一条出错消息。这项功能对于避免进程 “挂” 在无关紧要的安装操作上来说非常有用。

retrans=n 指定在以软方式安装的文件系统上,在返回一条出错消息之前重复发出请求的次数。

nointr 不允许用户中断,默认设置。

intr 允许用户中断被阻塞的操作(并且让它们返回一条出错消息)。 timeo=n 设置请求的超时时间(以十分之一秒为单位)。

@yj6983292 麻烦看下排版说明,站点支持 markdown 语法的。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册