Linux教程

Linux学习--NFS和Autofs自动挂载

本文主要是介绍Linux学习--NFS和Autofs自动挂载,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Linux学习–NFS和Autofs自动挂载

NFS服务(network file sharing)

一、安装服务

[root@localhost ~]# dnf install nfs-utils
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:00:24 ago on Tue 12 Oct 2021 05:16:20 AM CST.
Package nfs-utils-1:2.3.3-14.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@localhost ~]# service nfs-server status
Redirecting to /bin/systemctl status nfs-server.service
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
 [root@localhost ~]# rpm -qf /usr/lib/systemd/system/nfs-server.service
nfs-utils-2.3.3-14.el8.x86_64

二、配置文件

配置文件 /etc/exprots

/nfsfile    192.168.31.11(rw,no_root_squash,async)

共享目录 可以访问这个目录的IP地址 (可以实IP地址可以是网段,:所有人可访问;网段:192.168.31. * ;192.168.31.0/24 )

可以在/var/lib/nfs/etab中查看相关的参数

参数作用
ro只读
rw读写
root_squash当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
no_root_squash当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
all_squash无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
sync同时将数据写入到内存与硬盘中,保证不丢失数据
async优先将数据保存到内存,然后再写入硬盘;这样效率更高,同时可能会丢失数据

三、启动RPC

NFS服务进程文件共享时需要启动RPC(Remote Procedure Call,远程过程调用)服务将NFS服务器的IP地址和端口号信息发送给客户端

[root@localhost init.d]# systemctl restart rpcbind
[root@localhost init.d]# systemctl enable rpcbind
[root@localhost init.d]# systemctl restart nfs-server
[root@localhost init.d]# systemctl enable nfs-server

NFS服务默认端口使用的是2049

[root@localhost yum.repos.d]# grep -i nfs /etc/services 
nfs             2049/tcp        nfsd shilp      # Network File System
nfs             2049/udp        nfsd shilp      # Network File System
nfs             2049/sctp       nfsd shilp      # Network File System

RPC的默认端口为111

[root@localhost ~]# grep -i rpcbind /etc/services 
sunrpc          111/tcp         portmapper rpcbind      # RPC 4.0 portmapper TCP
sunrpc          111/udp         portmapper rpcbind      # RPC 4.0 portmapper UDP

四、挂载

在客户端可以通过showmount命令来查看NFS服务器上共享了哪些文件夹

参数作用
-e显示NFS服务器的共享列表
-a显示本机挂载的文件资源的情况NFS资源的情况
-v显示版本号
[root@localhost ~]# showmount -e 192.168.31.10
Export list for 192.168.31.10:
/nfsfile 192.168.31.11

挂载NFS服务器共享出来的资源

