什么是NFS

中文意思是网络文件系统,主要功能是通过网络(一般是局域网)让不同主机之间可以共享文件或目录

NFS属于本地文件存储服务

缺点1:

1
2
3
4
5
6
7
windows上无法使用
 
如果想实现windows与Linux系统结合,采用文件数据共享
 
a. FTP服务
 
b.samba服务

缺点2:

1
2
3
4
5
在高并发场景,以及存储量比较高的场景,对数据安全性要求比较高的场景
 
需要采用分布式存储:Moosefs(mfs)、FastDFS
 
无法在服务器中看到真实的文件信息

NFS共享网络文件系统应用的场景

主要用于存储web服务器上用户上传的数据信息,图片、附件、视频、音频、头像

NFS文件系统存在意义

实现数据共享,数据统一一致

软件实现:本地文件系统NFS,分布式文件系统mfs

硬件实现:IBM(服务器 小型机 大型机 存储 DS V7000 V5000)oracle EMC = 去IOE

NFS网络文件系统工作方式

在nfs服务器端设置好一个共享目录/video后,其他有权限访问nfs服务器端的客户端都可以将这个共享目录/video挂载到客户端本地的某个挂载点(其实就是一个目录,这个挂载点目录可以自己随意指定),图中两个nfs客户端本地挂载点分别为/v/video和/video,不同客户端的挂载点可以不相同。

客户端正确挂载完毕后,就可以通过nfs客户端的挂载点所在的/v/video或/video目录查看到nfs服务器端/video共享出来的目录下的所有数据。在客户端上查看时,nfs服务端的/video目录就相当于客户端本地的磁盘分区或目录,几乎感觉不到使用上的区别,根据nfs服务器端授予的nfs共享权限以及共享目录的本地系统权限,只要在指定的nfs客户端上操作挂载/video或/v/video的目录,就可以将数据轻松的存取到nfs服务器端上的/video目录中了。

NFS服务工作流程

想要实现nfs服务,首先启动的是rpc服务,其次是nfs服务,在nfs服务启动的时候,会向rpc服务发送nfs服务的注册端口信息,而客户端请求nfs服务的时候,就会向rcp服务发送请求,然后rpc服务把端口回复给客户端(返回的是rpc本身的端口),而客户端就可以凭借端口请求进行数据传输。

NFS服务部署

NFS服务端安装

首先确认软件是否已经安装,没有安装就安装NFS服务相关软件

[root@nfs ~]# rpm -qa |grep nfs

[root@nfs ~]# rpm -qa |grep rpc

如果没有安装,就安装rpcbind nfs-utils服务程序,并进行验证安装是否成功

yum install -y nfs-utils rpcbind
rpm -qa nfs-utils rpcbind

编写NFS配置文件

[root@nfs ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync)

配置文件内容介绍

第一部分:/data             指定共享目录信息(表示本地NFS服务需要共享的目录信息)
第二部分:172.16.1.0/24 指定一个网段信息,表示允许指定的网段主机挂载到我本地的共享目录上
第三部分:(rw,sync) 表示定义共享参数信息(表示客户端访问目录的权限设置)
rw 表示读写,对共享目录设置的权限;
sync 同步参数,数据先写入到NFS服务器内存中,会立刻同步到磁盘里面==直接存储到硬盘
配置文件参数介绍
 
rw       读写
ro 只读
sync 同步参数,数据先写入到NFS服务器内存中,会立刻同步到磁盘里面--优点:安全、缺点:性能差
async 异步,先到内存,不管数据到不到硬盘
no_root_squash 表示root用户不做映射
root_squash 表示root用户做映射
all_squash 表示全部用户做映射

创建共享目录,并且进行权限设置

[root@nfs ~]# mkdir /data -p
[root@nfs ~]# chown -R nfsnobody.nfsnobody /data/
[root@nfs ~]# ll -d /data/
drwxr-xr-x 2 nfsnobody nfsnobody 4096 Oct 12 12:06 /data/
说明:NFS共享目录管理用户为nfsnobody,此用户不用创建;安装NFS软件的时候会自动创建

启动服务

 
首先启动rpc服务
[root@nfs ~]# /etc/init.d/rpcbind start
Starting rpcbind: [ OK ]

rpcbind启动信息查看
[root@nfs ~]# 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
如果没有启动NFS服务就这些信息
 
 
其次启动nfs服务
[root@nfs ~]# /etc/init.d/nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
Starting RPC idmapd: [ OK ]
 
 
nfs启动后查看信息
[root@nfs ~]# 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
100011 1 udp 875 rquotad
100011 2 udp 875 rquotad
100011 1 tcp 875 rquotad
100011 2 tcp 875 rquotad
100005 1 udp 41601 mountd
100005 1 tcp 26925 mountd
100005 2 udp 27046 mountd
100005 2 tcp 32480 mountd
100005 3 udp 61072 mountd
100005 3 tcp 39844 mountd
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100021 1 udp 22703 nlockmgr
100021 3 udp 22703 nlockmgr
100021 4 udp 22703 nlockmgr
100021 1 tcp 26776 nlockmgr
100021 3 tcp 26776 nlockmgr
100021 4 tcp 26776 nlockmgr
 
查看nfs服务的挂载信息
[root@nfs ~]# showmount -e localhost
Export list for 10.0.0.31:
/data 172.16.1.0/24
注意:localhost可以换成ip地址
至此:服务端部署配置完成

NFS客户端部署

首先还是要查看软件是否已经下载安装

其实客户端是不需要安装nfs的,但是不安装nfs软件客户端就不能用showmount命令,并且无法识别nfs文件系统类型

