NFS网络文件共享存储服务器

NFS网络文件共享存储服务器

什么是NFS

NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

在企业集群架构的工作场景中,NFS网络文件系统一般被用来共享存储视频、图片、附件等静态资源文件,通常网站用户上的文件都会存放到NFS共享里。例如bbs产品的图片、附件头像等。然后前段所有的节点访问这些静态资源时都会读取NFS存储上的资源。

企业生成集群中为什么要部署NFS存储服务

1)在没有NFS文件共享存储时的原理解释:

当A用户上传图片到web1服务器时,然后B用户访问这张图片,结果B用户访问图片的请求到了负载均衡器的时候,被分发到web2服务器上,因为web2没有A用户上传的图片,所以B用户就无法看到A用户上传的图片。

实例:淘宝卖家将新出的产品资料上传到淘宝服务器。如果没有存储服务器,那么当大量的用户访问到这个淘宝卖家店里的时候,分发器将用户的请求都分发给淘宝的其他服务器,那么用户就无法看到卖家新出的产品了,这就导致了降低了用户体验。这样对一个户门网站来说是一个很大的错误。

2)在有NFS文件共享存储时的原理解释:

当A用户上传一张图片到web服务器中,分发器不论是转发到那一台web服务器,其内容最后都会被存放到NFS共享文件存储中。而当B用户访问A用户上传的图片时,无论请求被分发器分发web1还是web2上,最终都会到共享存储上找,都可以找到A用户上传的图片。

NFS的工作原理

服务端设置一个专门用来共享的目录(/test)。设置好共享目录的权限,IP等内容。然后具有权限的客户端访问NFS服务器端,将这个共享目录挂载到客户端的某个目录下。客户端在正确挂载完之后,就可以通过NFS客户端的挂载点所在的目录中查看到NFS服务端共享目录/test下的所有数据。客户端查看时,NFS服务端的/test目录就相当于客户端本地的磁盘分区或目录。

什么RPC服务

RPC指远程过程调用。

因为NFS支持的功能比较多,而不同的功能都会使用不同的程序来启动,为启动一个功能就会启用一些未被使用的端口来作为传输只用,因为端口的不固定,这样一来就会造成NFS客户端与NFS服务器端的通信障碍没因为NFS客户端必须要知道NFS服务器端的数据传输端口才能进行通信,才能交互数据。

为了解决上述的问题,就需要RPC服务,NFS服务的RPC服务最主要的功能就是记录每个NFS功能所对饮的端口号,并且NFS客户端请求时将该端口和功能对应的信息传输给请求数据的NFS客户端,从而保证客户端可以连接到正确的NFS端口上去,达到实现数据交互的目的。

服务端的RPC服务如何知道每个NFS的端口的:

当NFS读取端启动服务时会随机取用若干端口,并主动向RPC服务注册相关端口的对应的功能,然后RPC服务使用固定的111端口来监听NFS客户端提交的请求,并将正确的NFS端口信息回复给请求的NFS客户端。

NFS的挂载基本使用过程

请求数据的流程:

1)首先用户访问网站程序,由程序在NFS客户端上发出存取NFS文件的请求,这是NFS客户端的RPC服务就不通过网络向NFS服务器端的RPC服务的111端口发出NFS文件存取功能的查询请求,包括要实现的什么功能。

2)NFS服务器端的RPC服务找到对饮的已注册的NFS端口,通知NFS客户端的RPC服务。

3)此时NFS客户端获取到正确的端口,并与NFS联机存取数据。

4)NFS客户端把数据存取成功后,返回给客户端程序,告知用户存取结果。

注意:

因为NFS的各项功能都需要向RPC服务注册端口,所以只有RPC服务才能获取到NFS服务的各项功能对应的端口号,PID、NFS在主机监听的Ip等信息,而客户端也只能通过向RPC服务询问才能找到正确 的端口,因此,无论是NFS服务端还是NFS客户端都需要RPC服务的协助才能完成对外服务及请求。

一:实验目标

1、完成NFS的文件共享

二:实验环境


服务器系统


主机名


IP


作用


软件


Rhel6.5


yu61


192.168.1.61


Nfs-server


nfs-utils、rpcbind


Rhel6.5


yu62


192.168.1.62


Nfs-client1


nfs-utils、rpcbind


Rhel6.5


yu63


192.168.1.63


Nfs-client2


nfs-utils、rpcbind

三:实验步骤

1、安装NFS服务端

[[email protected] ~]# yum install nfs-utils rpcbind -y

[[email protected] ~]#

[root[email protected] ~]# /etc/init.d/rpcbind status

rpcbind (pid  1615) is running...

[[email protected] ~]# lsof -i :111

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

rpcbind 1615  rpc    6u  IPv4  11330      0t0  UDP *:sunrpc

