网络文件共享 (NFS) 是一种协议,允许您通过网络与其他 Linux 客户端共享目录和文件。共享目录通常在文件服务器上创建,运行 NFS 服务器组件。用户向其添加文件,然后与具有该文件夹访问权限的其他用户共享这些文件。
NFS 文件共享挂载在客户端计算机上,使其与用户在本地创建的文件夹一样可用。当磁盘空间有限并且需要在客户端计算机之间交换公共数据时,NFS 特别有用。
这是我们关于Linux on Azure的系列文章的一部分。
在本文中,您将学习:
让我们来看看如何设置 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 共享的根目录,这也称为导出文件夹。
sudo mkdir /mnt/myshareddir
设置权限,以便客户端计算机上的任何用户都可以访问该文件夹(在现实世界中,您需要考虑该文件夹是否需要更严格的设置)。
sudo chown nobody:nogroup /mnt/myshareddir #no-one is owner sudo chmod 777 /mnt/myshareddir #everyone can modify files
要授予 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) |
您现在可以使用 exportfs 命令使共享目录对客户端可用。运行此命令后,应重新启动 NFS 内核。
sudo exportfs -a #making the file share available sudo systemctl restart nfs-kernel-server #restarting the NFS kernel
如果您启用了防火墙,则还需要使用 sudo ufw allow 命令打开防火墙访问。
现在我们已经设置了 NFS 服务器,让我们来看看如何通过在本地计算机上挂载 Linux 计算机来共享文件夹(定义为 NFS 共享)。
以下是在本地 Linux 计算机上启用挂载 NFS 共享需要安装的包。
在 Ubuntu 和 Debian 上:
sudo apt update sudo apt install nfs-common
在 CentOS 和 Fedora 上:
sudo yum install nfs-utils
您可以将 NFS 文件夹挂载到本地计算机上的特定位置,称为挂载点,使用以下命令。
sudo mkdir /var/locally-mounted
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 文件共享中的所有子目录。
在本地系统启动时,可以自动挂载远程 NFS 目录。您可以在 /etc/fstab 文件中定义这一点。为了确保在启动时本地挂载 NFS 文件共享,您需要在此文件中添加包含相关文件共享详细信息的行。
要在 Linux 上自动挂载 NFS 共享,请执行以下操作:
sudo mkdir /var/locally-mounted
最后三个参数表示 NFS 选项(我们将其设置为默认值)、文件系统转储和文件系统检查(通常不使用这些参数,因此我们将它们设置为 0)。
{IP of NFS server}:{folder path on server} /var/locally-mounted nfs defaults 0 0
mount /var/locally-mounted mount {IP of NFS server}:{folder path on server}
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 等主要行业认证。这些以及其他企业级功能意味着您可以完全放心地将任何企业工作负载迁移到云中。