zoukankan      html  css  js  c++  java
  • cnetos6上实现nfs共享

    利用空余时间,做个nfs共享实验,岂不美滋滋!!!

    系统测试环境:

    主机ip 系统     主机名(服务)
    192.168.241.130    centos6.5    hadoop1(nfs-srever)
    192.168.241.133    centos6.5    hadoop2(nfs-client1)
    192.168.241.134    centos6.5    hadoop2(nfs-client2)

    为了测试,三台服务器全部关了软件防火墙,在生产环境中需要做防火墙规则,我会在在后面对这块做详细说明。

    服务器端(hadoop1上):

    [root@hadoop1 ~]# yum -y install nfs-utils rpcbind
    

    nfs的相关说明:

    NFS的常用目录如下
    /etc/exports                           NFS服务的主要配置文件
    /usr/sbin/exportfs                   NFS服务的管理命令
    /usr/sbin/showmount              客户端的查看命令
    /var/lib/nfs/etab                      记录NFS分享出来的目录的完整权限设定值
    /var/lib/nfs/xtab                      记录曾经登录过的客户端信息
    

      编辑nfs配置文件

    NFS服务的配置文件为 /etc/exports,这个文件是NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。

      vim /etc/exports 
    
    /test *(rw,sync,no_root_squash,insecure)
    

      注意:我开始写的是 /test  192.168.241.130(rw,sync,no_root_squash,insecure),但是这样客户端(hadoop2和hadoop3上)挂载事就会出现这种情况

    [root@hadoop2 /]# mount -t nfs 192.168.241.130:/test /nfsclient
    mount.nfs: access denied by server while mounting 192.168.241.130:/test
    

     后来上网找了解决方式就是按照我上面的方式才行,真是无语。

    解释说明
    /nfs/server 192.168.0.0/255.255.255.0(rw,no_root_squash)
    1、每行分两部分,由空格分开。
    2、第一部份(空格之前的那段)是你要共享出去的目录。
    3、第二部份(空格之后的那段)又可以分三部分:
    (1)、“192.168.0.0”表示有权共享本目录的IP网段。
    (2)、“255.255.255.0”是那个有权共享的网段所用的掩码
    (3)、括号里面又有两部分,用逗号隔开:
    (i)、“rw”表示来访者对所共享出去的目录享有读和写的权力,如果只给读不给写就将之换成“ro” (意思是 Read Only)
    (ii)、"no_root_squash"表示如果来访者是该机的 root 则在本机也给予 root 待遇,如果没有"no_root_squash"(以及前面的逗号),那来访者在本机只相当于本机的 nobody 用户。
    (iii)、insecure:允许客户端从大于1024的tcp/ip端口连接服务器
    

    启动服务端的服务 

    [root@hadoop1 test]# /etc/init.d/rpcbind start
    [root@hadoop1 test]# /etc/init.d/nfslock start
    [root@hadoop1 test]# /etc/init.d/nfs start
    注意启动顺序,一定是上面的顺序,否则会出错
    

    设置开机自启动

    [root@hadoop1 test]# chkconfig rpcbind on
    [root@hadoop1 test]# chkconfig nfslock on
    [root@hadoop1 test]# chkconfig nfs on
    

    检查服务是否开启

    [root@hadoop1 test]# ps -ef |grep nfs
    root       4987      2  0 17:57 ?        00:00:00 [nfsd4]
    root       4988      2  0 17:57 ?        00:00:00 [nfsd4_callbacks]
    root       4989      2  0 17:57 ?        00:00:00 [nfsd]
    root       4990      2  0 17:57 ?        00:00:00 [nfsd]
    root       4991      2  0 17:57 ?        00:00:00 [nfsd]
    root       4992      2  0 17:57 ?        00:00:00 [nfsd]
    root       4993      2  0 17:57 ?        00:00:00 [nfsd]
    root       4994      2  0 17:57 ?        00:00:00 [nfsd]
    root       4995      2  0 17:57 ?        00:00:00 [nfsd]
    root       4996      2  0 17:57 ?        00:00:00 [nfsd]
    root       5126   4011  0 18:04 pts/0    00:00:00 grep nfs
    [root@hadoop1 test]# ps -ef |grep rpcbind
    rpc        3674      1  0 17:16 ?        00:00:00 rpcbind
    root       5128   4011  0 18:04 pts/0    00:00:00 grep rpcbind
    [root@hadoop1 test]# netstat -tanpl |grep rpc
    tcp        0      0 0.0.0.0:875                 0.0.0.0:*                   LISTEN      4977/rpc.rquotad    
    tcp        0      0 0.0.0.0:48590               0.0.0.0:*                   LISTEN      4981/rpc.mountd     
    tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      3674/rpcbind        
    tcp        0      0 0.0.0.0:50960               0.0.0.0:*                   LISTEN      4981/rpc.mountd     
    tcp        0      0 0.0.0.0:59572               0.0.0.0:*                   LISTEN      3692/rpc.statd      
    tcp        0      0 0.0.0.0:50461               0.0.0.0:*                   LISTEN      4981/rpc.mountd     
    tcp        0      0 :::36045                    :::*                        LISTEN      4981/rpc.mountd     
    tcp        0      0 :::111                      :::*                        LISTEN      3674/rpcbind        
    tcp        0      0 :::49659                    :::*                        LISTEN      4981/rpc.mountd     
    tcp        0      0 :::60635                    :::*                        LISTEN      3692/rpc.statd      
    tcp        0      0 :::45215                    :::*                        LISTEN      4981/rpc.mountd   

    hadoop2和hadoop3客户端操作,以hadoop2为例说明

    [root@hadoop2 ~]# yum -y install nfs-utils
    

     在本机使用命令可以看到共享目录,在客户端安装了nfs-utils软件后,使用同样的命令也可以看到。

    [root@hadoop1 test]# showmount -e 192.168.241.130
    Export list for 192.168.241.130:
    /test *  

    在hadoop2上创建挂载目录,并将本地目录(nfsclient)挂载到nfs共享目录(test)上去

    mkdir /nfsclient
    [root@hadoop2 /]# mount -t nfs 192.168.241.130:/test /nfsclient

    此时在各自的挂载目录上做一系列测试证明nfs共享是否成功

    在nfs-server上,也就是hadoop1上做以下操作

    [root@hadoop1 test]# mkdir data lala haha
    [root@hadoop1 test]# vim page.test
    this is test page  !!!
    

     那么在nfsclient1的/nfsclient目录下看看有没有这些内容

    [root@hadoop2 nfsclient]# cat page.test 
    this is test page  !!! 
    [root@hadoop2 nfsclient]# pwd
    /nfsclient
    

      显然,这是成功的,但是这样还不全面的,我们从客户端再做一些测试

    我们将这下面的东西全部删掉

    [root@hadoop2 nfsclient]# ls
    data  haha  lala  page.test
    [root@hadoop2 nfsclient]# rm -rf ./*
    [root@hadoop2 nfsclient]# ls
    [root@hadoop2 nfsclient]# pwd
    /nfsclient
    

     看下nfsserver(hadoop1)的/test目录下还有没有,看下服务端hadoop1,显然没有了。

    [root@hadoop1 test]# ls
    [root@hadoop1 test]# pwd
    /test
    

     那么再测试下客户端写入文件,在服务端能否看到和删除。

    [root@hadoop2 nfsclient]# pwd
    /nfsclient
    [root@hadoop2 nfsclient]# mkdir zhangsan lisi wangwu 
    [root@hadoop2 nfsclient]# vim nongyao.txt
    laalalalalalalalala
    

     看下服务端 

    [root@hadoop1 test]# pwd
    /test
    [root@hadoop1 test]# cat nongyao.txt 
    laalalalalalalalala
    

    显然服务端是有的,这就形成了数据共享,不用测试,hadoop3也是一样的,这样一个简单的nfs共享服务器就做成了。

  • 相关阅读:
    多线程
    事务的概念与四大特性(ACID)
    Error和Exception的区别
    运算符的使用与注意事项(二)
    运算符的使用与注意事项(一)
    GOJS使用--前端拓扑图
    python算法实现分治法demo
    MySQL主从复制配置
    MySQL锁
    show profile查看SQL执行生命周期
  • 原文地址:https://www.cnblogs.com/nshgo/p/8892787.html
Copyright © 2011-2022 走看看