菜单

此页面上的内容由机器翻译完成。某些内容的质量可能并不完美。

分享反馈

Linux NFS Server:如何设置服务器和客户端

目录

分享该页面

blank avatar
Jeff Whitaker

什么是 Linux NFS 服务器?

网络文件共享 (NFS) 是一种协议,允许您通过网络与其他 Linux 客户端共享目录和文件。共享目录通常在文件服务器上创建,运行 NFS 服务器组件。用户向其添加文件,然后与具有该文件夹访问权限的其他用户共享这些文件。

NFS 文件共享挂载在客户端计算机上,使其与用户在本地创建的文件夹一样可用。当磁盘空间有限并且需要在客户端计算机之间交换公共数据时,NFS 特别有用。

这是我们关于Linux on Azure的系列文章的一部分。

在本文中,您将学习:

快速教程 #1:使用 NFS 共享设置 NFS 服务器

让我们来看看如何设置 NFS 服务器并创建 NFS 文件共享,客户端计算机可以挂载和访问。

相关内容:构建自己的企业 NFS 服务

安装 NFS 服务器

以下是如何安装 NFS 内核——这是使计算机能够将目录公开为 NFS 共享的服务器组件。

在 Ubuntu 和 Debian 上:

sudo apt-get update sudo apt install nfs-kernel-server

在 CentOS 和 Fedora 上:

yum -y install nfs-utils apt-get install nfs-kernel-server

创建根 NFS 目录

我们现在将创建 NFS 共享的根目录,这也称为导出文件夹。

sudo mkdir /mnt/myshareddir

设置权限,以便客户端计算机上的任何用户都可以访问该文件夹(在现实世界中,您需要考虑该文件夹是否需要更严格的设置)。

sudo chown nobody:nogroup /mnt/myshareddir #no-one is owner sudo chmod 777 /mnt/myshareddir #everyone can modify files

在导出文件中定义 NFS 客户端的访问权限

要授予 NFS 客户端访问权限,我们需要定义导出文件。该文件通常位于 /etc/exports

在文本编辑器中编辑 /etc/exports 文件,并添加以下三个指令之一。

下面的所有指令都使用选项 rw,它启用读取和写入,sync,在允许用户访问修改的文件之前将更改写入磁盘,以及 no_subtree_check,这意味着 NFS 不会检查每个子目录是否对用户可访问。

要启用对单个客户端的访问 /mnt/myshareddir {clientIP}(rw,sync,no_subtree_check)
要启用对多个客户端的访问 /mnt/myshareddir {clientIP-1}(rw,sync,no_subtree_check) {clientIP-2}(...){clientIP-3}(...)
要启用对整个子网的访问 /mnt/myshareddir {subnetIP}/{subnetMask}(rw,sync,no_subtree_check)

使 NFS 共享对客户端可用

您现在可以使用 exportfs 命令使共享目录对客户端可用。运行此命令后,应重新启动 NFS 内核。

sudo exportfs -a #making the file share available sudo systemctl restart nfs-kernel-server #restarting the NFS kernel

如果您启用了防火墙,则还需要使用 sudo ufw allow 命令打开防火墙访问。

快速教程 #2:在客户端计算机上设置 NFS 并挂载 NFS 共享

现在我们已经设置了 NFS 服务器,让我们来看看如何通过在本地计算机上挂载 Linux 计算机来共享文件夹(定义为 NFS 共享)。

安装 NFS 客户端包

以下是在本地 Linux 计算机上启用挂载 NFS 共享需要安装的包。

在 Ubuntu 和 Debian 上:

sudo apt update sudo apt install nfs-common

在 CentOS 和 Fedora 上:

sudo yum install nfs-utils

临时挂载 NFS 文件共享

您可以将 NFS 文件夹挂载到本地计算机上的特定位置,称为挂载点,使用以下命令。

  1. 创建本地目录——这将是 NFS 共享的挂载点。在我们的示例中,我们将调用文件夹 /var/locally-mounted。
