NFS 实现wordpress同步

0x00 NFS概述

网络文件系统(英语:Network File System,缩写为NFS)是一种分布式文件系统协议,最初由Sun Microsystems公司开发,并于1984[1]年发布。其功能旨在允许客户端主机可以像访问本地存储一样通过网络访问服务器端文件。 NFS和其他许多协议一样,是基于开放网络运算远程过程调用(ONC RPC) 协议之上的。
NFS是一个开放、标准的RFC协议,任何人或组织都可以依据标准实现它。

0x01 NFS实现原理

当一台计算机(客户端)需要访问存储在其他机器上的数据(NFS 服务器):

  1. 服务端实现 NFS 守护进程, 默认运行 nfsd, 用来使得数据可以被客户端访问.
  2. 服务端系统管理员可以决定哪些资源可以被访问, 导出目录的名字和参数, 通常使用 /etc/exports 配置文件 和exportfs命令。
  3. 服务端 安全-管理员 保证它可以组织和认证合法的客户端.
  4. 服务端网络配置保证可以跟客户端透过 防火墙 进行协商.
  5. 客户端请求导出的数据, 通常调用一个 mount 命令.
  6. 如果一切顺利, 客户端的用户就可以通过已经挂载的 文件系统 查看和访问服务端的文件了.

