前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NFS介绍+基础搭建配置

NFS介绍+基础搭建配置

作者头像
老七Linux
发布2018-05-09 16:12:41
9840
发布2018-05-09 16:12:41
举报
文章被收录于专栏:Laoqi's Linux运维专列

一、NFS介绍:

1.1 NFS是Network File System的缩写

NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本,更新比较慢其实4.1是从2010年就开始使用。

NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写。

NFS应用场景是:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致


二、NFS架构

2.1 构架原理图:

image
image

2.2 架构分析:

首先我们需要保证三台机器的数据是完全一致的;假如A机器跑了一个站点,三台机器做了负载均衡,如果A机器的负载很高,服务器就会自动把访问的调节到B和C机器,但是数据都在A上,如何才能让B和C机器访问到A机器上面的数据呢?

NFS就可以帮我们搞定这个事情,把A上面的数据共享给B或者C;也就是说你在任何一台服务器上面更新了数据,另外两台均可以马上看到此数据!

2.3 原理图:

mark
mark

NFS这个服务需要借助于RPC服务进行通信


三、架构配置

3.1 需求:两台机器。zhdy-02为服务器,zhdy-03为客户端进行测试:

3.2 在服务端安装:

代码语言:javascript
复制
[root@zhdy-02 ~]# yum install -y nfs-utils rpcbind

在服务端配置:

代码语言:javascript
复制
[[email protected]02 ~]# vim /etc/exports

/home/nfssharedir 192.168.59.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

/home/nfssharedir 为分享的目录;
后面的配置指定哪些机器;
括号内的授权指定机器哪些操作权限;

然后再次在服务端创建定义的目录和授权。

代码语言:javascript
复制
[[email protected]02 ~]# mkdir -p /home/nfssharedir
[[email protected]02 ~]# chown 777 /home/nfssharedir

在启动前,确认一下端口是否已经存在;

代码语言:javascript
复制
[root@zhdy-02 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      2621/rpcbind

启动nfs,rpcbind

代码语言:javascript
复制
[root@zhdy-02 ~]# systemctl start nfs

其实当我们启动了nfs 我们发现rpc服务也自动启动了,当然我们也可以确认下:

[root@zhdy-02 ~]# ps aux | grep nfs
[root@zhdy-02 ~]# ps aux | grep rpc

添加开机启动nfs服务:

代码语言:javascript
复制
[root@zhdy-02 ~]# systemctl enable nfs

3.3 客户端配置;

代码语言:javascript
复制
[[email protected]03 ~]# yum install -y nfs-utils

[[email protected]03 ~]# showmount -e 192.168.59.130  //查看服务端的共享

如果不可以查看到服务端的共享,如何检查?

代码语言:javascript
复制
1. 确认服务端服务已经启动
2. 确认服务端和客户端的防火墙已经关闭:
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

再次查看:

代码语言:javascript
复制
[[email protected]03 ~]# showmount -e 192.168.59.130
Export list for 192.168.59.130:
/home/nfssharedir 192.168.59.0/24

挂载服务器的硬盘到本地:

代码语言:javascript
复制
[[email protected]03 ~]# mount -t nfs 192.168.59.130:/home/nfssharedir /mnt/

[[email protected]03 ~]# df -h
文件系统                          容量  已用  可用 已用% 挂载点
/dev/sda3                          41G  4.6G   37G   12% /
devtmpfs                          479M     0  479M    0% /dev
tmpfs                             489M     0  489M    0% /dev/shm
tmpfs                             489M  6.7M  482M    2% /run
tmpfs                             489M     0  489M    0% /sys/fs/cgroup
/dev/sda1                         197M  109M   88M   56% /boot
tmpfs                              98M     0   98M    0% /run/user/0
192.168.59.130:/home/nfssharedir   41G  4.4G   37G   11% /mnt

进入挂载的mnt目录:

代码语言:javascript
复制
[[email protected]03 mnt]# touch test.txt
[[email protected]03 mnt]# ls -l
总用量 0
-rw-r--r-- 1 mysql mysql 0 8月  23 16:41 test.txt

也许有个疑问?为什么授权用户和组是mysql呢?

代码语言:javascript
复制
[root@zhdy-03 mnt]# cat /etc/passwd
mysql:x:1000:1000::/home/mysql:/bin/bash

我们看到,我们设置的权限为anonuid=1000,anongid=1000,那么1000就是mysql。

四、挂载选项:

4.1 权限选项详解:

  • rw 读写
  • ro 只读
  • sync 同步模式,内存数据实时写入磁盘(实时的不停往磁盘里面写数据,磁盘利用率变低)
  • async 非同步模式(每隔一段时间将数据刷入磁盘,但是不好的地方是一旦断电,数据会丢失部分) -no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大。
  • root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户。
  • all_squash 客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户
  • anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid(通俗的讲,把用户的权限限制成某某用户)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/08/23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、NFS介绍:
  • 二、NFS架构
  • 三、架构配置
  • 四、挂载选项:
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档