rpcbind 1615  rpc    8u  IPv4  11333      0t0  TCP *:sunrpc (LISTEN)

rpcbind 1615  rpc    9u  IPv6  11335      0t0  UDP *:sunrpc

rpcbind 1615  rpc   11u  IPv6  11338      0t0  TCP *:sunrpc (LISTEN)

2、查看NFS服务向RPC服务注册的端口信息

因为NFS服务还没有启动,一次没有太多注册端口映射信息。

[[email protected] ~]# rpcinfo -p localhost

program vers proto   port  service

100000    4   tcp    111  portmapper

100000    3   tcp    111  portmapper

100000    2   tcp    111  portmapper

100000    4   udp    111  portmapper

100000    3   udp    111  portmapper

100000    2   udp    111  portmapper

100024    1   udp  43521  status

100024    1   tcp  60423  status

3、启动NFS服务

[[email protected] ~]# /etc/init.d/nfs start

rpc.rquotad (pid 49232) is running...

[[email protected] ~]# rpcinfo -p localhost

program vers proto   port  service

100000    4   tcp    111  portmapper

100000    3   tcp    111  portmapper

100000    2   tcp    111  portmapper

100000    4   udp    111  portmapper

100000    3   udp    111  portmapper

100000    2   udp    111  portmapper

100024    1   udp  43521  status

100024    1   tcp  60423  status

100011    1   udp    875  rquotad

100011    2   udp    875  rquotad

100011    1   tcp    875  rquotad

100011    2   tcp    875  rquotad

100005    1   udp  38917  mountd

100005    1   tcp  44150  mountd

100005    2   udp  42858  mountd

100005    2   tcp  52228  mountd

100005    3   udp  41216  mountd

100005    3   tcp  60796  mountd

4、NFS服务常见的进程详解

[[email protected] ~]# ps -ef | egrep "rpc|nfs"

rpc        1615      1  0 11:00 ?        00:00:00 rpcbind

rpcuser    1755      1  0 11:00 ?        00:00:00 rpc.statd

root      49221      2  0 18:35 ?        00:00:00 [rpciod/0]

root      49222      2  0 18:35 ?        00:00:00 [rpciod/1]

root      49223      2  0 18:35 ?        00:00:00 [rpciod/2]

root      49224      2  0 18:35 ?        00:00:00 [rpciod/3]

root      49232      1  0 18:35 ?        00:00:00 rpc.rquotad

root      49236      1  0 18:35 ?        00:00:00 rpc.mountd

root      49242      2  0 18:35 ?        00:00:00 [nfsd4]

root      49243      2  0 18:35 ?        00:00:00 [nfsd4_callbacks]

root      49249      2  0 18:35 ?        00:00:00 [nfsd]

root      49250      2  0 18:35 ?        00:00:00 [nfsd]

root      49251      2  0 18:35 ?        00:00:00 [nfsd]

root      49274      1  0 18:35 ?        00:00:00 rpc.idmapd

root      49318   2821  0 18:36 pts/0    00:00:00 egrep rpc|nfs

(1)Nfs服务启动的进程说明

NFS服务的主要任务是共享文件刺痛的数据,而文件系统数据的共享离不开权限问题。所以NFS服务器启动后时掷筛需要两个不同的进程,一个是管理NFS客户端是否能够登入rpxc.nfsd主进程,另一个用于管理NFS客户端是否能够取得对应权限的rpc.mountd进程,如果还需要管理磁盘配额,则NFS还需要再加载rpc.rpuotad进程。


服务或进程


用途说明


nfsd (rpc.nfsd)


Rpc.nfsd的主要功能是管理NFS服务器端主机


Mountd (rpc.mountd)


rpc.mountd的主要功能则是管理NFS文件系统,当NFS客户端顺利通过rpc.nfsd登入NFS服务器端的主机时,在使用NFS服务器提供数据之前,他会去读NFS的配置文件/etc/exports来对比NFS客户端的权限,通过这一关之后,还要经过NFS服务器端本地文件系统使用权限的认证程序,


rpc.locke


可以用来锁定文件,用于多客户端同时写入


rpc.statd


检查文件的一致性


rpc.idmapd


名字映射后台进程

5、配置NFS服务器端的服务开机自启动

[[email protected] ~]# chkconfig rpcbind on

[[email protected] ~]# chkconfig nfs on

[[email protected] ~]# chkconfig --list | egrep "nfs\b|rpcbind"

nfs            0:off1:off2:on3:on4:on5:on6:off

rpcbind        0:off1:off2:on3:on4:on5:on6:off

[[email protected] ~]# tail -3 /etc/rc.local

tail: inotify cannot be used, reverting to polling

#start uo nfs

/etc/init.d/rpcbind start

/etc/init.d/nfs start

6、Nfs服务器端共享文件的配置文件路径

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

格式:

