NFS服务部署

NFS

1.什么是nfs

1.什么是NFS,NFS是Network File System的缩写及网络文件系统。
2.NFS能干什么,它的主要功能是通过局域网络让不同主机系统之间可以共享文件和目录。

2.为什么要使用NFS,NFS解决了什么问题?

解决多台web静态资源的共享(所有客户端都挂载服务端,看到的数据都一样)
解决多台web静态资源一致性(如果客户端A删除NFS服务上的test文件,客户端B上也会看不见test文件)
解决多台web磁盘空间的浪费(有用户上传图片,就使用rsync进行一次同步)

3.nfs实现原理

1.NFS客户端执行增、删等操作,客户端会使用不同的函数对该操作进行封装。
2.NFS客户端会通过TCP/IP的方式传递给NFS服务端。
3.NFS服务端接收到请求后,会先调用portmap进程进行端口映射。
4.nfsd进程用于判断NFS客户端是否拥有权限连接NFS服务端。
5.Rpc.mount进程判断客户端是否有对应的权限进行操作。
6.idmap进程实现用户映射和压缩。
7.NFS服务端将客户端的函数转换为本地能执行的命令,然后将命令传递至内核,由内核驱动硬件

nfs安装

yum install nfs-utils -y

nfs配置

[root@nfs ~]# cat /etc/exports
/data 172.16.1.0/24(rw,all_squash)

准备nfs服务端共享目录

[root@nfs ~]# mkdir /data
[root@nfs ~]# chown -R nfsnobody.nfsnobody /data/

启动nfs

[root@nfs ~]# systemctl start nfs-server
[root@nfs ~]# systemctl enable nfs-server

客户端测试挂载

[root@web01 ~]# yum install nfs-utils -y
        [root@web01 ~]# showmount -e 172.16.1.31
        Export list for 172.16.1.31:
        /data 172.16.1.0/24
        [root@web01 ~]# mount -t nfs 172.16.1.31:/data /opt
        [root@web01 ~]# df -h

加入开机自动启动

#cat /etc/fstab
    172.16.1.31:/data /opt nfs defaults 0 0

nfs故障解决方案

1.开机状态: 那么客户端输入df -h 则会夯住

2.解决方法: 强制卸载
mount #查看所有的挂载信息
umount -lf /opt #强制卸载

3.重启系统: 会导致系统无法启动
单用户: e enforcing=0 init=/bin/bash ctrl+x
mount -o remount,rw /

nfs配置详解

nfs共享参数                                           参数作用
rw*                 读写权限
ro                  只读权限
root_squash         当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户(不常用)
no_root_squash      当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员(不常用)
all_squash          无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户(常用)
no_all_squash       无论NFS客户端使用什么账户访问,都不进行压缩
sync*               同时将数据写入到内存与硬盘中,保证不丢失数据
async               优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
anonuid*            配置all_squash使用,指定NFS的用户UID,必须存在系统
anongid*            配置all_squash使用,指定NFS的用户UID,必须存在系统

NFS存储总结

1.NFS存储优点
1.NFS简单易用、方便部署、数据可靠、服务稳定、满足中小企业需求。
2.NFS的数据都在文件系统之上,所有数据都是能看得见。

2.NFS存储局限
1.存在单点故障, 如果构建高可用维护麻烦
2.NFS数据都是明文,并不对数据做任何校验,也没有密码验证(强烈建议内网使用)。

3.NFS应用建议
1.生产场景应将静态数据(jpg\png\mp4\avi\css\js)尽可能放置CDN进行加速, 以此来减少后端存储压力
2.如果没有缓存或架构、代码等,本身历史遗留问题太大,在多存储也没意义

你可能感兴趣的:(NFS服务部署)