确认完毕后直接启动服务,也可以不启动,不影响。

检查nfs服务端是否有可以进行共享挂载的目录

[root@ba ~]# rpm -qf `which showmount`
nfs-utils-1.2.3-75.el6.x86_64
[root@ba mnt]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
说明:showmount命令使用,需要安装nfs-utils软件

进行nfs客户端挂载,并设置目录权限

 
mount -t nfs 172.16.1.31:/data /mnt
chown -R nfsnobody.nfsnobody /mnt
 
检查测试
[root@ba mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.5G 6.9G 18% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 35M 146M 19% /boot
172.16.1.31:/data 8.8G 1.5G 6.9G 18% /mnt
 
 

然后进行处理文件测试

本地nfs客户端进行 增删改数据  等价于在nfs服务端共享目录中进行的操作

客户端上处理文件

 
[root@ba mnt]# touch szsn.txt
[root@ba mnt]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 13 11:25 szsn.txt
[root@ba mnt]# echo "矢志少年" >szsn.txt
[root@ba mnt]# cat szsn.txt
矢志少年
[root@ba mnt]# \rm -f szsn.txt
 

服务端上检查

 
[root@nfs data]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 13 11:25 szsn.txt
[root@nfs data]# cat szsn.txt
矢志少年
[root@nfs data]# ll
total 0
 

这样就搭建完成了,博主有哪里写的不好的,欢迎大家指出,我一定会进行改进。

Linux NFS存储服务部署的更多相关文章

  1. NFS存储服务部署

    第1章 NFS介绍 1.1 NFS服务内容的概述 □ RPC服务知识概念介绍说明,以及RPC服务存在价值(必须理解掌握) □ NFS服务工作原理讲解(必须理解掌握) □ NFS共享文件系统使用原理讲解 ...

  2. NFS存储服务及部署

    1 NFS简介 1.1 什么是NFS NFS=Network File System=网络文件系统.主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录.NFS客户端(一般为应用服 ...

  3. NFS存储服务

    NFS存储服务笔记======================================================================NFS共享存储是什么: 英文名-Netwo ...

  4. Linux下Apache服务部署静态网站------网站服务程序

    文章链接(我的CSDN博客): Linux下Apache服务部署静态网站------网站服务程序

  5. Linux(10):期中架构(2)--- NFS存储服务 & 实时同步

    1. 共享存储服务概念: # NFS是Network File System的缩写,中文意思是网络文件系统, # 它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录. 2. ...

  6. NFS共享存储服务部署

    第1章 NFS介绍 1.1 NFS基本概述 NFS(Network File System)网络文件系统 主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录. NFS系统和Windows网络 ...

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

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

  8. nfs 存储服务

    今日内容: NFS 1.什么是nfs? network file system 网络文件系统 nfs共享存储 2.nfs能干什么? nfs 能为 不同主机系统之间 实现 文件的共享 3.为什么要使用n ...

  9. nfs存储服务实时同步

    一.NFS简介 NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过网络共享资源.将NFS主机分享的目录,挂载到本地客户端当中,本地NFS的客户端应用可以透明地 ...

随机推荐

  1. 学习Acegi应用到实际项目中(1)

    在此,本人声明,我处于菜鸟阶段,文章的内容大部分摘自zhanjia的博客(http://zhanjia.iteye.com/category/43399),旨在学习,有很多地方,我理解不够透彻,可能存 ...

  2. Linux 第十天

    十三.权限管理 1.ACL权限开启 1)dumpe2fs -h /dev/sda3查看分区ACL权限是否开启 -h:仅显示超级块中信息,而不显示磁盘块组的详细信息 2)mount -o remount ...

  3. verilog 有符号数运算

    1)之前的笔记写过<补码探讨>,可知在FPGA综合成电路的时候最底层都是以补码的形式在运算,正数的补码就是本身,负数的补码要取反+1. (2)那么Verilog中编程的时候对编程人员来说, ...

  4. Crontab定时执行Oracle存储过程

    Crontab定时执行Oracle存储过程 需求描述 我们有一个Oracle的存储过程,里面是每个月需要执行一下,生成报表,然后发送给业务部门,这一个功能我们有实现在系统的前台界面(如图1-1),但是 ...

  5. Instruments Time Profiler时,无法定位代码,如何破?

    都是地址符号,往深里也一直是地址符号,根本没法判断是哪些代码的执行时间 解决办法: 选下面的.

  6. FFmpeg原始帧处理-滤镜API用法详解

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10429145.html 在FFmpeg中,滤镜(filter)处理的是未压缩的原始音视频 ...

  7. 突然 不能f**q

    ss 突然访问不了,于是去查看ip是否被f,发现国outer 国inner 都通,不知道什么情况,后来把 系统代理模式 改为全局,发觉可以,又把他改为 pac模式,正常了.           记录一 ...

  8. ES6教程-字符串,函数的参数,了解函数的arguments对象,js面向对象,设计模式-单例模式,解构赋值

    前言 主要讲解了ES6对字符串的拓展,包括includes,startsWith和endsWith,另外增加了字符串模板. Start includes()是否包含 startsWith()以什么开头 ...

  9. 分布式控制系统Git学习

    git : n. 饭桶,无用的人 github : n. 社交编程及代码托管网站 hub: n. 中心:毂:木片 Git是一个分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)创 ...

  10. Egg中使用egg-mongoose和常用的Mongoose 方法

    Mongoose Mongoose就是一套操作MongoDB数据库的接口,而Egg中有对应的插件egg-mongoose. 安装 $ npm install egg-mongoose --save 配 ...