0x02 NFS 相关配置及命令

  • NFS 软件包 : nfs-utils-1.3.0-0.33.el7.x86_64
  • /etc/exports或/etc/exports.d/*

    /PATH/TO/SOME_DIR clients1(export_options, …) clients2(export_options, …)

    注意/etc/exports.d/ 下的文件必须以 .exports 结尾

    clients:
            single host:ipv4, ipv6, FQDN;
            network:address/netmask, 同时长短格式的掩码;
            wildcards:主机名通配,例如:*.magedu.com;
            netgroups:NIS域内的主机组;@group_name;
            anonymous:使用*通配所有主机;
    
    export_options:     
    
            General Options:
                        ro:只读
                        rw:读写;
                        sync:同步;
                        async:异步;
            User ID Mapping:
                     root_squash:压缩root用户,一般指将其映射为nfsnobody;
                     no_root_squash:不压缩root用户;
                     all_squash:压缩所有用户;
                     anonuid and anongid:将压缩的用户映射为此处指定的用户;
  • 两个命令:exportfs和showmount

    • exportfs- maintain table of exported NFS file systems
      exportfs [-av] -u [client:/path ..]
      eg: exportfs -av -u 172.18.9.9:/data

      -a     Export or unexport all directories.
      
      -r     Reexport  all  directories
      
      -u     Unexport one or more directories.
    • showmount- show mount information for an NFS server

      -a or --all
      
      -d or --directories
                List only the directories mounted by some client.
      
      -e or --exports
                Show the NFS server’s export list.

0x03 NFS实践作业(一)

实验要求:

(1) nfs server导出/data/目录;
(2) nfs client挂载/data/至本地的/mydata目录;本地的mysqld或mariadb服务的数据目录设置为/mydata, 要求服务能正常启动,且可正常 存储数据;

实验环境:

  • NFS_server : centos7.3 ,IP ( 172.18.9.119 )
  • NFS_client : centos6.8 , IP ( 172.18.9.9 )

实验步骤:

  • NFS_server:

    1. ! rpm -q nfs-utils >/dev/null  && yum install -y nfs-utils  #安装nfs 
    
    2. systemctl  start nfs.service
    
    3. mkdir /data  #创建共享目录
    
    4. vim /etc/exports.d/mysql_data.exports
        /data/   172.18.9.9(rw,anonuid=27,anongid=27,async)
    
    5. exportfs  -ar
    
    6. setfacl -m o:rwx  /data
  • NFS_client

    1. yum install -y  nfs-utils
    
    2. yum install -y mysql-server
    
    3. mkdir /mydata
    
    4. mount  -t nfs  172.18.9.119:/data   /mydata
    
    5. vim  /etc/my.cnf
            datadir=/mydata
    
    6. service  mysqld  start

    注意: 上述步骤有先后顺序,请严格执行

0x04 NFS实践作业(二)

实验要求:

(1) nfs server导出/data/application/web,在目录中提供wordpress;
(2) nfs client挂载nfs server导出的文件系统至/var/www/html;
(3) 客户端(lamp)部署wordpress,并让其正常访问;要确保能正常发文章,上传图片;
(4) 客户端2(lamp),挂载nfs server导出的文件系统至/var/www/html;验正其wordpress是否可被访问; 要确保能正常发文章,上传图片;

实验环境:

NFS_server : centos7.3 , IP : 172.18.9.119
NFS_client_1: centos6.8 , IP : 172.18.9.9
NFS_client_2: centos6.8, IP : 172.18.9.10

实验步骤:

  • NFS_server:

    1. yum install -y nfs-utils  #安装nfs 
    
    2. systemctl  start nfs.service
    
    3. mkdir -p /data/application/web  #创建共享目录
    
    4. vim /etc/exports.d/data_app_web.exports
            /data/   172.18.9.9(rw,async)     172.18.9.10(rw,async)
    
    5. exportfs  -ar
    
    6. setfacl -R -m o:rwx  /data/application/web  #注意:此权限一定要设定,不然client会无法挂载访问
  • NFS_client_1: 部署 wordpress

    1. yum install -y httpd mysql-server php php-mysql
    
    2. wget https://wordpress.org/latest.zip  && unzip latest.zip  && mv  wordpress  /var/www/html/    #下载wordpress 并解压至 /var/www/html
    
    
    ###  设置wordpress 数据库  ###
    
    3. mysql
        mysql> create database wpdb;
        # 出现 Query OK, 0 rows affected (0.00 sec) 即为成功
        mysql> grant all privileges on wpdb.* to wpuser@'%' identified by "mima";
        mysql> exit;
    
    4. service mysqld start   # 启动mysql 服务  
    
    5. mount 172.18.9.119:/data/application/web  /var/www/html/   #挂载nfs 共享目录至 /var/www/html
    
    6. service httpd  #启动httpd 服务
    
    7. # 安装wordpress

NFS 实现wordpress同步NFS 实现wordpress同步

….. 剩下的自己看情况设置……

到此wordpress 以经建好,可以发布文章了。(在浏览器中输入: http://172.18.9.9/wordpress/

  • NFS_client_2:

    1. yum install -y httpd mysql-server php php-mysql
    
    2. mount 172.18.9.119:/data/application/web  /var/www/html/   #挂载nfs 共享目录至 /var/www/html
    
    3. service httpd start
    
    4. service mysqld start

    在浏览器中输入: http://172.18.9.10/wordpress/
    登录,即可发表文章,并能查看client_1 发表的文章。

0x05 常见问题

  1. mount.nfs: access denied by server while mounting 172.18.9.119:/data/application/web
    这是因为nfs_server端的共享目录没有执行权限

    解决方案:
    在nfs_server执行: setfacl -m o:rwx /data/application/web

  2. mount nfs后, 如果遇到服务器修改 /etc/exports 等原因时,经常会遇到

    Text代码

    umount2: Stale NFS file handle  
    umount: htdocs: Stale NFS file handle

    或者
    Text代码

    /var/www/html was not found in /proc/mounts

    等问题

    解决方案:

    找到使用目录的进程, kill掉
    sudo umount -i -f /directory
    sudo umount -i -d -r -n -v -f  /directory

原创文章,作者:Yanglibin,如若转载,请注明出处:http://www.178linux.com/74462

(0)
YanglibinYanglibin
上一篇 2017-04-30 09:35
下一篇 2017-04-30 16:31

相关推荐

  • 优云Monitor:开启数据中心主机运维的上帝视角

    常常有这么一句话在激励每一位运维人员,“不以故障多为耻,而以恢复快为荣。”运维人员就是要快速定位问题,分析问题,排除故障,快速恢复来保障生产业务不受中断。然而,现代大型数据中心,运维人员要管理的系统节点比以前繁多,为了掌控数据中心的实时运行情况与定位问题,需要花的时间成本已经长得无法接受。 而优云Monitor给运维人员提供了极好的可视化手段,能够让运维人员…

    系统运维 2017-01-09
  • linux用户与组的基本概念–20160730

    用户组和权限管理—概念       用户组和权限管理—概念 3A:认证,授权,审计。 每个使用者:用户标识,密码:  Authentication    :  认证 Authorization     :授权 Accout/Audition…

    Linux干货 2016-08-04
  • 【职位推荐】华图网校/北京/运维工程师/8-12k(14薪)

    北京华图宏阳网络科技有限公司 华图教育集团:       华图教育(www.huatu.com)是华图宏阳股份旗下品牌,拥有遍布全国的100余家分支机构。主要产品包括中央和地方公务员招录考试辅导,事业单位、三支一扶、村官、选调生、招警等考试辅导。      北京华图宏阳教育文化发展股份有限…

    Linux干货 2016-04-20
  • 初涉Linux基本要点概括(2)

    linux上的文件查看与管理类命令 mkdir 作用: 创建目录 语法: mkdir [OPTION]… DIRECTORY… 示例: mkdir -p /tmp/x/y/z             &nb…

    Linux干货 2016-10-15
  • 搭建LAMP+NFS(附加mysql共享NFS目录练习总结)

    练习一 环境布局: 主机6 route A (10.1.32.14)作为DNS服务器 主机centos 7 class (10.1.32.3)作为Apache,PHP(模块方式)服务器1(有discuz程序) 主机centos 7 server (10.1.32.13)作为Apache,php(模块方式)服务器2(无discuz) 主机centos 6 cl…

    系统运维 2016-10-25
  • 设计模式(六)桥连模式Bridge(结构型)

    1. 概述       在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度? 例子1:设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的…

    Linux干货 2015-06-26