Nfs共享目录 nfs客户端1地址(权限) nfs客户端2地址(权限)

例如:可以编辑/etc/exports为:

/tmp*(rw,no_root_squash)

/home/public192.168.0.*(rw)*(ro)

/home/test192.168.0.100(rw)

/home/linux*.the9.com(rw,all_squash,anonuid=40,anongid=40)

7、NFS配置权限设置常用参数说明


参数名称


参数用途


ro


只读访问


rw


读写访问


sync


所有数据在请求时写入共享


async


NFS在写入数据前可以相应请求


secure


NFS通过1024以下的安全TCP/IP端口发送


insecure


NFS通过1024以上的端口发送


wdelay


如果多个用户要写入NFS目录,则归组写入(默认)


no_wdelay


如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。


hide


在NFS共享目录中不共享其子目录


no_hide


共享NFS目录的子目录


subtree_check


如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)


no_subtree_check


不检查父目录权限


all_squash


共享文件的UID和GID映射匿名用户anonymous,适合公用目录。


no_all_squash


保留共享文件的UID和GID(默认)


root_squash


root用户的所有请求映射成如anonymous用户一样的权限(默认)


anonuid=xxx


指定NFS服务器/etc/passwd文件中匿名用户的UID

 

实战:NFS服务案例配置

1、创建需要共享的目录并授权

[[email protected] ~]# mkdir -p /data

[[email protected] ~]# touch /data/a.txt

[[email protected] ~]# cp /etc/shadow /data/

[[email protected] ~]# chown -R nfsnobody.nfsnobody /data

[[email protected] ~]# chmod 777 /data/

[[email protected] ~]# ls -ld /data/

drwxrwxrwx 3 nfsnobody nfsnobody 4096 May 20 19:16 /data/

[[email protected] ~]# grep nfsnobody /etc/passwd

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

2、配置NFS服务的配置文件,并在本地查看挂在信息

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

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

/data 192.168.1.0/24 (rw,sync)

[[email protected] ~]# exportfs -rv

exporting 192.168.1.0/24:/data

exporting *:/data

