一、NFS概述
1、简介
NFS是一种基于TCP/IP传输的网络文件系统协议。
NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。
2、软件包下载
在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务。
nfs-utils:用于 NFS 共享发布和访问;nfs的端口号为2049
rpcbind:用于 RPC 支持,实现远程共享调用;rpc端口号为111
检查软件包的下载:rpm -q rpcbind nfs-utils
软件包下载:yum install -y nfs-utils rpcbind
注:手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。
3、 NFS相关配置文件及其配置作用
配置文件路径:/etc/exports
格式:共享的目录位置 客户机地址(权限选项)
客户机地址 | 可以是主机名、IP 地址、网段地址,允许使用“*”、“?”通配符 |
“rw” | 表示允许读写 |
“ro” | 表示为只读 |
sync | 表示同步写入到内存与硬盘中。 |
no_root_squash | 表示当客户机以root身份访问时赋予本地root权限(默认是root_squash) |
root_squash | 表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户 |
二、搭建NFS共享服务
步骤一
初始化操作
[root@server ~]# systemctl stop firewalld
[root@server ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@server ~]# setenforce 0
[root@server ~]# vim /etc/selinux/config
为了方便识别,分别将两台虚拟机主机名设置为server与client
[root@localhost ~]# hostname server
[root@localhost ~]# su
[root@server ~]#
[root@localhost ~]# hostname client
[root@localhost ~]# su
[root@client ~]#
步骤二
在服务端安装nfs-utils与rpcbind,nfs-utils两个软件
[root@server ~]# yum -y install rpcbind
[root@server ~]# yum -y install nfs-utils
步骤三
在NFS服务器中建立一个用于共享的目录
[root@server ~]# mkdir -p /share
[root@server ~]# chmod 777 /share
步骤四
在服务端更改NFS配置,对访问用户进行限制
vim /etc/exports#写入如下内容:
/share 192.168.10.0/24(rw,sync,no_root_squash)# share:需要共享的文件目录
# 192.168.10.0/24:允许访问的网段
# rw,sync,no_root_squash:rw可读写,sync同步,no_root_squash:root远程用户使用时不降权
步骤五
服务端进行rpcbind服务启动,再进行nfs服务启动
查看服务是否启动
[root@server ~]# netstat -natp | grep rpc*tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 8514/rpcbind
tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 18347/rpc.mountd
tcp 0 0 0.0.0.0:37237 0.0.0.0:* LISTEN 18327/rpc.statd
tcp6 0 0 :::111 :::* LISTEN 8514/rpcbind
tcp6 0 0 :::20048 :::* LISTEN 18347/rpc.mountd
tcp6 0 0 :::43906 :::* LISTEN 18327/rpc.statd
查看本机发布的共享服务
showmount -e (后面可以跟指定的IP)
到此,NFS的服务端就配置完成了,下面来配置客户端 。
步骤六
客户端安装nfs服务,并且打开服务
[root@client ~]# yum -y install rpcbind nfs-utils
客户端查看服务端发布的共享服务
步骤七
使用mount命令将远程NFS服务器挂载到本地
实现自动挂载
vim /etc/fstab
保存退出后,进行 mount -a 进行挂载刷新
步骤八
测试
注:强制卸载 NFS
如果服务器端NFS服务突然间停掉了,而客户端正在挂载使用时,在客户端就会出现执行 df -h 命令卡死的现象。这个时候直接使用umount 命令是无法直接卸载的,需要加上 -lf 选项才能卸载。
umount -lf /share