2019-04-18day35NFS案例和深入挂载

NFS案例和深入挂载

all_squash不管客户端什么用户,到服务端都是nfsnobody

anonuid=匿名用户的UID

anongid=匿名用户的GID

[root@nfs01 ~]# cat /var/lib/nfs/etab

/data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)

更改默认NFS默认

用户项目实践2:

NFS共享的匿名用户用www,使得客户端上传的图片都是www用户,而不是匿名的nfsnobody。

 web01 backup客户端实现挂载到nfs。

  NFS下面共享/backup ,允许web01 backup客户端(/backup)可读写。

web01上传图片,backup上可以删除web01上传的图片。

 NFS下面共享/data1,允许 web01 backup客户端10网段只读(data1)。

实现开机自动挂载。

1)nfs01服务端NFS、以及所有客户端:

[root@nfs01 ~]# useradd -u 1111 www

[root@nfs01 ~]# id www

uid=1111(www) gid=1111(www) 组=1111(www)

2)服务端NFS特殊配置:

[root@nfs01 ~]# tail -2 /etc/exports

/data 172.16.1.0/24(rw,sync,all_squash,anonuid=1111,anongid=1111)

/data1 10.0.0.0/24(ro)

[root@nfs01 ~]# chown -R www.www /data

[root@nfs01 ~]# ls -ld /data

drwxr-xr-x 2 www www 70 4月  18 10:05 /data

3)服务端NFS重启:

[root@nfs01 ~]# systemctl reload nfs

4)每个客户端配置

mount -t nfs 172.16.1.31:/data /data

[root@web01 ~]# df -h

文件系统                      容量               已用       可用            已用%          挂载点
172.16.1.31:/data       19G                   1.8G     18G                10%            /data

[root@web01 /data]# touch new_web01.txt

[root@web01 /data]# ls -l

总用量0
-rw-r--r-- 1 www www 0 4月  16 10:24 ddddf
-rw-r--r-- 1 www www 0 4月  16 10:23 dddfff
-rw-r--r-- 1 www www 0 4月  18 11:01 new_web01.txt
-rw-r--r-- 1 www www 0 4月  17 11:59 oldboy.txt
-rw-r--r-- 1 www www 0 4月  17 12:30 oldgirl.txt

NFS服务的重点知识梳理:

当多个NFS客户端访问服务器端读写文件时,需要具有以下几个权限:

1、NFS服务器/etc/exports设置需要开放可写入的权限,即服务器的共享权限。

2、NFS服务器实际要共享的NFS目录权限具有可写入w的权限,即服务端本地目录的安全权限。

3、每台机器都对应存在和NFS默认配置UID的相同UID65534的nfsnobody用户(确保所有客户端的访问权限统一,否则每个机器需要同时建立相同UID的用户,并覆盖NFS的默认用户配置。)

重点NFS服务文件或命令的说明:

/etc/export:NFS服务主配置文件,配置NFS具体共享服务的地点,默认内容为空。。以行为单位。

/usr/sbin/exportfs:NFS服务的管理命令。

/us/sbin/showmount:用来在客户端,查看NFS配置及挂载结构的命令。

/var/lib/nfs/etab:NFS配置文件完整参数文件(有很多没有配置但是默认就有的NFS参数)。

/proc/mounts:客户端本地挂载参数和状态信息的文件。

NFS客户端挂载参数列表:



mount -o参数对应的选项:



man mount后的-o参数中英文翻译对比:

rasync:设计文件系统I/O的操作都是异步处理,即不会同步写到磁盘,此参数会提高性能,单会降低数据安全。一般情况下,生产环境下不推荐使用。除非对性能要求很高,对数据可靠性不要求的场合。

sync:该参数与async相反。有I/O操作时,都会同步处理I/O即把数据同步写入硬盘。此参数会牺牲一点I/O性能,但是,换来的是掉电后数据的安全性。

atime:在每一次数据访问时,会同步更新访问文件的inode时间戳,是默认选项,在高并发的情况下,建议通过明确加上moatime,来取消这个默认项,以达到提升I/O性能,优化I/O的目的。

ro:以制度的方式挂载一个文件系统。

rw:以可写的方式挂载一个文件系统。

auto:能够被自动挂载通过 -a选项。

noaut:不会自动挂载文件系统。

defaults:这是fstab里的默认值,包括rw、suid、dev、exec、auto、nouser、async,默认情况大部分都是默认值。

exec:允许文件系统执行二进制文件,取消这个参数,可以提升系统安全性。

noexec:在挂载的文件系统中不允许直接执行任何二进制的程序,注意,仅对二进制程序有效,即使设置了noexec、shell,php程序还是可以执行的。

noatime:访问文件时不更新文件的inode时间戳,高并发环境,推荐显式应用该选项,可以提高系统I/O性能。

nosuid:不允许set-user-identifier or set-group-identifier位生效。

suid:允许set-user-identifier or set-group-identifier位生效。

nouser:禁止一个普通用户挂载该文件系统,这是默认挂载时的默认选项。

