NFS配置及应用与自动挂载(autofs)服务

NFS 概述

网络文件系统(Network File System,NFS) 是 Linux 系统支持的一种网络服务,通过 NFS ,网络中的计算机可以发布共享信息,从而可使远程客户像使用本地文件一样访问该共享资源,如果想使用远程计算机上的文件,只要用 mount 命令将远程的目录挂载在本地文件系统下,就可像使用本地文件一样使用相关资源

常规 NFS 服务器搭建

NFS 服务端 shareserver IP:192.168.1.152
NFS 客户端 client IP :192.168.1.153
关闭两边火墙

  • 服务端 NFS 安装

    [root@shareserver ~] # rpm -qa | grep nfs                                 # 查看系统是否已安装nfs软件包
    nfs-utils-1.3.0-0.21.el7.x86_64                                           # 系统已安装软件包
    [root@shareserver ~] # yum install nfs-utils -y                           # 系统没有则安装该nfs软件包
    [root@shareserver ~] # systemctl start nfs                                # 开启nfs服务
    [root@shareserver ~] # systemctl enable nfs                               # 开机自启动
    
  • 配置 NFS 服务
    下面通过配置 NFS 将 /westos 目录设置为共享目录

    # 建立目录 /westos, 在其中创建测试文件hello
    [root@shareserver ~] # mkdir /westos
    [root@shareserver ~] # echo 'hello,world' > /westos/hello
    
  • 配置 /etc/exports 文件
    NFS 服务的主配置文件是 /etc/exports,在该文件中可以设置 NFS 的共享目录、访问权限和允许访问的主机等参数;默认情况下该文件是空文件,不配置任何共享目录

    [root@shareserver ~] # vim /etc/exports
    /westos    192.168.1.0/24(sync,rw)                       # 允许192.168.1.0/24网段的客户端读写
    /westos       *(sync,rw,no_root_squash)             # 客户端root登陆时,依然继承服务端的超级用户身份
    /westos       *(sync,rw,anonuid=1001)               # 指定用户身份登陆,创建的文件在客户端显示1001身份,服务端显示1001身份的用户
    # 比如客户端1001是hello,则在客户端看创建的文件用户就是hello,服务端1001是westos,则在服务端看创建文件的用户就是westos
    /westos    192.168.1.153(sync,rw,anonuid=1001,anongid=1000)  *(ro)
    # 只有153客户端读写挂载,且用户身份1001,组1000;其他人都是只读挂载
    # 此时客户端建立的文件是hello,student,服务端是westos,student
    [root@shareserver ~] # exportfs -rv                      # 更新数据,相当于重启NFS服务
    # sync : 数据同步写入到内存与硬盘中,避免数据丢失,建议所有共享目录都使用该选项
    # 该文件中每一行提供一个共享目录设置,有多个目录需要共享时,只需要添加相应行
    
  • 服务端测试
    使用 showmount 命令查看指定服务器的 NFS 共享信息,常用选项 -e : 显示指定服务器所有输出的共享目录

    [root@shareserver ~] # showmount -e 192.168.1.152
    Export list for 192.168.1.152:
    /westos *                                          # 本实验我们允许任何人读写该目录
    

使用 NFS 服务

  • 查看 NFS 共享(客户端测试)

    [root@client ~] # showmount -e 192.168.1.152
    Export list for 192.168.1.152:
    /westos *   
    
  • 挂载共享目录
    若要使用共享目录,必须将它挂载到本地

    # mount 服务器名或IP地址:共享目录           本地挂载目录
    [root@client ~] # mount 192.168.1.152:/westos /mnt/                   # 将共享目录挂载到本地/mnt
    [root@client ~] # ls /mnt/
    hello                                                                 # 有我们的测试文件,说明目录共享成功
    [root@client ~] # vim /etc/fstab
    192.168.1.152:/westos   /mnt/      nfs   defaults       0  0          # 让共享目录自动挂载
    
  • 用户身份映射与权限设置

    1. root账户访问 NFS 服务器,服务端会主动将客户端身份映射成 NFS 匿名用户 nfsnobody
    2. NFS 服务器有客户端账号(uid),就以服务器上相应身份权限访问共享目录
    3. NFS 服务器没有该客户端账号,则映射为 nfsnobody
    # 为方便客户端访问,将共享目录用户和组设为nfsnobody
    [root@shareserver ~] # chown nfsnobody:nfsnobody /westos               # 服务端修改该共享目录
    

