实战NFS文件共享存储详解

实战NFS文件共享存储详解


对Linux有兴趣的朋友加入QQ群:476794643 在线交流

本文防盗链:http://zhang789.blog.51cto.com

目录

  1. NFS简介
  2. NFS工作流程
  3. 使用NFS的好处
  4. NFS应用环境
  5. NFS服务器安装
  6. NFS客户端配置
  7. 实例:创建web共享

NFS简介

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


简单的说:NFS是Linux之间的一种文件共享系统(Linux与Windows之间的共享使用Samba是专业的),NFS配置完成之后,客户端访问这个共享就像访问本地文件一样!(NFS通过软件也可以实现与Windows之间的共享)

NFS工作流程

RPC,Remote Procedure Call Protocol,远程过程调用协议,是实现本地调用远程主机实现系统调用的协议。 
portmapper:负责分配RPC服务器的端口,并在客户端请求时,负责响应目的RPC服务器端口返回给客户端,工作在tcp与udp的111端口上。 
mountd:是nfs服务的认证服务的守护进程,客户端在收到返回的真正端口时,就会去连接mountd,认证取得令牌。 
nfsd:nfs的守护进程,负责接收到用户的调用请求后与内核发出请求并得到调用结果响应给用户。 
idmapd:是NFS的一个程序,用来负责远程客户端创建文件后的权限问题。

使用NFS的好处

使用NFS的好处

  1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
  2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用,而却通过Autofs可以实现目录漫游!(NIS,LDAP)
  3. 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
  4. 强有力的权限控制

NFS应用环境

NFS应用环境

  1. 多个机器共享一台CDROM或者其他设备。这对于在多台机器中安装软件来说更加便宜跟方便。
  2. 在大型网络中,配置一台中心 NFS 服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录。家目录漫游
  3. 不同客户端可在NFS上观看影视文件,节省本地空间。
  4. 在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下。
  5. NFS是运行在应用层的协议。随着NFS多年的发展和改进,NFS既可以用于局域网也可以用于广域网,且与操作系统和硬件无关,可以在不同的计算机或系统上运行。
  6. 控制统一存储,比如集群,这样当我们的访问集群提供的服务,我们拿到的数据怎么都是一致的!

监听端口

NFS服务nfsd本身监听的端口是2049/tcp和2049/udp,但还会启动其它进程(如mountd,statd,rquotad等)以完成文件共享,这些进程的端口是不固定的;是每次NFS服务启动时向RPC服务注册的,RPC服务会随机分配未使用的端口

NFS服务器安装

要安装NFS服务器必须安装两个软件包:rpcbind和nfs-utils

Rpcbind,是rpc主程序, 
Nfs-utils,是nfs的主程序

[root@localhost ~]# yum -y install rpcbind nfs-utils  #基本都已经安装过了[root@localhost ~]# systemctl start nfs

主要文件:

  1. /etc/exports 主配置文件
  2. /usr/sbin/exportfs 维护NFS共享资源的指令,一般用于NFS服务器端
  3. /usr/sbin/showmount 查看NFS共享出来的目录资源,一般用于NFS客户端
  4. /var/lib/nfs/xtab NFS的日志文件,主要记录曾经连入NFS服务器端的客户端信息

/etc/exports详解

/etc/exports文件是NFS主要的配置文件,该文件用于设置服务器的共享目录,以及目录允许访问的主机,访问权限,和其他选项,NFS安装后会在/etc/目录下创建一个空文件,用户需要自定编辑

格式

共享目录 [客户端1(选项1,选项2…)] [客户端1(选项1,选项2…)]…
  1. 共享目录:即提供了NFS客户端使用的目录
  2. 客户端:可以访问共享目录的计算机,可以通过IP地址和主机名进行指定,也可以使用子网掩码指定网段
  3. 选项:指定该共享目录的访问权限

一些常见权限参数

ro 该主机对该共享目录有只读权限 
rw 该主机对该共享目录有读写权限,要注意是针对nfs之外还有目录自己权限
root_squash 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
no_root_squash 客户机用root访问该共享文件夹时,不压制root用户身份 
all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户
anonuid 将客户机上的用户映射成指定的本地用户ID的用户 
anongid 将客户机上的用户映射成属于指定的本地用户组ID 
sync 资料同步写入到内存与硬盘中 
async 资料会先暂存于内存中,而非直接写入硬盘 
insecure 允许从这台机器过来的非授权访问

exportfs命令:输出共享目录

NFS服务启动后,会读取/etc/exports配置文件的内容,把文件中设置的共享目录输出,供客户端使用,在NFS后,如果对/etc/exports进行了修改,需要通过exportfs命令进行对共享目录输出,输入完成后,客户端才能访问新设置的共享目录

