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

本指南描述了如何在Ubuntu 20.04 / 18.04和Debian 10/9 Linux服务器上安装和配置NFS服务器。网络文件系统(NFS)是一种分布式文件系统协议,它允许客户端计算机访问远程存储并通过共享网络以与本地访问相同的方式检索数据和文件。

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

NFS服务器Debian / Ubuntu配置

通过使用NFS共享存储,系统管理员可以在网络上的集中式服务器上整合资源。客户端系统可以访问远程共享(阅读和写作)具有特权,无法访问基础块存储。

支持的NFS版本

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

NFS版本3(NFSv3)

  • 支持安全的异步写入和比以前的NFSv2更强大的错误处理
  • 支持64位文件大小和偏移量,允许客户端访问大于2 GB的文件数据。

NFS版本4(NFSv4)

  • 通过防火墙和Internet工作
  • 不再需要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

状态为“跑步”。

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

步骤3:在Ubuntu 20.04 / 18.04和Debian 10/9上导出NFS共享

有两种方法可以在NFS服务器上配置导出。

  1. 手动编辑 /etc/exports 配置文件
  2. 使用 exportfs 命令行实用程序

/etc/exports 该文件控制将哪些文件系统导出到远程主机并指定选项。请遵循以下语法规则:

  • 空行将被忽略。
  • 要添加评论,请使用井号()。
  • 反斜杠长行()。
  • 每个导出的文件系统必须位于单独的行上。
  • 放置在导出文件系统之后的已批准主机列表必须用空格字符分隔。
  • 选件
    每个主机必须立即放在括号中
    主机标识符。主机和第一台主机之间没有空格
    括号。

准备NFS存储路径

在此设置中,我们向服务器添加了具有容量的辅助磁盘。 20 GB/开发/ 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

建立目录 /数据/ 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)

如果您不想限制对某些网络的访问, *)。如果您有多个子网需要访问本地网络上的存储,则此安全性较差,但配置较好。

/data/nfshare    *(rw,no_root_squash)

no_root_squash选项禁用根压缩。远程root用户可以具有root特权。在NFS共享上安装VM通常是必需的。

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

$ man exports

完成设置后, exportfs 该实用程序有选择地导出目录,而无需重新启动NFS服务。

$ sudo exportfs -rav
exporting 172.20.100.0/24:/data/nfshare
  • [R –在/ etc / lib / nfs / xtab中创建一个新的导出列表,并导出/ etc / exports中列出的所有目录。
  • 所有目录都已导出或未导出,具体取决于传递给exportfs的其他选项
  • v –详细操作–显示正在发生的事情

您也可以重新启动NFS服务器,而不是使用 exportfs 命令

sudo systemctl restart nfs-server 

步骤4:在客户端计算机上挂载NFS共享

现在,NFS服务器配置已完成,剩下的就是将NFS共享安装在客户端系统上。客户端可以是远程系统,同一服务器上的虚拟机或服务器本身。

如何在Ubuntu 20.04 / 18.04和Debian 10/9上配置NFS客户端

其他与存储相关的指南:

在RHEL 8 / CentOS 8上安装和配置NFS服务器

如何在CentOS / RHEL 8上配置NFS客户端

Sidebar