nfs——网络文件系统

1、说明:允许一个系统在网络上与他人共享目录和文件

2、好处:通过nfs服务,就可以让这个机器访问远程的文件,像访问自己的文件一样,属于cs通信
 
3、原理说明:假设有A,B,C 三台机器,在A上搭建nfs服务,然后把A上的一个目录(例如mnt)同时共享给B 和 C,接着B和C把A共享的目录放在自己本地上(挂载,类似磁盘挂载)。 这样,在用户看来,A,B,C同时存在一个相同的目录,有着相同的文件,。只要去改动任意一台机器且在该目录下的文件,其他两台机器都会相应同步变化。
  传统不共享的做法,不但浪费磁盘空间,而且也浪费带宽资源。
 
一、nfs部署
前期准备工作:
1、准备2台机器
(1)服务器端master:192.168.131.110
安装两个包:(a)nfs-utils
      (b)rpcbind(CentOS6开始叫rpcbind,之前的CentOs 叫portmap包)
简单说说rpcbind(后面会用到 /etc/init.d/rpcbind start)
rpc服务,主要是在nfs共享时负责通知客户端、服务端的nfs端口号;简单理解rpc就是一个中介服务。
 
(2)客户端slave:192.168.131.131
仅需要安装:   nfs-utils
 
2、master端
(1)编辑配置文件 /etc/exports,  把mnt目录共享出去
格式:  共享目录  允许访问的主机(ip/IP网段)     权限选项(可读ro, 可写rw, sync等)
写入:  /mnt     192.168.131.131          (rw, sync)
 
权限选项部分说明:
sync:同步模式,内存中数据时时写入磁盘
async:不同步,内存中数据定期写入磁盘
no_root_squash: root用户对共享目录拥有至高的权限控制,就像是对本机的目录操作一样。(不安全,不建议使用)
all_squash:不管使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身份(nfsnobody)
anonuid/anongid:要和root_squash及all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid(前提:主机的/etc/passwd 中存在这个uid和gid)
 
 
(2)启动rpc服务: /etc/init.d/rpcbind start
(3)启动nfs服务: /etc/init.d/nfs start
 
3、slave端
(1)查看master端共享出来的目录
showmount -e 192.168.131.110
(ps:showmount 命令是nfs-utils这个包所带的)
 
(2)挂载NFS,到opt下
mount -t nfs  192.168.131.110:/mnt   /opt
 
df -h 可以查看NFS共享出来的目录mnt

 4、测试
(1)master查看mnt权限(755)
 

对slave端来说并不可写(权限不够)

所以 master 需要授权挂载的目录mnt
 
(2)master 授权挂载目录mnt
chmod 777 /mnt/
(3)slave 端 touch 1.txt  ——》 属主属组为 nfsnobody
 
 
 
 二、nfs优化
背景:slave 端创建文件时并不想显示nfsnobody
 
1、slave端查看要映射的user  
cat  /etc/passwd
假设我们要映射属主属组号都为500的用户(user111)

 2、master端修改配置文件 /etc/exports
/mnt     192.168.131.131          (rw, sync, all_squash,anonuid=500,anongid=500)
 
3、master端重新加载(重启也行,但不建议)
exportfs -arv 
参数说明:
-a:全部挂载或卸载
-r:重新挂载
-v:显示共享的目录
 
4、slave端卸载并重新挂载
(1)umount -l /opt/    
-l:即使当前在 opt 目录下,都能够顺利卸载,且解决“device  is busy” 的错误
 
(2)重新挂载(一定要加上nfsvers=3这个参数)
mount -t nfs -onolock, nfsvers=3 192.168.131.110:/mnt  /opt
参数说明:
-t: 指定挂载类型
-o: 后跟挂载选项
nolock: 挂载 nfs 服务时,不加锁
nfsvers=3:避免权限混乱。指定使用nfsvers 的3版本,不加默认使用nfsvers,
且会导致slave端创建文件时,属主属组还是nfsnobody)
 
以上优化是把root都映射为500,如果不对root映射?——看补充
 
 
三、补充
(1)master:  vim  /etc/exports
改成:  no_root_squash
exportfs -arv
 
(2)slave端
umount /opt/
mount -t nfs -onolock,nfsvers=3 192.168.131.110:/mnt /opt
cd /opt/ 创建文件,文件所属主和组都为root
 
 
 
 
 
 
 
 
 
 
 
 
 

