NFS(Network File System)

NFS在企业中的应用场景

企业集群架构中,NFS网络文件系统一般用来存储共享的视频、图片、附件等静态资源,一般把网站用户上传的文件都放到NFS共享里,例如图片、附j件、头像,然后前端所有的节点访问这些静态资源时都会读取NFS存储上的资源。NFS是当前互联网系统架构中最常用的数据存储服务之一,特别是中小型网站公司应用频率更高。大公司除了使用NFS外,还可能使用更为复杂的分布式文件系统Moosefs,glusterfs,FastDFS等。

非常low的企业架构:

1模仿在餐厅吃饭

2

RPC工作原理:

从NFS客户端访问NFS服务端的整体过程:

 NFS配置

一、NFS服务端部署环境准备

  • NFS服务器端:10.69.112.78
  • NFS客户端:10.69.112.133
  • NFS客户端:10.69.112.134

二、NFS server端设置(先安装rpcbind再安装nfs-utils,启动过程也是)

  • rpm -qa nfs-utils rpcbind
  • yum install nfs-utils rpcbind -y
  • /etc/init.d/rpcbind start
  • netstat -tunlp | grep rpcbind
  • chkconfig --list rpcbind
  • rpcinfo -p localhost
  • /etc/init.d/nfs start
  • chkconfig --list nfs
  • chkconfig nfs on

rpcbind和nfs-utils都是开机自启动,如何保证rpcbind先启动?

对比/less/etc/init.d/rpcbind和/less/etc/init.d/nfs中# chkconfig: 2345 13 87这项,也可以不用chkconfig,启动命令写入/etc/rc.local中。

三、NFS服务端配置

  • vim /etc/exports

  /data  10.69.112.*(rw,sync,all_squash)

  • /etc/init.d/nfs restart
  • showmount -e 127.0.0.1
  • mount -t nfs 10.69.112.78:/data /mnt#挂载测试
  • cat /var/lib/nfs/etab #服务器端nfs所有参数信息

四、NFS客户端配置

  • /etc/init.d/rpc start
  • mount -t nfs 10.69.112.78:/data /mnt
  • 此时能在10.69.112.133上直接访问10.69.112.78上的/data下的内容,但是不能创建
  • 需要在78上chown -R nfsnobody /data
  • 此时,在133上的/mnt目录下就能直接touch文件了
  • 挂载命令放到rc.local中,开机挂载,不要放在fstab中,文件系统比网卡先挂载。

NFS配置文件权限参数

  • rw:读写
  • ro:只读
  • sync:写入硬盘,不会丢数据
  • async:写入内存,异步,可能会丢数据
  • all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
  • no_all_squash:与all_squash取反(默认设置);
  • root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
  • no_root_squash:与rootsquash取反;
  • anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
  • anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

使得NFS Client端可写的服务端配置条件

当多个NFS客户端以NFS方式写入修改服务器端的文件系统时,需要具有以下权限:

a)NFS服务器/etc/exports设置需要开放可写入的权限,即服务端的共享权限

b)NFS服务器实际要分享的NFS目录权限具有可写入w的权限,即服务端本地目录的安全权限

c)每台机器都对应存在和nfs默认配置UID的相同UID65534的nfsnobody用户

NFS服务重要文件说明

/etc/exports NFS服务主配置文件

/usr/sbin/exportfs NFS服务管理命令 exportfs -rv 加载配置生效,等价重启/etc/init.d/nfs restart

showmount 在服务端和客户端查看挂载情况

/var/lib/nfs/etab NFS配置文件的完整参数设定的文件

企业生产环境nfs性能优化挂载

mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,intr,rsize=131072,wsize=131072 10.69.112.78:/data /mnt

NFS服务内核优化

1)/proc/sys/net/core/rmem_default

改文件指定接收套接字缓冲区大小的缺省值,缺省设置:124928

2)/proc/sys/net/core/rmem_max

该文件指定了接收套接字缓冲区大小的最大值,缺省设置124928

3)/proc/sys/net/core/wmem_default

改文件指定了发送套接字缓冲区大小的缺省值,缺省设置:124928

4)/proc/sys/net/core/wmem_max

改文件指定了发送套接字缓冲区大小的最大值,缺省设置:124928

cat >>/etc/sysctl.conf <<EOF

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

EOF

sysctl -p

生产场景NFS共享存储优化小结

1、硬盘:ssa/ssd硬盘,raid0/raid10,网卡吞吐量大,千兆

2、NFS服务器端配置:/data

10.69.112.78/24(rw,sync,all_squash)

3、NFS客户端挂载

4、内核参数

5、关闭服务器时一定要记得关闭nfs,否则卸载时提示:umount:/mnt:device is busy

需要退出挂载目录再进行卸载,或者是NFS Server宕机了,需要强制卸载: umount -lf /mnt

练习:三台服务器(server:10.69.112.78   agent:10.69.112.133 10.69.112.134)

(1)在NFS服务器A上共享/data/w_shared及/data/r_shared两个文件目录,允许从NFS客户端B,C上分别挂载共享目录后可实现从B,C上只读/data/r_shared,可写/data/w_shared。

(2)NFS客户端B上得挂载点为/data/b_w(写),/data/b_r(读)

(3)从NFS客户端B上的NFS可写挂载点目录创建任意文件,从C上可以删除这个创建的文件

