一、查看nfs服务:

[root@nfsserve ~]# ps -ef|grep -E "rpc|nfs"
rpc       1565     1  0 17:29 ?        00:00:00 rpcbind
root      1615     2  0 17:38 ?        00:00:00 [rpciod/0]
root      1623     1  0 17:38 ?        00:00:00 rpc.mountd
root      1629     2  0 17:38 ?        00:00:00 [nfsd4]
root      1630     2  0 17:38 ?        00:00:00 [nfsd4_callbacks]
root      1631     2  0 17:38 ?        00:00:00 [nfsd]
root      1632     2  0 17:38 ?        00:00:00 [nfsd]
root      1633     2  0 17:38 ?        00:00:00 [nfsd]
root      1634     2  0 17:38 ?        00:00:00 [nfsd]
root      1635     2  0 17:38 ?        00:00:00 [nfsd]
root      1636     2  0 17:38 ?        00:00:00 [nfsd]
root      1637     2  0 17:38 ?        00:00:00 [nfsd]
root      1638     2  0 17:38 ?        00:00:00 [nfsd]
root      1661     1  0 17:38 ?        00:00:00 rpc.idmapd

这里主要讲俩个进程:

rpc.nfsd表示 客户端是否能登陆NFS服务端主机,其中还包含登入者的ID判别

rpc,mountd:是管理NFS文件系统,对比客户端是否有访问目录权限和文件的使用权限

rpc.rpcbind:表示rpc的主进程,rpc服务。

二、cat  /var/lib/nfs/etab

除了rw,sync,可以看到这个系统自动加入的权限,这些权限都是可以通过man exports进行操作的。

参数:

1)sync表示同步,比如写操作,只有当写入到磁盘中的时候,才算操作完毕。

2)async表示异步,比如写操作,当写入内存的时候,就完毕了,至于后面干了什么,和客户端没有关系。

所以同步和异步牵扯到了可靠性和性能的选择。很多门户网站,大并发都是异步的操作,客户端一次发送1000条数据,如果我服务器一次只能处理500条,怎么办,这里就用到了异步的处理机制,即我客户端可以将数据发送到一个容器中,这个容器就是一个队列,进行排队,我服务端按照自己的节奏处理内容。

3)配置生产NFS的重要技巧:

1.确保所有服务器对NFS共享目录具备相同的权限

a.all_squash把所有客户端都压缩成匿名用户

b.压缩成匿名用户后,那么到底是压缩成哪个匿名用户呢,这里就要用anonuid和anongid指定的uid和gid进行操作,就是用户具体的实例化

2.所用的客户端和服务器都要有相同的UID和Gid用户,如果没有,则需要手动创建这个必须相同的用户,一般我们默认就是nfsnobody

4)no_root_squash:表示如果为root,那么访问权限就是root

5)  root_squash:表示如果是root,也要压缩成匿名用户。

三、实现当多台客户端同时挂一台NFSserver时,无论从哪个客户端写入数据,其他客户端同样也可以读写,即让客户端都是oldgirl,请给出操作步骤,并加以说明。

答:给3台机器,2台客户端、1台服务端

1)建立一个nfs共享用户,所有机器都存在的UID和GID。

[root@nfsserve ~]# id oldgirl           
     uid=555(oldgirl) gid=555(oldgirl) 组=555(oldgirl)

[root@nfsclient ~]# id oldgirl
      uid=555(oldgirl) gid=555(oldgirl) groups=555(oldgirl)

[root@nfsclient1 ~]# id oldgirl
     uid=555(oldgirl) gid=555(oldgirl) groups=555(oldgirl)

2)服务端配置共享

# dangjinwei modify
    #/data  192.168.0.0/24(rw,sync)
  /data  192.168.0.0/24(rw,sync,anonuid=555,anongid=555,root_squash)

3)进行服务端重启

[root@nfsserve ~]# /etc/init.d/nfs reload

4)客户端进行挂载

[root@nfsclient ~]# showmount -e 192.168.0.104
  Export list for 192.168.0.104:
  /data 192.168.0.0/24

5)进行处理

---》服务端

--》客户端删除

另外一个客户端进行查看

四、1)一般我们给telnet 自己,如果通,说明服务端是通的。但是如果客户端连接服务器,报错:no route to host,一般是因为开着防火墙导致的。