sudo mkdir /var/locally-mounted
  1. 通过运行 mount 命令挂载文件共享,如下所示。如果命令成功,则没有输出。
sudo mount -t nfs {IP of NFS server}:{folder path on server} /var/locally-mounted

例如:

sudo mount -t nfs 192.168.20.100:/myshareddir /var/locally-mounted

挂载点现在成为挂载的文件共享的根目录,在其下您应该找到存储在服务器上的 NFS 文件共享中的所有子目录。

  1. 要验证 NFS 共享是否已成功挂载,请运行 mount 命令或 df -h。

永久挂载 NFS 文件共享

在本地系统启动时,可以自动挂载远程 NFS 目录。您可以在 /etc/fstab 文件中定义这一点。为了确保在启动时本地挂载 NFS 文件共享,您需要在此文件中添加包含相关文件共享详细信息的行。

要在 Linux 上自动挂载 NFS 共享,请执行以下操作:

  1. 创建将用于挂载文件共享的本地目录。
sudo mkdir /var/locally-mounted
  1. 使用 nano 命令或任何文本编辑器编辑 /etc/fstab 文件。
  2. 添加定义 NFS 共享的行。在每个参数之间插入一个制表符。它应显示为一行,没有换行符。

最后三个参数表示 NFS 选项(我们将其设置为默认值)、文件系统转储和文件系统检查(通常不使用这些参数,因此我们将它们设置为 0)。

{IP of NFS server}:{folder path on server} /var/locally-mounted nfs defaults 0 0
  1. 现在使用以下命令挂载文件共享。下次系统启动时,将自动挂载文件夹。
mount /var/locally-mounted mount {IP of NFS server}:{folder path on server}

Azure NetApp Files:基于云的 NFS 服务器替换

Microsoft Azure 是一种流行的公共云服务,允许您在云中设置 NFS 文件共享,并从本地数据中心中的计算机或部署在 Azure 云中的计算机访问它们。

Azure NetApp Files 是一种为企业提供企业级高性能文件存储的云服务。它支持 NFS 版本 3.1 及更高版本。

Azure NetApp Files 支持所有类型的生产工作负载,并提供内置的高可用性。您可以选择服务的级别和性能,并执行数据的即时快照。

极致文件性能

利用业界领先的 NetApp 技术将最苛刻的 Linux 和 Windows 文件工作负载迁移到 Azure。Azure NetApp Files 提供亚毫秒的延迟和与本地裸机服务器相同的性能。

Azure NetApp Files 提供三个性能级别:标准、高级和 Ultra。您可以一键在任何层级中配置文件共享。

集成数据管理

Azure NetApp Files 与复杂的业务工作负载集成,例如 SAP HANA、高性能计算 (HPC)、业务线 (LOB) 应用程序和虚拟桌面基础架构 (VDI)。对于这些以及更多的企业工作负载,它为备份和快照提供了集成的数据管理和应用程序感知。

集中管理

您可以使用 Azure Portal 或 CLI、PowerShell 命令或 REST API 管理文件共享,就像任何其他 Azure 服务一样。Azure NetApp Files 在一个服务中支持多个存储协议,包括 NFSv3、SMB3.1.x 和 NFSv4.1。这允许您以"提升和转移"模式将工作负载转移到云,而无需更改代码。

放心迁移

在迁移大型企业工作负载时,rsync 数据传输是不够的。使用 Azure NetApp Files,您可以轻松管理大规模数据传输和同步。

该服务提供符合 FIPS 140-2 的数据加密、基于角色的访问控制 (RBAC)、Active Directory 身份验证和访问控制列表 (ACL)。Azure NetApp Files 符合 HIPAA、SOC 和 GDPR 等主要行业认证。这些以及其他企业级功能意味着您可以完全放心地将任何企业工作负载迁移到云中。

想开始吗?通过免费演示亲自查看 Azure NetApp Files

Drift chat loading