服务端

  • yum install nfs-utils rpcbind -y
  • /etc/init.d/rpcbind start
  • /etc/init.d/ntp start
  • mkdir -p /data/w_shared /data/r_shared
  • chown -R nfsnobody:nfsnobody /data/(若不修改,客户端不能创建删除文件)
  • vim /etc/exports

客户端

  • yum install nfs-utils rpcbind
  • /etc/init.d/rpcbind start
  • /etc/init.d/ntp start
  • mount -t nfs 10.69.112.78:/data/r_shared /data/b_r
  • mount -t nfs 10.69.112.78:/data/w_shared /data/b_w

使用linux rescue(救援模式)修复/etc/fstab(改错配置,然后重启系统)

root密码忘记,重新获取root密码

NFS网络文件共享的更多相关文章

  1. 搭建企业级NFS网络文件共享服务说明[一]

    1.1.0. 概述: 共享/NFS目录给整个192.168.25.0/24网段主机读写 man nfs 可以查看mount的信息 rpc端口111 nfs主端口2049 1.1.1. 搭建NFS环境 ...

  2. 企业级NFS网络文件共享服务_【all】

    1.1. 什么是NFS(1台机器提供服务) Network File System(网络文件系统)通过局域网让不同的主机系统之间共享文件或目录. NFS客户端可以通过挂载的方式将NFS服务器端共享的数 ...

  3. Linux实战教学笔记22:企业级NFS网络文件共享服务

    目录 第二十二节 企业级NFS网络文件共享服务 第一章 NFS网络文件共享服务 1.1 NFS介绍 1.2 NFS系统原理介绍 1.3 NFS服务端部署环境准备 1.4 NFS server端的设置 ...

  4. ARM开发板搭建NFS网络文件共享方法

    前边 已经提到过吧vmare的IP改成了静态IP,对于上网来说,这个是个麻烦的事.现在重新配置Vmware的IP VMware-Edit-Virtual network editor 选择PC机的无线 ...

  5. (转)企业级NFS网络文件共享服务

    企业级NFS网络文件共享服务 原文:http://www.cnblogs.com/chensiqiqi/archive/2017/03/10/6530859.html --本教学笔记是本人学习和工作生 ...

  6. NFS网络文件共享服务

    NFS-网络文件系统,它的主要功能是通过网络让不同的主机系统之间可以彼此共享文件或目录. NFS在企业中得应用场景 在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频.图片.附件等静 ...

  7. 【集群实战】NFS网络文件共享服务2-mount挂载(参数,优化)

    1. NFS客户端挂载深入 1.1 NFS客户端挂载参数说明 在NFS服务端,可以通过cat /var/lib/nfs/etab查看NFS服务器端配置参数的细节. 在NFS客户端,可以通过cat /p ...

  8. 【集群实战】NFS网络文件共享服务

    1. NFS介绍 1.1 什么是NFS? NFS是Network File System的缩写,中文意思是网络文件系统. 它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录. ...

  9. 搭建企业级NFS网络文件共享服务

    NFS服务简介 NFS是Network  File System(网络文件系统).主要功能是通过网络让不同的服务器之间可以共享文件或者目录.NFS客户端一般是应用服务器(比如web,负载均衡等),可以 ...

随机推荐

  1. 我是这么给娃娃取名的(使用 node.js )

    依据: 81 命理,需要让五格都为大吉(吉).五格命理请自行谷歌. 我的是单姓复名.姓是固定的. 废话不说,上代码: Array.prototype.contains = function (k) { ...

  2. mysqldump: Error: Binlogging on server not active

    在学习使用mysqldump时,使用mysqldump备份时,遇到了下面两个错误: [root@DB-Server backup]# ./mysql_dump_back.sh Warning: Usi ...

  3. 【转】jquery 中scrollTop在Firefox下不起作用

    原文链接:http://stackoverflow.com/questions/8149155/animate-scrolltop-not-working-in-firefox Animate scr ...

  4. php应用jquery做ajax操作

    以下是全部代码: <html> <head> <title>jQuery Ajax 实例演示</title> </head> <scr ...

  5. MAC OS X的ACL扩展权限设置

    在WEB开发时,网站是以_www的用户运行的,而我在本地是以liuwencan的用户编辑的.这就带来一个问题:如果所有文件属于liuwencan,那么网站运行需要写文件时就因无权限而失败:如果所有文件 ...

  6. 使用GDB调试程序

    GDB(GNU Debuger)是Linux中的一个功能强大的调试器.GDB可以让你查看程序的内部结构,打印变量值,设置断点,单步调试源码,运行时修改变量值,路径跟踪,线程切换,显示汇编代码等. 编译 ...

  7. ubuntu su sudo sudo–i 区别

    sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码.不过有时间限制,Ubuntu默认为一次时长15分钟. su : 切换到某某用户模式, ...

  8. 帆软报表FineReport中数据连接之Websphere配置JNDI连接

    以oracle9i数据源制作的模板jndi.cpt为例来说明如何在FineReport中的Websphere配置JNDI连接.由于常用服务器的JNDI驱动过大,帆软报表FineReport中没有自带, ...

  9. java之多线程 一

    概述: 几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进程运行时,内部可能包括多个顺序执行流,每个顺序执行流就是一个线程. 进程与线程: 进程是指处于运 ...

  10. MySQL的基本知识 -- 函数

    MySQL基本知识 -- 进阶(常用的函数) Tags: MySQL MySQL进阶 1.计算字段 1.概念 : 如果客户端想要的数据格式不是数据库直接在表中存储的数据格式的话,有两种处理方式.第一种 ...