linux_NFS
NFS是什么?
网络文件系统,又叫共享存储,通过网络连接让不同主机之间实现共享存储。
应用于存放图片、附件、视频等用户上传文件
相关同类应用:大型网站nfs有压力,使用moosefs(mfs),GhusterFS、FastDFS
NFS挂载和普通分区挂载有什么区别?
df -h 或 cat /proc/mounts 查看挂载信息
设备名是 ip地址加NFS目录,挂载点也是空目录
NFS需要rpc来进行管理,rpc相当于中介,NFS房子供应商
普通挂载是写入文件系统的本地磁盘,而NFS是挂载远端服务目录
普通挂载数据存放在本地磁盘,NFS数据存放在NFS服务器磁盘中
NFS哪些优缺点?
优点:
1. 数据可见
2. 简单,可控,可靠
3. 非常稳定
缺点:
1. 存在单点故障,一旦nfs挂了会影响web服务器
2. nfs在特大并发,其效率和性能有限(2千万/日pv NFS还是能支持),需要联合CDN使用
3. 认证基于ip和主机名,不对数据完整性验证
4. nfs和程序耦合度高
NFS环境搭建:
1. 服务端和客户端都需要安装相关依赖软件依赖
yum install -y nfs-utils rpcbind rpm -aq | egrep "nfs|rpc" # 检查
2. 服务端
其配置文件: /etc/exports
1. 创建nfs挂载目录,假如挂载blog上传文件
mkdir /data/nfs-blog -p # 创建挂载目录
2. 添加nfs管理用户
useradd nfs-master -u 888 -s /sbin/nologin -M id nfs-master # 检查
3. 授权目录
chown -R nfs-master. nfs-master /data ll -d /data # 检查
4. 编辑配置文件
vim /etc/exports # 写入一下数据 /data 172.16.1.0/24(rw,sync,all_squash,anonuid=888,anongid=888) # /data nfs服务器开放远端挂载点 # 172.16.1.0/24 可以挂着nfs 的网段 # rw 读写权限 # sync 数据会同步写入磁盘中,async数据会先缓存,然后再写入磁盘 # all_squash压缩身份为 anonuid 和 anongid 指定的主和组,其实是nfs-master # cat /var/lib/nfs/etab 查看挂载参数设置详情
5. 启动服务
/etc/init.d/rpcbind start # 启动rpc /etc/init.d/nfs start # 启动nfs ps -ef | egrep "rpc|nfs" # 检查 # 这两个启动,有个专业细节,必须rpc先启动,然后再启动nfs
6. 检查是否可以挂载
showmount -e 172.16.1.5 # 检查是否可以挂载 # 如果出现以下数据,表示nfs文件服务配置成功 # Export list for 172.16.1.5: # /data 172.16.1.0/24
7. 把这两个服务加入开机自启动
chkconfig rpcbind on chkconfig nfs on chkconfig --list | egrep "rpcbind|nfs" # 检查
3. 客户端
# 查看nfs服务器是否有挂载点
showmount -e 172.16.1.5
1. 启动rpc服务并把其加入开机自启
/etc/init.d/rpcbind start # 启动rpc ps -ef | egrep "rpcbind" # 检查 chkconfig rpcbind on # 让其开机自启 chkconfig --list | grep rpcbind # 检查
2. 挂载
mount -t nfs -o bg,hard,intr,nosuid,noexec,noatime 172.16.1.5:/data/nfs-blog /application/nginx/html/blog/wp-content/uploads # -t 制定文件系统 # -o 声明后面指定参数 # bg 后台持续挂载,不影响其他程序, fg前端持续挂载,直至超时 # hard 会持续一直尝试挂载,直至挂载成功,保证服务的可靠性 # intr 会阻止 hard 的死缠难打,防止hard死锁 # nosuid nfs文件中数据suid权限失效 # noexec nfs文件中数据不能执行 # noatime 不更新存取时间 # 挂载点格式为: nfs服务器ip:nfs开放挂载点,可以是其挂载点下子目录 # 挂载目录是本地空目录
3. 挂载命令添加到开机自启动
echo 'mount -t nfs -o bg,hard,intr,nosuid,noexec,noatime 172.16.1.5:/data/nfs-blog /application/nginx/html/blog/wp-content/uploads' >> /etc/rc.local tail -1 /etc/rc.local # 检查
NFS相关优化
1. 服务端(内核参数):
echo -n "net.core.wmem_default = 8388608\nnet.core.rmem_default = 8388608\nnet.core.rmem_max = 16777216\nnet.core.wmem_max = 16777216" >> /etc/sysctl.conf tail -4 /etc/sysctl.conf # 检查 sysctl -p # 告诉内核这个参数已经更改
2. 存储优化
硬件: ssd/sas 磁盘,硬件RAID最好做RAID10,至少RAID5,网卡至少1千兆
统一服务端和客户端nfs文件身份,确保数据的一致性,exports参数选择sync确保数据安全
特大型网站nfs有压力,可选择 moosefs(mfs),GhusterFS、FastDFS
相关其他知识点:
强制卸载挂载点: mount -lf /mnt
也可以通过 /etc/fstab文件进行挂载,但这会带来一些问题,比较复杂也很危险,建议不用
linux_NFS的更多相关文章
- Linux_NFS/Samba服务器
目录 目录 网络共享的解决方案 搭建NFS服务 服务器端19216801 客户端19216802 autofs自动挂载nfs共享 搭建Samba服务 服务器端 客户端 网络共享的解决方案 Linux/ ...
- NIS 服务器
有没有想过,如果我有十部 Linux 主机,这十部主机仅负责不同的功能,事实上, 所有的主机账号与对应的密码都相同!那么我是将账号与密码分别设定置在十部计算机上面, 还是可以透过一部主机做为账号管理的 ...
随机推荐
- 小白的Python之路 day5 random模块和string模块详解
random模块详解 一.概述 首先我们看到这个单词是随机的意思,他在python中的主要用于一些随机数,或者需要写一些随机数的代码,下面我们就来整理他的一些用法 二.常用方法 1. random.r ...
- [Spark性能调优] 第一章:性能调优的本质、Spark资源使用原理和调优要点分析
本課主題 大数据性能调优的本质 Spark 性能调优要点分析 Spark 资源使用原理流程 Spark 资源调优最佳实战 Spark 更高性能的算子 引言 我们谈大数据性能调优,到底在谈什么,它的本质 ...
- GPS校时器,GPS时钟装置,NTP网络时间服务器
GPS校时器,GPS时钟装置,NTP网络时间服务器 GPS校时器,GPS时钟装置,NTP网络时间服务器 GPS校时器,GPS时钟装置,NTP网络时间服务器 GPS校时器,GPS时钟装置,NTP网络时间 ...
- vb实验7-找出小于18000的最大素数
vb实验7-找出小于18000的最大素数 vb实验7-找出小于18000的最大素数 ---–写给女朋友的题解 在窗体上画一个文本框,名称为TEXT1,两个命令按钮,C1和 C2,标题分别为" ...
- Linux 常见命令示例【一】
查看端口占用 [查看目前系统上已在监听的网络联机及其pid netstat –tlnp] 文件挂载 Linux与windows文件传输(三方软件:secureCRT, WINscp) 1)sftp S ...
- 轻松逃脱某防火墙对ss的探测
ss里面有些诡异的日志(我用的是ss-go) 2017/10/1* 1*:5*:19 error getting request ***:*** ***:*** EOF 这种日志不多,一般新开一个 ...
- 【KMP模板】简单写个KMP~
本来easy的KMP 却一直过不了洛谷的模板题... 仔细一看原来在输出next数组时打的回车而不是空格... 身败名裂... 话说有个sunday貌似一般状况下比KMP快呢...去看看2333 #i ...
- 关于FPGA的一些你必须知道的概念
前仿真也称为功能仿真,主旨在于验证电路的功能是否符合设计要求,其特点是不考虑电路门延迟与线延迟,主要是验证电路与理想情况是否一致.可综合FPGA代码是用RTL级代码语言描述的,其输入为RTL级代码与T ...
- 副本机制与副本同步------《Designing Data-Intensive Applications》读书笔记6
进入到第五章了,来到了分布式系统之中最核心与复杂的内容:副本与一致性.通常分布式系统会通过网络连接的多台机器上保存相同数据的副本,所以在本篇之中,我们来展开看看如何去管理和维护这些副本,以及这个过程之 ...
- d3 画地图终极自适应大小方案
d3,v4以前用d3画地图的时候,为了让地图差不多正好画在容器的上下左右正中间,不得不慢慢的这样调: const projection = d3.geoMercator() .center([108. ...