NFS

环境

第一步:服务端设置

1.安装 NFS

## 查看是否已安装
rpm -qa | egrep "nfs|rpcbind"

## 安装
yum install -y nfs-utils rpcbind

## 查看都安装了那些文件
rpm -ql nfs-utils
rpm -ql rpcbind

## 启动 rpcbind 并设置开机自动启动
systemctl enable rpcbind
systemctl stop rpcbind
systemctl start rpcbind
systemctl status rpcbind

## 启动 nfs 并设置开机自动启动
systemctl enable  nfs
systemctl stop  nfs
systemctl start  nfs
systemctl status  nfs

2.创建共享路径并设置权限

mkdir -p /home/Test
chmod 666 /home/Test

3.编辑 exports 文件

vim /etc/exports 
/home/Test      192.168.30.0/24(rw,syncm,no_root_squash)

    rw/ro           该目录分享的权限是可擦写 (read-write) 或只读 (read-only)
                    但最终能不能读写,还是与文件系统的 rwx 及身份有关。
    sync/async      sync 代表数据会同步写入到内存与硬盘中
                    async 则代表数据会先暂存于内存当中,而非直接写入硬盘

    no_root_squash\root_squash    客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?
                                预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody,如此对服务器的系统会较有保障。
                                但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行!
    all_squash      不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 啦!
    anonuid\anongid     anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody)
                        但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中!
                        anonuid 指的是 UID 而 anongid 则是群组的 GID 啰。

4.使配置生效

 exportfs -r

5.重启 rpcbind 和 nfs 服务

systemctl restart rpcbind
systemctl status rpcbind

systemctl restart  nfs
systemctl status  nfs

6.常用命令

## 查看 RPC 服务的注册状况
rpcinfo -p localhost
    -p :针对某 IP (未写则预设为本机) 显示出所有的 port 与 porgram 的信息;
    -t :针对某主机的某支程序检查其 TCP 封包所在的软件版本;
    -u :针对某主机的某支程序检查其 UDP 封包所在的软件版本;

## 在服务端测试是否可以联机
showmount -e localhost
    -a :显示目前主机与客户端的 NFS 联机分享的状态;
    -e :显示某部主机的 /etc/exports 所分享的目录数据。

## 查看服务端挂载了那些路径
cat /var/lib/nfs/etab

## 查看有多少客户端挂了在共享
cat /var/lib/nfs/rmtab

netstat -tulnp |grep -E '(rpc|nfs)'
ps -ef | egrep "rpc|nfs"

NFS 文件系统维护指令:

这个是维护 NFS 分享资源的指令,我们可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸除或重新分享等等,这个指令是 NFS 系统里面相当重要的一个喔!

/usr/sbin/exportfs

客户端查询服务器分享资源的指令:

这是另一个重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount 则主要用在 Client 端。这个 showmount 可以用来察看 NFS 分享出来的目录资源喔!

/usr/sbin/showmount

第二步:客户端配置

1.安装nfs-utils客户端

yum -y install nfs-utils

2.创建挂载目录

mkdir -p /Test

3.查看服务器抛出的共享目录信息

showmount -e 192.168.30.201

4.为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议

mount -t nfs 192.168.30.201:/home/Test /Test -o proto=tcp -o nolock

5.查看挂载结果

df -h

6.卸载已挂载的NFS

umount /Test
df -h

推荐阅读更多精彩内容

  • 1.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展...
    梅_苇名一心阅读 467评论 0 0
  • 上图所示问题在新版nfs 已经不存在 ,服务器端软件:安装nfs-utils和portmap(rpcbind)nf...
    不排版阅读 389评论 1 0
  • 一、服务器配置: 安装软件: yum -y install nfs-utils rpcbind 更改配置文件: v...
    济夏阅读 2,129评论 0 51
  • NFS的配置过程很简单。在服务器端中编辑/etc/exports文件,添加如下内容: /home/nfs-s...
    bycall阅读 3,835评论 0 1
  • ** 本文的实验环境为 CentOS6.9 ** NFS 是Network File System的缩写,即网络文...
    JSON_NULL阅读 9,004评论 1 3