NFS

NFS存储

NFS是什么?

NFS是网络文件系统,用于共享存储。

NFS能干什么?

NFS可以通过局域网实现不同主机系统之间的目录共享。

为什么要用NFS?

在网站集群架构中如果没有共享存储的话,最有可能导致的问题就是不能保证web服务器上的资源一致。

使用NFS能解决这些问题

  1. 解决多台web静态资源的共享。
  2. 能解决多台web静态资源的一致性。
  3. 解决多个web磁盘空间浪费。
  4. 快速迭代web服务器的代码。

企业使用NFS注意事项

  1. 增加NFS服务不能给网站带来访问速度的提升。
  2. 建议使用cdn对静态资源加速。

NFS原理

在这里插入图片描述

本地文件操作方式

  1. 当用户执行mkdir命令, BashShell无法完成该命 令操作,会将其翻译给内核。
  2. Kerne l内核解析完成后会驱动对应的磁盘设备,完成创建目录的操作。
    NFS实现原理(需要先了解[程序|进程|线程] )
  3. NFS客户端执行增、删等操作,客户端会使用不同的函数对该操作进行封装。
  4. NFS客户端会通过TCP/ IP的方式传递给NFS服务端。
  5. NFS服务端接收到请求后,会先调用portmap进程进行端口映射。
  6. nfsd进程用于判断NFS客户端是否拥有权限连接NFS服务端。
  7. Rpc.mount进程判断客户端是否有对应的权限进行验证。
  8. idmap进程实现用户映射和压缩。
  9. 最后NFS服务端会将客户端的函数转换为本地能执行的命令,然后将命令传递至内核,由内核驱动硬件。

注意: rpc是一 个远程过程调用, 那么使用nfs必须有rpc服务

NFS配置方法

  1. 安装
[root@backup /]# yum install rpcbind nfs-utils -y
  1. 配置:
    配置文件为/etc/exports
    配置语法为:
    本地要共享的目录 在哪个网络中共享(共享参数)
    共享参数:
    rw:读写权限 *
    ro:只读权限
    sync:同时将数据写入到内存与硬盘中,保证不丢失数据 *
    async:优先将数捆保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
    anonuidk:配置all_ squash使用,指定NFS的用户UID。必须存在系统
    anongid:配置all_squash使用,指定NFS的用户GID,必须存在系统

root_ squash:当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户(不常用)
no_ root_ squash:当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员(不常用)
all_ squash:无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户(常用)

no_ all_squash:无论NFS客户端使用什么账户访问,都不进行压缩

示例:

# 将nfs服务端的/data目录共享给172.16.1.0/24网段内的所有主机
# 1)所有客户端主机都拥有读写权限
# 2)在将数据写入到NFS服务器的硬盘中后才会结束操作,最大限度保证数据不丢失
# 3)将所有用户映射为本地的匿名用户(nfsnobody)
/data 172.16.1.0/24(rw,sync,all_squash)
  1. 创建目录
mkdir /data
chown -R nfsnobody:nfsnobody /data
  1. 启动NFS
systemctl start nfs
systemctl enable nfs
  1. 客户端测试
# 安装
yum install nfs-utils -y
# 检查共享的目录详情
showmount -e 172.16.1.41
# 挂载
mount -t nfs 172.16.1.41:/data /mnt

NFS特点

优点:

  1. 简单易用,方便部署,数据可靠,服务稳定,满足中小企业的需求。
  2. 数据都在文件系统上,所有数据都能看得见
    存储局限:
    1.存在单点故障,不支持集群模式。构建高可用维护麻烦。
    2.NFS都是明文,并不对数据做任何校验,没有密码验证(内网使用)
    应用建议:
    1.生产场景应将静态数据尽可能防止cdn场景进行环绕,以此来减少后端存储的压力。
    2.如果没有缓存或架构、代码等,本身历史遗留问题太大,再多存储也没意义。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值