1、什么是NFS?

  • 全称 network file system 网络文件系统
  • 通过网络存储和组织文件的一种方法或机制。

2、为什么要用共享存储?

前端所有的应用服务器接收到用户上传的图片、文件、视频,都会统一的放到后端的存储上。

所有节点服务器都需要将内容存到存储上,取的统一来取。

3、共享存储的种类

  • 单点存储系统就是NFS,中小型企业,阿里云服务的NAS服务,OSS对象存储。

    NFS性能不太高。

    大型企业会用分布式存储FastDFS、Ceph、GlsterFS、Mfs

  • 大型存储厂商:EMC、Netapp 几十万。

    艺龙旅行网 存储用的EMC 传统企业。

  • 硬件存储:传统企业:稳定、2台 双主机头 几十块硬盘 RAID10。

    BAT 曾经用硬件,超贵、

  • 阿里云 去IOE Ibm Orace EMC

4、NFS工作原理

NFS网络文件系统

启动NFS服务,而且还有启动很多端口。

NFS功能,需要很多服务。每个服务都有端口,而且经常变化。

  • NFS服务:

    1、NFS服务(有很多进程和端口),把自己的端口告诉RPC。

    2、RPC服务(对外固定端口111)

  • 客户端请求NFS服务,先找RPC 111,查到NFS的端口,发给客户。

5、安装

服务器端和客户端都要安装:

    yum install nfs-utils rpcbind -y
rpm -qa nfs-utils rpcbind [root@nfs01 ~]# rpm -qa nfs-utils rpcbind
nfs-utils-1.3.0-0.61.el7.x86_64
rpcbind-0.2.0-47.el7.x86_64
启动RPC
[root@nfs01 ~]# systemctl start rpcbind.service
[root@nfs01 ~]# systemctl enable rpcbind.service
  • 启动NFS
        [root@nfs01 ~]# systemctl start nfs
[root@nfs01 ~]# systemctl enable nfs

6、配置nfs

  • NFS配置文件 /etc/exports

    待共享的目录 访问的主机(权限)

    1)待共享的目录 存东西的目录 取东西的目录例如:/data

    2)访问的主机,

    172.16.1.7(web01) 单个主机

    172.16.1.0/24 网段

    172.16.1.* 网段

    master 主机名

    3)()权限

    rw 可读写 read write

    ro 只读 read only

    sync 写到磁盘才算完成,安全 慢

    async 异步写到远程缓冲区,快 不安全

实践:

        [root@nfs01 ~]# tail -1 /etc/exports
/data 172.16.1.0/24(rw,sync)
[root@nfs01 ~]# mkdir -p /data
[root@nfs01 ~]# ls -ld /data
drwxr-xr-x 2 root root 51 4月 16 10:24 /data
  • NFS默认用户nfsnobody
        [root@nfs01 ~]# grep nfsno /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
[root@nfs01 ~]# chown -R nfsnobody.nfsnobody /data
[root@nfs01 ~]# ls -ld /data
drwxr-xr-x 2 nfsnobody nfsnobody 51 4月 16 10:24 /data
  • 重启NFS
        [root@nfs01 ~]# systemctl reload nfs #《==生产场景必须要实现平滑重启。
[root@nfs01 ~]# exportfs -r
# 上述二者等价,选一个即可。
[root@nfs01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24 #《==看到共享的目录了
服务单本地挂载:
        [root@nfs01 ~]# mount -t nfs 172.16.1.31:/data /mnt
[root@nfs01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 19G 1.8G 18G 10% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 253M 136M 118M 54% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 19G 1.8G 18G 10% /mnt

换到web01挂载

安装

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

2)启动

        [root@web01 ~]# systemctl start rpcbind
[root@web01 ~]# systemctl enable rpcbind

3)查看NFS服务器提供的共享目录

      [root@web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24

4)挂载测试

      [root@web01 ~]# mount -t nfs 172.16.1.31:/data /mnt
