NFS+AUTOFS 实验

简介:

NFS (network file system) 网络文件系统

可以快速进行文件共享,方便集中管理

NFS 并不是监听在固定端口,而是随机采用一些未被使用并且小于 1024 的端口,中间通过 RPC 协调实现互联. 而 RPC 工作在 tcp udp 的 111 端口.

可以通过 # rpcinfo –p localhost 查看 //rpcbind 的守护进程 //NFS 的守护进程 //NFS mountd 守护进程

AUTOFS

当客户端和服务器端连接后,任何一方离线都可能导致另一方在不断等待,消耗 NFS 服务器的资源

使用 autofs 就可以避免这类问题,让用户仅在访问时能够动态挂载目录

试验环境   CentOS版本为 6.7

两台虚拟主机即可,关闭防火墙\SElinx,互相能ping通

本人使用的是 vmvare workstation11 . 之前一直没用克隆选项,没想到在11中关闭虚拟机完成克隆后不需要做任何更改.

假如原来的主机网卡为eth0.  那么克隆后的主机网卡则为eth1. 两台主机的 MAC 地址也不一样. 真是方便  (木哈哈哈哈)

1)  NFS SERVER : 192.168.0.28

2)  NFS CLIENT : 192.168.0.30

首先配置 NFS SERVER

[root@beiyong2 ~]# rpm -qa nfs-utils rpcbind      
nfs-utils-1.2.3-26.el6.x86_64          # NFS 服务主程序
     
rpcbind-0.2.0-9.el6.x86_64             # Centos6.X 下为 RPC 主程序  ( Centos5.X下为 portmap )

↑ # 在 CentOS 6x 桌面版中,默认已经安装了 NFS 服务

[root@beiyong2 ~]# mkdir /shared    
[root@beiyong2 ~]# cp /etc/fstab /shared

↑ # 在 / 目录下创建 shared 目录,作为将要共享出去的目录,复制一个文件,方便后面测试是否能够成功

[root@beiyong2 ~]# /etc/init.d/rpcbind start      
[root@beiyong2 ~]# /etc/init.d/nfs start

↑ # 要想启动 NFS 服务需要启动 rpcbind 服务和 NFS 服务.由于 NFS 在启动时需要进行端口注册,所以需要注意启动程序 先启动 rpcbind 在启动 nfs     

接下来开始配置 /etc/exports 配置文件. 该文件为 NFS 的主要配置文件,但是需要自行创建,手工进行编辑

exports 文件的编辑格式如下

共享目录     [客户端1](选项1,选项2,......)        [客户端2](选项1,选项2,.....)

/shared      192.168.0.0/24(ro)         

↑ # 实验中我的 /etc/exports 内容. 表示共享目录的名称为 /shared   192.168.0.0 中的所有主机可以访问,权限为 只读

该实验中可以访问我的客户端为 192.168.0.0 中所有主机,但也支持主机名与通配符 "*" "?"

客户端地址设置

example                          表示主机名为 example 的主机可以访问

host?.example.com     ?表示为任意一个字符

*.example.com             表示为 example.com 域中的所有主机均可以访问

*                        表示为所有主机均可以访问

选项设置

ro     客户端只能以只读的方式共享目录中的文件

rw    客户端对目录可读写

sync       数据同步写内存与磁盘.效率低

async     异步 IO 方式,数据先存入内存,需要时写入磁盘.效率高,风险大

 

在将 /etc/exports 文件保存退出后可以重启 nfs 服务 (service nfs restart)

[root@beiyong2 ~]# exportfs –rv       (也可以使用 /etc/init.d/nfs reload)

↑ # 平滑加载 , 不影响客户也不用重启

[root@beiyong2 ~]# showmount -e 192.168.0.28

Export list for 192.168.0.28:

/shared 192.168.0.0/24   

到此为止 , NFS 服务器端的配置已经完毕 , 通过 showmount 命令得知该服务器共享的目录

以下是几个常用命令总结 :

[root@beiyong2 ~]# /etc/init.d/rpcbind status           #检查 rpcbind 服务是否在运行     
rpcbind (pid  5798) is running...

