一、什么是文件系统?

  文件系统是对一个存储设备上的数据和元数据进行组织的一种机制。文件系统是在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区上组织文件方式方法,常见文件系统如ext2、ext3、ext4、NTFS或fat、fat32等。文件系统格式组织存储文件或数据的方法,目的是易于查询和存取数据,如果磁盘上没有文件系统也就无法存储数据了,因此,磁盘分区后能够使用之前必须建立对应的文件系统才行(类似买了电脑不装系统就无法使用)。

  (1)文件系统是对一个存储设备上的数据和元数据进行组织的一种机制;

  (2)分区必须格式化,创建的文件系统才能存放数据,不同的分区只能有一种文件系统。

  (3)Linux下常见文件系统ext2、ext3、ext4、zfs、xfs、和Reiserfs

      Windows下常见文件系统NTFS、FAT31。

二、NFS网络文件共享服务:

1、NFS概述:

  NFS是第一个构建于IP协议之上的现代网络文件系统;

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

  NFS网络文件系统的使用很像是windows系统的网络共享、安全功能、网络驱动器映射,这也和Linux里的samba服务类似。

2、NFS应用场景:

  在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频、图片、附件等静态资源文件,NFS是当前互联网系统架构中最常用的数据存储服务之一,特别是中小型网站公司应用频率很高。

3、NFS挂载原理:

  传统挂载:mount  源  目标

  NFS挂载:mount  远端的IP地址:/video  本地目录(/video)

    -- 访问本地的video就到了远端地址的video目录下,和在本机访问没什么区别。

4、搭建NFS服务

  

  hostname 新主机名;su

  实验环境:Centos6.5 两台机器,

           一台 nfsserver -- 192.168.3.137

         一台 nfsclient  -- 192.168.3.138

                NFS主要有两个软件包 -- nfs-utils(包括rpc.nfsd、rpc.mountd)、rpcbind(Centos6版本)

(1)安装 nfs-utils 包,服务端和客户端都需要安装。

yum groupinstall #查看软件包,软件包是中文修改字符集(LANG=en)。

yum groupinstall -y "NFS file server"  #安装NFS包,一定要加双引号。

 

(2)服务端(nfsserver)启动 rpc 服务

/etc/init.d/rpcbind  start      #启动 rpc 服务

  查看本地有没有共享,rpc 服务对外的端口是 111

-------------------------------------------------------------------------------------

反例:出现如下报错表示 rpc 服务没有启动:

----------------------------------------------------------------------------------------

(3)服务端启动 nfs 服务

/etc/init.d/nfs  start     #启动 nfs 服务

  再次查看本地 rpc 服务,出现很多端口。

(4)将 rpcbind 和 nfs 设置成开机自启动。

chkconfig rpcbind on
chkconfig nfs on
chkconfig --list rpcbind  #检查状态
chkconfig --list nfs

  检查状态:

(5)客户端(nfsclent) 开启 rpcbind 服务,不用开启 nfs 服务

/etc/init.d/rpcbind  start    #开启 rpcbind 服务

chkconfig rpcbind on        #设置 rpcbind 服务开机自启动
chkconfig --list rpcbind

(6)/etc/exports -- nfs 的配置文件,此文件默认为空

vim /etc/exports    #编辑文件

sync 同步到磁盘,把数据从buffer写入到磁盘
async -- 表示写入到缓存里
ro -- read only -- 表示只读
rw -- 可读可写

(7)重启 nfs 服务,不能用 restart 重启,要用 reload 重启。

/etc/init.d/nfs  reload   #平滑重启 nfs 服务

  在本机做检查,查看共享的文件是否能共享。

showmount  -e  localhost

  在客户端(nfsclient)查看是否能发现共享文件。

showmount  -e  192.168.3.137   #访问的IP地址

----------------------------------------------------------------------------------------------------------

注意:如果出现客户端无法发现服务端的共享文件,需要从以下方面排错。

①检查是否关闭防火墙:

  

service  iptables stop

②能否 ping 通对端地址

③能否 telnet 远程登录对端。后面接 rpc 的端口号 111(下述为 telnet 登录对端)

  

  一般(2)(3)没问题是可以正常访问的,注意要关闭防火墙。

-----------------------------------------------------------------------------------------------------------

(8)在客户端(nfsserver)挂载。

mount  -t nfs 192.168.3.137:/data  /mnt     #将对端共享的目录挂载到本地的 /mnt 目录下

(9)在客户端的 /mnt 目录下查看文件是否成功共享。

服务端(nfsserver)的 /data 目录:

  

客户端(nfsclient)查看 /mnt 目录:

  

  文件已经共享。

(10)测试:服务端删除一个文件,客户端查看共享文件内容。

服务端:删除 abc.txt 文件

  

客户端:查看共享文件

  

但是:在服务端配置共享文件的时候,给的权限是可读可写,此时却不能写。

  

因为这是目录本身的权限问题:

  

服务端的 /data 目录对于其他用户没有可写的权限,因此加上权限即可。

chmod  /data

客户端可写。

(11)其他授予写权限的操作。

客户端进行写的操作,用户和用户组属于 nfsnobody

  

在 /var/lib/nfs/etab 文件中说明 nfs其他用户的 UID 是从 65534 开始。

  

nfsnobody的UID和GID都为65534

   

由于NFS其他用户都是属于 nfsnobody,所以可以将服务端的 /data  目录所属组和所属主修改为 nfsnobody。

  

/data 目录其他用户不具备写的权限,但是将 /data 的所属组和所属主更改为 nfsnobody;

