[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 | 优先将数据保存到内存,然后再写入硬盘;这样效率更高,同时可能会丢失数据 |
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
[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