如何在Ubuntu12.04上设置NFS挂载

来自菜鸟教程
跳转至:导航、​搜索


状态: 已弃用

本文介绍了不再受支持的 Ubuntu 版本。 如果您当前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:

原因: Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL) and no longer receives security patches or updates. This guide is no longer maintained.

请参阅:
本指南可能仍可用作参考,但可能不适用于其他 Ubuntu 版本。 如果可用,我们强烈建议使用为您正在使用的 Ubuntu 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。


关于 NFS(网络文件系统)挂载

NFS 挂载用于在多个虚拟服务器之间共享一个目录。 这具有节省磁盘空间的优势,因为主目录只保存在一台虚拟专用服务器上,其他人可以通过网络连接到它。 设置挂载时,NFS 对于应该始终可访问的永久固定装置最有效。

设置

NFS 挂载设置在至少两个虚拟服务器之间。 托管共享网络的机器称为服务器,而连接到它的机器称为“客户端”。

本教程需要两台服务器:一台作为服务器,一台作为客户端。 我们将首先设置服务器机器,然后是客户端。 以下 IP 地址将引用每个地址:

大师:12.34.56.789

客户端:12.33.44.555

系统应设置为 root。 您可以通过键入访问 root 用户

sudo su-

设置 NFS 服务器

第一步——下载所需软件

首先使用 apt-get 安装 nfs 程序。

apt-get install nfs-kernel-server portmap

第二步——导出共享目录

下一步是决定我们要与客户端服务器共享哪个目录。 然后应将所选目录添加到 /etc/exports 文件中,该文件指定要共享的目录及其共享方式的详细信息。

假设我们想要共享两个目录:/home 和 /var/nfs。

因为 /var/nfs/ 不存在,我们需要做两件事才能导出它。

首先,我们需要自己创建目录:

mkdir /var/nfs/

其次,我们应该将目录的所有权更改为用户,nobody 和组,no group。 这些代表默认用户,客户端可以通过该用户访问通过 NFS 共享的目录。

继续并 chown 目录:

chown nobody:nogroup /var/nfs

完成这些步骤后,是时候将目录导出到其他 VPS 了:

nano /etc/exports

将以下行添加到文件底部,与客户端共享两个目录:

/home           12.33.44.555(rw,sync,no_root_squash,no_subtree_check)
/var/nfs        12.33.44.555(rw,sync,no_subtree_check)

这些设置完成多项任务:

  • rw: 此选项允许客户端服务器在共享目录中读取和写入
  • sync: Sync 仅在提交更改后才确认对共享目录的请求。
  • no_subtree_check: 此选项防止子树检查。 当共享目录是较大文件系统的子目录时,nfs 会扫描它上面的每个目录,以验证其权限和详细信息。 禁用子树检查可能会增加 NFS 的可靠性,但会降低安全性。
  • no_root_squash: 这句话允许root连接到指定目录

输入每个目录的设置后,运行以下命令将其导出:

exportfs -a

设置 NFS 客户端

第一步——下载所需软件

首先使用 apt-get 安装 nfs 程序。

apt-get install nfs-common portmap

第二步——挂载目录

将程序下载到客户端服务器后,创建将包含 NFS 共享文件的目录

mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs

然后继续安装它们

mount 12.34.56.789:/home /mnt/nfs/home
mount 12.34.56.789:/var/nfs /mnt/nfs/var/nfs

您可以使用 df -h 命令检查目录是否已挂载。 您将在列表中最后看到它们。

df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/sda                20G  948M   19G   5% /
udev                   119M  4.0K  119M   1% /dev
tmpfs                   49M  208K   49M   1% /run
none                   5.0M     0  5.0M   0% /run/lock
none                   122M     0  122M   0% /run/shm
12.34.56.789:/home      20G  948M   19G   5% /mnt/nfs/home
12.34.56.789:/var/nfs   20G  948M   19G   5% /mnt/nfs/var/nfs

此外,使用 mount 命令查看已安装文件系统的完整列表。

mount

您的列表应如下所示:

/dev/sda on / type ext4 (rw,errors=remount-ro,barrier=0) [DOROOT]
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw)
12.34.56.789:/home on /mnt/nfs/home type nfs (rw,vers=4,addr= 12.34.56.789,clientaddr=12.33.44.555)
12.34.56.789:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,vers=4,addr=12.34.56.78,clientaddr=12.33.44.555)

测试 NFS 挂载

成功挂载 NFS 目录后,您可以通过在客户端上创建文件并检查它们在服务器上的可用性来测试它们是否工作。

在每个目录中创建一个文件来尝试一下:

touch /mnt/nfs/home/example /mnt/nfs/var/nfs/example

然后,您应该能够在 /home 和 /var/nfs 目录中找到服务器上的文件。

ls /home
ls /var/nfs/

您可以通过将目录添加到客户端上的 fstab 文件来确保挂载始终处于活动状态。 这将确保挂载在服务器重新启动后启动。

nano /etc/fstab
12.34.56.789:/home  /mnt/nfs/home   nfs      auto,noatime,nolock,bg,nfsvers=3,intr,tcp,actimeo=1800 0 0
12.34.56.789:/var/nfs  /mnt/nfs/var/nfs   nfs     auto,noatime,nolock,bg,nfsvers=3,intr,tcp,actimeo=1800 0 0

您可以通过键入以下内容了解有关 fstab 选项的更多信息:

man nfs

任何后续重新启动都将包括 NFS 挂载 - 尽管重新启动后装载可能需要一分钟才能加载

您可以使用前面的两个命令检查已安装的目录:

df -h
mount

移除 NFS 挂载

如果您决定删除一个目录,您可以使用 umount 命令卸载它:

cd
sudo umount /directory name

您可以看到挂载已被删除,然后再次查看文件系统。

df -h

你应该会发现你选择的挂载目录不见了。

埃特尔·斯维尔德洛夫