nfs最大的缺点是单点,只能一对一
nfs统称存储服务器,放视频图片之类的东西,所以服务器的容量很大
数字都是放在数据库里边的,

nfs的挂载原理
客户端怎么知道服务端的开启端口?
找rpcbind,再启动的瞬间,nfs会想rpc注册,nfs有哪些端口号可以用,rpc固定监控一个端口号,当客户端来连接的的时候,rpc会受到请求,然后分发端口号,客户端通过端口号在和nfs建立连接
具体步骤
1需要先装rpcbind的东西
2装nfs-utils
要先起rpc服务
在起nfs服务,nfs要像rpc注册
客户端挂载要先经过rpc(rpc才是socket端口)通过rpc知道nfs的端口,然后才和nfs三次握手。
服务端的rpc是socket进程,客户端的是一个命令。
服务端需要张的包
nfs-utils(包括了rpc的客户端)
rpcbind(是rpc的服务端)
命令rpcinfo是看rpc的信息的命令
启动用service rpcbind start
启动nfs用/etc/init.d/nfs start
配置nfs的配置文件,/etc/exports
直接清空以后再写,
书写格式
共享那个目录 那个客户端能连接过来(拥有什么权限用逗号隔开)
例如:/data 192.168.200.0/(rw,sync,all_squash)
命令showmount 命令是查看(本地有没有共享目录)网路文件能不能挂载
参数-e不指明ip是查看本地
创建/data目录,修改目录权限为nfsnobody
在共享的磁盘里放置文件的时候所有人都降权,都变成了程序用户。nfs在重启的时候是无敌时间,在几秒钟内不能做任何事情。
程序用户是最低的,所有人都能进行操作。(读写操作)
amonuid=xxxx 修改nfs的主权限用户
anongid=sss 修改nfs的组权限用户

NFS服务端配置文件路径

NFS服务的默认配置文件路径为:/etc/exports,并且默认是空的。

 
  1. [root@nfs01 ~]# ls -l /etc/exports
  2. -rw-r--r--. 1 root root 0 1月 12 2010 /etc/exports
  3. [root@nfs01 ~]# cat /etc/exports

提示: 
NFS默认配置文件/etc/exports其实是存在的,但是没有内容,需要用户自行配置。

 

exports配置文件格式

/etc/exports文件位置格式为:

NFS共享的目录 NFS客户端地址1(参1,参2...)客户端地址2(参1,参2...)

NFS共享的目录 NFS客户端地址(参1,参2...)

查看exports语法文件格式帮助的方法为: 
执行man exports命令,然后切换到文件结尾,可以快速看如下样例格式:

 
  1. [root@nfs01 ~]# cat /etc/exports
  2. /data 172.16.1.0/24(rw,sync)
  3. 命令说明:
  4. /data :nfs的共享目录路径
  5. 172.16.1.0/24:允许挂载我的共享目录的IP地址段
  6. (rw):可读可写
  7. (sync):实时同步

修改配置文件以后,必须重启nfs服务

 
  1. [root@nfs01 ~]# /etc/init.d/nfs reload
  2. [root@nfs01 ~]# showmount -e #查看生效的nfs配置文件规则
  3. Export list for nfs01:
  4. /data 172.16.1.0/24
 

给共享目录更改属主属组为nfsnobady

 
  1. [root@nfs01 ~]# grep nfs /etc/passwd
  2. nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
  3. [root@nfs01 ~]# chown -R nfsnobody.nfsnobody /data
  4. [root@nfs01 ~]# ll -d /data
  5. drwxr-xr-x. 2 nfsnobody nfsnobody 4096 3月 9 09:43 /data

特别提示: 
如果不授权属主属组,那么共享目录挂载以后将不遵循配置文件exports的设定好的读写规则。虽然也能正常挂载,但是会导致写入文件时提示没有权限。

nfs的缺点
没办法扩容,不能无限扩容,有无敌时间,无敌时间会阻碍我们有单点故障(单点就是一个集群坏一个就不能使用,),不好做高可用,高可用是一个服务器换了会有自动替换的操作。检测nfs是不是活的我们检测111端口,(nmap。Telnet ip 端口可以检测nfs出没出事。这样做会需要修改无敌时间。)还有写入熟读的缺点,硬盘的读写速度有限,20台服务器以内才会选用nfs的初级存储。
开机自启的fstab没有自己启动的原因,没有开机自启netfs,一个服务器没有网是不能挂远程服务的,最根本的原因是,fstab的优先级高于开启网路的优先级,在开机的时候先执行fstab在执行开启网路,而netfs是将fstab挂两边,所以能解决问题。