2)挂载,重启就失败,有两种解决。

1.放在rc.local:  /bin/mount  -t nfs 10.0.0.7:/data     /mnt

2.写入到fstab里面,这种不太可取;因为如果本地nfs如果有问题,导致电脑启不来,但是如果是rc.local里面的话,就可以启动起来。还有一个可能是网络服务nfs,指的是客户端挂载nfs服务,如果在fstab里面配置是不可取的,原因在于,fstab加载本地磁盘,等加载完成后,linux才加载网络服务,如果将网络服务配置在这里的,就会导致加载不上,所以不在这里配置网络服务的挂载。

综上,我们将nfs服务配置在rc.local里面。

五、在fstab -o  可以查看挂载的参数,需要的时候可以man mounts进行帮助文档查看

其中defaults要注意表示:  rw,suid,exec,auto,async,nouser

对于nfs,可以如果客户端挂载在mnt文件下,可以通过 grep mnt  /proc/mounts 查看客户端挂载参数的命令

六、在这里要说明文件系统只读故障?百度找答案

文件系统也有本能反应,内部有自动一致性,具体百度。

1)同步,rsync有bug,导致只读。

2)文件同时写入,有锁的概念,导致只读。

七、/etc/fatab中最后一个0

tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

fstab中最后一个是1表示开机检查文件系统,所以系统检查出来错误,提示需要root密码或者Ctrl+d继续,但是这样就进不去这个文件系统,一直不断重启,我们平时只要检查/root和/ 就可以了,其它不检查,如果写入root密码进入/etc/fstab查看的话,也是只读模式,改正不了,因为文件系统失败,系统自动变成可读模式,这时,我们通过  mount -o  rw,remount  /,然后再进入/etc/fstab里面就可以了。

八、我们经常要设置一些挂载的安全优化,比如下:

mount  -t  nfs  -o nosuid,noexec,rw 10.0.0.19:/data/bbs  /mnt 这样的参数。其中nooexec表示可执行程序不能执行

/proc/mount  可以查看默认参数

强制卸载:umount -lf  /mnt

客户端性能的优化:rsize / wsize

测试: time  dd if=/dev/zero  of=/mnt/testfile  bs=9k count=20000

创建一个9k*20000的文件,块大小为9k,/dev/zero用来初始化文件,可以写入无数个0,不会被撑死。

============

1./etc/fstab 开机挂载的文件

2./etc/mounts查看挂载的文件

服务器端挂载默认参数:/var/lib/nfs/etab 默认参数

客户端默认参数:/proc/mounts

3.nfs生产应用:大中小型网站的后面。做集群的共享存储用,参考值:2000w pv    。运维:稳定、可靠(技术可以不是最新的)

    nfs的劣势:1.单点   2.耦合度高

