在上一篇的SAMBA篇中介绍了linux系统和windows系统之间共用的网络文件系统CIFS,主要用于客户端是windows的情况。在linux系统之间,所用的网络文件系统是NFS。下文将对NFS的一些配置及用法进行介绍。

1、NFS的安装以及配置

"yum install nfs-utils -y"。安装NFS服务,"systemctl start nfs"、"systemctl enable nfs-server",开启服务且设置开机自动启动。"systemctl stop firewalld",关闭防火墙或者配置防火墙。

"vim /etc/exports"。这是编写共享目录的文件,这个文件是空的,需要自己填写。如下图所示,建立一个共享目录"/sharedir",在里面建立三个文件"sharefile{1..3}",在"/etc/exports"文件中写入"/sharedir  *(sync)",表示共享"/sharedir","*"表示,所有主及均可使用,(sync)是共享权限为文件同步。保存退出后输入"exportfs -rv"刷新,建议不要重启服务,因为重启速度比较慢。

"showmount -e IP"。可以查看这个IP是否有共享文件,例如输入"showmount -e 172.25.254.202"就可以看到上述设置的共享目录"/sharedir"。

"mount 172.25.254.202/sharedir /mnt"。与CIFS网络文件系统不同,NFS不能通过登陆来查看共享内容,只能进行挂载。

2、权限及文件所有人

在配置文件"vim /etc/exports",可以设置某个或者某些主机可以进行共享目录挂载,如下图所示,输入"/sharedir 172.25.254.2(sync)"表示只有"172.25.254.2"这台主机可以进行挂载。

配置文件中输入"sync"代表文件同步,还可以输入"rw"代表开启读写权限,"ro"表示只读。更多的权限设置可以通过"man 5 exports"查看。

如下图所示,在挂载了共享目录后,在其中建立一个文件"file1",这个文件的所有人是"nfsnobody",这是NFS的匿名用户。

可以对配置文件做以下设置来改变建立文件的所有人:

a、将文件的所有人改为root。

在配置文件中的权限内输入"no_root_squash",如下图所示,挂载后建立一个文件"file2",可以看到,文件"file2"的所有人和所有组都为root。

b、指定文件的所有人和所有组

在配置文件中的权限内输入"anonuid=xxxx,anongid=xxxx",列入输入"anonuid=1000,anongid=1001"。刷新后挂载,建立文件"file4",在客户端可以看到,文件的所有人为"1000",所有组为"kiosk",因为kiosk用户组的gid为1001。在服务端可以看到文件的所有人为"uid=1000"的student用户,所有组为"gid=1001"的class组。

3、客户端的自动挂载和自动取消

挂载一般是需要手动挂载和取消挂载的,在使用完后需要取消挂载,这无疑增加了操作的复杂程度,如果忘记取消挂载也会占用系统资源,带来麻烦。如果可以自动挂载和取消就可以避免这个问题了。

在客户端装载软件可以实现这个功能。"yum install autofs",在客户端安装autofs软件可以实现共享目录的自动挂载和自动取消挂载。

"systemctl start autofs",开启这个服务后,会自动生成一个"/net"目录,"cd /net/172.25.254.202"可以直接看到共享目录。而且也可以看到自动挂载在了这个目录"/net"下。

"vim /etc/sysconfig/autofs"。第15行的"timeout"后面的值表示自动取消挂载的时间,如下图所示,将其设置为"3",则表示退出这个目录3秒后自动取消挂载。

4、客户端的指定挂载目录

客户端的自动挂载不仅仅可以挂载在"/net"下,也可以自己设置目录挂载点。

例如欲将共享目录"/sharedir"挂载在客户端的"/nfs/sharedir"目录下。先建立一"/nfs"目录,在配置文件"/etc/auto.master"中编辑"/nfs    /etc/auto.nfs",如下图所示,"/nfs"目标挂载点的上级目录,"/etc/auto.nfs"为记录配置共享目录目标挂载点文件。

"vim /etc/auto.nfs"。在这个文件中写入"sharedir 172.25.254.202:/sharedir"。这是配置共享目录目标挂载点。重启服务后进入"/nfs/sharedir"就可以自动挂载了,离开这个目录3秒之后会自动取消挂载。

5、存储分离

存储分离是将共享目录挂载在客户端上,将文件存储在共享目录中,这样如果客户端的主机出现问题,也不会导致数据丢失。

例如将共享目录挂载在客户端的student用户家目录下,那么student用户登陆时,会自动挂载这个共享目录,且student用户所储存的文件会存在这个共享目录下,退出student用户时也可以看到这些文件。具体做法为:

在服务端建立一个"/sharedir/student"的共享目录。在配置文件"/etc/exports"中编辑"/sharedir/student  172.25.254.0/24(rw,anonuid=1000,anongid=1000)"。将这个目录共享出去。

在客户端编辑"/etc/auto.master",在其中编辑"/home   /etc/auto.home"。

"vim /etc/auto.home"。编辑"student 172.25.254.202:/sharedir/student"。也可以编辑"* 172.25.254.202:/sharedir/&","*"代表任意共享目录,"&"代表与"*"匹配的目录,用于共享目录下有许多目录时使用。

重启服务后,切换到student用户,则自动挂载到家目录下,建立"file{1..5}"5个文件,退出后3秒自动取消挂载,在服务端的共享目录里就可以看到这5个文件。