nfs部署和优化的更多相关文章

  1. 部署和调优 1.1 nfs部署和优化-2

    更改共享目录文件默认的所有者和所属组 已知道客户端有个user11用户 cat /etc/passwd user11:x:501:501::/home/user11:/bin/bash 服务端打开 v ...

  2. 部署和调优 1.1 nfs部署和优化-1

    NFS服务会经常用到,用于在网络上共享存储.举一个例子来说明一下 NFS .假如有三台机器 A.B.C,它们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片分别放到 A.B.C.但是,若使用 ...

  3. nfs部署和优化 -2

    客户端: cat /etc/passwd 显示用户 weifeng 500   服务端: vim /etc/exports /mnt 192.168.1.105(rw,sync,all_squash, ...

  4. 生产场景NFS共享存储优化及实战

    生产场景NFS共享存储优化: 1.硬件:sas/ssd磁盘,买多块,raid0/raid10,网卡好 2.NFS服务器端优化加all_squash,async /backup/NFS 192.168. ...

  5. NFS生产场景优化

    1.硬件上多块网卡bond,增加吞吐量,至少千兆.sas/ssd磁盘组raid5或raid10 2.服务端配置:/data 172.16.1.0/24(rw,sync,all_squash,anonu ...

  6. kubernetes(14):k8s基于NFS部署storageclass实现pv自动供给

    k8s基于NFS部署storageclass实现pv自动供给 https://www.cnblogs.com/Smbands/p/11059843.html https://www.jianshu.c ...

  7. NFS 部署

    目录 NFS 部署 NFS简介 NFS应用 NFS工作流程图 NFS部署 服务端 客户端 测试NFS文件同步功能 NFS配置详解 NFS部分参数案例 统一用户 搭建考试系统 搭建步骤 配合NFS实现文 ...

  8. Tomcat服务部署及优化

    Tomcat 服务部署及优化 1.Tomcat简介 2.Tomcat 服务安装及部署 3.Tomcat虚拟主机配置 4.Tomcat 优化 1.Tomcat简介: 概述: Tomcat是Java语言开 ...

  9. Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成——部署方案优化

    Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成--部署方案优化 之前我们做的方案部署都是只能选择一个微服务部署并只有一台生产服务器,每个微服务只有一个 ...

随机推荐

  1. Visual Studio 2015的坑:中文字符串编译后成乱码

    (2015年8月5日更新:微软已经修复了Roslyn的这个bug,详见 https://github.com/dotnet/roslyn/pull/4303 ) 昨天,我们用VS2015编译了博客程序 ...

  2. 新的一年快开始了,学点新东西吧,从React开始(一)

    ReactJS是Facebook出的前端View框架,好东西啊. 看看它的说明: 仅仅是UI 许多人使用React作为MVC架构的V层. 尽管React并没有假设过你的其余技术栈, 但它仍可以作为一个 ...

  3. 第一个Android应用--签证无忧 上线

    用了大概1个多星期的时间,把一个简单的应用完成,[签证无忧]是基于在我所在公司办理签证的前提下,为方便客户查询进度所开发,后来我加了淘宝的购买链接,这样客人在以后需要时不需要到淘宝查找了. 签证无忧这 ...

  4. django request对象和HttpResponse对象

    HttpRequest对象(除非特殊说明,所有属性都是只读,session属性是个例外)HttpRequest.scheme 请求方案(通常为http或https)HttpRequest.body 字 ...

  5. python select 实现

    python的select()方法直接调用操作系统的IO接口 它监控sockets,openfiile,pipes (所有带fileno()的方法的文件句柄) 什么时候变成 readable writ ...

  6. 解决:Win 10 + Mint 18双系统时间不同步,更换系统启动项顺序

    1.win10 & mint 18双系统时间同步: 先打开终端下更新一下时间,确保时间无误: sudo apt-get install ntpdate sudo ntpdate time.wi ...

  7. 5G为何采纳华为力挺的Polar码?一个通信工程师的大实话

    Polar码被采纳为5G eMBB场景的控制信道编码,这两天连续被这条消息刷屏,连吃瓜群众都直呼好爽. 然而,随着媒体报道的持续发酵,真相在口口相传中变了形,不乏夸大不实之嫌,小编终于坐不住了,也想吐 ...

  8. 分享一个.NET实现的简单高效WEB压力测试工具

    在Linux下对Web进行压力测试的小工具有很多,比较出名的有AB.虽然AB可以运行在windows下,但对于想简单界面操作的朋友有点不太习惯.其实vs.net也提供压力测试功能但显然显得太重了,在测 ...

  9. CSS选择器优先级总结

    CSS三大特性-- 继承. 优先级和层叠. 继承:即子类元素继承父类的样式; 优先级:是指不同类别样式的权重比较; 层叠:是说当数量相同时,通过层叠(后者覆盖前者)的样式. css选择符分类 首先来看 ...

  10. Zookeeper的安装和使用

    首先在Zookeeper官网下载最新版本,下载后解压到用户目录下. tar -zxvf zookeeper-3.4.8.tar.gz 重命名conf目录下zoo_sample.cfg文件为zoo.cf ...