NFS部署流程

  • 什么是nfs?
    nfs是网络文件系统主要功能是通过网络(一般是局域网)让不同主机系统之间可以共享文件或目录
    主要存储用户上传的视屏,音频,图片这些。
    NFS网络文件系统使用于处理量级小的业务
    用于中小企业网站集群机构后端常用nfs进行数据共享
  • 说明:nfs服务只能用于在linux系统之上,如果windows系统和 linux系统共存的情况下用ftp服务、sambe服务均支持linux和windows

    • NFS网络文件的意义
      nfs是一个共享存储服务,为什么要有共享存储?
      1>实现数据信息的共享
      2>实现数据信息的一致
    • NFS的系统原理
      1>在nfs服务端创建共享目录(服务端提供被挂载的磁盘空间)
      2>通过mount网络挂载,将nfs客户端本地目录挂载到nfs服务端共享目录上
      3>nfs客户端挂载目录上创建、删除、查看数据操作,等价于在服务端进行的创建、删除、查看操作

    说明:mount -t (指定挂载的文件系统的类型) 挂在类型 源 目标
    mount -t nfs10.0.0.7:/data /mnt

    • nfs工作流程:
      1>先启动RPC服务
      2>启动nfs服务
      3>客户端请求nfs服务
      4>rpc服务返回端口到客户端
      5>客户端用地址端口请求传输数据
    • NFS的服务端部署流程
      1.检查服务器上是否已经安装了rpcbind和nfs-utils软件。
      命令:
      rpm -qa rpcbind nfs-utils
      或rpm -qa |egrep “rpcbind|nfs-utils”

    2.安装nfs和rpcbind
    yum install -y rpcbind nfs-utils

    3.编写NFS服务配置文件
    NFS服务默认的配置文件为/etc/exports,并且里面初始没有内容,是个空文件,需要用户自行配置。
    可以使用vim命令来编辑此文件,在其内添加如下内容:
    格式:
    #共享目录 允许连接的网段(参数)----中间加一个空格做分隔符
    /data/ 172.16.1.0/24(rw,sync)
    也可以使用echo或cat命令来实现:

    echo ‘/data/ 172.16.1.0/24(rw,sync)’ /etc/exports
    或
    cat > /etc/exports << EOF
    ##########config NFS server start by wang 2018-05-21##########
    /data/ 172.16.1.0/24(rw,sync)
    ##########config NFS server end by wang 2018-05-21##########
    EOF

    4.创建服务端共享目录
    服务端共享目录一定要确保存在,不存在的话务必要事先创建,否则在应用时会出错。
    命令:
    mkdir -p /data/

    5.设置服务端共享目录的属主和属组
    NFS服务默认使用的用户和用户组是nfsnobody,所以需要将本地同步目录属主和属组为相应的用户。
    命令:

    grep NFS /etc/passwd   ####----在/etc/passwd中查看NFS的用户和用户组
    chown -R nfsnobody.nfsnobody /data/

    6.启动及检查rpcbind服务
    因为NFS及其辅助程序都是基于RPC协议的(端口为111),所以首先要确保系统中运行了rpcbind服务。
    命令:
    /etc/init.d/rpcbind start
    检查端口:
    lsof -i:111
    检查rpcbind服务状态:
    /etc/init.d/rpcbind status

    7.启动及检查nfs服务
    注意,一定要确保rpcbind服务已经启动正常,再启动nfs服务。
    命令:
    /etc/init.d/nfs start
    检查nfs服务状态:
    /etc/init.d/nfs status
    查看nfs服务向rpc服务注册的端口信息的命令:

    rpcinfo -p localhost
    或rpcinfo -p 127.0.0.1

    8.重启nfs服务
    如果修改了nfs的配置文件/etc/exports的话,需要重启服务才能使修改生效。
    为了提供比较友好的用户体验,建议使用nfs服务平滑重启的参数reload,而不是直接使用restart参数。
    命令:
    /etc/init.d/nfs reload===== exportfs -r

    9.检查NFS服务端共享目录信息
    可以使用showmount命令检查NFS服务端共享目录的信息。
    命令:

    showmount -e localhost
    或showmount -e 127.0.0.1
    或showmount -e 172.16.1.31

    10.服务端设置开机自启动rpcbind和nfs
    想要让rpcbind和nfs服务开机自启动,可以使用chkconfig命令来实现。
    命令:

    chkconfig rpcbind on
    chkconfig nfs on

    检查:

    chkconfig --list | egrep -i “rpcbind|nfs”

    11.服务端查看NFS默认自带的参数
    配置并启动好NFS服务后,通过cat /var/lib/nfs/etab命令可以看到NFS配置的参数及默认自带的参数。
    命令:
    cat /var/lib/nfs/etab

    • NFS客户端部署流程
      NFS所有客户端需要做的准备工作都是一样的。客户端需要安装rpcbind和nfs-utils,但只需要启动rpcbind即可,不需要启动nfs。

    1.服务器环境检查
    无论做什么操作,都应该养成一个好的习惯,那就是先进行检查,再上手操作。
    所以第一步应该先检查服务器上是否已经安装了rpcbind和nfs-utils软件。

    命令:

    rpm -qa rpcbind nfs-utils
    或
    rpm -qa |egrep “rpcbind|nfs-utils”

    2.安装NFS和rpcbind
    命令:
    yum install -y rpcbind nfs-utils

    3.启动及检查rpcbind服务
    因为NFS及其辅助程序都是基于RPC协议的(端口为111),所以首先要确保系统中运行了rpcbind服务。

    命令:
    /etc/init.d/rpcbind start
    检查端口:
    lsof -i:111
    检查rpcbind服务状态:
    /etc/init.d/rpcbind status

    4.客户端设置开机自启动rpcbind
    想要让rpcbind服务开机自启动,可以使用chkconfig命令来实现。

    命令:
    chkconfig rpcbind on
    检查:
    chkconfig --list | egrep -i rpcbind

    5.创建客户端本地挂载目录
    想要挂载NFS服务端的共享目录,在客户端必须要有一个用于挂载的目录。

    创建一个目录的命令:
    mkdir -p /nfs_dir

    6.客户端挂载NFS服务端共享目录
    以上步骤全部操作完毕后,就可以在客户端挂载NFS服务端的共享目录了。

    挂载命令:
    mount -t nfs 172.16.1.31:/data/ /nfs_dir/

    可以使用df或mount命令结合grep来检查是否挂载成功。
    命令:

    df -h | grep ‘172.16.1.31‘
    或mount | grep ‘172.16.1.31‘

    7.客户端设置开机自动挂载NFS服务端的共享目录
    如果需要让客户端开机自动挂载NFS服务端的共享目录,有两种方法。

    方法一:将挂载命令放在/etc/rc.local文件里。
    缺点:可能会出现偶尔开机挂载不上的情况,工作中如果使用这种方法,除了开启自启动的配置以外,还有对是否挂载成功做监控。
    配置/etc/rc.local文件的命令:

    echo ‘# mount NFS server by wang 2018-05-21 #’ >> /etc/rc.local
    echo ‘mount -t nfs 172.16.1.31:/data/ /video/’ >> /etc/rc.local

    方法二:将挂载信息放在/etc/fstab文件里。
    这种方法有一个需要特殊注意的地方:fstab会优于网络被linux系统加载。
    网络没启动时执行fstab里配置的远程挂载会导致连接不上NFS服务端,无法实现开机正常挂载NFS远程共享目录。
    但是,这个问题是可以被解决的,解决方法就是,在客户端启动netfs服务,并且让这个服务开机自启动。
    即:/etc/init.d/netfs start;chkconfig netfs on
    配置/etc/fstab文件的命令:
    echo ’172.16.1.31:/data/ /nfs_dir nfs default 0 0’ &gt;&gt; /etc/fstab

    8.客户端查看mount挂载NFS的参数
    NFS客户端挂载好服务端的共享目录后,通过grep ‘172.16.1.31‘ /proc/mounts命令可以看到mount的详细参数。
    命令:
    grep ‘172.16.11‘ /proc/mounts

    原文地址:http://blog.51cto.com/13729984/2128385

    时间: 2024-10-10 13:28:28

    NFS部署流程的相关文章

    inotify+rsync及sersync部署流程

    inotify+rsync部署流程: 第一步:完成部署rsync守护进程服务 第二步:确认inotify软件是否安装扩展yum源(扩展的仓库):epel(企业级linux的yum源的扩展仓库)? 阿里云epel源:通过访问阿里yum源镜像地址获取? 直接安装epel源方式:yum install epel-releaseyum install inotify-tools -y/usr/bin/inotifywait --- 开启实时监控服务,监控目录或文件的数据变化/usr/bin/inotif

    项目部署流程

    项目部署 http://blog.51cto.com/ljmict 项目部署流程: 买服务器, 服务器租用 选择操作系统的版本,安装系统 在开发环境中把项目需要的pip包写到一个文件 pip freeze . requirements .txt 把项目上传到服务器 部署项目, 安装需要的环境 pyhton3解释器 虚拟环境 数据库 nginx, uwsgi 服务器 nginx mysql redis uwsgi celery docker 网站流量参考 网站流量度量 pv:独立访客 ip:独立i

    OpenStack Swift集群部署流程与简单使用

    转载:http://www.cnblogs.com/fczjuever/p/3224022.html 之前介绍了<OpenStack Swift All In One安装部署流程与简单使用>,那么接下来就说一说Swift集群部署吧. 1. 简介 本文档详细描述了使用两台PC部署一个小型Swift集群的过程,并给出一些简单的使用实例.本文档假定如下前提条件: 使用Ubuntu操作系统. 每台机器都运行Swift的所有服务,既是Proxy Server,又是Storage Server,用户可以向

    NFS部署及优化(二)

    NFS部署及优化(二) 一.如何配置更改文件用户 在B机器上: 在实际生产环境当中,直接用映射过来的nfsnobody用户并不合适 那么如何来指定新建的这个用户呢? 下面我们先来创建一个普通用户,命令如下: [[email protected] shiyan]# useradd user111 [[email protected] shiyan]# cat /etc/passwd |grep user111 user111:x:502:502::/home/user111:/bin/bash #

    activiti自定义流程之Spring整合activiti-modeler5.16实例(四):部署流程定义

    注:(1)环境搭建:activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建        (2)创建流程模型:activiti自定义流程之Spring整合activiti-modeler5.16实例(二):创建流程模型        (3)流程模型列表展示:activiti自定义流程之Spring整合activiti-modeler5.16实例(三):流程模型列表展示 1.maven导包及spring的一些基本配置与之前的没有什么变化,依旧沿用就

    activiti自定义流程之整合(四):整合自定义表单部署流程定义

    综合前几篇博文内容,我想在整合这一部分中应该会有很多模块会跳过不讲,就如自定义表单的表单列表那一块,因为这些模块在整合的过程中都几乎没有什么改动,再多讲也是重复无用功. 正因为如此,在创建了流程模型之后,模型列表的展示也是和之前的没有什么区别,而且都是很简单的后台查询以及前台展示,这一部分也就不过多的讲了. 模型列表页面如下: 至于其中的修改和删除也没什么多讲的,删除很简单,而修改也是activiti-modeler实现的主要功能,我们只需要跳转过去就行. 重要的部分在于部署,因为点击部署到达后

    2017.2.28 activiti实战--第五章--用户与组及部署管理(二)部署流程资源

    学习资料:<Activiti实战> 第五章 用户与组及部署管理(二)部署流程资源 内容概览:讲解流程资源的读取与部署. 5.2 部署流程资源 5.2.1 流程资源 流程资源常用的有以下几种: 1 流程定义文件:拓展名为bpmn20.xml和bpmn 2 流程定义的图片:拓展名为PNG 3 表单文件:拓展名为form 4 规则文件:拓展名为drl 部署流程资源的时候,要注意一点: 引擎会根据不同的拓展名进行不同的处理.bpmn或bpmn20.xml类型的文件,会在ACT_RU_PROCDEF(流

    activiti自己定义流程之整合(四):整合自己定义表单部署流程定义

    综合前几篇博文内容.我想在整合这一部分中应该会有非常多模块会跳过不讲,就如自己定义表单的表单列表那一块,由于这些模块在整合的过程中都差点儿没有什么修改,再多讲也是反复无用功. 正由于如此,在创建了流程模型之后.模型列表的展示也是和之前的没有什么差别.并且都是非常easy的后台查询以及前台展示.这一部分也就只是多的讲了. 模型列表页面例如以下: 至于当中的改动和删除也没什么多讲的,删除非常easy,而改动也是activiti-modeler实现的主要功能.我们仅仅须要跳转过去即可. 重要的部分在于

    Activiti 部署流程定义及相关的表(classpath部署、zip部署)

    package com.mycom.processDefinition; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import org.activiti.engine.repository.Deployment; import org.junit.Test; public class ProcessDefinitionTest { ProcessEngine proc