您的位置:首页 > 运维架构 > Linux

linux下的NFS文件共享服务(包含autofs自动挂载)的部署

2019-05-29 18:58 495 查看

1.什么是nfs以及它的优点?

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

优点:1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
3. 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。

2.实验环境配置

服务端:

vim /etc/sysconfig/network-script/ifcfg-eth0
hostnamectl set-hostname server.westos.com
vim /etc/yum.repos.d/westos.repo
vim /etc/hosts




客户端:

vim /etc/sysconfig/network-script/ifcfg-eth0
hostnamectl set-hostname server.client.com
vim /etc/yum.repos.d/rhe_dvd
vim /etc/hosts


3.NFS 服务的共享配置

NFS服务的安装

在服务端和客户端分别安装nfs服务

[root@server ~]# yum install nfs-utils.x86_64               # nfs 服务安装
[root@server ~]# systemctl start nfs-server                 # nfs 服务启动
[root@server ~]# systemctl enable nfs-server                # nfs 服务开机自启

注意关闭服务端与客户端的防火墙


NFS 服务程序的配置文件为 /etc/exports,默认情况下里面没有任何内容。我们可以按照“共享目录的路径 允许访问的 NFS 客户端(共享权限参数)”的格式,定义要共享的目录与相应的权限。
以下是它的一些参数和用法用法:

参数 作用
ro 只读
rw 读写
sysnc 同步–请求或写入数据时,数据同步写入到NFS Server的硬盘后才会返回。
asysnc 异步–请求或写入数据时,先返回请求,再将数据写入到内存缓存和硬盘中。
no_root_squash 访问NFS server共享目录的用户如果是root的话,它对该共享目录具有root权限。
root_squash 对于访问NFS server共享目录的用户如果是root的话,则他的权限将被压缩成匿名用户,同时他的UID和GID将会变成nobody或nfsnobody
all_squash 不管访问的NFS server共享目录的用户身份如何,他的权限都会被压缩成匿名用户。
anonuid 接上文,指定被压缩的用户的UID值。
anongid 接上文,指定被压缩的用户的GUI值。

进入服务端配置文件

[root@server ~]# vim /etc/exports   #编辑配置文件
内容如下:
1 /mnt     *(sync,rw,anonuid=1001,anongid=1001)
#共享目录   对所有用户共享(同步数据,读写权限,指定用户ID,组ID'如建立的文件属于此用户')
2 /nfsshare 172.25.254.0/24(ro,sync)  172.25.151.50(sync,rw)
#共享目录    对此网段的共享(数据同步)对此 IP 进行共享(数据同步,读写)

编辑完成后执行:exportfs -rv 进行刷新
exportfs   #维护导出的NFS文件系统的表
-r    #重新导出所有目录
-v    #示导出选项列表


客户端测试:

[root@client ~]# showmount
#显示NFS服务器的挂载信息
-e   #显示 NFS 服务器的共享列表
-a   #显示本机挂载的文件资源的情况
-v   #显示版本号
[root@client ~]# showmount -e 172.25.254.216                #查看 172.25.254.216 主机的 NFS 共享目录列表
[root@client ~]# mount 172.25.254.216:/mnt  /mnt            #执行此命令进行挂载使用 将172.25.151.150 下的共享目录 /nfsshare 挂载到客户端的 /mnt 下使用


此时服务端的/etc/exports文件里写的是只读模式,无法写入文件
改成读写(rw)

再次测试


这里出现拒绝是因为服务端nfs的共享目录/mnt权限不够

提升服务端/mnt权限后,我们发现在客户端可以正常的创建文件了。

4.autofs自动挂载服务

定义:mount是用来挂载文件系统的,可以在系统启动的时候挂载也可以在系统启动后挂载。对于本地固定设备,如硬盘可以使用mount挂载;而光盘、软盘、NFS、SMB等文件系统具有动态性,即需要的时候才有必要挂载。光驱和软盘我们一般知道什么时候需要挂载,但NFS和SMB共享等就不一定知道了,即我们一般不能及时知道NFS共享和SMB什么时候可以挂载。而autofs服务就提供这种功能,好像windows中的光驱自动打开功能,能够及时挂载动态加载的文件系统。免去我们手动挂载的麻烦。要实现光驱,软盘等的动态自动挂载,需要进行相关的配置。

特点: Autofs与Mount/Umount的不同之处在于,它是一种看守程序。如果它检测到用户正试图访问一个尚未挂接的文件系统,它就会自动检测该文件系统,如果存在,那么Autofs会自动将其挂接。另一方面,如果它检测到某个已挂接的文件系统在一段时间内没有被使用,那么Autofs会自动将其卸载。因此一旦运行了Autofs后,用户就不再需要手动完成文件系统的挂接和卸载。

[root@client ~]# yum install autofs.x86_64 -y   #进行安装
[root@client ~]# systemctl start autofs         #开启服务
[root@client ~]# systemctl enable autofs        #开机自启

#启动完毕后,会生成  /net 目录,此目录下没有任何东西。
#进入 /net/加NFS主机的IP 然后可以看到默认共享的目录,
#进入目录后,将会自动进行挂载操 作并将其作为挂载点
[root@client ~]# cd /net/172.25.254.216/nfsshare/

#当挂载设备闲置后,默认是在300s后将其卸载,可以通过编辑配置文件对此时间进行修改
#编辑 /etc/autofs.conf 对第 13 行进行修改
[root@client ~]# vim /etc/autofs.conf
编辑第 13 行:
13 TIMEOUT=3  规定了默认卸载时间,单位为 s (秒)

安装autofs服务

注意:autofs服务未开始时无法进入/net

进入对应目录自动挂载

rpm -qc autofs           ##查看autofs有那些配置文件

/etc/autofs.conf,进入配置文件,修改自动卸载时间 测试:

使用 autofs 进行挂载目录以及挂载类型的指定
/etc/auto.master 此处定义最终挂载点的上层目录
/etc/auso.nfs此处定义最终挂载点(此文件自己创建)

编辑 /etc/auto.master 主配置文件
[root@client ~]# vim /etc/auto.master
在第 7 行后添加
/mnt  /etc/auto.nfs
其中/mnt   #最终挂载点的上层目录
/etc/auto.westos  子配置文件
建立并编辑 /etc/auto.nfs对最终挂载点,挂载方式以及挂载设备进行确认
[root@client ~]# vim /etc/auto.nfs
内容如下:
westos  -ro  172.25.254.216:/mnt
其中 test 最终挂载点
-ro 只读挂载
172.25.254.216:/mnt 设备
重启服务后 进入 /mnt/westos
[root@client ~]# cd /mnt/westos

编辑载主配置文件

进入子配置文件

重启autofs

进入/mnt/westos

此时可以行使读写权限(mount查看挂载情况)

修改为只读模式(修改后要重启autofs)

进入/mnt/westos

此时为只读模式


进入服务端创建多个文件夹

编辑客户端子配置文件

分别进入westos1,wetsos2


三秒后自动卸载

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