1.  -a:操作所有文件系统2.  -ra:重新导出所有文件系统3.  -ua:取消导出的所有文件系统4.  -v:显示详细信息

创建一个共享

[root@localhost ~]# mkdir /www[root@localhost ~]# cd /www/[root@localhost www]# mkdir www.mageedu.com[root@localhost www]# mkdir bbs.mageedu.com[root@localhost www]# cat /etc/exports/www/www.mageedu.com 192.168.211.128(rw,no_root_squash)/www/bbs.mageedu.com 192.168.211.128(rw,no_root_squash)[root@localhost www]# exportfs -r

NFS客户端配置

要在NFS客户端使用服务器的共享目录,需要在本地主机上启动rpcbind服务,还可以使用showmount命令查看NFS服务器共享的目录有哪些,使用mkdir命令在本地建立共享目录的挂载点,然后受用mount命令挂载到本地

查看共享目录列表(showmount)

1.  -a  :全部 在nfs服务器端显示所有的挂载会话2.  -d  :文件 在服务器端执行,显示那个导出的文件系统被那些客户端挂载过3.  -e  :共享,在客户端执行,探查某主机所导出的nfs文件系统,使用格式为showmount -e Server_IP
[[email protected] ~]# showmount -e 192.168.211.130Export list for 192.168.211.130:/www/bbs.mageedu.com 192.168.211.128/www/www.mageedu.com 192.168.211.128

挂载共享目录

[[email protected] ~]# mkdir /www/www.mageedu.com -pvmkdir: created directory `/www‘mkdir: created directory `/www/www.mageedu.com‘[[email protected] ~]# mount -t nfs 192.168.211.130:/www/www.mageedu.com /www/www.mageedu.com[[email protected] ~]# df -h /www/www.mageedu.com/Filesystem            Size  Used Avail Use% Mounted on192.168.211.130:/www/www.mageedu.com                       40G  170M   40G   1% /www/www.mageedu.com

卸载挂载目录

[root@localhost ~]# umount /www/www.mageedu.com/

开机自动挂载NFS共享目录

[[email protected] ~]# tail -1 /etc/fstab 192.168.211.130:/www/www.mageedu.com    /www/www.mageedu.com    nfs defaults    0 0

实例:创建web共享

共享服务器配置

1、 创建web目录

[root@localhost ~]# mkdir /www/{www,bbs}.mageedu.com -pvmkdir: created directory `/www‘mkdir: created directory `/www/www.mageedu.com‘mkdir: created directory `/www/bbs.mageedu.com‘[root@localhost www.mageedu.com]# echo "<h1>Server WWW Mageedu</h1>" >index.html

2、共享web目录

[[email protected] www.mageedu.com]# cat /etc/exports /www/www.mageedu.com    192.168.211.0/24(rw,no_root_squash)[[email protected] www.mageedu.com]# exportfs –r

3、启动nfs功能

[[email protected] www.mageedu.com]# service nfs startStarting NFS services:                                     [  OK  ]Starting NFS quotas:                                       [  OK  ]Starting NFS mountd:                                       [  OK  ]Starting NFS daemon:                                       [  OK  ]Starting RPC idmapd:                                       [  OK  ]

客户端web服务配置(WEB1)

1、创建挂载点

[root@localhost ~]# mkdir /www/www.mageedu.com -pvmkdir: created directory ‘/www’mkdir: created directory ‘/www/www.mageedu.com’

2、挂载共享目录

[[email protected] ~]# showmount -e 192.168.211.128Export list for 192.168.211.128:/www/www.mageedu.com 192.168.211.0/24[[email protected] ~]# mount -t nfs 192.168.211.128:/www/www.mageedu.com /www/www.mageedu.com[[email protected] ~]# ll /www/www.mageedu.com/total 4-rw-r--r-- 1 root root 28 Jul 25 08:53 index.html

3、安装配置httpd

[[email protected] yum.repos.d]# yum -y install httpd[[email protected] yum.repos.d]# vim /etc/httpd/conf/httpd.confDocumentRoot "/www/www.mageedu.com/"

## Relax access to content within /var/www.#<Directory "/www/www.mageedu.com">    AllowOverride None    # Allow open access:    Require all granted</Directory>

# Further relax access to the default document root:<Directory "/www/www.mageedu.com">[[email protected] yum.repos.d]# systemctl reload httpd

WEB2服务器同上配置

访问测试

时间: 2024-10-12 16:46:41

实战NFS文件共享存储详解的相关文章

Redis实战和核心原理详解(5)使用Spring Session和Redis解决分布式Session跨域共享问题

