NFS应用场景,常用于高可用文件共享,多台服务器共享同样的数据,可扩展性比较差,本身高可用方案不完善,取而代之的数据量比较大的可以采用MFS、TFS、HDFS等等分布式文件系统。 1. 环境准备两台Centos7.6虚拟机: 服务端:192.168.199.180 客户端:192.168.199.190 2.创建用户,指定用户访问共享文件夹: useradd test #创建test用户 使用showmount -e localhost 命令用于查询NFS服务器的相关信息,显示NFS服务器的输出清单。 11. -y 客户端上不需要启动nfs服务,只是为了使用showmount工具 2. 在客户端将NFS远程共享目录挂载命令加入fstab配置,不然服务器重启挂载点将消失,加入以下配置到/etc/fstab配置文件 192.168.199.180:/www /mnt nfs defaults
NFS服务端概述: NFS,是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. 模式:C/S 模式 端口: RHEL7是以NFSv4作为默认版本,NFSv4使用TCP协议(端口号是2049)和NFS服务器建立连接 ? 服务的使用方法(看下机器名字,客户端挂载) showmount -e NFS服务器IP 例: [root@docker-02 opt]# showmount -e 172.17.120.50 Export huqi yunweimao 如果创建文件夹报错 [root@docker-02 opt]# touch huqi touch: 无法创建"/huqi": 权限不够 解决方法: 设置访问权限一般包含2部分 1)服务本身权限 2)目录访问权限 nfs默认使用nfsnobody用户 [root@docker-01 tmp]# grep nfs /etc/passwd rpcuser:x:29:29:RPC
0 0 :::111 :::* [root@test ~]# Tip: NFS 的启动信息默认会写到 /var/log/messages 里NFS的服务会打开很多端口(并且其中一些端口是随机的)[root@test data]# netstat -tulnp | grep -E ' (rpc|nfs)'tcp 0 0 0.0.0.0:34146 0.0.0.0:* LISTEN 37900
NFS应用场景,常用于高可用文件共享,多台服务器共享同样的数据,可扩展性比较差,本身高可用方案不完善,取而代之的数据量比较大的可以采用MFS、TFS、HDFS等等分布式文件系统。 1. 环境准备两台Centos7.6虚拟机: 服务端:192.168.199.180 客户端:192.168.199.190 2.创建用户,指定用户访问共享文件夹: useradd test #创建test用户 使用showmount -e localhost 命令用于查询NFS服务器的相关信息,显示NFS服务器的输出清单。 11. -y 客户端上不需要启动nfs服务,只是为了使用showmount工具 2. 在客户端将NFS远程共享目录挂载命令加入fstab配置,不然服务器重启挂载点将消失,加入以下配置到/etc/fstab配置文件 192.168.199.180:/www /mnt nfs defaults
是SUN公司1984年开发的,v1版本只在SUN公司内部使用过,v2, v3, v4是公开版本,一般红帽5默认是v3版本,红帽6默认目前最新的v4版本。 //查看NFS服务器和挂载上的客户端各种信息 2、配置使用 I) /etc/exports 这个文件控制NFS服务器共享出去的资源以及访问权限等 在NFS服务器上编辑此文件加上一行 /nfs(服务器上要共享出去的目录 更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-11/92209p2.htm 相关阅读: Ubuntu 12.04安装NFS server //查看NFS服务器和挂载上的客户端各种信息 2、配置使用 I) /etc/exports 这个文件控制NFS服务器共享出去的资源以及访问权限等 在NFS服务器上编辑此文件加上一行 /nfs(服务器上要共享出去的目录 更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-11/92209p2.htm 相关阅读: Ubuntu 12.04安装NFS server
1.安装nfs服务器 #1.检查软件安装 [root@jiang ~]# rpm -qa | grep rpcbind [root@jiang ~]# rpm -qa | grep nfs #2.安装必须软件 nfs-utils:nfs服务所需的软件 2.启动nfs [root@zhu ~]# service rpcbind start 正在启动 rpcbind: 属组和属主仍然是root(不安全,不建议使用) insecure:允许客户端从大于1024的TCP/IP端口连NFS服务器 secure:限制客户端只能从小于1024的TCP/IP端口连接NFS服务器 服务器上并没有zhu用户,所以创建的文件属主为nobody #2.假如/tmp目录对zhu用户没有写的权限,即使在/etc/exports文件中开放写权限,那么客户端的zhu用户仍然不能写。 #### #与nfs服务器有关的指令介绍: 当重新修改了/etc/exports 文件后,不需要重新启动nfs服务器,可以通过exportfs指令来管理。
在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。 NFS优势: 可以把服务器上的文件像本地一样的操作,节省本地的存储空间 nfs配置简单,而且服务本身对系统资源占用较少 nfs服务可以支持很多其它的服务,如kickstart,配合在一起, 可以实现更多功能 应用场景 共享存储服务器: 图片服务器、视频服务器等 家目录漫游:域用户家目录服务器 文件服务器:内容文件存储服务器 工作原理 NFS体系有两个主要部分: NFS 1.客户端向服务器的111端口发送nfs请求 2.RPC找到对应的nfs端口并告知客户端 3.客户端知道正确的端口后,直接与nfs server端建立连接 二、安装部署 [root@zutuanxue 服务器/etc/passwd文件中匿名用户的UID anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID 相关命令 exportfs - 管理NFS共享文件系统列表
NFS服务器的配置相对比较简单,只需要在相应的配置文件中进行设置,然后启动NFS服务器即可。 NFS的常用目录 /etc/exports NFS服务的主要配置文件 /usr/sbin/exportfs NFS /etc/exports文件内容格式: <输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)] a. 服务器(默认设置); insecure:允许客户端从大于1024的tcp/ip端口连接服务器; sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性; async:将数据先保存在内存缓冲区中 服务器将检查其父目录的权限(默认设置); no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
NFS挂载原理: RPC与NFS通讯原理: NFS客户端和NFS服务器通讯过程: Linux下NFS服务器部署 NFS服务所需软件及主要配置文件: 服务端安装NFS服务步骤: NFS客户端挂载配置: 在 NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利; NFS一般用来存储共享视频, NFS挂载原理: < 图;服务器挂载结构图 如上图示: 当我们在NFS服务器设置好一个共享目录/home/public后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到自己文件系统的某个挂载点 既然NFS是通过网络来进行服务器端和客户端之间的数据传输,那么两者之间要传输数据就要有想对应的网络端口,NFS服务器到底使用哪个端口来进行数据传输呢? 服务器通讯过程: 图:NFS工作原理图 首先服务器端启动RPC服务,并开启111端口 服务器端启动NFS服务,并向RPC注册端口信息 客户端启动RPC(portmap服务),向服务端的RPC
NFS挂载原理: RPC与NFS通讯原理: NFS客户端和NFS服务器通讯过程: Linux下NFS服务器部署 NFS服务所需软件及主要配置文件: 服务端安装NFS服务步骤: NFS客户端挂载配置: 在 NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利; NFS一般用来存储共享视频, NFS挂载原理: < 图;服务器挂载结构图 如上图示: 当我们在NFS服务器设置好一个共享目录/home/public后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到自己文件系统的某个挂载点 既然NFS是通过网络来进行服务器端和客户端之间的数据传输,那么两者之间要传输数据就要有想对应的网络端口,NFS服务器到底使用哪个端口来进行数据传输呢? 服务器通讯过程: 图:NFS工作原理图 首先服务器端启动RPC服务,并开启111端口 服务器端启动NFS服务,并向RPC注册端口信息 客户端启动RPC(portmap服务),向服务端的RPC
-p图片创建共享的目录,test1和test2,并赋予777权限:mkdir /test1mkdir /test2chmod -R 777 /test1chmod -R 777 /test2图片图片配置共享目录 ,在/etc/exports配置文件中编辑:vim /etc/exports添加:/test1 X.X.X.X(rw)/test2 X.X.X.X(rw) (X是需要连接NFS服务器的Linux系统的公网 IP,不是NFS服务器的公网IP!!!) X是NFS服务器的公网IP,要分清楚!!!) 命令进入挂载目录/mnt中,创建文件后,并且在NFS服务器上的/test1中进行查看,看是否有对应的文件,验证是否挂载成功挂载NFS的服务器截图:图片NFS服务器验证截图:说明共享成功图片卸载命令就是
1资源规划 作用 IP 版本 NFS服务端 192.168.78.1 Centos6.5 64位 NFS客户端 192.168.78.1 Centos6.5 64位 2 NFS服务端安装配置 2.1 安装rpm包 yum install nfs-utils nfs-utils-lib nfs4-acl-tools rpcbind 2.2 新建要导出的目录 mkdir -pv / 24(rw,sync,all_squash) #导出虚拟根下的子目录1 /home/data 192.168.78.0/24(rw,sync,all_squash) #导出虚拟根下的子目录2 / 3.3 重启服务 service rpcbind restart service nfs restart 3.4 挂载 #192.168.78.1:/nfs中的/nfs代表了服务端的/home/nfs mount -t nfs4 192.168.78.1:/nfs /tmp/nfs mount -t nfs4 192.168.78.1:/data /tmp/data 3.5验证 df -h
后端两台服务器均部署keepalived: B与C均执行以下命令: yum install keepalived -y 2. 备份原配置文件,然后修改配置文件: B服务器: ! { script "/data/sh/check_nfs.sh" interval 2 weight -20 } # VIP1 vrrp_instance VI_1 { { script "/data/sh/check_nfs.sh" interval 2 weight -20 } # VIP1 vrrp_instance VI_1 { 将master的nfs服务关掉,查看vip,这时vip会漂移到backup服务器上: master服务器的ip: image.png backup服务器的IP: image.png 到这里说明vip /mnt/nfs fi sleep 1 done ps:如果客户端已经挂载了,服务端某台服务器宕机了,即使vip切换了,但是还是会报错,以前失效的挂载连接还在。
完成以上配置以后,接下来需要安装NFS服务。 sudo apt-get install nfs-kernel-server 安装好NFS服务器以后,在你的Ubuntu下创建一个共享目录,例如我的目录就是forlinx。接着你需要修改配置文件。 sudo service nfs-kernel-server restart 重启以后,我们就完成了服务端的配置。接来下我们只要将开发板挂载到Ubuntu下就能实现文件共享。
NFS是一种网络文件系统,英文全称Network File System,通过NFS可以让不同的主机系统之间共享文件或目录。 通过NFS,用户可以直接在本地NFS客户端读写NFS服务端上的文件,是非常好的共享存储工具。本篇文章将介绍如何在CentOS7上安装NFS服务器,包括服务端和客户端安装两部分。 服务端安装: 一、下载安装nfs-utils su #切换为root用户 yum install -y nfs-utils #使用yum下载安装nfs 二、创建共享文件夹 mkdir /share #创建名为 stop nfs #停止服务 systemctl start nfs #开启服务 systemctl restrart nfs #重启服务 NFS服务正常工作,状态为Active,说明配置成功! client-share的目录 chmod 777 /client-share #给client-share文件夹777全权限 2、执行nfs挂载 mount -t nfs LinuxIPAddress
1、安装NFS软件包 zhang@zhang-virtual-machine:~$ sudo apt-get install nfs-kernel-server //安装NFS服务器端 zhang @zhang-virtual-machine:~$ sudo apt-get install nfs-common //安装NFS客户端 2、添加NFS共享目录 把/nfsroot目录设置为NFS /nfs-kernel-server restart //重启NFS服务 p.s.如果在NFS服务已经启动的请款下,如果修改了/etc/exports 文件,则需重启一下NFS服务,以刷新NFS的共享目录 当然,在下一次启动系统时,NFS服务时自动启动的。 4、测试NFS服务器 进行自测的基本方法为:将已经设定好的NFS共享目录mount到另一个目录下,看是否成功 假定Linux主机的IP为:192.168.133.133(可用 ifconfig -a
NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利; NFS一般用来存储共享视频, NFS挂载原理: < 图;服务器挂载结构图 如上图示: 当我们在NFS服务器设置好一个共享目录/home/public后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到自己文件系统的某个挂载点 既然NFS是通过网络来进行服务器端和客户端之间的数据传输,那么两者之间要传输数据就要有想对应的网络端口,NFS服务器到底使用哪个端口来进行数据传输呢? 服务器通讯过程: 图:NFS工作原理图 首先服务器端启动RPC服务,并开启111端口 服务器端启动NFS服务,并向RPC注册端口信息 客户端启动RPC(portmap服务),向服务端的 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 sync 同时将数据写入到内存与硬盘中
NFS是在RFC中定义的开放标准,允许任何人实现该协议。 NFS 服务器可以让客户端将网络远程的 NFS 服务器分享的目录,直接挂载到本地端的机器当中。 本地端的机器通过直接读写挂载的目录,就可以同步到NFS服务器之上。 版本更迭 NFS V2 2是NFS最早实现的版本之一,基于UDP协议实现了一个无状态的服务器版本。 仅仅支持32位的系统,且不大于2GB的文件。 NFS V3 3的版本在2的基础之上做了大量的改进。 支持了大于2GB的文件读写,使用了TCP协议来进行数据交互,支持了客户端的异步读写来提高文件系统的性能(同时也会产生我们头疼的一致性问题) NFS V4 4的版本提高了安全性,通过TCP协议实现了一个有状态的服务器版本 2.系统环境: 系统平台:Ubuntu 14.04 NFS Server IP:192.168.1.2 iptables关闭: Firewall is disable.
服务器 2.Ping 通服务器 3.执行挂载命令 NFS是什么? 如果每做一步都用mkyaffs2image制作一个文件系统fs.yaffs2烧写到开发板上显然效率太低,此时NFS启动的优势就很明显了—–可以通过NFS启动的方式来实时看效果。 /work/nfs/jz2440目录下 2.参考上一个帖子的方式,添加路径 /work/nfs/jz2440 到文件 /etc/exports 中,以保证开发板有挂载这个目录的权限 3.重启nfs服务器 2.使用NFS启动你会发现一个问题,如果开发板跟Ubuntu之间的网络不通,那么你的开发板就启动不了。想想也很正常,客户端跟服务器网络不通是无法登陆的。 在第一期视频第0课第7节03:40处有演示, 其实就是将NFS文件系统使用mkyaffs2image工具制作生成yaffs2格式的文件系统。至此,NFS全部挂载方式分析完毕。
五、Glusterfs实现NFS服务器 第一节、启动过程分析 Glusterfs的nfs服务器启动命令如下: /usr/local/sbin/glusterfs -f /etc/glusterd { return &nfs_rpcsvc_auth_unix;//返回权限描述信息结构体 } (2)nfs_rpcsvc_stage_init函数 首先还是看看这个函数的定义和实现吧 2.nfs_add_all_initiators函数 这个函数主要是添加各个版本的nfs协议的初始化。 这里主要是指客户端链接来的时候服务器响应事件时执行的函数。 /处理可读事件 } if (ret == -1) nfs_rpcsvc_conn_data_poll_err (conn);//出错处理 return 0; } 这个函数基本上就处理客户端与服务器连接以后的各种可读可写事件