linux初学者-NFS网络文件系统篇的更多相关文章

  1. linux初学者-CIFS网络文件系统篇

    linux初学者-CIFS网络文件系统篇 CIFS是一种通用网络文件系统,主要用于网络设备之间的文件共享.CIFS可以在linux系统和windows系统之间共享文件,因此这种文件系统主要用于客户端是 ...

  2. Linux系统NFS网络文件系统

    Linux系统NFS网络文件系统 NFS(network file system)网络文件系统,就是通过网络让不同的主机系统之间可以共享文件或目录,此种方法NFS客户端使用挂载的方式让共享文件或目录到 ...

  3. Linux系统——NFS网络文件系统

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

  4. Linux之NFS网络文件系统

    NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络资源共享.在NFS的应用中,本地NFS的客户端应用可 ...

  5. tiny4412 linux+qtopia nfs网络文件系统的挂载

    1,首先确定uboot启动内核的bootargs参数 Linux-CommandLine = root=/dev/nfs nfsroot=192.168.1.131:/home/tiny4412/ro ...

  6. Linux基础学习-NFS网络文件系统实时文件共享

    NFS网络文件系统 如果大家觉得Samba服务程序的配置太麻烦了,那么你共享文件的主机都是Linux系统,那么推荐大家在客户端部署nfs服务来共享文件.nfs(网络文件系统)服务可以将远程Linux系 ...

  7. NFS 网络文件系统挂载在A8板子上

    我承认自己是菜鸟,没什么网络知识就来搞挂载nfs网络文件系统,花费了5天的时间才把nfs网络文件系统成功挂载在A8板子上,实现了A8板子和虚拟机的文件共享.分享一下个人经验: 以下是基于nfs已经完成 ...

  8. [学习嵌入式开发板]iTOP-4412实现NFS网络文件系统

    本文转自迅为:http://www.topeetboard.com 学习平台:iTOP-4412开发板 本文讲解如何在 iTOP-4412 开发板上实现 NFS 网络文件系统. 我们使用的软硬件环境是 ...

  9. linux初学者-普通磁盘分区篇

    linux初学者-普通磁盘分区篇 磁盘是计算机的重要组成部分,是记录数据的场所.在使用磁盘时,经常需要对其进行分区来实现不同的用途.下文将介绍在linux系统中普通磁盘分区的方法. "fdi ...

随机推荐

  1. Google C++测试框架系列高级篇:第二章 让GTest学习打印自定义对象

    上一篇:更多关于断言的知识 原始链接:Teaching Google Test How to Print Your Values 词汇表 版本号:v_0.1 让GTest学习打印自定义对象 当一个断言 ...

  2. Laravel --- Laravel 5.3 发送邮件配置

    版本:laravel 5.3 发送邮箱:QQ邮箱 根据官网以及别人的教程配置邮件发送,并且对配置过程中遇到的坑进行填补,做一总结,留待参考. 一.开启stmp 进入QQ邮箱,设置-服务,开启smtp. ...

  3. win2008环境mysql主从配置

    一.主库相关配置.设置 step1:主库配置文件 [mysqld] # 数据库id,唯一 server-id = 1# 二进制日志文件,必填项,否则不能同步数据;如果不取名字的话,会以计算机的名字加编 ...

  4. 【入门】WebRTC知识点概览 | 内有技术干货免费下载

    什么是WebRTC WebRTC 即Web Real-Time Communication(网页实时通信)的缩写,是一个支持网页浏览器之间进行实时数据传输(包括音频.视频.数据流)的技术.经过多年的发 ...

  5. Redis 安装和配置(一)

    一. mac下redis的安装 1. 官网http://redis.io/ 下载最新的稳定版本,这里是3.2.0 2. sudo mv 到 /usr/local/ 3. sudo tar -zxf r ...

  6. 手把手docker部署java应用(初级篇)

    本篇原创发布于 Flex 的个人博客:点击跳转 前言   在没有 docker 前,项目转测试是比较麻烦的一件事.首先会化较长的时间搭建测试环境,然后在测试过程中又经常出现测试说是 bug,开发说无法 ...

  7. 透视BlueStore存储结构:如何根据文件名从裸盘提取文件内容

    在FileStore下,用户文件经过切分对象块后最终存放在了单机文件系统(xfs .ext4等)中,我们可以较容易地找到这些对象块对应的文件,然后提取这些对象块文件后组装成用户文件.然而,BlueSt ...

  8. Codeforces Gym100502H:Clock Pictures(KMP算法)

    http://codeforces.com/gym/100502/attachments 题意:有两个时钟上面有n个指针,给出的数字代表指针的角度.问能否在某一时刻使得两个时钟的指针重合. 思路:容易 ...

  9. Ng-Matero:基于 Angular Material 搭建的中后台管理框架

    前言 目前市面上关于 Angular Material 的后台框架比较少,大多都是收费主题,而且都不太好用. 很多人都说 Material 是一个面向 C 端的框架,其实在使用其它框架做管理系统的时候 ...

  10. docker-compose一键部署redis一主二从三哨兵模式(含密码,数据持久化)

    本篇基于centos7服务器进行部署开发 一.拉取redis镜像,使用如下命令 docker pull redis 1.查看镜像是否拉取成功,使用如下命令 docker images 显示如下则证明拉 ...