1.NFS服务配置

[toc]

NFS服务配置

一、NFS介绍

1.1 NFS文件系统

什么是文件系统,NFS文件系统又是什么?
简单的说,文件系统就是通过软件对磁盘上的数据进行组织和管理的一种机制,对其的一种封装或透视。

NFS,Network File System。顾名思义,网络文件系统,即通过网络,对在不同主机上的文件进行共享。

1.2 NFS起源与应用场景

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上的一致

1.3 NFS架构

为什么需要使用NFS呢?
在生产环境,我们很少使用单机部署应用,因为单机存在单点故障,一旦宕机,将无法为前端业务提供服务,这是客户无法容忍的。现在提倡的高可用及7*24服务,是我们追求的目标。 对于一些小的应用,双机成为了主流。我们来看一种简单集群场景, 应用分别部署在A及B上, 前端通过F5或着web服务器访问应用。如下图:

那么当客户端发出一个请求时,F5根据一定的机制进行转发,有可能有A服务器进行响应,也有可能
由B服务器进行响应。 而在web应用中上传一些静态文件是很常见的一种功能,如图片。假设用户在某一时间,上传了一张照片到A服务器上,那么下次访问时,被F5路由到了B服务器上,由于B服务器上并没有存储上传的照片,所以将造成用户无法看到自己上传的照片。

那么很容易想到,是不是可以把文件上传到一个公用的服务器上呢? 这样不管访问的是A还是B,读、取文件都只存在一份。答案是肯定的,这个公用的服务器我们也称之为文件服务器。上面的架构就演变成了下面的架构:

NFS提供了一种机制,可以让A、B访问C中的一个共享目录,就像是操作本地文件一样。

注:此处当然也可以通过sftp或ftp进行文件上传和下载。

1.4 NFS的原理:

首先:NFS包括两部分,服务端及客户端

由于NFS服务功能很多,会有很多端口,这些端口还有可能不固定,那么客户端就无法与服务器进行通信,因为程序间通信必须通过端口(tcp/udp都是端到端通信),那么就需要一个中间的桥接机制,RPC进程即充当这样一个角色,RPC的端口是一定的(111),当NFS启动时,会向RPC进行注册, 那么客户端PRC就能与服务器RPC进行通信, 从而进行文件的传输。

当客户端用户打开一个文件或目录时,内核会判断,该文件是本地文件还是远程共享目录文件,如果是远程文件则通过RPC进程访问远程NFS服务端的共享目录,如果是本地文件,则直接打开。
为了更好的并发,RPC进程及NFS进程都有多个。

二、服务端配置NFS

2.1 需求:两台机器。xavi001为服务器(192.168.72.130),xavi002为客户端进行测试(192.168.72.133):

2.2 在服务端和测试段都安装上rpcbind

# yum install -y nfs-utils      //yum工具安装nfs-utils时会一并安装recbind

小技巧关于安装包印象整体安装进度时,可以把相关安装源禁掉

以下以epel为例

