NFS+AUTOFS 服务的基本配置

NFS

为什么要用 NFS

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

FNS 的好处

节省本地存储空间,将常用的数据存放在一台 NFS 服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
用户不需要在网络中的每个机器上都建有 Home 目录,Home 目录可以放在 NFS 服务器上且可以在网络上被访问使用。
一些存储设备 CDROM 和 Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
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 是负责负责信息的传输。


一、准备阶段(客户端、服务端)

服务端

[root@server ~]# yum install nfs-utils -y
Loaded plugins: langpacks
rhel_dvd                                                 | 4.1 kB     00:00     
Package 1:nfs-utils-1.3.0-0.el7.x86_64 already installed and latest version
Nothing to do
[root@server ~]# systemctl start nfs

客户端

[root@client ~]# yum install nfs-utils -y
Loaded plugins: langpacks
rhel_dvd                                                 | 4.1 kB     00:00     
Package 1:nfs-utils-1.3.0-0.el7.x86_64 already installed and latest version
Nothing to do
[root@client ~]# showmount -e 172.25.254.236
Export list for 172.25.254.236:

相关命令

  1. showmount 参数 nfs_server(IP)
    -e nfs_server(IP) 查看 nfs 提供共享的文件系统
    -a nfs_server 查看 nfs 服务器所有被挂载的文件系统及其挂载的客户端对应关系列表
    -d nfs_server 显示 nfs 服务器所有导出的文件系统
    exportfs 参数:
    -a:跟 - r 或 - u 同时使用,表示重新挂载所有文件系统或取消导出所有文件系统
    -r:重新导出
    -u:取消导出
    -v:显示详细信息

实验

  1. ehco “/mnt 172.25.254.0/24(ro,sync)” > /etc/exports
  2. /mnt 172.25.254.0/24(ro,sync)
    共享 / mnt 目录,允许 172.25.254.0 网段地址使用挂载
    模式可以为 (ro 只读),(rw 读写),(sync 异步),(async 同步)
  3. ehco “/mnt *(ro,sync)” > /etc/exports
  4. 共享 / mnt 目录,允许所有网段地址使用挂载

实验 1

[root@server ~]# vim /etc/exports
[root@server ~]# cat /etc/exports
/mnt *(sync,ro)                同步,只读模式
[root@server ~]# exportfs -rv
exporting *:/mnt

测试,不可删除
只读模式下不可删除

实验 2

[root@server mnt]# vim /etc/exports
[root@server mnt]# cat /etc/exports
/mnt *(sync,rw)         同步读写模式
[root@server mnt]# exportfs -rv
exporting *:/mnt

不可删除,服务端 / mnt / 权限不够
这里写图片描述

[root@server mnt]# ls -ld /mnt/
drwxr-xr-x. 2 root root 18 Jun  8 00:45 /mnt/
[root@server mnt]# chmod 777 /mnt/
[root@server mnt]# ls -ld /mnt/
drwxrwxrwx. 2 root root 18 Jun  8 00:45 /mnt/

给完权限后可以删除
这里写图片描述

实验 3

  1. no_root_squash:登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目『极不安全』,不建议使用!
    root_squash:在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份。
[root@server ~]# vim /etc/exports
[root@server ~]# cat /etc/exports
/mnt *(sync,rw,no_root_squash)
[root@server ~]# exportfs -rv
exporting *:/mnt

这里写图片描述

[root@server ~]# vim /etc/exports
[root@server ~]# cat /etc/exports
/mnt *(sync,rw,root_squash)
[root@server ~]# exportfs -rv
exporting *:/mnt

这里写图片描述

实验 4

[root@server ~]# vim /etc/exports
[root@server ~]# cat /etc/exports
/mnt *(sync,rw,anonuid=1000,anongid=1000)  ##同步、读写、建立的文件属性是uid=1000、gid=1000的用户
[root@server ~]# exportfs -rv
exporting *:/mnt

这里写图片描述

实验后进行如下操作以便autofs实验
[root@server ~]# vim /etc/exports
[root@server ~]# cat /etc/exports
/westos 172.25.254.0/24(sync,rw,no_root_squash)
[root@server ~]# exportfs -rv
exporting 172.25.254.0/24:/westos

Autofs

autofs —— 自动挂载工具
特点:它与 mount 的不同,autofs 是一个守护进程,如果它检测到用户正在访问一个尚未挂载的文件系统,如果存在,autofs 会自动将其挂载;如果它检测到某个已经挂载的文件系统在一段时间内没有被使用,那么 autofs 会自动将其卸载。

[root@client ~]# yum install autofs.x86_64 -y安装autofs客户端
[root@client ~]# cd /net
-bash: cd: /net: No such file or directory   ##没有开启 autofs 服务之前,目录/net是不存在的
[root@client ~]# vim /etc/sysconfig/autofs 
##修改第13行   
##设定空闲卸载时间,空闲5秒后自动卸载
[root@client ~]# cat /etc/sysconfig/autofs | head -n 13 | tail -n 1
TIMEOUT=5
[root@client ~]# systemctl start autofs
[root@client ~]# cd /net/
[root@client net]# pwd
/net
[root@client net]# ls
[root@client net]# cd 172.25.254.236
[root@client 172.25.254.236]# pwd
/net/172.25.254.236
[root@client 172.25.254.236]# ls
westos
[root@client 172.25.254.236]# cd westos/
[root@client westos]# ls
[root@client westos]# df            ##挂载点默认在/net/172.25.254.236/westos
Filesystem             1K-blocks    Used Available Use% Mounted on
/dev/vda1               10473900 3186552   7287348  31% /
devtmpfs                  469344       0    469344   0% /dev
tmpfs                     484932      80    484852   1% /dev/shm
tmpfs                     484932   12764    472168   3% /run
tmpfs                     484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo        483670    2339    451840   1% /home
172.25.254.236:/westos  10473984 3158272   7315712  31% /net/172.25.254.236/westos
[root@client westos]# cd
[root@client ~]# pwd
/root
过五秒后
[root@client ~]# df              已经自动卸载
Filesystem         1K-blocks    Used Available Use% Mounted on
/dev/vda1           10473900 3186552   7287348  31% /
devtmpfs              469344       0    469344   0% /dev
tmpfs                 484932      80    484852   1% /dev/shm
tmpfs                 484932   12764    472168   3% /run
tmpfs                 484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo    483670    2339    451840   1% /home

指定挂载点为 / nfs/westos

[root@client ~]# vim /etc/auto.master
[root@client ~]#  cat /etc/auto.master | head -n 8 | tail -n 1
/nfs    /etc/auto.westos
##/nfs ——挂载目录的上层全部路径
##/etc/auto.westos   自动挂载的配置文件
[root@client ~]# vim /etc/auto.westos
[root@client ~]# cat/etc/auto.westos
-bash: cat/etc/auto.westos: No such file or directory
[root@client ~]# cat /etc/auto.westos
westos -ro 172.25.254.236:/westos
##westos ——挂载点,文件名可以不存在
##-ro ——挂载模式(ro:只读)
##172.25.254.236:/westos ——需要挂载的设备,本地的——“: 设备“,网络的——“IP : 目录“
[root@client ~]# systemctl restart autofs.service 

这里写图片描述
这里写图片描述

[root@client westos]# vim /etc/auto.westos 
[root@client westos]# cat /etc/auto.westos
westos -rw,vers=3 172.25.254.236:/westos
[root@client westos]# cd
[root@client ~]# systemctl restart autofs.service

这里写图片描述

猜你喜欢

转载自blog.csdn.net/awoyaoc/article/details/80623163