soul颠覆了执着

导航

NFS

NFS使用案例(centos7)

环境:服务端10.220.5.66 客户端:10.220.5.65

实现步骤
一:安装nfs的服务端(nfs rpc)

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

(客户端仅仅需要安装nfs,不需要配置和启动)

二,启动服务

[root@66 ~]# systemctl start rpcbind 
[root@66 ~]# systemctl start nfs

三,检查rpc中注册使用的端口信息(服务器端)

格式:rpcinfo -p 主机地址 <<<这里指定得是注册了NFS端口号

[root@66~]# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  58898  status
    100024    1   tcp  47099  status
    100005    1   udp  20048  mountd
    100005    1   tcp  20048  mountd
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  57332  nlockmgr
    100021    3   udp  57332  nlockmgr
    100021    4   udp  57332  nlockmgr
    100021    1   tcp  33277  nlockmgr
    100021    3   tcp  33277  nlockmgr
    100021    4   tcp  33277  nlockmgr

说明:

        rpc端口号为111,剩下的为nfs启用的端口号

补充:错误案例

[root@66 ~]# rpcinfo -p localhost
rpcinfo: can't contact portmapper: RPC: Remote system error - Connection refused

说明rpcbind没有服务没有启动,如果rpcbind服务启动了仍然报这个错,说明可能是防火墙没关,也有可能防火墙开了配置出问题了,需要修改防火墙规则,让访问111端口的数据通过

 注意:

rpc服务的端口是111

四,安装软件(客户端,只需要安装rpcbind)

[root@65~]# yum install -y rpcbind

五,启动服务(客户端)

[root@65 ~]# systemctl start rpcbind

六,测试是否可以访问nfs主机上的rpc服务进程(客户端)

[root@65 ~]# rpcinfo -p 10.220.5.66
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  58898  status
    100024    1   tcp  47099  status
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  57332  nlockmgr
    100021    3   udp  57332  nlockmgr
    100021    4   udp  57332  nlockmgr
    100021    1   tcp  33277  nlockmgr
    100021    3   tcp  33277  nlockmgr
    100021    4   tcp  33277  nlockmgr

若果访问失败有以下可能:

1:服务端rpc服务没开启,或客户端服务没开启

2:防火墙没关闭

第五步:创建共享目录(客户端)

[root@66~]# mkdir /data
[root@66 ~]# vim /etc/exports
/data     10.220.5.0/24(rw,sync)

重启nfs

[root@66 ~]# systemctl restart nfs

查看所共享的目录(服务端)

格式:showmonut -e nfs的服务器ip地址

[root@66~]# showmount -e 127
Export list for 127.0.0.1:
/data 10.220.5.0/24

 查看所共享的目录(客户端)

[root@65DRslave ~]# showmount -e 10.220.5.66
Export list for 10.220.5.66: <<<服务端ip
/data 10.220.5.0/24

 六,确保服务端客户端的时间一致(在生产环境中使用时间服务器保证时间同步,这次试验使用date命令同步)

[root@66~]# date 111016362018.00
Sat Nov 10 16:36:00 CST 2018     <<<服务端
[root@65 ~]# date 111016362018.00
Sat Nov 10 16:36:00 CST 2018   <<<客户端

七,在客户端挂载服务端所共享的目录(客户端)

格式:mount -t nfs nfs的ip地址:共享目录    挂载点

[root@65 ~]# mount -t nfs 10.220.5.66:/data /nfs

 八,查看是否挂载成功(客户端)

[root@65 ~]# mount
10.220.5.66:/data on /nfs type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=10.220.
5.65,local_lock=none,addr=10.220.5.66)
说明挂载成功

九,进入/nfs目录中,是否能创建目录

[root@65 nfs ~]# mkdir a
mkdir: cannot create directory ‘a’: Permission denied <<<发现没有权限

 由于服务器端的/data目录是挂载到客户端/nfs目录下,在/nfs目录下创建目录或者文件是是以root的身份,也有可能是普通用户,当

 在/nfs目录中创建文件或者文件时,是调用的服务器端的nfs,将所创建的目录或者文件写入到服务器端/data目录中的,是否能写入是有nfs决定了客户端是否有权限在/data目录中写东西,要想能写入东西,需要在服务端修改/data目录的权限

十,修改服务端权限

[root@66~]# chmod 777 /data <<<服务端  在工作中不要付权777,因为权限太大了,很危险

十一,在客户端再次创建目录,看看是否有权限

[root@65 ~]# mkdir abc  <<<客户端

发现有权限能创建了

 

 

配置文件:
/etc/exports: nfs主配置文件,用于共享目录,同时指定权限
/va/lib/nfs/etab: 这个记录了所共享的目录的详细权限属性信息

/usr/sbin/shoumount:查看nfs所共享的目录列表

/usr/sbin/rpcinfo: 查看rpc中注册的端口信息

/usr/sbin/exportfs :管理nfs的命令

实现类似于reload的方式:exportfs -rv

/etc/exports说明
nfs主配置文件,共享本地目录给其他主机
一行是一个共享的目录
格式:
[共享目录] [主机1(参数1,参数2....)] [主机1(参数1,参数2....)]

例子:
/data 10.220.5.0/25(rw) 192.168.6.0/24(ro)

主机的表示方式
1.单一主机:比如:192.168.6.22
2.整个网络: 比如:192.168.6.0/24
3.主机名
4.一个域:比如:baidu.com

参数的表示方式
ro:只读
rw:读写
sync:同步写入
async:异步写入
secure:限制客户端只能使用1024以下的端口链接nfs
insecure:运行nfs启动的时候用1024以上的端口
wdelay:多个用户要在nfs中进行写入操作的话,等有了多个写操作以后才一并执行(为了提升磁盘的IO性能)
no_wdelay:当用户在nfs执行写入的时候,立刻执行写入(当设置了aysnc,就不需要这个了)
hide:隐藏共享目录中的子目录
nohide:不隐藏
all_squash:无论你以哪个用户身份来使用nfs,都将用户身份转换为一个特定的用户
no_root_squash:如果你访问nfs的时候不是root身份,就将用户身份转换为一个特定的用户
root_squash:如果你访问nfs的时候是root身份,就将用户身份转换为一个特定的用户
anonuid & anongid:指定所所要转换成的那个用户的uid 和 gid

注意:
shoumount nfs-utils的的一个组件,如果客户端需要使用showmount,那么需要安装nfs-utils

nfs的自动挂载
挂载nfs的命令写入在/etc/rc.local中

注意:

 一般的设备,在实现开机自动挂载是时候,建议写在/etc/fstab中,但是nfs分区是不能写在/etc/fstab中,因为在系统启动过程中是先读取/etc/fstab挂载分区,然后在挂载网络模块

查看详细挂载选项/proc/mounts

选项

     hard:当RPC下线的时候,客户端无法联系大服务器,则会连续发请求,知道能联系到服务器

     soft:当RPC下线的时候,客户端无法联系大服务器,则会连续发请求,知道能联系到服务器

     fg:前台,在挂载的时候,如果无法联系到服务器端,会重复尝试,一直到挂载成功(前台进行)

     bg:后台,在挂载的时候,如果无法联系到服务器端,会重复尝试,一直到挂载成功(后台进行)

   rsize=#: 设置使用nfs进行读操作的时候,每次传输的吞吐块的大小

      wsize=#: 设置使用nfs进行读操作的时候,每次传输的吞吐块的大小

   

posted on 2018-11-15 21:05  soul颠覆了执着  阅读(192)  评论(0编辑  收藏  举报