[root@localhost ~]# mkdir /nfsfile
[root@localhost ~]# mount -t nfs 192.168.31.10:/nfsfile/  /nfsfile/
[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G  4.1G   13G   24% /
devtmpfs                 894M     0  894M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M   11M  900M    2% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup
/dev/sda1               1014M  179M  836M   18% /boot
tmpfs                    182M     0  182M    0% /run/user/0
tmpfs                    182M   24K  182M    1% /run/user/1000
/dev/sr0                 4.3G  4.3G     0  100% /run/media/linux/CentOS 7 x86_64
192.168.31.10:/nfsfile    17G  3.9G   14G   23% /nfsfile

五、排错

启动nfs时报错

[root@localhost ~]# systemctl start nfs-server.service
Job for nfs-server.service canceled.

打开日志,然后再启动nfs看日志内容,从日志中看到,/etc/exports文件的配置有错误,无法试别sysnc这个参数

[root@localhost ~]# tail -f /var/log/messages
Oct 22 23:34:19 localhost systemd[1]: Starting NFS server and services...
Oct 22 23:34:19 localhost exportfs[4190]: exportfs: /etc/exports:1: unknown keyword "sysnc"
Oct 22 23:34:19 localhost systemd[1]: nfs-server.service: Control process exited, code=exited status=1
Oct 22 23:34:19 localhost systemd[1]: nfs-server.service: Failed with result 'exit-code'.
Oct 22 23:34:19 localhost systemd[1]: Stopped NFS server and services.
Oct 22 23:34:19 localhost systemd[1]: Stopping NFSv4 ID-name mapping service...
Oct 22 23:34:19 localhost systemd[1]: Stopping NFS Mount Daemon...
Oct 22 23:34:19 localhost rpc.mountd[4189]: Caught signal 15, un-registering and exiting.
Oct 22 23:34:19 localhost systemd[1]: Stopped NFSv4 ID-name mapping service.
Oct 22 23:34:19 localhost systemd[1]: Stopped NFS Mount Daemon.

修改参数,并重启nfs服务,启动成功

 [root@localhost ~]# vim /etc/exports
 1 /nfsfile  192.168.31.11(rw,sync,root_squash)
[root@localhost ~]# systemctl restart nfs-server.service 

autofs自动挂载服务

一、安装服务

[root@localhost ~]# yum install autofs
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 1:autofs-5.0.7-116.el7_9.x86_64 已安装并且是最新版本
无须任何处理
[root@localhost ~]# yum remove autofs
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
---> 软件包 autofs.x86_64.1.5.0.7-116.el7_9 将被 删除
--> 正在处理依赖关系 autofs,它被软件包 ipa-client-4.6.8-5.el7.centos.9.x86_64 需要
--> 正在检查事务
---> 软件包 ipa-client.x86_64.0.4.6.8-5.el7.centos.9 将被 删除
--> 解决依赖关系完成

依赖关系解决

===============================================================================================================
 Package                  架构                 版本                               源                      大小
===============================================================================================================
正在删除:
 autofs                   x86_64               1:5.0.7-116.el7_9                  @updates               5.2 M
为依赖而移除:
 ipa-client               x86_64               4.6.8-5.el7.centos.9               @updates               255 k

事务概要
===============================================================================================================
移除  1 软件包 (+1 依赖软件包)

安装大小:5.4 M
是否继续?[y/N]:y
。。。。。。。。。。。。。。

二、主配置文件

主配置文件/etc/auto.master,参数编写格式“挂载目录 子配置文件”如:/misc /etc/auto.misc ;其中挂载目录是设备挂载位置的上一级目录,如我们把192.168.30.10:/nfsfile 挂载到本机的/misc/nfsfile目录下,那么挂载目录就写为/misc。

备注:配置好主配置文件后重启autofs服务,系统会自动创建填写的挂载目录,此处为/misc

[root@localhost nfsfile]# vim /etc/auto.master
# Sample auto.master file
# This is a 'master' automounter map and it has the following format:
# mount-point [map-type[,format]:]map [options]
# For details of the format look at auto.master(5).
#
/misc   /etc/auto.misc
#
# NOTE: mounts done from a hosts map will be mounted with the
#       "nosuid" and "nodev" options unless the "suid" and "dev"
#       options are explicitly given.
#
/net    -hosts
#
# Include /etc/auto.master.d/*.autofs
# The included files must conform to the format of this file.
#
+dir:/etc/auto.master.d
#
# Include central master map if it can be found using
# nsswitch sources.
#
# Note that if there are entries for /net or /misc (as
# above) in the included master map any keys that are the
# same will not be seen as the first read key seen takes
# precedence.
#
+auto.master

三、子配置文件

子配置文件可以自定义也可以使用主配置文件中的自带参数,格式“挂载目录 挂载文件类型及权限 :设备名称”;

参数作用
挂载目录指要将共享文件挂载到本机的哪个目录下
挂载文件类型及权限即文件的类型如iso,权限就是读写等权限
设备名称要挂载过来的文件或目录,可以是本地的文件,也可以是NFS服务器共享过来的资源

这里我们使用著配置文件自带的自动挂载文件/etc/auto.misc

[root@localhost nfsfile]# vim /etc/auto.misc 
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# Details may be found in the autofs(5) manpage

cd              -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
nfsfile         192.168.31.10:/nfsfile
# the following entries are samples to pique your imagination
#linux          -ro,soft,intr           ftp.example.org:/pub/linux
#boot           -fstype=ext2            :/dev/hda1
#floppy         -fstype=auto            :/dev/fd0
#floppy         -fstype=ext2            :/dev/fd0
#e2floppy       -fstype=ext2            :/dev/fd0
#jaz            -fstype=ext2            :/dev/sdc1
#removable      -fstype=ext2            :/dev/hdd

四、自动挂载的时间等信息配置

在 /etc/autofs.conf 文件中可查看autofs的相关配置参数

默认五分钟内不对nfs自动挂载的目录进行操作,系统将自动卸载autofs挂载过来的目录

[root@localhost misc]# vim /etc/autofs.conf
# Define default options for autofs.
[ autofs ]
# master_map_name - default map name for the master map.
#master_map_name = auto.master
# timeout - set the default mount timeout in secons. The internal
#           program default is 10 minutes, but the default installed
#           configuration overrides this and sets the timeout to 5
#           minutes to be consistent with earlier autofs releases.
timeout = 300

五、查看是否挂载成功

发现在进入/misc/nfsfile目录前无法看到挂载信息,进入到该目录下之后就可以查看到挂载信息了

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G  4.1G   13G   24% /
devtmpfs                 894M     0  894M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M   11M  900M    2% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup
/dev/sda1               1014M  179M  836M   18% /boot
tmpfs                    182M     0  182M    0% /run/user/0
tmpfs                    182M   24K  182M    1% /run/user/1000
/dev/sr0                 4.3G  4.3G     0  100% /run/media/linux/CentOS 7 x86_64
[root@localhost ~]# cd /misc/
[root@localhost misc]# ll
总用量 0
[root@localhost misc]# cd nfsfile
[root@localhost nfsfile]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G  4.1G   13G   24% /
devtmpfs                 894M     0  894M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M   11M  900M    2% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup
/dev/sda1               1014M  179M  836M   18% /boot
tmpfs                    182M     0  182M    0% /run/user/0
tmpfs                    182M   24K  182M    1% /run/user/1000
/dev/sr0                 4.3G  4.3G     0  100% /run/media/linux/CentOS 7 x86_64
192.168.31.10:/nfsfile    17G  3.9G   14G   23% /misc/nfsfile
这篇关于Linux学习--NFS和Autofs自动挂载的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!