NFS服务的使用

1、虚拟机参考(VMwear版本:17.0.0)

        使用本地PC环境的VMWare Workstation软件进行实操练习,镜像使用提供的CentOS-7-x86_64-DVD-2009,(注意:网卡需一张NAT即可)硬件资源如图3-1-1所示。

 图3-1-1 硬件资源

节点规划:

IP主机名节点
192.168.20.10

nfs-server

NFS服务节点
192.168.20.20nfs-clientNFS客户端节点

表3-3-1 节点规划

2、介绍

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

        为什么需要安装NFS服务?当服务器访问流量过大时,需要多台服务器进行分流,而这多台服务器可以使用NFS服务进行共享。(NFS服务是最基础的共享服务)

        NFS应用场景,常用于高可用文件共享,多台服务器共享同样的数据,可扩展性比较差,本身高可用方案不完善,取而代之的数据量比较大的可以采用MFS、TFS、HDFS等等分布式文件系统。

3、部署

1、基础配置

        修改两个节点的主机名,第一台机器为nfs-server;第二台机器为nfs-client。命令如下:

        nfs-server节点:

[root@nfs-server ~]# hostnamectl set-hostname nfs-server
[root@nfs-server ~]# hostnamectl 
   Static hostname: nfs-server
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 1d0a70113a074d488dc3b581178a59b8
           Boot ID: 7285608fd50c4da886e94c6a33873ed9
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-327.el7.x86_64
      Architecture: x86-64

        nfs-client节点:

[root@nfs-client ~]# hostnamectl set-hostname nfs-client
[root@nfs-client ~]# hostnamectl 
   Static hostname: nfs-client
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 06c97bdf0e6c4a89898aa7d58c6be2cc
           Boot ID: f07cf0f9d31e4b2185de0f8db7dd456b
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-327.el7.x86_64
      Architecture: x86-64

2、安装NFS服务

        nfs-client节点按照上一篇中的方法配置YUM源。(不熟练的小伙伴可以返回上一篇的FTP服务部署与使用,上面有配置yum源的详细步骤。)两个节点安装NFS服务。命令如下:

        nfs-server节点:

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

        nfs-client节点:

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

注意:安装NFS服务必须要依赖RPC,所以运行NFS就必须要安装RPC

3、NFS服务使用

        在nfs-server节点创建一个用于共享的目录,命令如下:

[root@nfs-server ~]# mkdir /mnt/test

        编辑NFS服务的配置文件/etc/exports,在配置文件中加入一行代码,命令如下:

[root@nfs-server ~]# vi /etc/exports
[root@nfs-server ~]# cat /etc/exports
/mnt/test 192.168.20.0/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)

        生效配置,命令如下:

[root@nfs-server ~]# exportfs -r

配置文件说明:

l /mnt/test:为共享目录(若没有这个目录,请新建一个)。

l 192.168.200.0/24:可以为一个网段,一个IP,也可以是域名。域名支持通配符,例如,*.qq.com。

l rw:read-write,可读写。

l ro:read-only,只读。

l sync:文件同时写入硬盘和内存。

l async:文件暂存于内存,而不是直接写入内存。

l no_root_squash:NFS客户端连接服务端时,如果使用的是root,那么对服务端共享的目录来说,也拥有root权限。显然开启这项是不安全的。

l root_squash:NFS客户端连接服务端时,如果使用的是root,那么对服务端共享的目录来说,拥有匿名用户权限,通常它将使用nobody或nfsnobody身份。

l all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端共享的目录来说,都拥有匿名用户权限。

l anonuid:匿名用户的UID(User Identification,用户身份证明)值,可以在此处自行设定。

l anongid:匿名用户的GID(Group Identification,共享资源系统使用者的群体身份)值。

        nfs-server端启动NFS服务,命令如下:

[root@nfs-server ~]# systemctl start rpcbind
[root@nfs-server ~]# systemctl start nfs

        nfs-server端查看可挂载目录,命令如下:

[root@nfs-server ~]# showmount -e 192.168.20.10
Export list for 192.168.20.10:
/mnt/test 192.168.20.0/24

        可以查看到共享的目录。

        转到nfs-client端,在客户端挂载前,先要将服务器的SELinux服务和防火墙服务关闭,命令如下:

[root@nfs-client ~]# setenforce 0
[root@nfs-client ~]# systemctl stop firewalld

        在nfs-client节点,进行NFS共享目录的挂载,命令如下:

[root@nfs-client ~]# mount -t nfs 192.168.20.10:/mnt/test /mnt/

        无提示信息则表示成功,查看挂载情况。命令如下:

[root@nfs-client ~]# df -h
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/centos-root    18G  878M   17G   5% /
devtmpfs                  903M     0  903M   0% /dev
tmpfs                     913M     0  913M   0% /dev/shm
tmpfs                     913M  8.6M  904M   1% /run
tmpfs                     913M     0  913M   0% /sys/fs/cgroup
/dev/sda1                 497M  125M  373M  25% /boot
tmpfs                     183M     0  183M   0% /run/user/0
/dev/sr0                  4.1G  4.1G     0 100% /opt/centos
192.168.200.10:/mnt/test  5.8G   20M  5.5G   1% /mnt

        可以看到nfs-server节点的/mnt/test目录已挂载到nfs-client节点的/mnt目录下。

4.验证NFS共享存储

        在nfs-client节点的/mnt目录下创建一个abc.txt的文件并计算MD5值,命令如下:

[root@nfs-client ~]# cd /mnt/
[root@nfs-client mnt]# ll
total 0
[root@nfs-client mnt]# touch abc.txt
[root@nfs-client mnt]# md5sum abc.txt 
d41d8cd98f00b204e9800998ecf8427e  abc.txt

        回到nfs-server节点进行验证,命令如下:

[root@nfs-server ~]# cd /mnt/test/
[root@nfs-server test]# ll
total 0
-rw-r--r--. 1 root root 0 Oct 30 07:18 abc.txt
[root@nfs-server test]# md5sum abc.txt 
d41d8cd98f00b204e9800998ecf8427e  abc.txt

        可以发现,在client节点创建的文件和server节点的文件是一样的。

4、总结

        使用NFS服务时,首先要理解它的基本原理——就像在宿舍里用一台电脑共享文件给其他同学。通过NFS,大家可以通过网络访问同一台服务器上的文件,仿佛那些文件就在自己电脑里一样。比如,小张和小李合作做一个项目,把所有文档放在NFS服务器上,他们俩可以通过mount命令把服务器上的文件夹挂载到自己的电脑里,像打开本地文件一样直接编辑。

        在使用过程中,我们还需要注意权限问题。例如,服务器可能会限制哪些人可以修改文件,所以,我们要合理设置权限。

        最后,假如某天突然无法访问共享文件,我们可以查看日志文件或者用showmount命令检查是否有挂载错误,就像当你打不开宿舍的共享打印机时,先看看有没有网络连接问题一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值