暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

NFS在Linux下的安装、部署与应用

SunnyZhang的IT世界 2021-03-17
357

NFS文件系统是Sun公司开发的网络文件系统,也称为分布式文件系统,其基本原理是将某个设备本地文件系统通过以太网的方式共享给其它计算节点使用。也就是说,计算机节点通过NFS存储的数据是通过网络存储在另外一个设备,而不是存储在本地磁盘。

图1 NFS

网络文件系统最大的特点是可以实现多个计算节点对同一个存储设备的访问,从而提升存储的利用率,并简化存储管理难度。NFS分布式文件系统本身是客户端服务器架构模式。


本文将介绍如何基于Linux操作系统部署一个NFS文件系统服务,并且介绍如何在客户端进行使用。最后本文介绍一下其整体架构。


1基于CentOS的NFS服务安装配置


本节以CentOS 7为例介绍一下NFS服务的安装,这里的NFS服务是指Linux内核中的nfsd服务及配套的用户态程序。它是NFS分布式文件系统的服务端。当然,除了nfsd外,还有很多其它的NFS分布式文件系统服务端,比如用户态的Ganesha。但是,这些不在本文的范围内,今天我们主要介绍一下nfsd的安装和使用。


为了简化安装,我们将操作系统的防火墙和SELinux都关闭。关闭这些特性并不会影响NFS的功能,只是用来避免使用过程中出现一些问题。如果在生产环境,为了数据的安全,这些特性通常是需要开启的。下面我们就介绍一下如何安装及配置NFS服务。


步骤 1: 服务端安装

具体安装我们可以借助CentOS的软件包管理工具yum,具体安装命令如下所示:


    $ sudo yum install nfs-utils
    复制


    注意:只安装 nfs-utils 即可,rpcbind 属于它的依赖,会自动安装上。

    步骤 2: 服务端配置

    我们期望在操作系统启动的时候可以自动启动NFS服务,因此我们这里需要设置一下 NFS 服务开机启动,具体命令如下:


      $ sudo systemctl enable rpcbind
      $ sudo systemctl enable nfs
      复制



      软件安装后服务可能没有启动,这时需要手动启动一下 NFS 服务。如果已经启动了就不需要执行该步操作了。


        $ sudo systemctl start rpcbind
        $ sudo systemctl start nfs
        复制


        步骤 3: 配置共享目录

        完成上述操作后,NFS服务已经正常工作了,但是我们在客户端仍然没有办法访问该服务。这是因为此时NFS服务还没有配置导出的资源。接下来我们在服务端配置一个共享目录,也就是要导出的资源。首先要创建一个目录,并且修改该目录的权限:

          $ sudo mkdir data
          $ sudo chmod 755 data
          复制


          有了基本的资源后,我们就可以配置导出的目录了。NFS的配置非常简单,打开配置文件:

            $ sudo vi etc/exports
            复制


            在打开的文件中添加如下内容。

            /data/ 192.168.0.0/24(rw,sync,no_root_squash,no_all_squash)

            对于上述配置项的含义,我们解释如下:

            /data: 共享目录位置。

            192.168.0.0/24: 客户端 IP 范围,本文是限制某个子网,如果是* 代表没有限制。

            rw: 权限设置,可读可写。

            sync: 同步共享目录。

            no_root_squash: 可以使用 root 授权。

            no_all_squash: 可以使用普通用户授权。

            至此,我们已经完成nfsd服务的安装,重启一下nfs服务就可以使用了。为了确认是否安装成功,可以通过如下命令进行确认。

              showmount -e localhost
              复制


              如果该命令执行后有目录信息输出,那表示配置正确,否则应该是存在问题,需要具体定位。不过通常不会有什么问题。


              2基于Ubuntu的NFS服务安装与配置


              如果您使用的是Ubuntu的环境,那么也可以非常容易的安装NFS服务。具体方式是使用Ubuntu的软件包管理工具。以Ubuntu18.04为例,执行如下命令就可以完成安装:

                $sudo apt install nfs-kernel-server
                复制


                完成安装后,具体的配置与CentOS下的配置方法相同,本文不再赘述。

                NFS文件系统的挂载与使用


                构建NFS服务是为了使用,因此我们可以在另外一台机器进行挂载,并使用该文件系统。在挂载之前需要安装客户端必须的软件,具体步骤如下所示。


                步骤 1: 客户端安装

                首先需要在计算节点安装客户端软件,安装方法与服务端类似。

                  $ sudo yum install nfs-utils
                  复制


                  步骤 2: 客户端连接 NFS

                  先查服务端的共享目录,这里的IP地址是nfs服务器的地址。

                    $ showmount -e 192.168.0.101
                    复制


                    如果输入如下内容,说明目录导出成功,服务端的配置是没有问题。接下来就可以在客户端挂载服务端的目录了。


                    NFS目录挂着与本地文件系统一样。首先在客户端创建一个本地目录。

                      $ sudo mkdir mnt/data
                      复制


                      然后将服务端的目录挂载到本地。

                        $ sudo mount -t nfs 192.168.0.101:/data mnt/data
                        复制


                        正常情况就可以完成挂载,此时远程导出的目录就变成了本地目录树的一个分支。我们可以像使用本地文件系统一样使用NFS文件系统了。我们可以做个实验,在客户端写入一个文件,此时在服务端的目录中就可以看到新创建的文件。

                        为了简化配置,本文主要介绍了非生产环境NFS的配置和使用。如果要在生产环境使用,整个配置还是要复杂一些。我们在后面文章中会专门介绍生产环境如何进行NFS的配置,主要包括可用性和安全等方面的考虑。


                             文章后期可能会进行错误更正和内容更新关注我们更方便了解内容变化。



                        这是一个有温度的公众号



                        文章转载自SunnyZhang的IT世界,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                        评论