NFS网络文件共享
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网络文件共享的更多相关文章
- 搭建企业级NFS网络文件共享服务说明[一]
		
1.1.0. 概述: 共享/NFS目录给整个192.168.25.0/24网段主机读写 man nfs 可以查看mount的信息 rpc端口111 nfs主端口2049 1.1.1. 搭建NFS环境 ...
 - 企业级NFS网络文件共享服务_【all】
		
1.1. 什么是NFS(1台机器提供服务) Network File System(网络文件系统)通过局域网让不同的主机系统之间共享文件或目录. NFS客户端可以通过挂载的方式将NFS服务器端共享的数 ...
 - Linux实战教学笔记22:企业级NFS网络文件共享服务
		
目录 第二十二节 企业级NFS网络文件共享服务 第一章 NFS网络文件共享服务 1.1 NFS介绍 1.2 NFS系统原理介绍 1.3 NFS服务端部署环境准备 1.4 NFS server端的设置 ...
 - ARM开发板搭建NFS网络文件共享方法
		
前边 已经提到过吧vmare的IP改成了静态IP,对于上网来说,这个是个麻烦的事.现在重新配置Vmware的IP VMware-Edit-Virtual network editor 选择PC机的无线 ...
 - (转)企业级NFS网络文件共享服务
		
企业级NFS网络文件共享服务 原文:http://www.cnblogs.com/chensiqiqi/archive/2017/03/10/6530859.html --本教学笔记是本人学习和工作生 ...
 - NFS网络文件共享服务
		
NFS-网络文件系统,它的主要功能是通过网络让不同的主机系统之间可以彼此共享文件或目录. NFS在企业中得应用场景 在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频.图片.附件等静 ...
 - 【集群实战】NFS网络文件共享服务2-mount挂载(参数,优化)
		
1. NFS客户端挂载深入 1.1 NFS客户端挂载参数说明 在NFS服务端,可以通过cat /var/lib/nfs/etab查看NFS服务器端配置参数的细节. 在NFS客户端,可以通过cat /p ...
 - 【集群实战】NFS网络文件共享服务
		
1. NFS介绍 1.1 什么是NFS? NFS是Network File System的缩写,中文意思是网络文件系统. 它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录. ...
 - 搭建企业级NFS网络文件共享服务
		
NFS服务简介 NFS是Network File System(网络文件系统).主要功能是通过网络让不同的服务器之间可以共享文件或者目录.NFS客户端一般是应用服务器(比如web,负载均衡等),可以 ...
 
随机推荐
- SQL SERVER 临时表的排序问题
			
在SQL SERVER 2005/2008中,如果将有序的记录插入临时表,则从临时表查询出来的记录是有序的(不依赖ORDER BY也是有序状态),但是从SQL SERVER 2012开始,即使插入的记 ...
 - 聊下 git rebase -i
			
在使用git作为源代码管理工具的时候,开发的时经常会面临一个常见的问题,多个commit 需要合并为一个完整的commit提交. 在一个基本的迭代周期里,你会有很多次commit,有跟配置文件相关的, ...
 - Vim快捷键记录(工作中遇到)
			
一 移动类 1. 移动到文件首行 gg 2. 移动到文件末行 G 3. 移动到当前屏首行 H 4. 移动到当前屏末行 L 二 编辑类 1. 替换字符 r 2. 删除字符 x 3. 撤销编辑(还原被修改 ...
 - 大型web系统数据缓存设计
			
1. 前言 在高访问量的web系统中,缓存几乎是离不开的:但是一个适当.高效的缓存方案设计却并不容易:所以接下来将讨论一下应用系统缓存的设计方面应该注意哪些东西,包括缓存的选型.常见缓存系统的特点和数 ...
 - 使用 python 实现 wc 命令程序的基本功能
			
这里使用了 python 的基本代码实现了 Linux 系统下 wc 命令程序的基本功能. #!/usr/bin/env python #encoding: utf-8 # Author: liwei ...
 - PHP函数整理(二)
			
以下均参考自 php.net 1.curl_setopt_array() 此函数为CURL传输会话批量设置选项.这个函数对于需要设置大量的curl选项是非常有用的,不需要重复的调用curl_setop ...
 - CentOS 7 恢复 Windows 启动项
			
安装Linux时一般会自动识别windows系统并添加引导项,而 CentOS 默认不支持 NTFS 分区,CentOS7采用了Grub2,与CentOS6有区别.手动引导windows分区修改配置稍 ...
 - [python]爬虫学习(二)
			
---恢复内容开始--- #python2 import urllib2 #python3 import urllib.request html=urllib.request.urlopen('htt ...
 - WPFTookit Chart 入门
			
如何使用WPFToolKit Chart private void button1_Click(object sender, EventArgs e) { var s = new Series(); ...
 - C#学习笔记-数据的传递(公共变量)以及Dictionary
			
看的代码越多,写的代码越多,就越是享受这些字符,终于渐渐懂得了那种传闻中的成就感,特别是自己从看不懂然后一步一步学,一个代码一个代码地敲,最后哪怕只是完成了一个小功能,也都是特别自豪的!这种自豪不用告 ...