autofs 自动挂载服务

本实验我们将autofs与上文 NFS 服务结合使用,方便理解

  • 了解 autofs 服务
    autofs 与 mount/umount 不同之处在于,autofs是一种服务程序,检测到用户正试图访问一个尚未挂载的文件系统,它就会自动检测文件系统,若存在就自动挂载,若某个已挂载的文件系统一段时间未使用,则它就会自动卸载。对于本地固定设备(硬盘等),建议使用 mount 方式挂载;对于临时性动态设备(光盘、U盘、NFS共享、Samab共享等),建议使用 autofs 自动挂载

  • NFS 客户端安装自动挂载软件

    [root@client ~] # yum install autofs.x86_64 -y
    [root@client ~] # systemctl start autofs                   # 开启自动挂载服务,会生成/net目录
    
  • 特殊映射/net
    开启autofs服务后,会自动生成 /net 这个目录,默认将共享目录挂载在该目录中,只要使用 cd 命令指定 NFS 服务器的IP地址,就可以直接挂载使用远程主机上的 NFS 共享

    # 通过特殊映射/net实现自动挂载NFS共享
    [root@client ~] # cd /net/192.168.1.152/westos              # 使用cd命令时就会自动挂载共享目录
    [root@client westos] # ls
    hello
    

    NFS配置及应用与自动挂载(autofs)服务_第1张图片

  • 自定义卸载时间

    [root@client ~] # vim /etc/sysconfig/autofs                    # 等待时间配置文件
    timeout=5                                                      # 切出共享目录路径,5秒后就自动卸载
    
  • 自定义NFS挂载点
    若要自己创建挂载点,就在/etc/auto.master 中写入设置项,指明挂载点和挂载点配置文件

    [root@client ~] # vim /etc/auto.master                   # autofs服务的主配置文件
    /pub   /etc/auto.pub                                     # 指定/pub为自动挂载点,配置文件是/etc/auto.pub
                                                             # 也可理解为指定挂载目录的上层目录
    [root@client ~] # vim /etc/auto.pub                      # 创建自动挂载点配置文件
    westos  192.168.1.152:/westos                            # 将共享目录挂载到/pub/westos,开头这个目录名随意
    # 该文件中指定的就是/pub挂载点下的一个目录westos,这个目录必须有
    [root@client ~] # systemctl restart autofs
    [root@client ~] # cd /pub/westos                         # 直接进入该目录就会自动挂载
    [root@client ~] # ls
    hello                                                    # 存在测试文件hello
    
  • 自定义挂载参数指定
    在自动挂载配置文件中,可以设定自动挂载的参数

    [root@client ~] # vim /etc/auto.pub                      # 修改自动挂载配置文件
    westos -ro,vers=3 192.168.1.152:/westos                  # 以只读方式自动挂载共享目录到/pub/westos,指定vers版本3
    [root@client ~] # systemctl restart autofs               # 重启服务
     ## 我们可以使用mount查看挂载情况,默认不加参数的情况下,自动挂载权限rw,vers=4
    
  • 补充:
    默认情况下,可以对共享目录rw,这里指定ro后,就只能读,还要注意NFS服务端的/etc/exports文件对客户端的权限设置
    服务端/westos目录权限以及所属用户和组,修改为nfsnobody客户端root登陆还不能写时,则在服务端/etc/exports文件中加入参数no_root_squash

你可能感兴趣的:(学习笔记)