remount:尝试重新挂载一个已经挂载了的文件系统,这通常被用来改变一个文件通的挂载标志,从而使得一个只读文件系统变得可写,这个动作不会改变设备或者挂载点。当系统故障时进入siingle或rescue模式修复系统时,会发现根文件系统经常会变成只读文件系统,不允许修改,此时该命令就派上用场。具体命令为:mount -o remount,rw/,表示将根文件系统重新挂载使得可写。single或rescue模式修复系统是这个命令十分重要。

dirsync:目录更新是同步写入磁盘。


企业生产案例文件系统只读故障;和fstab故障

1、救援模式修复

2、当用户,mount -o     remount,rw  /

2)安全加优化的挂载方式如下:

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

NFS内核优化建议

/proc/sys/net/core/rmem_default:该文件制定了接收套接字缓冲区大小的默认值(以字节为单位),默认设置:124928

/proc/sys/net/core/rmem_max:该文件制定了接收套介质缓冲区大小的最大值(以字节为单位),默认设置:12928

/proc/sys/net/core/wmem_default:该文件制定了发送套接字缓冲区大小的默认值(以字节为单位),默认设置:12928

/proc/sys/net/core/wmem_max:该文件制定了发送套接字缓冲区大小的默认值(以字节为单位),默认设置:12928


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

(1)硬盘:SAS/SSD硬盘,买多块,硬件raid,制作raid5或raid10. 网卡吞吐量要大,至少千兆(多块bond)

(2)NFS服务器配置:/data 10.0.0.0/24 (rw,sync,all_squash,anounid=65534,anongid=65534)

(3)NFS客户端挂载优化配置命令:

mount -t nfs -o nosudi,noexec,noatime,nodiratime,rsize=131072,wsize=131072 10.0.0.7:/data/ /mnt

(4)对NFS服务的所有服务器内核进行优化时,执行如下命令:

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生效

(5)如果卸载的时候提示“umount: /mnt: device is busy”,需要退出挂载目录再进行卸载,如果是NFS  server宕机了,则需要强制卸载,可执行umount -lf /mnt。

(6)大型网站NFS网络文件系统的替代软件为分布式文件系统Moosefs(mfs)、GlusterFS、FastDFS。

阿里云对应的存储服务NAS服务,还有OSS对象存储。

NFS系统应用的优缺点说明:

NFS服务可以让不同的客户端挂载使用同一个共享目录,也就是将其作为共享存储使用,这样可以保证不同节点客户端数据的一致性,在集群架构环境中经常会用到。如果是windows和linux混合环境的集群系统,可以用samba来实现。

优点:

(1)简单,容易上手,容易掌握。

(2)NFS文件系统内数据是在文件系统智商的,即数据是能看得见的。

(3)部署快速,维护简单方便,且可控,满足需求的就是最好的。

(4)可靠,从软件层面上看,数据可靠性高,经久耐用。数据是在文件系统上的。

(5)服务非常稳定。

局限:

(1)存在单点故障,如果NFS  Server宕机了,所有客户端都不能访问共享目录。这个在后期的课程会通过负载均衡及高可用方案弥补。

(2)在大数据高并发的场合,NFS效率、性能有限(2千万/日一下PV的网站不是瓶颈,除非网站架构设计太差)。

(3)客户端认证是基于IP和主机名的,权限要根据ID识别,安全性一般(用户内网则问题不大)。

(4)NFS数据是明文的,NFS本身不对数据完整性作验证。

(5)多台客户机挂载一个NFS服务器时,连接管理维护麻烦(耦合度高)。尤其NFS服务端出问题后,所有NFS客户端都处于挂掉状态(测试环境可使用autofs自动挂载解决,正式环境可修复NFS服务或强制卸载)。

(6)涉及了同步(实时等待)和异步(解耦)的概念,NFS服务端和客户端相对来说就是耦合度有些高。网站程序也是一样,尽量不要耦合度太高,系统及程序架构师的重要职责就是为程序及架构解耦,让往后在哪的扩展性变得更好。

应用建议:

大中小型网站(参考点2千万/日PV以下)线上应用,都有用武之地。门户网站也会有应用,生产场景应该多把数据的访问往前推,即尽量把静态存储里的资源通过CDN或缓存服务器提供服务,如果没有缓存服务或架构不好,存储服务器数量再多也是扛不住压力的,而且用户体验很差。

解决NFS性能问题:

(1)使用CDN加速以及自己搭建文件缓存服务(squid,nginx,varnish)。

(2)把多个目录分配到不同的NFS服务器上。

(3)弃用NFS

(4)使用分布式文件系统


本章重点回顾:

(1)NFS服务的访问原理流程(会口述)

(2)NFS作为集群共享存储角色的搭建、部署。

(3)NFS作为集群存储角色的排障,高级优化(会口述)

(4)mount命令的知识及参数,如-o(noatime,nodiratime,noexec,nosuid,rsize,wsize)等。

(5)fstab文件知识以及fstab故障修复。

(6)常用命令showmount\exportfs\umount(-lf)、rpcinfo。

(7)NFS的优点、缺点,适合的应用场景,替代产品(FastDFS、Moosefs(mfs)、GlusterFS)。

(8)NFS架构上性能解决方案。

(9)了解autofs。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,738评论 5 472
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,377评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,774评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,032评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,015评论 5 361
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,239评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,724评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,374评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,508评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,410评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,457评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,132评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,733评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,804评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,022评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,515评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,116评论 2 341

推荐阅读更多精彩内容