exportfs 命令              -rv : 重新输出 , 不用重启       -au : 取消全部输出     
          
-a : 全部输出或取消全部输出所有的共享目录

          -i : 忽略 /etc/exports 配置文件 , 而使用默认或命令行中指定的选项

          -r : 重新读取 /etc/exports 中的配置

          -u : 取消一个或多个共享目录的输出

          -v : 单独使用时显示共享目录以及现象设置,组合使用时为显示了进行哪些操作

showmount 命令

格式 : showmount    [选项]    [主机或 IP 或名称]

          -a : 显示已经挂载了服务器共享目录的客户端及他们所使用的共享目录

          -e : 显示指定 NFS 服务器输出的共享目录列表. (客户端服务器端均可以使用)

          -d : 与 –a 类似 , 但是只显示目录 , 不显示客户端

常用命令总结完毕,接下来配置客户端

---------------来个分割线--------------NFS服务器端配置-------------------------------------

[root@beiyong ~]# rpm -qa rpcbind    

rpcbind-0.2.0-11.el6.x86_64   

↑ # 服务器端同样需要安装 rpcbind 包

[root@beiyong ~]# showmount -e 192.168.0.28

Export list for 192.168.0.28:

/shared 192.168.0.0/24   

↑ # 192.168.0.28 为 NFS 服务器的地址 , 查看有哪些可以挂载的目录

[root@beiyong ~]# mount -t nfs -o nfsvers=3 192.168.0.28:/shared /mnt/nfs

↑ # 开始挂载 –o nfsvers=3 为指定 nfs 的版本 , 在CentOS6中默认版本为4,若不加此选项,在服务器端执行 showmount –a –d 命令无法成功.当然 /mnt/nfs 的目录是提前创建好的,为挂载点

[root@beiyong nfs]# ls

fstab

↑ # 此时进入 /mnt/nfs 目录可以看到 fstab 文件,测试成功

设置开机自动挂载

若需要开机自动挂载可以通过 chkconfig nfs on 命令 , 也可以写入 /etc/fstab 文件中. 格式如下

192.168.0.28:/shared             /mnt/nfs             nfs       defaults               0 0

---------------------再来一个分割线-------------配置autofs---------------------------------

[root@beiyong ~]# rpm -qa autofs

autofs-5.0.5-113.el6.x86_64   

↑ # 客户端需要安装 autofs , 版本中已经默认安装

autofs 服务的主要配置文件为 /etc/auto.master . 需要编辑该文件,添加挂载目录

nfs

↑ # /mnt/nfs 为本机的挂载点    /etc/auto.nfs  该文件本来并不存在,需要一会儿手工创建   --timeout=10 动态链接你懂的

[root@beiyong ~]# cat /etc/auto.nfs    

server  -ro  192.168.0.28:/shared

↑ # 在 /etc 中创建文件 auto.nfs 内容如上 .    server目录是不存在,autofs会自动创建

[root@beiyong ~]# service autofs reload    

↑ # 重新载入 maps

[root@beiyong ~]# cd /mnt/nfs

[root@beiyong nfs]# cd server

[root@beiyong server]# ls

fstab   

[root@beiyong server]# pwd

/mnt/nfs/server   

↑ # cd 进 /mnt/nfs 目录后 , cd server 访问挂载成功.

[root@beiyong ~]# chkconfig autofs on

↑ # 实现 autofs 开机自启动

 

最后自己在总结一下权限的问题

挂载后对共享目录的权限有两层,一个是在服务器端挂载时设置的权限,还有一个是共享文件自身的权限,二者取最小的权限

 

写的不对不好的地方,还希望各位大虾指教,小弟虚心接受.  

本文转自   mlwzby   51CTO博客,原文链接:http://blog.51cto.com/aby028/1829481

相关文章
|
8月前
|
5G 内存技术
LVM逻辑卷以及配置NFS服务相关实验
LVM逻辑卷以及配置NFS服务相关实验
|
9月前
|
Linux
Linux系统之使用autofs自动挂载nfs共享
Linux系统之使用autofs自动挂载nfs共享
115 1
|
网络安全 数据安全/隐私保护 网络协议
|
开发工具 安全 网络协议