码迷,mamicode.com
首页 > 其他好文 > 详细

centos7下NFS使用与配置

时间:2018-03-15 01:44:09      阅读:3180      评论:0      收藏:0      [点我收藏+]

标签:nfs   linuxnfs   centosnfs   

    NFS是Network File System的缩写,即网络文件系统。客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下。

一、NFS的工作流程

1、由程序在NFS客户端发起存取文件的请求,客户端本地的RPC(rpcbind)服务会通过网络向NFS服务端的RPC的111端口发出文件存取功能的请求。
2、NFS服务端的RPC找到对应已注册的NFS端口,通知客户端RPC服务。
3、客户端获取正确的端口,并与NFS daemon联机存取数据。
4、存取数据成功后,返回前端访问程序,完成一次存取操作。


所以无论客户端 和服务端都需要用NFS,必须安装RPC服务。

NFS的RPC服务,在Centos5下名为portmap,Centos6下名称为rpcbind.


二、Centos7搭建NFS服务器实例


服务器系统

角色

IP

CentOS7-150--server

NFS服务器端

192.168.10.150

CentOS7-151

-client

NFS客户端

192.168.10.151

共享CentOS7-150--server/data/bbs目录,使192.168.10.1 IP段所有主机都可以访问


1、因是测试环境,先关闭selinux和firewalld

1)关闭selinux

[root@service ~]# sed -i s#SELINUX=enforcing#SELINUX=disabled#g /etc/selinux/config

2)关闭firewalld防火墙

查看firewalld防火墙开机自动状态

[root@service ~]# systemctl list-unit-files|grep enable|grep firewalld
firewalld.service                             enabled

关闭firewalld防火墙开机自动启

[root@service ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

停止防火墙

[root@service ~]# systemctl stop firewalld.service

查看防火墙状态

[root@service ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon   
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)   
Active: inactive (dead)     
Docs: man:firewalld(1)Mar 14 18:52:24 localhost.localdomain systemd[1]: Starting firewalld - dynamic ....
Mar 14 18:52:24 localhost.localdomain systemd[1]: Started firewalld - dynamic f....
Mar 14 18:52:25 localhost.localdomain firewalld[573]: WARNING: ICMP type 'beyond...
Mar 14 18:52:25 localhost.localdomain firewalld[573]: WARNING: beyond-scope: INV...
Mar 14 18:52:25 localhost.localdomain firewalld[573]: WARNING: ICMP type 'failed...
Mar 14 18:52:25 localhost.localdomain firewalld[573]: WARNING: failed-policy: IN...
Mar 14 18:52:25 localhost.localdomain firewalld[573]: WARNING: ICMP type 'reject..
Mar 14 18:52:25 localhost.localdomain firewalld[573]: WARNING: reject-route: INV...
Mar 14 11:21:43 service systemd[1]: Stopping firewalld - dynamic firewall daemon...
Mar 14 11:21:43 service systemd[1]: Stopped firewalld - dynamic firewall daemon.Hint: Some lines were ellipsized, use -l to show in full.


2、服务端部署

1)检查系统版本及NFS服务nfs-utils 和rpcbind有没有安装

[root@service ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@service ~]# rpm -qa nfs-utils rpcbind

2)安装NFS服务nfs-untils和rpcbind

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

3)启动rpcbind服务(一定要先启动rpcbind服务再启动nfs服务)

查看rpcbind服务状态

[root@service ~]# systemctl status rpcbind.service

启动rpcbind服务

[root@service ~]# systemctl start rpcbind.service

查看rpc

