文件共享NFS&&autofs
文件传输工具
NFS服务
ftp vsftpd
Samba linux和Windows之间进行文件共享
专用于linux和linux之间的专门的文件共享服务 (NFS服务),network,filesystem网络文件系
NFS服务可以把远程linux机器上面的文件目录数据,通过挂载的形式,映射在用户本地机器
(linux用户在自己本地有一个文件夹,通过NFS服务把本地这个文件夹,远程挂载到网络中一台机器的文件夹)
本地/mnt -----------------------远在广东的一台服务器/chaogedir
NSF特点
NFS很想Windows的网络共享,Samba服务
Samba服务主要用于办公室的局域网共享服务
NFS发展有30年,代表一个稳定的网络文件共享系统,中小型企业最佳的文件共享选择
共享存储的形式
分为软件,硬件共享存储的形式
软件共享存储 -------NFS服务搭建
硬件共享存储
中小型企业一般不会购买硬件存储设备,成本太高,大公司业务发展特别快,想要购买硬件设备分散网站的压力,如果网站的压力持续增长,硬件存储设备就得继续扩展,成本过高
因此主流的企业都会选择开源的软件替代硬件设备,比如NFS集群服务的搭建
NFS和RPC的概念
NFS通过port传输数据,NFS服务在传输数据的时候,端口是随机选择的(自己重启NFS服务,查看端口是否在变化)
答案就是NFS是通过RPC服务,进行一个端口注册,实现告知用户,NFS的工作端口是哪一个
什么是RPC
RPC(远程过程调用)
linux上使用NFS服务,必须启动2个服务
NFS服务
RPC服务
NFS服务通过RPC注册自己的端口功能
RPC服务功能就是记录每个NFS功能对应的一个端口号,并且RPC保证了NFS客户端发出请求的时候,把该功能对应的端口信息告知NFS客户端,保证客户端能够正确连接到NFS服务端的端口,达到数据传输的目的
RPC好比是一个中介,处于客户端和服务端之间
RPC服务如何知道NFS服务端的端口信息呢
答案是:NFS服务器启动的时候,会随机采用若干个端口,并且主动在RPC服务中进行注册
如此一来,RPC服务就正确知道所有NFS服务端的端口功能了,RPC夫妇默认使用linux的111端口和NFS客户端,进行一个交流,并且通过111端口将正确的NFS服务端的端口信息,告知给NFS客户端。
因此NFS客户端就能够正确找到NFS服务端的端口信息了
RPCBIND
RPC在centos7系统平台下,实现的软件,RPCBIND服务
NFS服务的配置,必须先运行好RPCBIND服务才行
如果RPCBIND服务重启了,原本注册的NFS服务端的信息也就失效了,你还得再重启NFS服务端,重新注册信息才行
如果你仅仅修改了NFS配置文件,不需要重启NFS服务端,因为重启之后,端口的信息就更新了还得重新注册,只需要执行如下命令,重新读取NFS配置文件即可
exrpotfs -rv
systemctl reload nfs
安装配置NFS
nfs-utils: NFS服务的主程序,包括了rpc.nfsd.rpc.mountd这两个守护进程,相关的配置文件信息
rpcbind:centos7,是一个RPC服务进程
[root@lzyunv ~]# yum -y install nfs-utils rpcbind
环境配置
NFS是c/s模式,client,server准备一个NFS客户端,两天linux机器
在NFSserver端 创建一个共享的文件夹,且设置相应的读写权限
[root@lzyunv ~]# mkdir /nfsalex
[root@lzyunv ~]# ls /nfsalex/
[root@lzyunv ~]# chmod -Rf 777 /nfsalex/
修改NFS服务的配置文件
/etc/exports
nfs配置文件,想要遵守如下的规矩
NFS服务端共享目录, NFS客户端地址(参数1,参数2....) NFS客户端地址2(参数1,参数2....)
例如
#把nfs服务端的根目录共享出去,且允许两个主机名为clientl client2的机器,进行一个rw,读写权限
/ clientl(rw) client2(rw)
#允许任意的客户端,都能够挂载到此NFS服务端的 /public目录下
/public *(rw)
#只允许指定IP地址的服务器,能够挂载此NFS服务端的/home/alex文件夹 且是只读的
/home/alex 192.168.124.42(ro)
nfs语法参数解释
1.nfs共享目录:是NFS服务器需要共享出去的实际目录,文件夹,必须写绝对路径,且注意目录的读写本地权限,如果你允许客户端读写操作,other有一个读写的权限(user,group,other 三个身份)
2.NFS客户端地址,也就是NFS服务器授权可以访问共享目录的地址,可以写主机名,可以写通配符,IP地址
3.权限参数,对NFS授权的客户端,进行权限控制的参数,详细见下面的案例
nfs客户端地址形式
单一客户端 192.168.124.113 用的很少
允许整个网段访问 192.168.124.0/24 指定局域网网段,用的还是很多的
授权整个域名客户端 nfs.alex.com 用的很少
授权子域名客户端 *.alex.com 用的很少
nfs客户端的权限参数
ro 只读
rw 读写
root_squash 当nfs客户端以root账号访问,NFS服务端共享目录数据的时候,把该root映射为NFS服务端的一个匿名用户,该用户的UID,GID会变成nfsnobody的信息
no_root_squash 几乎和上面一样 root账户会映射为root账户,非常不安全,禁用
all_squash 所有nfs客户端的用户映射为匿名用户很安全,生产环境常用
sync 数据同步写入到内存和磁盘,优点是保证内存数据安全,但是效率太低
async 数据先写入到内存,再持久化到磁盘,效率非常高,但是可能会有数据丢失的隐患
启动NFS服务端的文件目录共享
NFS服务都是基于RPC的111通讯端口,必须确保先启动RPC服务
如果RPCBIND服务停止了,111端口也不会挂掉,因为centos7还提供了一个rpcbind.socket服务运行着
1.保证rpcbind服务正常运行
systectl status rpcbind
NFS服务端部署
1. 确保rpcbind服务正常启动
2.创建nfs服务端共享的目录,且进行权限修改
[root@localhost ~]# mkdir -p /nfsalex/
[root@localhost ~]# chmod -Rf 777 /nfsalex/
[root@localhost ~]# id nfsnobody
uid=65534(nfsnobody) gid=65534(nfsnobody) 组=65534(nfsnobody)
[root@localhost ~]# chown -R nfsnobody.nfsnobody /nfsalex/
3.在nfs共享目录中,创建测试的文件[root@localhost ~]# touch /nfsalex/alex你是个天才.txt
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# touch /nfsalex/alex爱丽魔力转圈圈.txt
4.修改nfs服务端的配置文件,进行客户端授权
[root@localhost ~]# cat /etc/exports
/nfsalex *(insecure,rw,sync) #参数解释,允许客户端大于1024的端口发请求
5.重新加载nfs,读取配置文件
[root@localhost ~]# systemctl restart nfs
6检查本地的nfs服务挂载情况
[root@localhost ~]# showmount -e 127.0.0.1
Export list for 127.0.0.1:
/nfsalex *
7.再次检查nfs服务端的共享参数
[root@localhost ~]# cat /var/lib/nfs/etab
/nfsalex *(rw,sync,wdelay,hide,nocrossmnt,insecure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,insecure,root_squash,no_all_squash)
8.此时可以把nfs服务端本地,当做一个客户端,模拟挂载访问试试
[root@localhost ~]# mount -t nfs 127.0.0.1:/nfsalex /mnt/
[root@localhost ~]# mount -l |grep mnt #查看挂载情况
[root@localhost ~]# ls /mnt/
alex爱丽魔力转圈圈.txt alex你是个天才.txt
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# ls
alex爱丽魔力转圈圈.txt alex你是个天才.txt
[root@localhost mnt]# touch mnt到此一游.txt #表示nfs目录共享是可读,可写的
[root@localhost mnt]# ls
alex爱丽魔力转圈圈.txt alex你是个天才.txt mnt到此一游.txt
[root@localhost /]# ls /mnt/
[root@localhost /]# ls /nfsalex/
alex爱丽魔力转圈圈.txt alex你是个天才.txt mnt到此一游.txt
9.如果不用nfs目录共享了,可以直接取消挂载
[root@localhost /]# umount /mnt/
nfs客户端远程挂载使用
1.准备一个新的linux客户端机器,并且安装nfs相关的软件
[root@localhost ~]# yum -y install nfs-utils rpcbind
2.确保rpcbind服务正常
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# systemctl status rpcbind
● rpcbind.service - RPC bind service
Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
Active: active (running) since 五 2020-07-17 09:19:52 CST; 1h 30min ago
Process: 668 ExecStart=/sbin/rpcbind -w $RPCBIND_ARGS (code=exited, status=0/SUCCESS)
Main PID: 674 (rpcbind)
Tasks: 1
CGroup: /system.slice/rpcbind.service
└─674 /sbin/rpcbind -w
7月 17 09:19:47 localhost.localdomain systemd[1]: Starting RPC ...
7月 17 09:19:52 localhost.localdomain systemd[1]: Started RPC b...
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]#
3.可以远程的检查,nfs服务端的共享情况
[root@localhost ~]# showmount -e 192.168.124.46
Export list for 192.168.124.46:
/nfsalex *
4.进行以nfs协议的挂载使用了
[root@localhost ~]# mount -t nfs 192.168.124.46:/nfsalex /lz888/
5.检查nfs客户端本地的挂载情况
[root@localhost ~]# mount -l |tail -1
192.168.124.46:/nfsalex on /lz888 type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.124.45,local_lock=none,addr=192.168.124.46)
6.进入本地挂载的目录,尝试访问远程的NFS服务端数据
root@localhost ~]# cd /lz888/
[root@localhost lz888]# touch 大碗宽面.txt
[root@localhost lz888]# ls
alex爱丽魔力转圈圈.txt mnt到此一游.txt
alex你是个天才.txt 大碗宽面.txt
7,如果不想用了,可以卸载目录挂载
[root@localhost ~]# umount /lz888/
8,。如果挂载,取消挂载出现问题,怎么办
#取消挂载失败, 注意, 不要呆在挂载点中
[root@localhost lz888]# umount /lz888/
umount.nfs4: /lz888: device is busy
[root@localhost lz888]# cd
[root@localhost ~]# umount /lz888/
如果挂载都失败,检查服务端的配置,以及防火墙是否打开
nfs自动挂载服务
配置开机挂载服务,每次开机都能使用nfs
1把挂载目录写入到,开机自动挂载文件中
/etc/fsrab文件
[root@localhost ~]# tail -1 /etc/fstab
192.168.124.46:/nfsalex /lz888 nfs defaults 0 0
autofs自动挂载服务
如果开机就强制挂载很多内容,但是又不经常使用,会给服务器造成很大的压力
因此一些具有动态特性的文件系统,可以选择进行动态挂载
比如
光盘,软盘,u盘,移动硬盘,NFS,SMB等文件系统
autofs特点
autofs和mount命令的不同点在于
autofs是一个守护进程,他会在后台检测用户是否需要访问某一个还未挂载文件系统,autofs会自动检测该文件系统是否存在,如果存在如果用户过则进行挂载,如果用户过了一段时间没有使用该文件系统。autofs自动将其卸载,节省人力维护的成本,以及节省服务器资源。
缺点
autofs特点是,当用户请求时才挂载文件系统,如果是高并发的业务场景,大量的用户并发访问文件系统
autofs突然进行大量的挂载,会给服务器造成很大的压力,因此在一些高并发场景下,宁愿保存持续挂载也不用autofs
安装autofs工具
[root@localhost ~]# yum -y install autofs
修改autofs配置文件
打开autofs配置文件,找到第七行,添加如下代码
vim /etc/anto.master
/misc /etc/auto.misc
/- /etc/auto.home #添加这里的配置参数
修改自定义的自动挂载配置文件
[root@localhost ~]# cat /etc/auto.home
启动autofs
systemctl start autofs
检查本地文件系统情况
1.检查现有的本地挂载文件系统情况
root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 6.0G 12G 35% /
devtmpfs 471M 0 471M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 8.6M 479M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 157M 858M 16% /boot
tmpfs 98M 8.0K 98M 1% /run/user/42
tmpfs 98M 40K 98M 1% /run/user/0
/dev/sr0 4.2G 4.2G 0 100% /run/media/root/CentOS 7 x86_64
文件共享NFS&&autofs的更多相关文章
- Linux_LDAP+NFS+autofs
目录 目录 前言 Ldap LDAPNFSautofs ServerPost 前言 LDAP+NFS+Autofs也是一种网络用户集中管理解决方案,相对于NIS+NFS+Autofs而言,有着更可靠的 ...
- Linux_NIS+NFS+Autofs
目录 目录 前言 NIS NFS Autofs 搭建NISNFSAutofs Setup NNA environment Setup ServerSite Setup client 前言 NIS+NF ...
- Nis+Nfs+Autofs
Nis: NIS服务的应用结构中分为NIS服务器和NIS客户机两种角色 NIS服务器集中维护用户的帐号信息(数据库)供NIS客户机进行查询 用户登录任何一台NIS客户机都会从NIS服务器进行登录认证, ...
- Linux nfs+autofs 环境搭建
两台服务器环境为centos 6.6 1.安装配置nfs 安装portmap 和 nfs [root@node0 ~]# yum install portmap [root@node0 ~]# yu ...
- 【嵌入式开发】嵌入式 开发环境 (远程登录 | 文件共享 | NFS TFTP 服务器 | 串口连接 | Win8.1 + RedHat Enterprise 6.3 + Vmware11)
作者 : 万境绝尘 博客地址 : http://blog.csdn.net/shulianghan/article/details/42254237 一. 相关工具下载 嵌入式开发工具包 : -- 下 ...
- Linux基础学习-NFS网络文件系统实时文件共享
NFS网络文件系统 如果大家觉得Samba服务程序的配置太麻烦了,那么你共享文件的主机都是Linux系统,那么推荐大家在客户端部署nfs服务来共享文件.nfs(网络文件系统)服务可以将远程Linux系 ...
- 网络共享存储服务NFS
网络共享存储服务NFS 作者:Eric 微信:loveoracle11g 环境准备 服务器系统 角色 IP RHEL 7.5 x86-64 NFS服务端 192.168.10.201 RHEL 7.5 ...
- linux下搭建NFS服务器
服务端:10.6.191.183 客户端:10.6.191.182 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984 ...
- NFS 部署
目录 NFS 部署 NFS简介 NFS应用 NFS工作流程图 NFS部署 服务端 客户端 测试NFS文件同步功能 NFS配置详解 NFS部分参数案例 统一用户 搭建考试系统 搭建步骤 配合NFS实现文 ...
随机推荐
- C++基础知识篇:C++ 变量作用域
作用域是程序的一个区域,一般来说有三个地方可以定义变量: 在函数或一个代码块内部声明的变量,称为局部变量. 在函数参数的定义中声明的变量,称为形式参数. 在所有函数外部声明的变量,称为全局变量. 我们 ...
- 避开一部分安装问题的Burpsuite的安装教程
Burpsuite的安装教程 前言: 既然网上有很多的Burpsuite的安装教程为什么笔者还要在写这篇文章呢? 笔者发现网上的许多安装教程都存在着许许多多的问题,有时候对于一些安装细节描述不是很深, ...
- tomcat安装及环境变量配置
java环境的配置应该都学过吧,这里简单的讲一下. 下载安装java JDK,注意安装的路径,我们需要进行环境变量的配置. 2 安装完成以后,配置环境变量 环境变量的配置这里就以win7为例:右击计算 ...
- java12(eclipse断点调试)
选择结构switch 1.格式: switch(整型数据){ case 值A:System.out.println("");break; case 值B:System.out.pr ...
- Beta冲刺随笔——Day_Seven
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta 冲刺 这个作业的目标 团队进行Beta冲刺 作业正文 正文 其他参考文献 无 今日事今日毕 林涛: ...
- 《MySQL慢查询优化》之SQL语句及索引优化
1.慢查询优化方式 服务器硬件升级优化 Mysql服务器软件优化 数据库表结构优化 SQL语句及索引优化 本文重点关注于SQL语句及索引优化,关于其他优化方式以及索引原理等,请关注本人<MySQ ...
- PyQt(Python+Qt)学习随笔:字体writingSystem、ProportionalFonts、MonospacedFonts的含义以及QFontComboBox字体组合框详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.引言 在介绍QFontComboBox之前,我们先简单介绍一下字体 ...
- 第10.8节 Python包的导入方式详解
一. 包导入与模块导入的关系 由于包本质上是模块,其实对模块的许多导入方法都适用于包,但由于包的结构与模块有差异,所以二者还是有些区别的: 对包的导入,实际上就是包目录下的__init__.py文件的 ...
- ATT&CK 实战 - 红日安全 vulnstack (一) 环境部署
靶场描述: 红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习.视频教程.博客三位一体学习.另外本次实战完全模拟ATT&CK攻击链路进行搭建,开成完整闭环.后续也会搭建真实APT实 ...
- [Windows] Prism 8.0 入门(下):Prism.Wpf 和 Prism.Unity
1. Prism.Wpf 和 Prism.Unity 这篇是 Prism 8.0 入门的第二篇文章,上一篇介绍了 Prism.Core,这篇文章主要介绍 Prism.Wpf 和 Prism.Unity ...