二十二、NFS服务深入讲解的更多相关文章

  1. WCF技术剖析之二十四: ServiceDebugBehavior服务行为是如何实现异常的传播的?

    原文:WCF技术剖析之二十四: ServiceDebugBehavior服务行为是如何实现异常的传播的? 服务端只有抛出FaultException异常才能被正常地序列化成Fault消息,并实现向客户 ...

  2. 第三百二十八节,web爬虫讲解2—urllib库爬虫—状态吗—异常处理—浏览器伪装技术、设置用户代理

    第三百二十八节,web爬虫讲解2—urllib库爬虫—状态吗—异常处理—浏览器伪装技术.设置用户代理 如果爬虫没有异常处理,那么爬行中一旦出现错误,程序将崩溃停止工作,有异常处理即使出现错误也能继续执 ...

  3. VMware vSphere 服务器虚拟化之二十二桌面虚拟化之创建View Composer链接克隆的虚拟桌面池

    VMware vSphere 服务器虚拟化之二十二桌面虚拟化之创建View Composer链接克隆的虚拟桌面池 在上一节我们创建了完整克隆的自动专有桌面池,在创建过程比较缓慢,这次我们将学习创建Vi ...

  4. WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[中篇]

    原文:WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[中篇] 在[上篇]中,我们分别站在消息交换和编程的角度介绍了SOAP Fault和FaultException异常.在服务执行过 ...

  5. JAVA基础知识总结:一到二十二全部总结

    >一: 一.软件开发的常识 1.什么是软件? 一系列按照特定顺序组织起来的计算机数据或者指令 常见的软件: 系统软件:Windows\Mac OS \Linux 应用软件:QQ,一系列的播放器( ...

  6. [分享] IT天空的二十二条军规

    Una 发表于 2014-9-19 20:25:06 https://www.itsk.com/thread-335975-1-1.html IT天空的二十二条军规 第一条.你不是什么都会,也不是什么 ...

  7. Bootstrap <基础二十二>超大屏幕(Jumbotron)

    Bootstrap 支持的另一个特性,超大屏幕(Jumbotron).顾名思义该组件可以增加标题的大小,并为登陆页面内容添加更多的外边距(margin).使用超大屏幕(Jumbotron)的步骤如下: ...

  8. Web 前端开发精华文章推荐(HTML5、CSS3、jQuery)【系列二十二】

    <Web 前端开发精华文章推荐>2014年第一期(总第二十二期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML ...

  9. 二十二、OGNL的一些其他操作

    二十二.OGNL的一些其他操作 投影 ?判断满足条件 动作类代码: ^ $   public class Demo2Action extends ActionSupport {     public ...

  10. Bootstrap入门(二十二)组件16:列表组

    Bootstrap入门(二十二)组件16:列表组 列表组是灵活又强大的组件,不仅能用于显示一组简单的元素,还能用于复杂的定制的内容. 1.默认样式列表组 2.加入徽章 3.链接 4.禁用的列表组 5. ...

随机推荐

  1. 为什么 execute(`echo 中文`) 输出中文源码?

    为什么 execute(echo 中文) 输出中文源码? import win.ui; /*DSG{{*/ var winform = win.form(text="管道演示";r ...

  2. GPU 、APU、CUDA、TPU、FPGA介绍

    购买显卡主要关注:显存.带宽和浮点运算数量   GPU :图形处理器(英语:Graphics Processing Unit,缩写:GPU),又称显示核心.视觉处理器.显示芯片,是一种专门在个人电脑. ...

  3. Unix网络编程学习 < 一 >

    #include "unp.h" int main(int argc , char**argv) { int sockfd , n; //sockfd套接字描述符 ]; struc ...

  4. CAR-T|Single cell plan|Extracellular RNA|

    生物医疗大数据 安吉丽娜朱莉发现抑癌基因事件,BRCA突变与乳腺癌关联. 个体化测序商品23 and me 多组学数据研究:eg:太空和地球双胞胎发现生化指标差不多. 研究模式和工业模式相结合. 研究 ...

  5. Android 消息推送流程机制

    1.引言 所谓的消息推送就是从服务器端向移动终端发送连接,传输一定的信息.比如一些新闻客户端,每隔一段时间收到一条或者多条通知,这就是从服务器端传来的推送消息:还比如常用的一些IM软件如微信.GTal ...

  6. 在项目中ES6语法转ES5语法 babel转码器

    es6 babel 安装以及使用   1,安装好node(需要使用npm包管理工具) 2,在本地项目路径下npm init,格式化成功后会在项目下生成一个配置文件package.json 3,本地安装 ...

  7. springboot和shiro的整合

    直接贴上代码 1. 所需要的jar包 <dependency> <groupId>org.apache.shiro</groupId> <artifactId ...

  8. KVM---利用 libvirt+qemu-kvm 创建虚拟机

    KVM 虚拟化已经是一个工业级的虚拟化解决方案了,以前都是直接下载 VMware,然后安装其他操作系统的,今天我们来体验一下自己动手创建一台虚拟机,这样你就会知道在KVM下创建一台虚拟机,是多么简单的 ...

  9. Ubuntu---不能打开 exfat 文件系统格式的 U盘解决方法

    出现问题:今天把 U 盘插入 Ubuntu 系统的电脑中,打开 U 盘发现弹出 系统格式不支持 的提醒,无法进入 U 盘进行操作. 环境: Ubuntu18.04 TSL; 格式化为 exfat 文件 ...

  10. 关于PIL库Image模块的一些测试代码

    为了加深理解,写了一些代码测试,在这里记录一下吧: 关于图片的模式问题,之前做过笔记,有“1”,“L”,"P","RGB","RGBA",& ...