在Ubuntu 20.04/18.04和Debian 10/9上安装和配置NFS服务器

时间:2020-02-23 14:32:54  来源:igfitidea点击:

本教程将解释如何在Ubuntu 20.04/18.04和Debian 10/9 Linux服务器上安装和配置NFS服务器。
网络文件系统(NFS)是一种分布式文件系统协议,它使客户端计算机能够以与本地访问的方式相同的方式访问远程存储和检索共享网络的数据和文件。

有一点要注意的是NFS是客户端和服务器文件系统(FS)。
在要安装NFS存储以访问其目录和文件的网络计算机上需要客户端应用程序。

通过使用NFS共享存储,系统管理员可以将资源整合到网络上的集中式服务器上。
客户端系统可以访问(读取,写)权限的远程共享,并且无法访问底层块存储。

支持的NFS版本

以下是Ubuntu 20.04/18.04和Debian 10/9支持的NFS版本:

NFS版本3(NFSv3)

有支持安全异步写入,并且在错误处理中比以前的NFSv2Supports 64位文件大小和偏移更强大,允许客户端访问超过2 GB的文件数据。

NFS版本4(NFSv4)

通过防火墙和InternetNo工作更长,需要RPCBind服务支持访问控制列表(ACL)使用状态操作。

在本教程中,我们将在Ubuntu 20.04/18.04和Debian 10/9系统上设置NFSV,下面几个步骤。
我们将在NFS客户端的配置中进行单独的教程。

第1步:更新服务器并设置主机名

服务器应具有静态IP地址和静态主机名,持续重启。

sudo apt update && sudo apt upgrade
sudo hostnamectl set-hostname nfs-server.example.com --static

第2步:在Ubuntu 20.04/18.04和Debian 10/9上安装NFS服务器

接下来是在Ubuntu 20.04/18.04和Debian 10/9系统上安装NFS服务器包。

sudo apt -y install nfs-kernel-server

安装后,启动和启用NFS-Server服务。

sudo systemctl enable --now nfs-server

状态应显示"运行"。

第3步:在Ubuntu 20.04/18.04和Debian 10/9上导出NFS股票

有两种方法可以在NFS服务器上配置导出。
编辑 /etc/exports配置文件填充 exportfs在命令行上的实用程序

/etc/exports文件控件将导出到远程主机的文件系统并指定选项。
它遵循以下语法规则:忽略空行。
添加注释,使用哈希标记(#)开始一行。
我们可以使用反斜杠()软件包长线。
每个导出的文件系统应在其自己的个人身上缠绕LINE.ANY授权主机列表输出的文件系统后必须用空格字符分隔。
每个主机的选项必须直接在主机标识符后直接放置在括号中,而没有任何空格分隔主机和第一个括号。

准备NFS存储路径

对于此设置,我将辅助磁盘添加到我的服务器,容量为20 gb - /dev/sdb。
我们将分区此磁盘并在其上创建文件系统以用作NFS共享。

$lsblk  | grep sdb
sdb             8:16   0   20G  0 disk 
# Create partition and file system
sudo parted -s -a optimal -- /dev/sdb mklabel gpt
sudo parted -s -a optimal -- /dev/sdb mkpart primary 0% 100%
sudo parted -s -- /dev/sdb align-check optimal 1
sudo mkfs.xfs /dev/sdb1

我们要将它安装到/数据目录。

sudo mkdir /data
echo "/dev/sdb1 /data xfs defaults 0 0" | sudo tee -a /etc/fstab
sudo mount -a

让我们检查设置以确认。

$df -hT | grep /data
/dev/sdb1             xfs        20G  176M   20G   1% /data

我将在/data/nfshare创建目录,该目录将导出到NFS客户端。

sudo mkdir  /data/nfshare

在Ubuntu/debian服务器上配置NFS导出

现在我们需要修改/etc/exports来配置NFS共享。
结构是:

export host(options)

也可以指定多个主机,以及每个主机的特定选项,如下面。

export host1(options1) host2(options2) host3(options3)

其中:导出是导出的目录是导出的主机或者网络,其中包含用于主机的选项列表

在我的设置中,我会给导出的文件系统是读写权限,以允许远程主机更改文件系统上共享的数据。
我的主机将是网络172.20.100.0/24.

所以我的线/etc/exports文件将是。

/data/nfshare           172.20.100.0/24(rw,no_root_squash)

如果我们不想限制对特定网络的访问,请使用Asterisk(*)。
如果我们有多个子网,则这不太安全,但更明智的配置,该子网应该在本地网络中访问存储。

/data/nfshare    *(rw,no_root_squash)

no_root_squash选项禁用root inashing - 使远程root用户能够具有root权限。
通常需要在NFS共享上的VM安装所必需的。

要了解有关可用选项的更多信息,请使用:

$man exports

完成设置后,在不重新启动NFS服务的情况下使用ExportFS实用程序选择性地导出目录。

$sudo exportfs -rav
exporting 172.20.100.0/24:/data/nfshare

R - 导致通过在/etc/lib/nfs/xtaba中构造一个新的导出列表导出/etc/export中列出的所有目录 - 所有目录都是导出或者未进出的,具体取决于其他选项被传递给ExportFSV - 详细操作 - 展示发生了什么

我们还可以重新启动NFS服务器而不是使用ExportFS命令。

sudo systemctl restart nfs-server

第4步:在客户端计算机上安装NFS共享

现在我们完成了NFS服务器配置,其余部分是在客户端系统上安装NFS共享。
客户端可以是远程系统,同一服务器上的虚拟机或者服务器本身。