[[email protected] ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sr0        3.6G  3.6G     0 100% /mnt

[[email protected] ~]# mount -t nfs 192.168.1.61:/data/ /mnt/

[[email protected] ~]# df -h

Filesystem           Size  Used Avail Use% Mounted on

/dev/sr0              20G  4.6G   14G  26% /mnt

192.168.1.61:/data/   20G  4.6G   14G  26% /mnt

3、客户端安装rpcbind

[[email protected] ~]# yum install rpcbind nfs-utils -y

[[email protected] ~]# /etc/init.d/rpcbind status

rpcbind (pid  1695) 正在运行...

[[email protected]3 ~]# echo "/etc/init.d/rpcbind start" >> /etc/rc.local

[[email protected]3 ~]# echo "/bin/mount -t nfs 192.168.1.61:/data /mnt " >> /etc/rc.local

[[email protected]3 ~]# tail -2 /etc/rc.local

tail: inotify cannot be used, reverting to polling

/etc/init.d/rpcbind start

/bin/mount -t nfs 192.168.1.61:/data /mnt

[[email protected] ~]# showmount -e 192.168.1.61

Export list for 192.168.1.61:

/data (everyone)

4、挂在服务端的共享文件

[[email protected] ~]# mount -t nfs 192.168.1.61:/data /mnt

[[email protected] ~]# df -h

Filesystem          Size  Used Avail Use% Mounted on

hm

/dev/sda1           4.9G  162M  4.5G   4% /boot

/dev/sr0             20G  4.6G   14G  26% /mnt

192.168.1.61:/data   20G  4.6G   14G  26% /mnt

[[email protected] ~]# mount

.........

192.168.1.61:/data on /mnt type nfs (rw,vers=4,addr=192.168.1.61,clientaddr=192.168.1.63)

5、测试读写数据

[[email protected]3 ~]# ls /mnt

a.txt   shoadow

[[email protected]3 ~]# mkdir /mnt/test

[[email protected]3 ~]# ls /mnt

a.txt shoadow test

[[email protected]1 ~]# ls /mnt

a.txt   shoadow   test

附件:


NFS常用路径


说明


/etc/exports


NFS服务的主配置文件。


/usr/sbin/exports


NFS的管理命令,可以加载NFS配置生效等


/usr/sbin/showmount


用来客户端查看NFS配置及挂在结果命令


/var/lib/nfs/etab


NFS配置文件的完整参数设定文件


/pro/mounts


客户端挂在参数


/vae/lib/nfs/rmtab


客户端访问服务器exports的信息列表

时间: 2024-10-18 09:53:46

NFS网络文件共享存储服务器的相关文章

企业级NFS网络文件共享服务

虚拟实验: 操作系统:CentOS release 6.8 (Final) 虚拟机:VMware 任务:NFS网络文件共享服务 默认是没有安装NFS软件包,NFS主要功能是通过网络让不同的主机系统之间可以共享文件或目录.NFS网络文件系统很像Windows系统的网络共享.安全功能.网络驱动映射,而互联网中小型网站集群架构后端常用NFS进行数据共享. NFS服务器IP: 192.168.222.130 NFS客户端IP1: 192.168.222.138 NFS客户端IP2:192.168.222

NFS网络文件共享服务介绍及案例

1.NFS介绍 1.1.NFS概念描述 什么是NFS?NFS是Network File System的缩写,它的主要功能是通过网络让不同的主机系统之间可以彼此共享文件或者目.NFS客户端(一般为应用服务器,如Web)可以通过挂载(mount)的方式将NFS服务器端共享的数据文件目录挂载到NFS客户端本地系统中(就是某一个挂载点下).从NFS客户端的机器本地上看,NFS服务器端共享的目录就好像是客户端自己的磁盘分区或者目录一样,而实际上确是远端的服务器目录. 1.2.NFS历史 第一个网络文件系统

NFS网络文件共享

NFS(Network File System) NFS在企业中的应用场景 企业集群架构中,NFS网络文件系统一般用来存储共享的视频.图片.附件等静态资源,一般把网站用户上传的文件都放到NFS共享里,例如图片.附加.头像,然后前端所有的节点访问这些静态资源时都会读取NFS存储上的资源.NFS是当前互联网系统架构中最常用的数据存储服务之一,特别是中小型网站公司应用频率更高.大公司除了使用NFS外,还可能使用更为复杂的分布式文件系统Moosefs,glusterfs,FastDFS等. 非常low的

NFS网络文件共享服务

NFS-网络文件系统,它的主要功能是通过网络让不同的主机系统之间可以彼此共享文件或目录. NFS在企业中得应用场景 在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频.图片.附件等静态资源文件(一般把网站用户上传的文件都放到NFS共享里,例如:BBS产品的图片.附件.头像,注意网站BBS程序不要放NFS共享里),NFS是当前互联网系统架构中最常用的数据存储服务之一,特别是中小型网站公司应用频率很高.大公司或门户除了使用NFS外,还可能会使用MFS.GFS.FASTFS,TFS等

搭建NFS网络文件共享服务(干货)

先上干货: 以下是配置全过程(客户端和服务端对比)查看NFS软件包[[email protected] ~]# rpm -aq nfs-utils portmap rpcbind#这个命令比(yum grouplist)的更有效率 安装法一:[[email protected] ~]#yum groupinstall "NFS file server"也可以使用法二:[[email protected] ~]# yum install nfs-utils rpcbind -y来安装 客

【集群实战】NFS网络文件共享服务

1. NFS介绍 1.1 什么是NFS? NFS是Network File System的缩写,中文意思是网络文件系统.它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录.NFS客户端(一般为应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务器端共享的数据目录挂载到NFS客户端本地系统中(就是某一个挂载点下).从客户端本地看,NFS服务器端共享的目录就好像是客户端自己的磁盘分区或者目录一样,而实际上却是远端的NFS服务器的目录. NFS网络文件系统很像

NFS网络文件共享服务的配置和排错总结

1.什么是NFS? NFS,全名叫Network File System,中文叫网络文件系统,是Linux.UNIX系统的分布式文件系统的一个组成部分,可实现在不同网络上共享远程文件系统.NFS由Sun公 司开发,目前已经成为文件服务的一种标准之一.其最大的功能就是可以通过网络,让不同操作系统的计算机可以共享数据, 所以可以把NFS看做是一个文件服务器.NFS缺点是其读写性能比本地硬盘要差一些. 2.使用yum安装nfs-utils.rpcbind 实验环境centos 6.6nfs-serve

linux nfs网络文件共享

第一,首先在服务器上装 nfs-utils 和libs 两个rpm文件包可以 yum源进行yum -y install nfs-utils* 第二, 建立要共享的文件夹 如在 mkdir  /it  设置改文件共享 . 第三, 设置配置文件 /etc/exports   打开文件里面是空的 设置格式 /it   192.168.0.0(网段或者ip地址都可以)(权限) 數值 內容說明 rwro 該目錄分享的權限是可讀寫 (read-write) 或唯讀 (read-only),但最終能不能讀寫,

NFS网络文件共享系统-综合架构NO.2

相信可能成就一切可能,相信不可能就是自废武功!!! nfs服务器搭建文档 1. 先打印系统版本 cat /etc/redhat-release uname -r uname -m 2. 在所有需要使用nfs的服务器上安装nfs-utils rpcbind yum install nfs-utils rpcbind -y rpm -qa nfs-utils rpcbind 安装好nfs系统会创建一个nfsnobody用户 3. 必须先启动rpcbind ,再启动nfs systemctl star