[root@service ~]# lsof -i :111
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd    1 root   33u  IPv6  25136      0t0  TCP *:sunrpc (LISTEN)
systemd    1 root   38u  IPv4  25137      0t0  TCP *:sunrpc (LISTEN)
rpcbind 9227  rpc    4u  IPv6  25136      0t0  TCP *:sunrpc (LISTEN)
rpcbind 9227  rpc    5u  IPv4  25137      0t0  TCP *:sunrpc (LISTEN)
rpcbind 9227  rpc    8u  IPv4  33497      0t0  UDP *:sunrpc 
rpcbind 9227  rpc   10u  IPv6  33499      0t0  UDP *:sunrpc 
[root@service ~]# netstat -lntup|grep 
rpcbindudp     0      0 0.0.0.0:922             0.0.0.0:*                    9227/rpcbind        
udp        0      0 0.0.0.0:111             0.0.0.0:*                 9227/rpcbind        
udp6        0      0 :::922                  :::*                 9227/rpcbind        
udp6        0      0 :::111                  :::*                9227/rpcbind

查看nfs服务向rpc注册的端 口信息

[root@service ~]# 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

把rpcbind另入开机自启动

[root@service ~]# systemctl enable rpcbind.service
[root@service ~]# systemctl list-unit-files|grep enabled|grep rpcbind
rpcbind.socket                 enabled

4)启动NFS服务并查看其状态

[root@service ~]# systemctl start nfs.service
[root@service ~]# systemctl status nfs.service

把NFS服务加入开机自启动并查看其状态

[root@service ~]# systemctl enable nfs.service
[root@service ~]# systemctl list-unit-files|grep nfs

5)授权nfsnobody于/data/bbs让客户端挂载后可写可读

[root@service /]# chown nfsnobody:nfsnobody /data/bbs

6)创建测试目录及文件

[root@service ~]# mkdir /data/bbs -p
[root@service ~]# mkdir /data/bbs/test.txt

7)配置NFS服务的export文件

[root@service ~]# echo "/data/bbs/ 192.168.10.1/24(rw,sync,root_squash)">>/etc/exports

重新加载nfs配置文件

[root@service ~]# exportfs -rv
exporting 192.168.10.1/24:/data/bbs

查看nfs服务器挂载情况

[root@service ~]# showmount -e localhost
Export list for localhost:
/data/bbs 192.168.10.1/24


ro:目录只读
rw:目录读写
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
async:将数据先保存在内存缓冲区中,必要时才写入磁盘
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)
no_all_squash:与all_squash取反(默认设置)
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置)
no_root_squash:与rootsquash取反
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户


3、客户端配置

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

把rpcbind加入开机自启动

[root@localhost bbs]# systemctl enable rpcbind.service

创建测试目录文件

[root@localhost ~]# mkdir /data/bbs/ -p

扫描NFS服务器的文件共享列表

[root@localhost bbs]# showmount -e 192.168.10.150
Export list for 192.168.10.150:
/data/bbs 192.168.10.1/24

把服务器的目录挂载到客户端 的目录下

[root@localhost ~]# mount -t nfs 192.168.10.150:/data/bbs /data/bbs
[root@localhost ~]# df -h
Filesystem                Size  Used Avail Use% Mounted on
/dev/sda3                  18G 1004M   17G   6% /
devtmpfs                  479M     0  479M   0% /dev
tmpfs                    489M     0  489M   0% /dev/shm
tmpfs                     489M  6.8M  482M   2% /run
tmpfs                    489M     0  489M   0% /sys/fs/cgroup
/dev/sda1                  497M  112M  385M  23% /boot
tmpfs                    98M     0   98M   0% /run/user/0
192.168.10.150:/data/bbs   18G 1006M   17G   6% /data/bbs

三、数据测试

服务端

[root@service /]# cd /data/bbs
[root@service bbs]# touch a.txt

 客户端

[root@localhost ~]# ls /data/bbsa.txt


提示:   1.配置NFS服务端后,不用重启NFS服务,只要使用exportfs -rv
          2.rpc主程序Centos5.8下为portmap 、Centos6.4和Centos7下为rpcbind
          3.NFS共享目录不要授权于777权限,可以改所属主和组为nfsnobody,因为nfsnobody权限不是很大,也不能登陆

centos7下NFS使用与配置

标签:nfs   linuxnfs   centosnfs   

原文地址:http://blog.51cto.com/mrxiong2017/2087001

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!