nfs最大的缺点是单点,只能一对一
nfs统称存储服务器,放视频图片之类的东西,所以服务器的容量很大
数字都是放在数据库里边的,
nfs的挂载原理
客户端怎么知道服务端的开启端口?
找rpcbind,再启动的瞬间,nfs会想rpc注册,nfs有哪些端口号可以用,rpc固定监控一个端口号,当客户端来连接的的时候,rpc会受到请求,然后分发端口号,客户端通过端口号在和nfs建立连接
具体步骤 1需要先装rpcbind的东西 2装nfs-utils 要先起rpc服务 在起nfs服务,nfs要像rpc注册 客户端挂载要先经过rpc(rpc才是socket端口)通过rpc知道nfs的端口,然后才和nfs三次握手。 服务端的rpc是socket进程,客户端的是一个命令。 服务端需要张的包 nfs-utils(包括了rpc的客户端) rpcbind(是rpc的服务端) 命令rpcinfo是看rpc的信息的命令 启动用service rpcbind start 启动nfs用/etc/init.d/nfs start
配置nfs的配置文件,/etc/exports 直接清空以后再写, 书写格式 共享那个目录 那个客户端能连接过来(拥有什么权限用逗号隔开) 例如:/data 192.168.200.0/24(rw,sync,all_squash)
命令showmount 命令是查看(本地有没有共享目录)网路文件能不能挂载 参数-e不指明ip是查看本地 创建/data目录,修改目录权限为nfsnobody 在共享的磁盘里放置文件的时候所有人都降权,都变成了程序用户。nfs在重启的时候是无敌时间,在几秒钟内不能做任何事情。 程序用户是最低的,所有人都能进行操作。(读写操作) amonuid=xxxx 修改nfs的主权限用户 anongid=sss 修改nfs的组权限用户
NFS服务端配置文件路径
NFS服务的默认配置文件路径为:/etc/exports,并且默认是空的。
[root@nfs01 ~]# ls -l /etc/exports
-rw-r--r--. 1 root root 0 1月 12 2010 /etc/exports
[root@nfs01 ~]# cat /etc/exports
提示:
NFS默认配置文件/etc/exports其实是存在的,但是没有内容,需要用户自行配置。
exports配置文件格式
/etc/exports文件位置格式为:
NFS共享的目录 NFS客户端地址1(参1,参2...)客户端地址2(参1,参2...)
NFS共享的目录 NFS客户端地址(参1,参2...)
查看exports语法文件格式帮助的方法为:
执行man exports命令,然后切换到文件结尾,可以快速看如下样例格式:
[root@nfs01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync)
命令说明:
/data :nfs的共享目录路径
172.16.1.0/24:允许挂载我的共享目录的IP地址段
(rw):可读可写
(sync):实时同步
修改配置文件以后,必须重启nfs服务
[root@nfs01 ~]# /etc/init.d/nfs reload
[root@nfs01 ~]# showmount -e #查看生效的nfs配置文件规则
Export list for nfs01:
/data 172.16.1.0/24
给共享目录更改属主属组为nfsnobady
[root@nfs01 ~]# grep nfs /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
[root@nfs01 ~]# chown -R nfsnobody.nfsnobody /data
[root@nfs01 ~]# ll -d /data
drwxr-xr-x. 2 nfsnobody nfsnobody 4096 3月 9 09:43 /data
特别提示:
如果不授权属主属组,那么共享目录挂载以后将不遵循配置文件exports的设定好的读写规则。虽然也能正常挂载,但是会导致写入文件时提示没有权限。
nfs的缺点
没办法扩容,不能无限扩容,有无敌时间,无敌时间会阻碍我们有单点故障(单点就是一个集群坏一个就不能使用,),不好做高可用,高可用是一个服务器换了会有自动替换的操作。检测nfs是不是活的我们检测111端口,(nmap。Telnet ip 端口可以检测nfs出没出事。这样做会需要修改无敌时间。)还有写入熟读的缺点,硬盘的读写速度有限,20台服务器以内才会选用nfs的初级存储。
开机自启的fstab没有自己启动的原因,没有开机自启netfs,一个服务器没有网是不能挂远程服务的,最根本的原因是,fstab的优先级高于开启网路的优先级,在开机的时候先执行fstab在执行开启网路,而netfs是将fstab挂两边,所以能解决问题。