linux初学者-NFS网络文件系统篇
在上一篇的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网络文件系统篇的更多相关文章
- linux初学者-CIFS网络文件系统篇
linux初学者-CIFS网络文件系统篇 CIFS是一种通用网络文件系统,主要用于网络设备之间的文件共享.CIFS可以在linux系统和windows系统之间共享文件,因此这种文件系统主要用于客户端是 ...
- Linux系统NFS网络文件系统
Linux系统NFS网络文件系统 NFS(network file system)网络文件系统,就是通过网络让不同的主机系统之间可以共享文件或目录,此种方法NFS客户端使用挂载的方式让共享文件或目录到 ...
- Linux系统——NFS网络文件系统
在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频,图片,附件等静态资源文件,通常网站用户上传的文件都会放到NFS共享里,然后前端所有的节点访问这些静态资源时都会读取NFS存储上的资 ...
- Linux之NFS网络文件系统
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络资源共享.在NFS的应用中,本地NFS的客户端应用可 ...
- tiny4412 linux+qtopia nfs网络文件系统的挂载
1,首先确定uboot启动内核的bootargs参数 Linux-CommandLine = root=/dev/nfs nfsroot=192.168.1.131:/home/tiny4412/ro ...
- Linux基础学习-NFS网络文件系统实时文件共享
NFS网络文件系统 如果大家觉得Samba服务程序的配置太麻烦了,那么你共享文件的主机都是Linux系统,那么推荐大家在客户端部署nfs服务来共享文件.nfs(网络文件系统)服务可以将远程Linux系 ...
- NFS 网络文件系统挂载在A8板子上
我承认自己是菜鸟,没什么网络知识就来搞挂载nfs网络文件系统,花费了5天的时间才把nfs网络文件系统成功挂载在A8板子上,实现了A8板子和虚拟机的文件共享.分享一下个人经验: 以下是基于nfs已经完成 ...
- [学习嵌入式开发板]iTOP-4412实现NFS网络文件系统
本文转自迅为:http://www.topeetboard.com 学习平台:iTOP-4412开发板 本文讲解如何在 iTOP-4412 开发板上实现 NFS 网络文件系统. 我们使用的软硬件环境是 ...
- linux初学者-普通磁盘分区篇
linux初学者-普通磁盘分区篇 磁盘是计算机的重要组成部分,是记录数据的场所.在使用磁盘时,经常需要对其进行分区来实现不同的用途.下文将介绍在linux系统中普通磁盘分区的方法. "fdi ...
随机推荐
- C#抓取远程Web网页信息的代码
来自:http://www.jb51.net/article/9499.htm 通过程序自动的读取其它网站网页显示的信息,类似于爬虫程序.比方说我们有一个系统,要提取BaiDu网站上歌曲搜索排名.分析 ...
- 最近公共祖先(least common ancestors algorithm)
lca问题是最近公共祖先问题,一般是针对树结构的.现在有两种方法来解决这样的问题 1. On-line algorithm 用比较长的时间做预处理.然后对每次询问进行回答. 思路:对于一棵树中的两个节 ...
- Spark之从hdfs读取数据
/user/hive/warehouse/ycapp.db/appindex") ), e(),e().toInt)) (String, String, String) ,,all_post ...
- 表格树控件QtTreePropertyBrowser编译成动态库(设计师插件)
目录 一.回顾 二.动态库编译 1.命令行编译动态库和测试程序 2.vs工具编译动态库和测试程序 3.安装文档 4.测试文档 三.设计师插件编译 1.重写QDesignerCustomWidgetIn ...
- package.json 详解
使用package.json 属性说明 name - 包名. version - 包的版本号. description - 包的描述. homepage - 包的官网 url . author - ...
- Fish and Oh My Fish in Ubuntu
After install Fish shell, then install Oh My Fish . Oh My Fish(shortly OMF) can make our Fish shell ...
- C语言版数据结构笔记
现在把以前学的数据结构知识再理一遍,上机测试.首先最重要的是链表.在我看来,链表其实就是由一个个结构体连接而成的,创建一个链表有多种方式,头插法,尾插法等,这里采用的是尾插法.表述有不对的地方,欢迎更 ...
- 简单的scrapy实例
前天实验室的学长要求写一个简单的scrapy工程出来,之前也多少看了点scrapy的知识,但始终没有太明白,刚好趁着这个机会,加深一下对scrapy工作流程的理解.由于临近期末,很多作业要做(其实.. ...
- 如何配置MySQL
解压绿色版mysql,并改名为mysql5.7 运行CMD(管理员版本,否则没有权限) 运行完后 然后就把地址改为你存放mysql5.7下的bin目录 对于新版mysql5.7没有了data目录,我们 ...
- python数据库-MySQL与python的交互
一.python3中安装PyMySQL模块 命令安装: sudo apt-get install python-mysql 或者 pip install pymysql 2.使用在pyCharm中安装 ...