[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# ls
CentOS7-Base-163.repo  CentOS-fasttrack.repo  CentOS-Vault.repo
CentOS-CR.repo         CentOS-Media.repo      epel.repo
CentOS-Debuginfo.repo  CentOS-Sources.repo    epel-testing.repo
[[email protected] yum.repos.d]# mv epel.repo epel.repo.1
  • 将安装的epel文件move到另外地方,这样禁止好,可以加快安装进程。

2.3 编辑配置文件

[[email protected] ~]# vim /etc/exports 

/home/nfstestdir 192.168.72.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

小括号内的权限选项含义:

rw: 读写

ro: 只读

sync: 同步模式,内存数据实时写入磁盘

async :非同步模式

no_root_squash: 客户端挂载NFS共享目录后,root用户不受约束,权限很大

root_squash: 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户

all_squash:
客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户

anonuid/anongid: 和上面几个选项搭配使用,定义被限定用户的uid和gid

2.4 创建目录并修改权限,方便后面测试

[[email protected] ~]# chmod 777 /home/nfstestdir/

2.5 查看rpc服务是否启动

[[email protected] ~]# netstat -lntp  //111端口说明rpcbind已启动
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      1/systemd
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1866/dnsmasq
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1050/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1048/cupsd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1693/master
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd
tcp6       0      0 :::22                   :::*                    LISTEN      1050/sshd
tcp6       0      0 ::1:631                 :::*                    LISTEN      1048/cupsd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1693/master
[[email protected] ~]# ps aux |grep rpc  //rpcbind服务已启动
root        385  0.0  0.0      0     0 ?        S<   10:00   0:00 [rpciod]
rpcuser    2657  0.0  0.0  44464  1824 ?        Ss   10:11   0:00 /usr/sbin/rpc.statd
rpc        2659  0.0  0.0  64964  1348 ?        Ss   10:11   0:00 /sbin/rpcbind -w
root       2660  0.0  0.0  42564   940 ?        Ss   10:11   0:00 /usr/sbin/rpc.mountd
root       2661  0.0  0.0  43812   536 ?        Ss   10:11   0:00 /usr/sbin/rpc.idmapd
root       2700  0.0  0.0 112684   976 pts/0    S+   10:12   0:00 grep --color=auto rpc

2.6 启动NFS服务,这是rpc的相关联的服务也会被启动

[[email protected] ~]# systemctl start nfs
[[email protected] ~]# ps aux |grep nfs
root       2672  0.0  0.0      0     0 ?        S<   10:11   0:00 [nfsd4_callbacks]
root       2678  0.0  0.0      0     0 ?        S    10:11   0:00 [nfsd]
root       2679  0.0  0.0      0     0 ?        S    10:11   0:00 [nfsd]
root       2680  0.0  0.0      0     0 ?        S    10:11   0:00 [nfsd]
root       2681  0.0  0.0      0     0 ?        S    10:11   0:00 [nfsd]
root       2682  0.0  0.0      0     0 ?        S    10:11   0:00 [nfsd]
root       2683  0.0  0.0      0     0 ?        S    10:11   0:00 [nfsd]
root       2684  0.0  0.0      0     0 ?        S    10:11   0:00 [nfsd]
root       2685  0.0  0.0      0     0 ?        S    10:11   0:00 [nfsd]
root       2690  0.0  0.0 112680   976 pts/0    S+   10:11   0:00 grep --color=auto nfs
[[email protected] ~]# ps aux |grep rpc
root        385  0.0  0.0      0     0 ?        S<   10:00   0:00 [rpciod]
rpcuser    2657  0.0  0.0  44464  1824 ?        Ss   10:11   0:00 /usr/sbin/rpc.statd
rpc        2659  0.0  0.0  64964  1348 ?        Ss   10:11   0:00 /sbin/rpcbind -w
root       2660  0.0  0.0  42564   940 ?        Ss   10:11   0:00 /usr/sbin/rpc.mountd
root       2661  0.0  0.0  43812   536 ?        Ss   10:11   0:00 /usr/sbin/rpc.idmapd
root       2700  0.0  0.0 112684   976 pts/0    S+   10:12   0:00 grep --color=auto rpc

2.7 设置NFS开机启动项

[[email protected] ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

三、NFS客户端设置

上节内容中我们已经安装好了nfs-utils包

3.1 shwomount查看服务端共享目录

使用showmount -e IP可以查看NFS的共享情况

[[email protected] ~]# showmount -e 192.168.72.130
Export list for 192.168.72.130:
/home/nfstestdir 192.168.241.0/24 //共享目录为/home/nfstestdir,信任主机为192.168.241.0/24网段

共享目录为/home/nfstestdir,信任主机为192.168.241.0/24网段

如果没有出现共享目录,有可能是服务端没有开启rpc服务,或者现在客户端的防火墙没有关闭,注意NFS是特殊的服务,必须关闭防火墙

[[email protected] ~]# setenforce 0
setenforce: SELinux is disabled
[[email protected] ~]# getenforce
Disabled

3.2 在客户端挂载NFS

[[email protected] ~]# mount -t nfs 192.168.72.130:/home/nfstestdir /mnt/
[[email protected] ~]# df -h
文件系统                         容量  已用  可用 已用% 挂载点
/dev/sda3                         17G  3.6G   13G   23% /
devtmpfs                         479M     0  479M    0% /dev
tmpfs                            489M     0  489M    0% /dev/shm
tmpfs                            489M  7.1M  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.72.130:/home/nfstestdir   17G   10G  6.2G   63% /mnt

3.3 在增加的/mnt分区,就是NFS共享的目录,在该目录下创建测试文件:

[[email protected] ~]# cd /mnt/
[[email protected] mnt]# ls
[[email protected] mnt]# touch xavilinux.123
[[email protected] mnt]# ls -l
总用量 0
-rw-r--r-- 1 xavi xavi 0 3月  27 10:55 xavilinux.123
[[email protected] mnt]# id xavi
uid=1000(xavi) gid=1000(xavi) 组=1000(xavi),10(wheel)

3.4 在服务端查看

[[email protected] ~]# ls -l /home/nfstestdir/
总用量 0
-rw-r--r-- 1 xavi xavi 0 3月  27 10:55 xavilinux.123
[[email protected] ~]# id xavi
uid=1000(xavi) gid=1000(xavi) 组=1000(xavi),1004(grptest1)

可以看到创建的新文件xavilinux.txt所有者和所属组为xavi,其uid和gid都为1000.

原文地址:http://blog.51cto.com/12995218/2091546

时间: 2024-10-09 16:13:00

1.NFS服务配置的相关文章

Ubuntu 13.04 &amp; 开发板 ---- NFS服务配置

Ubuntu sudo apt-get install nfs-kernel-server sudo apt-get install rpcbind sudo vim /etc/exports /home/xxx *(rw, sync, no_root_squash) sudo /etc/init.d/nfs-kernel-server restart sudo /etc/init.d/rpcbind restart 开发板 mount -o nolock xxx:/home/xxx /mnt/

NFS服务配置流程及配置参数

NFS服务端配置流程:第一步:检查NFS服务相关软件是否安装rpm -qa|egrep "nfs-utils|rpcbind"如果没有安装,yum安装即可yum install -y nfs-utils rpcbind 第二步:修改NFS默认配置文件vim /etc/exports 01.定义共享目录 02.定于允许使用共享目录的主机或网段地址信息(03.定义共享目录权限信息) /data 172.16.1.0/24(rw,sync,all_squash) 第三步:创建共享目录,并设置

NFS 服务配置篇

安装.配置NFS服务 1.NFS简介 NFS(network file system) NFS是一个主机A通过网络,允许其他主机B可以来共享主机A的一个目录文件的一个文件系统 2.需要安装两个包nfs-util 和rpcbind 在安装nfs-utils,会自动安装rpcbind 3.修改配置文件vim /etc/exports 配置文件共三部分 /home/ 192.168.137.0/24(rw,sync,all_squash,anonuid=501,anongid=501) (1)第一部分

NFS服务配置

接下来说一下NFS服务的配置,我用的环境是VMware虚拟机下的CentOS6.5操作系统. 什么是NFS? NFS会经常用到,用于在网络上共享存储.我打个比方吧,假如有三台机器A, B, C,它们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片分别放到A, B, C. 但是使用NFS只需要放到A上,然后A共享给B和C即可.访问的时候,B和C是通过网络的方式去访问A上的那个目录的,对就是这样. 1.服务端的配置 CentOS上使用NFS服务,需要安装两个包(nfs-utils和rpcb

redhat enterprixe 5.0 NFS服务配置与管理

一.了解NFS Samba 是主要用于实现Linux和Windows操作系统之间文件共享的协议,而NFS则是实现UNIX和Linux操作系统之间文件共享的协议. NFS可以把网络上远程的文件挂载到本机机器上. 二.安装 需要安装 portmap和nfs-utils这两个包,用rpm安装或者直接用yum安装都可以.好像一般都默认安好了...贴心~ rpm -ivh portmap-4.0-65.2.2.1.i386.rpm rpm -ivh nfs-utils-1.0.9-50.el5.i386.

NFS服务配置固定端口

#Linux NFS服务 固定端口及防火墙配置# 1.在Linux上正常安装NFS服务 2.修改/etc/service,添加以下内容(端口号必须在1024以下,且未被占用)    # Local services    mountd 1011/tcp #rpc.mountd    mountd 1011/udp #rpc.mountd    rquotad 1012/tcp #rpc.rquotad    rquotad 1012/udp #rpc.rquotad 3.重起nfs服务  ser

NFS服务配置笔记

NFS用于网络共享存储,类似windows目录共享. 配置NFS需在服务端和客户端都安装两个包(nfs-utils和rpcbind),安装nfs-utils时自动会把rpcbind一起安装上.安装命令:yum install -y nfs-utils 1.NFS服务端配置 1)编辑配置文件: vim /etc/exports 写入内容: /home/ 192.168.16.0/24(rw,sync,all_squash,anonuid=501,anongid=501) rw :读写: ro :只

Linux学习总结(四十七)NFS服务配置 上篇

1 NFS基本架构 NFS network file system 也就是网络文件系统.NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写,译为远程过程调用.NFS应用场景是:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致.NFS通过网络让不

centos7安装nfs服务配置

nfs为什么需要RPC?因为NFS支持的功能很多,不同功能会使用不同程序来启动,因此,NFS对应的功能所对应的端口无法固定.端口不固定造成客户端与服务端之间的通信障碍,所以需要RPC来从中帮忙.NFS启动时会随机取用若干端口,然后主动向RPC服务注册取用相关端口和功能信息,RPC使用固定端口111来监听来自NFS客户端的请求,并将正确的NFS服务端口信息返回给客户端,这样客户端与服务端就可以进行数据传输了 1.由程序在NFS客户端发起存取文件的请求,客户端本地的RPC(rpcbind)服务会通过