1、什么是NFS?
全程 network file system 网络文件系统
文件系统
组织和存取文件的一种机制
网络文件系统
通过网络组织和存取文件的方法或机制
2.为什么用共享存储?
前端所有应用服务器接收到用户上传的图片、文件、视频,都会统一的放到后端的存储上。
所有节点服务器都需要将内容存到存储上,统一来取。
3.共享存储种类
单点存储系统就是NFS,适用于中小型企业,相当于阿里云服务的NAS服务,
大型企业会用分布式存世FastDFS、Ceph、GlsterFS、Mfs
大型存储厂商:EMC\Netapp
艺龙用EMC瘫了
硬件存储: 传统企业:稳定、两台,双主机头,几十块硬盘,Raid10
BAT 曾经用的硬件,超级贵
阿里云 去IOE Ibm Orace EMC
NFS把video挂载到两个服务端上。
4.NFS工作原理
NFS网络文件系统
启动NFS服务,同时启动很多端口,
NFS功能,需要很多服务,每个服务都有端口,而且经常变化
客户端找端口方法:rpc服务
NFS服务:
1、NFS服务(有很多进程和端口),把端口告诉RPC
2、RPC服务(对外固定端口111)
客户端请求NFS服务。
客户端
用户——》RPC服务——》TCP/IP协议(端口)
服务端
TCP/IP协议(端口)——》RPC服务——》NFS服务
5.环境配置
5.1yum -y install r
systemctl enable
systemctl restart nfs
systemctl status rpcbind
systemctl reload nfs 平滑重启 不影响用户
rpcinfo -p 127.0.0.1 报告主机 RPC 信息
netstat -lntup |egrep "rpc|nfs" 查看服务 监听端口。
ps -ef | egrep "rpc|nfs" 查看进程
kill 进程号
lsof 查进程 -p 指定进程号
-c 以xx开头的进程
————————————————————————————————————————
5.2
创建文件,赋属主属组
mkdir /data
chown -R nfsnobody.nfsnobody /data
用户nfs会自动创建
vim /etc/exports
###
#/data 172.16.1.1/24(rw,sync) 10.0. 0.0/24(ro)
/data 172.16.1.0/24(rw,sync)
配置环境
重启NFS
systemctl reload nfs 平滑重启 不影响用户
exportfs -r
两者等价,选一。
[root@nfs01 /]# mount -t nfs 172.16.1.31:data /mnt挂载
showmount -e 172.16.1.31 显示NFS服务器的输出清单。 -e exports
nfs01完成
——————————————————————————————————————————————————————
客户端:
下载服务
yum -y install rpcbind nfs-utils
开机自启动
systemctl start rpcbind 开启
systemctl enable rpcbind 开机自启动
重启服务
systemctl restart rpcbind 重启
systemctl reload rpcbind 平滑重启
查看服务
systemctl status rpcbind
挂载
mount -t nfs 172.16.1.31:data /mnt
开启自动挂载
vim /etc/fstab
172.16.1.31:/data /mnt nfs defaults 0 0
1、/etc/fstab开机自挂载
nfs服务通过网络挂载。
开机启动流程:
1、磁盘先启动/etc/fstab
2、防火墙在前。
3、网卡
没有网络,C7通过remote-fs.target服务实现延迟启动。 systemctl enable remote-fs.target
——————————————————————————————————————————————————
总结:
服务端
1.yum下载服务,开启自启动,检查。nfs-utils rpcbind
2.创建文件data,给文件nfs用户的权限 (nfs用户nfs服务自动创建)
3.配置环境 /etc/exports 重启NFS exportfs -r (ps -ef | egrep "rpc|nfs") nfs
/data 172.16.1.0/24(rw,sync)
客服端
1.yum下载服务 nfs-utils rpcbind
2.挂载
################################################
NFS配置文件 /etc/exports
[root@nfs01 ~]# man exports
EXAMPLE
# sample /etc/exports file
/ master(rw) trusty(rw,no_root_squash)
/projects proj*.local.domain(rw)
/usr *.local.domain(ro) @trusted(rw)
/home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
/pub *(ro,insecure,all_squash)
/srv/www -sync,rw server @trusted @external(ro)
/foo 2001:db8:9:e54::/64(rw) 192.0.2.0/24(rw)
/build buildhost[0-9].local.domain(rw)
待共享的目录 访问的主机(权限)
1)待共享的目录 存东西的目录 取东西的目录例如:/data
2)访问的主机,
172.16.1.7(web01) 单个主机
172.16.1.0/24 网段
172.16.1.* 网段
master 主机名
3)()权限
rw 可读写 read write
ro 只读 read only
sync 写到磁盘才算完成,安全 慢
async 异步写到远程缓冲区,快 不安全
##################################################