【分布式存储】centos7 NFS 安装使用(验证好用)

https://qizhanming.com/blog/2018/08/08/how-to-install-nfs-on-centos-7

NFS 实验:

1. centos7客户端

实验环境

服务端:192.168.3.108(centos7) 客户端:192.168.3.109(centos7) 客户端:192.168.3.102 (windows 10)

服务端:
sudo yum -y install nfs-utils

设置 NFS 服务开机启动
$ sudo systemctl enable rpcbind
$ sudo systemctl enable nfs

启动 NFS 服务
$ sudo systemctl start rpcbind
$ sudo systemctl start nfs

防火墙需要打开 rpc-bind 和 nfs 的服务
// 我已经关闭了防火墙。下面命令skip
//$ sudo firewall-cmd --zone=public --permanent --add-service={rpc-bind,mountd,nfs}
//success
//$ sudo firewall-cmd --reload
//success

服务启动之后,我们在服务端配置一个共享目录
$ sudo mkdir /data_nfs
$ sudo chmod 755 /data_nfs
根据这个目录,相应配置导出目录

$ sudo vi /etc/exports
添加如下配置
/data_nfs/     192.168.3.0/24(rw,sync,no_root_squash,no_all_squash)

$ sudo systemctl restart nfs

可以检查一下本地的共享目录
$ showmount -e localhost
Export list for localhost:
/data_nfs 192.168.0.0/24
这样,服务端就配置好了,接下来配置客户端,连接服务端,使用共享目录。
客户端
与服务端类似

$ sudo yum -y install nfs-utils

客户端配置

设置 rpcbind 服务的开机启动
$ sudo systemctl enable rpcbind

启动 NFS 服务
$ sudo systemctl start rpcbind

先查服务端的共享目录
$ showmount -e 192.168.3.108
Export list for 192.168.3.108:
/data_nfs 192.168.3.0/24

在客户端创建目录
$ sudo mkdir /data_nfs

挂载
$ sudo mount -t nfs 192.168.3.108:/data_nfs /data_nfs

挂载之后,可以使用 mount 命令查看一下
$ mount

**测试 NFS**
测试一下,在客户端向共享目录创建一个文件

$ cd /data_nfs
$ sudo touch a

之后取 NFS 服务端 192.168.3.108 查看一下
$ cd /data_nfs
$ ll
total 0
-rw-r--r--. 1 root root 0 Aug  8 18:46 a
可以看到,共享目录已经写入了。


**客户端自动挂载**
自动挂载很常用,客户端设置一下即可。

$ sudo vi /etc/fstab
在结尾添加类似如下配置
#
# /etc/fstab
# Created by anaconda on Thu May 25 13:11:52 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=414ee961-c1cb-4715-b321-241dbe2e9a32 /boot                   xfs     defaults        0 0
/dev/mapper/cl-home     /home                   xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
192.168.3.108:/data_nfs     /data_nfs                   nfs     defaults        0 0

由于修改了 /etc/fstab,需要重新加载 systemctl。
$ sudo systemctl daemon-reload

之后查看一下
$ mount

此时已经启动好了。如果实在不放心,可以重启一下客户端的操作系统,之后再查看一下。

windows客户端(win10)

Windows 客户端

Windows 安装 NFS 客户端,不同的 Windows 版本,安装方式不大一样,本例列举几个。

1,Windows 步骤
  • Windows Server 2008 servermanagercmd.exe -install FS-NFS-Services
  • Windows 7 程序和功能 - 启动或关闭 Widnows 功能 - NFS 服务
  • Windows Server 2012 添加功能角色 - 添加文件打印服务 - NFS 客户端
  • Windows 10 程序和功能 - 启动或关闭 Widnows 功能 - NFS 服务
2,客户端安装

本例的 Windows 为 Windows 10 https://www.jianshu.com/p/edc928e58183 参考

3,客户端配置
3.1 先去服务端确认一下(其实没必要)

首先要了解服务端的文件夹权限,本例服务端 /data 目录的所有者为 root,查看一下 root 用户的信息

$ sudo id root
uid=0(root) gid=0(root) groups=0(root)
可以看到 uid=0, gid=0,需要在 Windows 客户端上进行配置,参考 UID/GID using the registry entries

注意 本例以 root 为例,生产环境要考虑安全因素,请修改为相应的有权限的用户

3.2 回到 Windows 进行配置

C:> mount 192.168.3.108:/data_nfs X: 这样,就将 NFS 服务端的共享文件夹挂载到了本地的 X: 盘,

也可以卸载掉这个驱动器,使用如下命令: C:> umount X:

<font color=red> 注意: 通过此命令操作挂载,当服务器重启时,不会自动挂载。</font>

4 登录时自动挂载,进行如下步骤
  • 点击此电脑
  • 在弹出的计算机对话框中,在工具栏找到 映射网络驱动器
  • 驱动器地址输入 X:
  • 文件夹输入 192.168.3.108:/data_nfs
  • 确认 登录时重新连接 是勾选的,这个配置表示登录时自动挂载共享目录。
5. 客户端测试

Windows 操作都是有界面的,本例不做具体截图,可以点击进入 X 盘,创建文件夹试试,然后新建文件试试。

如果有问题,请确认一下服务端的文件加权限。

  • 没有创建文件的权限。

→ 修改3.108上/data_nfs目录权限为 777 . 然后就可以了。 莫名其妙!

Written on July 8, 2020