Redis实战和核心原理详解(6)使用Spring Session和Redis解决分布式Session跨域共享问题 前言 对于分布式使用Nginx+Tomcat实现负载均衡,最常用的均衡算法有IP_Hash.轮训.根据权重.随机等.不管对于哪一种负载均衡算法,由于Nginx对不同的请求分发到某一个Tomcat,Tomcat在运行的时候分别是不同的容器里,因此会出现session不同步或者丢失的问题. 实际上实现Session共享的方案很多,其中一种常用的就是使用Tomcat.Jetty等服务器提

MongoDB系列教程(八):GridFS存储详解

MongoDB系列教程(八):GridFS存储详解 GridFS简介 mongoDB的文档以BSON格式存储,支持二进制的数据类型,当我们把二进制格式的数据直接保存到mongoDB的文档中.但是当文件太大时,例如图片和视频等文件,每个文档的长度是有限的,于是mongoDb会提供了一种处理大文件的规范--GridFS. GridFS实现原理 在GridFS数据库中,默认使用fs.chunks 和fs.files来存储文件,其中fs.files集合存放文件的信息,fs.chunks存放文件的数据,一

Linq实战 之 DataSet操作详解

Linq实战 之 DataSet操作详解  一:linq to Ado.Net 1. linq为什么要扩展ado.net,原因在于给既有代码增加福利.FCL中在ado.net上扩展了一些方法. 简单一点的说: 就是在DatTable 和 DataRow 上面做了一些扩展. 二:扩展方法一览 1. AsEnumerable 2. Field 三:扩展类一览 DataTableExtensions 扩展 => public static EnumerableRowCollection<DataRo

Hbase存储详解

Hbase存储详解 started by chad walters and jim 2006.11 G release paper on BigTable 2007.2 inital Hbase prototype created as Hadoop contrib 2007.10 First useable Hbase 2008.1 Hadoop become Apache top-level project and Hbase becomes subproject 2008.10 Hbase

配置Samba服务器配置现实文件共享(详解)

配置Samba服务器配置现实文件共享     一:实验环境 Samba服务端:xuegod63.cn   IP:192.168.1.63 Samba客户端:xuegod64.cn   IP:192.168.1.64 1:关闭iptables #很重要 2:关闭selinux 二:实验目标 1.samba服务器概述 2.samba服务器配置文件 3.实战,举例 三:实验代码 第一块:Samba服务概述:     Samba 最先在Linux 和Windows 两个平台之间架起了一座桥梁,正是由于S

Asp.Net Core 中IdentityServer4 实战之角色授权详解

一.前言 前几篇文章分享了IdentityServer4密码模式的基本授权及自定义授权等方式,最近由于改造一个网关服务,用到了IdentityServer4的授权,改造过程中发现比较适合基于Role角色的授权,通过不同的角色来限制用户访问不同的Api资源,这里我就来分享IdentityServer4基于角色的授权详解. IdentityServer4 历史文章目录 Asp.Net Core IdentityServer4 中的基本概念 Asp.Net Core 中IdentityServer4

DELL EqualLogic PS6100存储详解及数据恢复解决办法

DELL EqualLogic PS6100采用虚拟ISCSI SAN阵列,为远程或分支办公室.部门和中小企业存储部署带来企业级功能.智能化.自动化和可靠性,支持VMware.Solaris.Linux.Mac.HPux.AIX,支持所有带有业界标准iscsi initiator的操作系统,同时提供全套企业级数据保护和管理功能.可靠的性能.可扩展性和容错功能,是中型企业级存储的起点产品. DELL EqualLogic PS6100详解: 上层应用基础配置: 可以通过连接串口先对存储进行初始化.

html5的web存储详解

以前我们在本地存储数据都是用document.cookie来存储的,但是由于其的存储大小只有4K左右,解析也很复杂,给开发带来了诸多的不便.不过现在html5出了web的存储,弥补了cookie的不足,而且开放起来也是相当的方便 web存储分两类 sessionStorage 容量大小约为5M左右,该方式的生命周期为关闭浏览器窗口为止 localStorage 容量大小约为20M左右, 存储的数据不会随着用户浏览时会话过期而过期,但会应用户的请求而删除.浏览器也因为存储空间的限制或安全原因删除它

SVN与TortoiseSVN实战:文件加锁详解

硬广:<SVN与TortoiseSVN实战>系列已经写了八篇,本篇是完结篇,整个系列结合TortoiseSVN对SVN中容易被忽视的部分进行了详解,以技巧性为主. 本篇详解使用TortoiseSVN对文件进行加锁和解锁的技巧,其中涉及到了之前介绍的SVN属性知识,关于属性可以翻看<SVN与TortoiseSVN实战:属性的奇技淫巧(一)>.<SVN与TortoiseSVN实战:属性的奇技淫巧(二)>. 加锁与解锁的操作对于项目中的二进制文件,如图片.声音.动态库等不可合