[root@web01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 19G 1.8G 18G 10% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 253M 136M 118M 54% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 19G 1.8G 18G 10% /mnt

例题

web01 backup客户端实现挂载到nfs

NFS下面共享/backup ,允许web01 backup客户端(/backup)可读写.

web01上传图片,backup上可以删除web01上传的图片。

NFS下面共享/data1,允许 web01 backup客户端10网段只读(data1)

实现开机自动挂载

1、nfs

        [root@nfs01 ~]# mkdir  /backup /data1
[root@nfs01 ~]# vim /etc/exports
#oldboyjyt shared dir at time
/backup 172.16.1.0/24(rw,sync)
/data1 10.0.0.0/24(ro)
[root@nfs01 ~]# systemctl reload nfs
[root@nfs01 ~]# chown -R nfsnobody.nfsnobody /backup
[root@nfs01 ~]# chown -R nfsnobody.nfsnobody /data1
[root@nfs01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data1 10.0.0.0/24
/backup 172.16.1.0/24

2、web

        [root@web01 ~]# mkdir  /backup /data1
[root@web01 ~]# mkdir /gz1 /gz2
[root@web01 ~]# chown -R nfsnobody.nfsnobody /gz1
[root@web01 ~]# chown -R nfsnobody.nfsnobody /gz2
[root@web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data1 10.0.0.0/24
/backup 172.16.1.0/24
[root@web01 ~]# mount -t nfs 172.16.1.31:/backup /gz1
[root@web01 ~]# mount -t nfs 172.16.1.31:/data1 /gz2

3、backup 配置与web相同。

4、web01上传图片,backup上可以删除web01上传的图片

        [root@web01 /]# cd /gz1
[root@web01 /gz1]# ll
总用量 0
[root@web01 /gz1]# rz
rz waiting to receive.
[root@web01 /gz1]# ll
总用量 20
-rw-r--r-- 1 nfsnobody nfsnobody 16413 4月 11 11:23 tp.jpg
[root@web01 gz1]#
[root@backup /]# cd /gz1
[root@backup /gz1]# ll
总用量 20
-rw-r--r-- 1 nfsnobody nfsnobody 16413 4月 11 11:23tp.jpg
[root@backup /gz1]# rm -f tyy.jpg
[root@backup /gz1]# ll
总用量 0

删除成功

5、开机自动挂载

        [root@web01 /]# chmod +x /etc/rc.local
[root@web01 /]# vim /etc/rc.local
/bin/mount -t nfs 172.16.1.31:/backup /gz1
/bin/mount -t nfs 172.16.1.31:/data1 /gz2
[root@backup /]# chmod +x /etc/rc.local
[root@backup /]# vim /etc/rc.local
/bin/mount -t nfs 172.16.1.31:/backup /gz1
/bin/mount -t nfs 172.16.1.31:/data1 /gz2

Linux nfs下载安装与简单配置的更多相关文章

  1. Linux下的GitHub安装与简单配置教程 ~ 转载

    Linux下的GitHub安装与简单配置教程   1.GitHub简介 Git是一个分布式版本控制系统,与其相对的是CVS.SVN等集中式的版本控制系统. 2.Git的安装 1)安装Git a.查看与 ...

  2. <转载> FreeNAS的安装和简单配置 http://freenas.cn/?p=342

    前些日子在公司搭了一个模拟生产环境的平台.由于是测试环境,资源有限只能使用虚拟机实现,所以存储这块就想到了使用FreeNAS.很早以前玩儿过几次,当时是生产环境需要上存储设备,经过对比还是选择的更可靠 ...

  3. {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句

    MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...

  4. Linux环境下安装JDK并配置环境变量

    首先查看是否已经安装了JDK并配置环境变量. [root@dhcc_plat opt]# java -version -bash: java: command not found [root@dhcc ...

  5. docker的安装和简单配置

    docker的安装和简单配置 docker是balabalabala...懒得介绍. 国内安装docker很蛋疼,按照官方配置好了软件源之后,几十MB的安装文件下载要半天,没办法,docker默认的软 ...

  6. Linux RabbitMQ的安装、环境配置、远程访问 , Windows 下安装的RabbitMQ远程访问

    Linux  RabbitMQ的安装和环境配置 1.安装 RabbitMQ是使用Erlang语言编写的,所以安装RabbitMQ之前,先要安装Erlang环境 #对原来的yum官方源做个备份 1.mv ...

  7. Java入门——在Linux环境下安装JDK并配置环境变量

    Java入门——在Linux环境下安装JDK并配置环境变量 摘要:本文主要说明在Linux环境下JDK的安装,以及安装完成之后环境变量的配置. 使用已下载的压缩包进行安装 下载并解压 在Java的官网 ...

  8. Manjaro安装后简单配置

    一个相见恨晚的 Linux 操作系统 Manjaro 到底有多受欢迎? DistroWatch是一个包含了各种Linux发行版及其他自由/开放源代码的类Unix操作系统. (如OpenSolaris. ...

  9. Keepalived 安装与简单配置

    Keepalived 安装与简单配置 http://sivxy.lofter.com/post/1d21ebb9_7e15000

随机推荐

  1. asp.net mvc Html.BeginForm()及Html.Action用法

    Html.BeginForm    Add:操作方法的名称,Activities:控制器的名称,FormMethod.Post:定义from的method的值,,new { id = "fo ...

  2. [MySQL] 联合索引与using index condition

    1.测试联合索引的最左原则的时候, 发现了5.6版本后的新特性Index Condition Pushdown 2.含义就是存储引擎层根据索引尽可能的过滤数据,然后在返回给服务器层根据where其他条 ...

  3. Spring笔记02_注解_IOC

    目录 Spring笔记02 1. Spring整合连接池 1.1 Spring整合C3P0 1.2 Spring整合DBCP 1.3 最终版 2. 基于注解的IOC配置 2.1 导包 2.2 配置文件 ...

  4. Maven(十二)Maven 依赖详解

    依赖的传递性 注意1:在Eclipise创建的Maven项目,若依赖eclipse空间中其他自己创建的 的项目时,此时并不会报错,但是当执行mvn compile命令时还是会显示缺失败.所以依赖的其他 ...

  5. cesium 之自定义气泡窗口 infoWindow 篇

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 自 ...

  6. 章节八、2-火狐的插件TryXPath

    一.火狐上有一个很好用的插件TryXPath能够进行元素定位(安装) 1.打开图中标识的菜单 2.然后点击“扩展”,搜索“xpath” 3.然后安装“TryXPath” 4.安装成功后右上角x显示一个 ...

  7. 【原】Java学习笔记019 - 面向对象

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 仔细想一想,Ani ...

  8. 利用ZYNQ SOC快速打开算法验证通路(3)——PS端DMA缓存数据到PS端DDR

    上篇该系列博文中讲述W5500接收到上位机传输的数据,此后需要将数据缓存起来.当数据量较大或者其他数据带宽较高的情况下,片上缓存(OCM)已无法满足需求,这时需要将大量数据保存在外挂的DDR SDRA ...

  9. LeetCode算法题-Max Consecutive Ones(Java实现)

    这是悦乐书的第242次更新,第255篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第109题(顺位题号是485).给定二进制数组,找到此数组中连续1的最大数量.例如: 输 ...

  10. docker容器日志收集方案(方案四,目前使用的方案)

    先看数据流图,然后一一给大家解释 ​ 这个方案是将日志直接从应用代码中将日志输出到redis中(注意,是应用直接连接redis进行日志输出),redis充当一个缓存中间件有一定的缓存能力,不过有限,因 ...