首页
博客
研修院
VIP
APP
问答
下载
社区
推荐频道
活动
招聘
专题
打开CSDN APP
Copyright © 1999-2020, CSDN.NET, All Rights Reserved
c语言文件读写 *** 作代码
打开APP
开心才是真
关注
Linux网络文件系统NFS详解 转载
2018-12-07 14:21:17
开心才是真
码龄5年
关注
Linux网络文件系统NFS详解
阅读目录
什么是文件系统,NFS文件系统又是什么?
NFS包括两部分,服务端(servlet)及客户端(client)
NFS配置文件
回到顶部
什么是文件系统,NFS文件系统又是什么?
简单的说,文件系统就是通过软件对磁盘上的数据进行组织和管理的一种机制,对其的一种封装或透视。
你女朋友拍了美美的暧昧照片,放一个文件夹里发送给了A服务器,当你来访问的时候,被F5路由给B服务器了,然后你找不到资源了,你女朋友给你闹,你就不性福了哈哈,所以我们很容易想到,是不是可以把文件上传到一个公用的服务器上呢? 这样不管访问的是A还是B,读、取文件都只存在一份。答案是肯定的,这个公用的服务器我们也称之为文件服务器,NFS,Network File System。顾名思义,网络文件系统,即通过网络,对在不同主机上的文件进行共享。
回到顶部
NFS包括两部分,服务端(servlet)及客户端(client)
由于NFS服务功能很多,会有很多端口,这些端口还有可能不固定,(pc -ef | egrep nfs 我们可以看到nfs 不同的端口号)那么客户端就无法与服务器进行通信,因为程序间通信必须通过端口(tcp/udp都是端到端通信),那么就需要一个中间的桥接机制,RPC进程即充当这样一个角色,RPC的端口是一定的(111),当NFS启动时,会向RPC进行注册, (rpc 一定是在nfs启动前,就已经启动了,)那么客户端PRC就能与服务器RPC进行通信, 从而进行文件的传输。
当客户端用户打开一个文件或目录时,内核会判断,该文件是本地文件还是远程共享目录文件(如果是远程共享文件就都挂载mount 到/etc/init.d/rc.local下面),如果是远程文件则通过RPC进程访问远程NFS服务端的共享目录,如果是本地文件,则直接打开。
为了更好的并发,RPC进程及NFS进程都有多个。
NFS服务进程启动说明表格
服务(进程名字) 用途说明
nfsd(rpc.nfsd) rpc.nfsd主要功能就是管理NFS客户端是否能够登陆NFS服务器主机(登陆着id判别)
mountd(rpc.mountd) rpc.mountd管理nfs文件系统,当nfs客户端顺利通过rpc.nfsd服务端后,它可以使用NFS服务器提供数据,读取NFS的配置文件/etc/exports来进行文件系统权限比对
rpc.statd 检查文件的一致性
这些进程都可以执行man 进程名 来查看进程的详细功能
回到顶部
NFS配置文件
NFS配置文件定义
NFS的配置文件为 /etc/exports,内容格式,如:<共享目录> 客户端1(选项) [客户端2(选项) ...]
共享目录:NFS共享给客户机的目录。
客户端 :网络中可以访问此目录的主机。多个客户端以空格分隔。
选项:设置目录的访问权限、用户映射等,多个选项以逗号分隔。
例如: /data 192.168.1.0/24(rw,insecure,sync,all_squash,anonuid= 65534,anongid=65534)
NFS配置文件路径
NFS常用路径 说明
/etc/exports NFS服务主配置文件,配置NFS具体共享服务的地点,默认内容是空的 /usr/sbin/exports NFS服务的管理命令
exportfs
不重启nfs服务应用更新,相关选项如下:
-a 全部挂载或卸载 /etc/exports中的内容
-r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab
-u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)
-v 在export的时候,将详细的信息输出到屏幕上。
nfsstat
查看NFS的运行状态。
rpcinfo
查看rpc服务注册情况。
相关选项:
-p 显示所有的端口与程序信息。
示例:
rpcinfo -p localhost #列出本机的RPC注册状况。
showmount
查询nfs共享目录信息,相关选项如下:
-a 显示已经于客户端连接上的目录信息
-e IP或者hostname 显示此IP地址分享出来的目录
示例:
showmount -e localhost #查询本机nfs共享目录情况
showmount -a localhost #查询本机共享目录连接情况
/usr/sbin/showmount 用来查看客户度那,查看NFS配置及挂载结果的命令 /var/lib/nfs/etab NFS配置文件的完成参数设定的文件
NFS配置参数权限
rw 表示可读写权限。
sync 请求或写入数据时,数据同步写入到NFS Server的硬盘后才返回。
async写入数据时会先写到内存缓冲区,直到硬盘有空档才会在写入磁盘,这样可以提升写入效率。风险是若服务器宕机或不正常关机,会损失缓冲区中未写入硬盘的数据(解决办法:服务器主板电池或UPS不间断电源)。
all_squash不管访问NFS Server共享目录的用户身份如何,它的权限都将被压缩为匿名用户,同时它的UID和GID都会变成nfsnobody账号身份,在生产环境中配置NFS的重要技巧:
1)确保所有客户端服务器对NFS共享目录具备相同的用户访问权限,all_squash把所有客户端都压缩成匿名用户(UID相同),就是anonuid,anongid指定的UID和GID相同,
2)所有的客户端和服务器端都需要有一个相同的UID和GID的用户,nfsnodoby(UID必须相同)
anonuid 参数以anon*开头即值anonymous匿名用户,这个用户的UID设置值通常为nfsnobody的UID值,当然我们也可以自行设置这个UID值。但是,UID必须存在于/etc/passwd中。在多个NFS Clients时,如多台web server共享一个NFS目录时,通过这个参数可以使得不同的NFS Clients写入的数据对所有NFS Clients保持同样的用户权限,即为配置的匿名UID对应用户权限,这个参数很有用。一般默认就好
anongid 同anonuid,区别是把uid(用户id)换成gid(组id)
ro 表示只有只读权限
sync是synchronized的缩写,意为同步,async是asynchonous的缩写意为异步,怎么理解同步和异步的,比如:你女朋买了一张票等你下班一起看电影,她会亲自给你电影票然后一起看电影,在比如生产者跟消费者,(要实现这个问题,需要用到多线程,要实现多线程,就需要继承(extend)Thread类,实现Runnable,Future接口并写run方法,,,线程有6中状态,初始,运行,阻塞,等待,等待超时,结束,,,咳咳咳跑题了)我们常常加同步锁synchronized,这样就是生产一个,消费一个(Linux分为实时同步和定时同步)。异步,在比如生产者跟消费者,生产100个产品,消费者只能消费50个,那么就会把生产者的产品放在超市,消费者就会去超市买东西,
总结NFS服务的配置过程:
--服务端--
1)查看系统版本,并检测有没有安装nfs和rpcbind服务,如果没有安装就执行:
2.启动服务(先启动rpcbind)
3.设置开机自启动
4.配置NFS服务
5.重新加载服务
6.检查或测试挂载
--客户端-
1.安装软件
2.启动rpcbind
3.配置开机自启动
?
1
chkconfig rpcbind on
4.测试服务端共享情况
5.挂载
如果客户端没有写权限,就检查共享文件的配置是否是rw权限,检查共享的文件的本身是否是rw 权限(也就是检查/data ls -li /data 如果不是655 就chmod 655 /data)
常见错误
1.df -h 检查服务端的NFS服务是不是启动成功,
2.确认NFS客户端showmount是否OK。
3.确认rpcbind上是否有NFS注册,(rpcbind必须先启动)
3.确认网络是否通畅
4.确认是否因为防火墙挡住(一般内网不需要开启防火墙,在出口加防火墙就够了)(/etc/init.d/iptables stop/start)
技术的提升是量的积累,思想的提升是质的飞越
分类: Linux学习之路
打开CSDN,阅读体验更佳
最新发布 linux-NFS(网络文件系统)
全称 Network File System,网络文件系统专用于Linux与Linux之间的文件共享服务NFS服务可以将远程Linux机器上的文件目录数据,通过挂载的形式映射在本地机器。
继续访问
linux 的NFS网络文件系统
NFS(Network File System)即网络文件系统,是由Sun 公司开发的一种通过网络方式共享文件系统的通用共享解决方案。目前NFS 有三个版本,分别为NFSv2、NFSv3、NFSv4。NFSv2 是一个古老的版本,但却被众多的 *** 作系统所支持,这样它的兼容性会更好;NFSv3 拥有更多的特点,包括更快的速度、更大的单个文件大小、更多便于排错的错误及成功信息、对TCP ...
继续访问
服务器 硬盘 恢复,服务器硬盘故障恢复备忘
新系统使用的是Fedora Core 4。回家学习使用了一下yum,和debian的apt-get差不多了:而且软件包的依赖关系整理的比较好。以下是应用的安装备忘:2006年7月30日 星期日 00时18分用awk生成关闭服务的脚本:关闭不需要的服务sudo /sbin/chkconfig --list| grep 3:on | awk '{print "/sbin/chkconfig "$1" ...
继续访问
配置网络文件系统(NFS)
网络文件系统(NFS)网络文件系统(NFS)是一种在网络上的机器间共享文件的方法,文件就如同位于客户的本地硬盘驱动器上一样。Red Hat Linux 既可以是 NFS 服务器也可以是 NFS 客户,这意味着它可以把文件系统导出给其它系统,也可以挂载从其它机器上导入的文件系统。NFS 对于在同一网络上的多个用户间共享目录很有用途。譬如,一组致力于同一工程项目的用户可以通过使用 NFS 文件系统(
继续访问
linux 命令 /sbin/chkconfig
chkconfig --list 查看全部服务状态 例如: 运行chkconfig --list httpd 看自动启动状态 httpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off 0~6是指运行级别,一般服务器都运行在3这个级别上。 添加为自...
继续访问
linux查看nfs服务状态,Linux下NFS服务配置
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS在文件传送或信息传送过程中依赖于RPC协议。环境:项目IP服务目录nfs-server192.168.1.253nfs-utils...
继续访问
NFS挂载情况查看
Linux NFS挂载 一、NFS挂载 192.25.10.101/home/sharedata/azkaban/ODS_HS08 挂载到 192.25.10.102/home/data_azkaban (一)192.25.10.101上 *** 作: 1,查看rpcbind、nfs是否安装 rpm -qa|grep nfs rpm -qa|grep rpcbind 安装命令:yum install -y nfs-utils rpcbind 2,vi /etc/exports 内容:/home/s
继续访问
linux系统如何启动rpcbind,关于Centos6.8 *** 作系统安装配置nfs、rpcbind服务后实现linux系统间文件数据共享(挂载mount共享路径)...
一、前言关于多个centos6.8 *** 作系统间实现文件数据资源共享(挂载mount网络文件路径),这边通过在服务端配置nfs(网络文件系统)+rpcbind服务软件,具体 *** 作步骤如下所示。二、安装步骤1. 确认服务端安装ndf服务、启动并设置为开机启动[root@centos6~]#rpm-qa|grepnfs@b@nfs-utils-1.2.3-64.el6.x86_64@b@nfs4...
继续访问
linux系统如何启动rpcbind,rpcbind无法启动的问题【已解决】
linux小白,请大神指教环境如下:[root@nfs-server ~]# uname -r2.6.32-504.el6.x86_64[root@nfs-server ~]# uname -mx86_64[root@nfs-server ~]# uname -aLinux nfs-server 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UT...
继续访问
配置 NFS 服务器并实现开机自动挂载
NFS 服务端概述: NFS,是 Network File System 的简写,即网络文件系统。网络文件系统是 FreeBSD 支持的文件系统中的一种,也被称为 NFS.NFS 允许一个系统在网络上与他人共享目录和文件。通过使用 NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。 NFS 的模式: C/S 模式 NFS 监听的端口: 2049 CentOS7 是以 NFSv4 作为默认版本,NFSv4 使用 TCP 协议(端口号是 2049)和 NFS 服务器建立连接。 NFS 是通
继续访问
nfs自动启动 linux,CentOS7系统下安装NFS并设置开机时启动
yum 安装yum -y install nfs-utils rpcbindnfs 的配置文件 /etc/expots默认为空vi /etc/exports/opt/test/ 192.168.1.0/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)使配置生效exportfs -r注:配置文件说明:/opt/test ...
继续访问
使用nfsstat命令查看NFS服务器状态
转载于:http://www.cnblogs.com/jankie/archive/2011/09/03/2165851.html nfsstat命令显示关于NFS和到内核的远程过程调用(RPC)接口的统计信息,也可以使用该命令重新初始化该信息。如果未给定标志,默认是nfsstat -csnr命令。使用该命令显示每条信息,但不能重新初始化任何信息。 nfsstat命令的主要参数如下。 (1)...
继续访问
linux查看nfs挂载信息,Linux NFS挂载
Linux NFS挂载一、NFS挂载192.25.10.101/home/sharedata/azkaban/ODS_HS08 挂载到 192.25.10.102/home/data_azkaban(一)192.25.10.101上 *** 作:1,查看rpcbind、nfs是否安装rpm -qa|grep nfsrpm -qa|grep rpcbind安装命令:yum install -y nfs-ut...
继续访问
大话存储-学习总结6-系统IO路径及优化
理解主机端IO路径架构应用程序层1. NFS下的缓存机制 默认mount参数下的IO 默认条件下使用异步(async)方式,rsize=wsize=65535。内核不会透传程序的IO给NFS Server,对于写IO会延缓执行,积累一定的时间以便合并上层的IO。不管读还是写,async方式都会具有一定的效果,尤其是连续的IO地址。 Linux下使用NFS,对于写 *** 作,不管offset是否为P
继续访问
linux检查nfs服务,Linux-nfs服务
一、概念nfs server:提供服务的服务器。nfs client:访问服务端的服务器。RPC:远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。关系:NFS是一种文件系统,RPC负责信息的传输。二、NFS守护进程nfsd:基本的nfs守护进程,保证客户端能够连接服务端。mountd:RPC安装守护进程,管理NFS文件系统。当客户端通过nfs...
继续访问
linux查看nfs服务是否打开,linux 验证 NFS 是否成功
服务器端----->>客户端1. 服务器端[root@allentuns ~]# ifconfig |grep "Bcast"inet addr:192.168.1.4 Bcast:192.168.1.255 Mask:255.255.255.0[root@allentuns ~]# cd /web/htdocs/[root@allentuns htdocs]# ls[root@a...
继续访问
Linux之nfs文件系统详解
NFS 概念 网络文件系统 (NFS) 是 Unix 系统和网络附加存储文件管理器常用的网络文件系统 , 允许多个客户端通过网络共享文件访问。它可用于提供对共享二进制目录的访问 , 也可用于允许用户在同一工作组中从不同客户端访问其文件。 一、nfs配置文件常用参数 服务端: 安装nfs服务 [root@server ~]# yum install nfs-utils -y 实验环...
继续访问
linux中的NFS
NFS的连接一、NFS1.1 概述1.2 相关软件包1.3 nfs特点1.4 nfs 工作原理1.5 nfs工作流程图1.6 挂载原理二、nfs 部署2.1 主服务器配置 IP 192.168.161.1282.2二、客户端配置2.3 检验总结: 引言: 阐述了多个客户端通过一台服务器达到数据互通 一、NFS 1.1 概述 NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 sun 公司开发。通过使用 NFS协议,客户机可以像访问本地目录一样访问远程 NFS 服务器中的共享资源。 NFS 也
继续访问
linux-NFS详解
一、NFS共享存储服务概述 1、NFS的概念及优点 NFS是一种基于TCP/IP传输的网络文件系统协议。 通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源; 对于大多数负载均衡群集来说,使用NFS协议来共享数据存储 是比较常见的方法,NFS也是NAS存储设备必然支持的一种协议; 2、NFS的缺点 由于NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只在局域网中使用。 3、NFS的使用要求: NFS服务的实现依赖于RPC(远程过程调用)机制,以完成远程到本
继续访问
数据库课程设计
c语言文件读写 *** 作代码
html+css+js网页设计
写评论
1
1
点赞
踩
分享
由于阿里云线上有NAS存储,又不能公网访问,所以本地通过软件构建一个NAS以供测试。
NFS的挂载原理
NFS分为客户端与服务器端,一般设置为一个Server端,多个客户端,也可设置为多对多,当服务器端设置好共享目录/data后,客户端通过相应的访问权限,将共享目录挂载到本地系统的某个目录下,就可以透明的看到共享目录里的文件了,依据服务器制定的相应权限做 *** 作
NFS服务器与客户端的通信原理
客户端NFS和服务端NFS通讯过程
1)首先服务器端启动RPC服务,并开启111端口
2)启动NFS服务,并向RPC注册端口信息
3)客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口
4)服务端的RPC(portmap)服务反馈NFS端口信息给客户端。
5)客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。
NFS系统守护进程
nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器;
mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。
当客户端顺利通过nfsd登录NFS服务器后,在使用NFS服务所提供的文件前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。
portmap:主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。
环境:
新建一个虚拟机,系统安装使用最小化安装,可参照我前面的文章,有详细介绍。一般情况是系统盘是和数据盘分开。系统盘在线上我一般情况是分配20G,如果是容器等应用系盘我会分配50G,当然如果是有很多镜像的容器环境,那么我会系统将/var/lib/docker等用单独的数据盘来挂载。
安装配置NAS文件共享存储
1、服务端安装
2、关闭防火墙
3、配置nas
配置文件:/etc/exports
共享目录创建:
4. 本地NAS存储目录 192.168.230.0/24(授权访问客户端的地址段)
5. 重新加载NFS配置
参数说明:
rw:可读写的权限
ro:只读的权限 anonuid:可以自行设定这个UID的值,这个UID必需要存在于你的/etc/passwd当中anongid:同anonuid,但是变成groupID就是了 sync:资料同步写入到内存与硬盘当中 async:资料会先暂存于内存当中,而非直接写入硬盘 insecure:允许从这台机器过来的非授权访问
no_root_squash:登入NFS主机,使用该共享目录时相当于该目录的拥有者,如果是root的话,那么对于这个共享的目录来说,他就具有root的权限,这个参数『极不安全』,不建议使用
root_squash:登入NFS主机,使用该共享目录时相当于该目录的拥有者。但是如果是以root身份使用这个共享目录的时候,那么这个使用者(root)的权限将被压缩成为匿名使用者,即通常他的UID与GID都会变成nobody那个身份
all_squash:不论登入NFS的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是nobody
6. 启动服务
7. 设置开机启动
8. 查看端口占用,以便开着防火墙的时候设置,如果闲麻烦,可以通过限制访问IP
Linux nfs客户端安装
vi /ettc/hosts
在末尾加入
开机自动挂载
vi /etc/fstab
##尾行下面新增加一行写入
注:_netdev表示设备需要网络
五一节办公室要停电,机房虽有UPS,但也支撑不了8小时。
因生产环境有业务系统挂了办公室机房的NAS存储,故需要进行迁移,步骤记录如下:
先闲谈下技术-----------------------
NFS和samba的区别
samba是混合型网络中的共享服务,windows服务器可建samba服务,linux服务器也可建samba服务
nfs只面向unix、linux间的共享,linux服务器可建nfs服务(winodws系统也可以挂载nfs,就是有点不稳定)
NFS服务器上的 *** 作--------------------------
nfs服务器 *** 作系统版本:
[root@c7110 ~]# more /etc/system-release
CentOS Linux release 7.9.2009 (Core)
nfs服务器安装nfs服务
[root@c7110 ~]# yum -y install nfs-utils rpcbind
创建nfs目录,并授权
[root@c7110 ~]# mkdir /opt/nfs-test
[root@c7110 ~]# chmod 777 /opt/nfs-test
编辑nfs服务配置文件
[root@c7110 ~]# vi /etc/exports
内容如下:
/opt/nfs-test *(rw,root_squash,all_squash,sync)
重新加载nfs配置:
[root@c7110 ~]# exportfs -r
nfs服务设置开机启动
[root@c7110 ~]# systemctl enable rpcbind
[root@c7110 ~]# systemctl enable nfs
[root@c7110 ~]# systemctl enable nfs-lock
[root@c7110 ~]# systemctl enable nfs-idmap
启动nfs服务
[root@c7110 ~]# systemctl start rpcbind
[root@c7110 ~]# systemctl start nfs
[root@c7110 ~]# systemctl start nfs-lock
[root@c7110 ~]# systemctl start nfs-idmap
查看nfs服务启动后,所监听的端口信息:
[root@c7110 ~]# rpcinfo -p
linux服务器服务器上 *** 作-------------------------------
业务服务器安装nfs软件客户端
[root@c7111 ~]# yum -y install nfs-utils
建立一个挂载目录
[root@c7111 ~]# mkdir /opt/test-m
挂载nfs服务器共享出来的目录
[root@c7111 ~]# mount -t nfs 10.x.x.10:/opt/nfs-test /opt/test-m/
查看下已挂载的nfs
[root@c7111 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.5G 0 1.5G 0% /dev
tmpfs 1.5G 0 1.5G 0% /dev/shm
tmpfs 1.5G 8.8M 1.5G 1% /run
tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
/dev/mapper/centos-root 97G 2.3G 95G 3% /
/dev/sda1 1014M 171M 844M 17% /boot
tmpfs 297M 0 297M 0% /run/user/0
10.x.x.6:/opt/nfs-test 97G 4.1G 93G 5% /opt/test-m
经测试,数据可读可写,证明nas服务没有问题,于是进行数据同步,数据同步用rsync命令。
rsync -avp gdsz@10.87.5.6::nas_6 /mnt/guidang/ --password-file=/root/rsync_pass --bwlimit=100000
数据同步完,通知研发进行挂载切换。研发同事在测试时,发现文件属性中的uid及gid与原来的不一致,有些担心,于是又小完善了一下NFS服务。
编辑nfs服务配置文件
[root@c7110 ~]# vi /etc/exports
内容如下:
/opt/nfs-test *(no_all_squash,anonuid=600,anongid=600)
重新加载nfs配置:
[root@c7110 ~]# exportfs -r
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)