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. Java与.net的选择和比较

    跨平台对开发商是一个巨大的诱惑.一次开发,多个平台使用,降低了迁移成本,有利.但Java的开发工具没有.net顺手,对编码人员的要求比.net要高. .net培训成本低,上手快.尤其如果开发人员以前都 ...

  2. JQuery官方学习资料(译):CSS

        JQuery提供了一个处理方法,可以获取或设置元素的CSS属性. // 获取 CSS 属性 $( "h1" ).css( "fontSize" ); / ...

  3. [PHP] 控制反转依赖注入的日常使用

    控制反转:控制权交给了自己的类 依赖注入:依赖另一个类,我没有手动去new它 <?php /*我自己要用的类*/ class User { private $name; private $age ...

  4. laravel项目thinksns-plus安装出现RuntimeException Symlink from * to * failed错误

    今天xshell安装thinksns-plus的laravel项目时出现了一个错误, [RuntimeException] Symlink from "/root/www.z5w.net/t ...

  5. iOS----------检测app进入后台或前台

    开发播放器的时候,经常需要检测app进入后台(暂停播放)或者进入前台(开始播放).方法非常简单. 1.检测app进入后台 // 在AppDelete实现该方法 - (void)applicationD ...

  6. Jquery 使用和Jquery选择器

    jQuery中的顶级对象($) jQuery 中最常用的对象即 $ 对象,要想使用 jQuery 的方法必须通过 $ 对象.只有将普通的 Dom 对象封装成 jQuery 对象,然后才能调用 jQue ...

  7. docker安装wnameless/oracle-xe-11g并运行(手写超详细)

    前景:没事想玩下linux,想着以后可以部署下自己的web项目上去,然后我就想装个oracle来着...之前都不懂linux来着,只知道公司的项目都是部署在上面,然后从装系统到装完oracle用了近五 ...

  8. linux下的QT打包方法

    一句话很简单,一个shell脚本搞定,不跟你嘻嘻哈哈 #!/bin/shexe="ThorIceLocker"#存放你的可执行文件的名字des="/home/ninetr ...

  9. Cygwin 编译 ffmpeg

    1.在官网下载linux下的压缩包 https://ffmpeg.zeranoe.com/builds/source/ffmpeg/ffmpeg-3.2.4.tar.xz 2.进入cygwin,假定将 ...

  10. MongoDB 基本操作和聚合操作

    一 . MongoDB 基本操作 基本操作可以简单分为查询.插入.更新.删除. 1 文档查询 作用 MySQL SQL  MongoDB  所有记录  SELECT * FROM users;  db ...