在客户端进行增删操作。

  

客户端可以直接进行创建文件,同时最后删除所有文件,在服务端查看是否文件全部删除。

  

NFS网络文件共享服务搭建完成。

  但是挂载在 /mnt 目录下,开机会丢失,所以最好把共享的目录放在 rc.local 里或者 fstab 中。

  

NFS文件系统及搭建NFS共享服务的更多相关文章

  1. umount nfs文件系统 显示 umount.nfs: device is busy

    网上的方法一般都是 fuser -m  /nfs 查出进程号,然后杀死进程号,或者fuser -km /nfs直接杀死,我试了下都不行 解决方法: 对于nfs文件系统来说,umount -l /nfs ...

  2. NFS 文件系统的搭建

    教程: 一.配置linux内核: 进入打过at91补丁的linux2.6内核源代码树的根目录 make menuconfig进入内核配置程序. 1.  Networking ---> Netwo ...

  3. NFS文件系统存储服务部署

    1 NFS介绍 1.1 什么是NFS? NFS是Network File System的缩写,中文名称是网络文件系统.它的主要功能是通过网络让不用的主机系统之间可以共享文件或者目录.NFS客户端通过挂 ...

  4. 网络共享服务(二)之NFS

    NFS: Network File System,是一种基于TCP/IP传输的网络文件系统协议,最初由SUN公司开发.通过使用NFS协议,客户机可以像访问本地目录一样访问服务器中的共享资源.但是,NF ...

  5. 基于OneMap的水利行业共享服务平台搭建步骤

    今天上午再次学习Esri技术培训中心的“GIS服务共享与运维管理——之OneMap解决方案”课程,从中学习了OneMap的产品架构以及基于OneMap共享服务平台的搭建步骤.下面把其中水利行业的共享服 ...

  6. NFS(网络文件系统的搭建)

    关于NFS的原理,我在这就不概诉了,其实非常简答的理解就是一个网络磁盘,你需要把它挂载到你的磁盘上使用而已.那接下来谈谈如和搭建NFS网络文件系统. 需要使用2台机器作此实验,我分别配置IP为192. ...

  7. Linux搭建NFS服务

    一.NFS服务简单介绍 NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中, ...

  8. 4、架构--NFS实践、搭建web服务、文件共享

    笔记 1.晨考 1.数据备份的方式有哪些 全量和增量 2.数据备份的命令有哪些,都有哪些优点缺点 cp : 本地,全量复制 scp :远程,全量复制 rsync :远程,增量复制 3.rsync的参数 ...

  9. 搭建 NFS 服务 & 实时同步

    今日内容 NFS简介 实现 NFS 文件同步功能 NFS 配置详解 统一用户 搭建 web 服务 NFS 实现文件共享 内容详细 1.NFS 简介 1.1 介绍 实现多台 web 服务器可以共享数据资 ...

随机推荐

  1. 记一次 Kafka 集群线上扩容

    前段时间收到某个 Kafka 集群的生产客户端反馈发送消息耗时很高,于是花了一段时间去排查这个问题,最后该集群进行扩容,由于某些主题的当前数据量实在太大,在对这些主题迁移过程中话费了很长一段时间,不过 ...

  2. 从多核CPU Cache一致性的应用到分布式系统一致性的概念迁移

    概述 现代多核CPU的cache模型基本都跟下图1所示一样,L1 L2 cache是每个核独占的,只有L3是共享的,当多个cpu读.写同一个变量时,就需要在多个cpu的cache之间同步数据,跟分布式 ...

  3. JAVA 使用jgit管理git仓库

    最近设计基于gitops新的CICD方案,需要通过java读写git仓库,这里简单记录下. JGit是一款pure java的软件包,可以读写git仓库,下面介绍基本使用. 引入jgit maven引 ...

  4. Java 判断密码是否是大小写字母、数字、特殊字符中的至少三种

    public class CheckPassword { //数字 public static final String REG_NUMBER = ".*\\d+.*"; //小写 ...

  5. Java中接口和抽象类的区别?

    抽象类 抽象类必须用 abstract 修饰,子类必须实现抽象类中的抽象方法,如果有未实现的,那么子类也必须用 abstract 修饰.抽象类默认的权限修饰符为 public,可以定义为 public ...

  6. MySql全文检索使用详解

    实际项目中经常会有一个字段存储多个值用逗号分隔的场景,当分开查询的时候,使用模糊查询会非常影响效率.mysql提供了全文检索函数可以有效解决这一问题: 1.数据结构 ID CODE MSG 1 111 ...

  7. Dynamics 365 Portal 多语言

    Dynamics 365 Portal 的多语言分两种情况: 1.通过定义两套记录来实现,如Web Link Set.Snippet Content,都是定义两套记录,分别关联不同的语言来实现 Web ...

  8. Could not find any version that matches com.android.support:appcompat-v7:29.+

    新学Android开发设计用到Android Studio,说实话真的是BUG满天飞,稍有不慎就会蹦出一个不明所以的问题. 新建Android工程时编译运行报错: 目测是本地文件和工程对应的依赖包不匹 ...

  9. PHP最新面试题2019

    1.字符串"0"在PHP和js中转换为布尔值是false还是true php:false;  php 弱语言 '0'和0一样: js:true:字符串除了空字符串('')其他都是t ...

  10. Xshel和Xftp免费版

    打开:https://www.netsarang.com/zh/free-for-home-school/ 然后填写自己的姓名与真实的邮箱即可.提交成功后,会将下载链接发送至刚才填写的邮箱里,发送的下 ...