文件共享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实现文 ...
随机推荐
- 小知识点 之 JVM -XX:MaxGCPauseMillis 与 -XX:GCTimeRatio
写在前边 JVM调优更多是针对不同应用类型及目标进行的调整,往往有很大的实验成份,通过实验来针对当前应用设置相对合适的参数,提高应用程序的性能与稳定性 最近在复习JVM,Parallel Scaven ...
- kafka入门之broker-副本与ISR设计
kafka把分区的所有副本均匀地分配到所有broker上,并从这些副本中挑选一个作为leader副本对外提供服务,而其他副本被称为follower副本,只能被动地向leader副本请求数据,从而保持与 ...
- Mysql命令、常用函数
一.sql命令行 查看数据库 show database : 选择使用的数据库 use 数据库名 : 查看表 show tables ; 查询表 select * from 表名 高版本my ...
- mysql建表和建数据库语句
一.数据库操作语言 数据库在操作时,需要使用专门的数据库操作规则和语法,这个语法就是 SQL(Structured Query Language) 结构化查询语言. SQL 的主要功能是和数据库建立连 ...
- java41
2019.8.7全部回顾完毕 收获:搞懂了以前不理解的内容 学会了Markdown语法 1. 将首字母变大写 public class _02将首字母变大写 { public static void ...
- windows中flask的环境搭建
之前在ctf中遇到了python模板注入的题,于是就打算学习一下flask框架,它是基于Python的Web轻量级应用框架,与其他框架相比,Flask可以自主选择应用组件,可扩展性强. 安装也简单 第 ...
- 基础篇:异步编程不会?我教你啊!CompeletableFuture
前言 以前需要异步执行一个任务时,一般是用Thread或者线程池Executor去创建.如果需要返回值,则是调用Executor.submit获取Future.但是多个线程存在依赖组合,我们又能怎么办 ...
- 并发编程实战-J.U.C核心包
J.U.C - AQS java.util.concurrent(J.U.C)大大提高了并发性能,AQS 被认为是 J.U.C 的核心.它核心是利用volatile和一个维护队列. AQS其实就是ja ...
- 老猿学5G扫盲贴:NEF、NRF、AF、UPF以及DN的功能
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 NEF:Network Exposure Function ,网络开放 ...
- PyQt(Python+Qt)学习随笔:QTableWidgetItem的位置相关方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidgetItem项在QTableWidget中的位置包括三个属性来决定,就是表格部件 ...