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. 基于MVC的网站和在线教育系统

    最近老表说要创业,想要做一个网站做宣传,还想要一个在线教育系统. 学习了一部分 Java,  决定用.Net MVC做官网或直接做成静态HTML网站,主要是因为.Net MVC 技术简单,效率高,需求 ...

  2. 学JAVA第九天,for循环算质数及for遍历数组的方法。

    昨天终于收到了评论,老开心了!!! 算质数之前是我最怕的一件事,以前上学不好好学,之前学C#的时候也没好好研究, 直到今天老师逼我要用JAVA算质数,硬着头皮琢磨老半天才琢磨透,现在看来也挺简单的. ...

  3. Java开发笔记(三十九)日期工具Date

    Date是Java最早的日期工具,编程中经常通过它来获取系统的当前时间.当然使用Date也很简单,只要一个new关键字就能创建日期实例,就像以下代码示范的那样: // 创建一个新的日期实例,默认保存的 ...

  4. MATLAB 中 ksvdbox和ompbox 工具箱的安装和使用

    下载工具箱 链接: http://www.cs.technion.ac.il/~ronrubin/software.html 下载好工具箱之后, 要将解压后的文件夹添加到MATLAB的安装目录下的to ...

  5. HTML和CSS前端教程03-CSS选择器

    目录 1. CSS定义 2. 创建CSS的三种方法 2.1. 元素内嵌(权重最高) 2.2. 文档内嵌 2.3. 外部引用 3. CSS层叠和继承 3.1. 浏览器样式 3.2. 样式表层叠 3.3. ...

  6. 关于ajax用户名验证和jquery实现简单表单验证

    首先来说用户名验证: 前台: <tr> <td class="tableleft">教师编号</td> <td><input ...

  7. mysql innodb存储引擎和一些参数优化

    mysql 的innodb存储引擎是事务性引擎,支持acid.innodb支持版本控制和高并发的技术是svcc:需要重点注意:myisam只缓存索引,innodb缓存索引和数据:

  8. WPS客户端更新日志留着备用

    WPS Office (10.1.0.7520)==========================================新增功能列表------------WPS文字1 拼写检查:新增“中 ...

  9. android FragmentTabhost导航分页

    基本模板 public class MainActivity extends FragmentActivity { private FragmentTabHost mTabHost; private ...

  10. Python简介之探观止矣

    Python是一门什么样的编程语言编程语言主要分为编译型和解释型,静态语言和动态语言,强类型和弱类型,混合语言等.编译型语言:通过编译器把源代码编译(compile)成机器语言,在经过链接(linke ...