nfs的简单搭建与原理的更多相关文章

  1. springmvc4环境简单搭建和定时任务

    之前复制粘贴创建了几个ssm的项目,然而回头让自己写的时候还是一头雾水,究其原因是spring的陌生.仅仅是写过几个helloworld而已.而且是照着写.我都不知道springmvc到底需要多少ja ...

  2. python 简单搭建阻塞式单进程,多进程,多线程服务

    由于经常被抓取文章内容,在此附上博客文章网址:,偶尔会更新某些出错的数据或文字,建议到我博客地址 :  --> 点击这里 我们可以通过这样子的方式去理解apache的工作原理 1 单进程TCP服 ...

  3. ubuntu 16.04 nfs服务的搭建

    nfs服务是实现Linux和Linux之间的文件共享,nfs服务的搭建比较简单. 现在介绍如何在ubuntu16.04系统中搭建nfs服务,ubuntu的搭建比红帽的还要简单. 1.安装nfs服务 s ...

  4. Red Hat 6.5 nfs服务的搭建

    nfs服务是实现Linux和Linux之间的文件共享,nfs服务的搭建比较简单. 现在介绍如何在红帽6.5系统中搭建nfs服务. 1.关闭selinux服务 如果已经关闭该服务的可以直接跳过该步骤. ...

  5. Redis 复制、Sentinel的搭建和原理说明(转)

    Redis 复制.Sentinel的搭建和原理说明  转自:http://www.cnblogs.com/zhoujinyi/p/5570024.html. 背景: Redis-Sentinel是Re ...

  6. python简单搭建HTTP Web服务器

    对于Python 2,简单搭建Web服务器,只需在i需要搭建Web服务器的目录(如C:/ 或 /home/klchang/)下,输入如下命令: python -m SimpleHTTPServer 8 ...

  7. 1.0、Struts2的简单搭建方法

    一.Struts2:是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet:用于jsp页面与Java代码之间的交互. 1.核心:Filter拦截器,对所有的请求进行拦截. 2.工作 ...

  8. 零配置简单搭建SpringMVC 项目

    SpringMVC是比较常用的JavaWeb框架,非常轻便强悍,能简化Web开发,大大提高开发效率,在各种Web程序中广泛应用.本文采用Java Config的方式搭建SpringMVC项目,并对Sp ...

  9. C#基础--.net平台的重要组成部分以及.net程序简单的编译原理

    .net平台的组成只要有两部分   FCL:框架类库    CLR:公共语言运行时 .net程序简单的编译原理 1.0:使用C#编译器(csc.exe) 将C#源代码编译成程序集+{编译之前:会检查C ...

随机推荐

  1. 2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016) B - Bribing Eve

    地址:http://codeforces.com/gym/101174/attachments 题目:pdf,略 思路: 把每个人的(x1,x2)抽象成点(xi,yi). 当1号比i号排名高时有==& ...

  2. pyinstaller 打包生成的exe文件,在其他电脑上报错

    解决方法: 1.第一种情况,在打包的时候不要加参数-w,看一下执行exe文件后出现的报错再看下一步的行动 2.应该是需要装一个VC 2015 x64(下载地址:https://www.microsof ...

  3. python3_ftp多线程上传图片

    项目中研发人员自己写了ftp服务,没有标准ftp中的列表,准备用jmeter对ftp压力测试时发现jmeter要验证列表(如果有同学用jmeter测试过类似的分享一下方法谢谢了),没办法只能用pyth ...

  4. Mysql主从架构报错-Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work...

    在搭建Mysql主从架构过程中,由于从服务器是克隆的主服务器系统,导致主从mysql uuid相同, Slave_IO无法启动,报错如下: The slave I/O thread stops bec ...

  5. 关于git pull时出现的问题及解决反思

    前因 在前面由于已经git过一次,按照娄老师的要求,代码一个一个commit,所以删掉之前的git仓库(用la查看,使用rm -rf .git删除).但远程origin已经存在,所以执行git rem ...

  6. 20135302魏静静——linux课程第七周实验及总结

    linux课程第七周实验及总结 实验及学习总结 1. 编译链接的过程和ELF可执行文件格式(以hello为例) GNU编译系统编译源码: 首先,运行C预处理器(cpp),将.c文件翻译成.i文件——g ...

  7. ubuntu文字界面与图形界面切换

    redhat: (据说是) 图形界面->文字界面:crtl+alt+F1~6 文字界面->图形界面:crtl+alt+F7 -------------------------------- ...

  8. struts2中各个jar包作用 (转)

    Struts2.3.4 所需的Jar包及介绍 Jar包的分类 jar包名称 jar包版本 jar包 文件名 jar包 的作用 jar包内包含的主要包路径及主要类 依赖的自有jar包名称 依赖的第三方j ...

  9. java并发容器之 SynchronousQueue [转]

    SynchronousQueue 这个队列实现了 BlockingQueue接口 该队列的特点 1.容量为0,无论何时 size方法总是返回0 2. put操作阻塞,jquery插件库  直到另外一个 ...

  10. mybatis缓存有关的设置和属性

    知识点:mybatis缓存相关的设置和属性 重点:每次执行增删改操作后,一二级缓存被清空,是因为标签设置默认属性为 flushCache="true" (1) <!-- 全局 ...