DNS
NFS系统应用的优缺点说明
NFS服务可以让不同的客户端挂载使用同一个共享目录,也就是将其作为共享存储使用,这样可以保证不同节点客户端数据的一致性,
在集群架构环境中经常会用到。如果是windows和Linux混合环境的集群系统,可以用samba来实现。
优点:
简单,容易上手,容易掌握
NFS 文件系统内数据是在文件系统之上的,即数据是能看得见的。
部署快速,维护简单方便,且可控,满足需求的就是最好的。
可靠,从软件层面上看,数据可靠性高,经久耐用。数据是在文件系统之上的。
服务非常稳定
最重要的缺点是:不能扩容和单点问题
缺点:
读写性能问题
存在单点故障,如果NFS Server荡机了,所有客户端都不能访问共享目录。这个需要负载均衡及高可用来弥补
在大数据高并发的场合,NFS效率,性能有限(2千万/日以下PV(page view)的网站不是瓶颈,除非网站架构设计太差。)
客户端认证是基于IP和主机名的,权限要根据ID识别,安全性一般(用于内网则问题不大)。
NFS数据是明文的,NFS本身不对数据完整性做验证。
多台客户机器挂载一个NFS服务器时,连接管理维护麻烦(耦合度高)。尤其NFS服务端出问题后,所有NFS客户端都处于挂掉状态
(测试环境可使用autofs自动挂载解决,正式环境可修复NFS服务或强制卸载)
涉及了同步(实时等待)和异步(解耦)的概念,NFS服务端和客户端相对来说就是耦合度有些高。网站程序也是一样,尽量不要耦合度太高
,系统及程序架构师的重要职责就是为程序及架构解耦,让网站的扩展性变得更好。
yum -y install nfs-utils rpcbind 安装yum包,这是需要的包
rpm -qf /usr/sbin/rpcinfo #查询某个命令属于已经安装的哪个rpm包
service iptables start 打开防火墙
stop 关闭防火墙
不关防火墙成功不了
服务端配置过程:
启动rpcbind
/etc/init.d/rpcbind status #检查rpcbind服务状态
rpcbind 已停
/etc/init.d/rpcbind start #启动rpcbind服务
正在启动 rpcbind:
rpcinfo -p localhost #查看NFS服务向rpc服务注册的端口信息,因为NFS还没有启动,因此,没有太多注册的端口影射信息。
/etc/init.d/nfs start #启动nfs服务
如果不启动rpcbind服务直接启动nfs服务的会启动时失败
ps -ef | egrep "rpc|nfs" 可以通过执行如下命令查看启动NFS后,系统中运行的NFS相关进程
NFS服务的主要任务是共享文件系统数据,而文件系统数据的共享离不开权限问题。所以NFS服务器启动时最少需要两个不同的进程,
一个是管理NFS客户端是否能够登入的rpc.nfsd主进程,另一个用于管理NFS客户端是否能够取得对应权限的rpc.mountd进程。如果还需要管理磁盘配额,
则NFS还要再加载rpc.rquotad进程。
NFS服务的默认配置文件路径为:/etc/exports,并且默认是空的。
NFS默认配置文件/etc/exports其实是存在的,但是没有内容,需要用户自行配置
vim /etc/exports文件位置格式为:
NFS共享的目录 NFS客户端地址1(参1,参2...)客户端地址2(参1,参2...)
NFS共享的目录 NFS客户端地址(参1,参2...)
[root@nfs01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync)
命令说明:
/data :nfs的共享目录路径
172.16.1.0/24:允许挂载我的共享目录的IP地址段
(rw):可读可写
修改配置文件以后,必须重启nfs服务
/etc/init.d/nfs reload #启动nfs服务
showmount -e #查看生效的nfs配置文件规则 后面需要加IP不然容易卡顿
给共享目录更改属主属组为nfsnobady
grep nfs /etc/passwd #在这个文件里看有没有nfs
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
chown -R nfsnobody.nfsnobody /data #更改他的属主和属组
ll -d /data #查看data的属主和属组
drwxr-xr-x. 2 nfsnobody nfsnobody 4096 3月 9 09:43 /data
特别提示:
如果不授权属主属组,那么共享目录挂载以后将不遵循配置文件exports的设定好的读写规则。虽然也能正常挂载,但是会导致写入文件时提示没有权限。
进行本地挂载
mount 你的IP地址:/data /mnt 两个目录之间可以共享
chkconfig 查看开机启动的文件
不论是服务端和客户端都需要创建共享目录 例如:data
客户端配置过程:
客户端必须安装nfs-utils软件 yum -y install nfs-utils
启动network
service network start
/etc/init.d/nfs start #启动nfs服务
mount 服务端IP地址:/data /mnt
权限下降 在配置文件里用 vim /etc/exports
不降它的权限 容易无法写入
root_squash 如果访问目录的是root,则它的权限将被压缩成匿名用户。
all_squash 不管访问共享目录的用户身份如何,它的权限都被压缩成匿名用户。