NFS(网络文件系统)是一种分布式文件系统协议,它允许你在服务器上挂载远程目录。这意味着你可以在不同位置管理存储空间,并允许多个客户端写入该存储空间。NFS为通过网络访问远程系统提供了一种相对标准且高效的方式,适用于需要定期访问共享资源的情况。
具体来说,NFS 可以被理解为一种“虚拟硬盘”,它可以被多个计算机访问,即使这些计算机运行着不同的操作系统。
以下是 NFS 工作原理的简要介绍:
- 服务器-客户端架构:
- NFS服务器将目录导出(共享)给网络上的客户端。
- 客户端将这些导出的目录挂载,使其像本地存储一样可访问。
- 远程访问和共享:
- 客户端可以在挂载的目录上读取、写入和执行文件,就像它们是本地文件一样。
- 这使得多个机器之间的协作和数据共享更加高效。
NFS的优势包括:
- 集中式存储: 在单个位置管理存储空间,可供多个客户端访问。
- 跨平台兼容性: 适用于不同的操作系统(Linux、Windows、macOS 等)。
- 性能: 提供对远程文件的有效访问,适用于常规使用情况。
- 可扩展性: 通过添加更多NFS服务器轻松扩展存储容量。
- 灵活性: 为不同客户端配置不同级别的访问权限。
首先两台服务器A和服务器B,这两台服务器最好是局域网可以内网互相ping,公网按道理应该是也可以的,我没试过,感觉问题不大。
A服务器为客户端,内网地址为192.168.10.10
B服务器为主机(大盘鸡),内网地址为192.168.10.1
C服务器为主机(大盘鸡),内网地址为192.168.10.2
主机环境安装
首先在两台主机B和C上安装 nfs-kernel-server 软件包,具体命令如下:
sudo apt update
sudo apt install nfs-kernel-server
创建共享目录
创建共享目录是指这个目录可以共享给A客户端,如果你直接共享home等目录也行,就不需要创建了,创建目录命令如下。
sudo mkdir /共享的目录 -p
共享权限配置
使用root权限打开B主机目录 /etc/exports
文本编辑器贴入下方文本
/home 192.168.10.10(rw,sync,no_root_squash,no_subtree_check)
这个命令的意识就是把主机的home目录共享给客户的A,同理C主机也如同此命令
完成更改后,保存并关闭文件。然后使用以下命令重新启动 NFS 服务器B和C
sudo systemctl restart nfs-kernel-server
客户端环境
客户端A上安装 nfs-common 安装包,它提供 NFS 功能,但不包含任何服务器组件。命令如下。
sudo apt update
sudo apt install nfs-common
挂载目录
在客户端A上创建挂载目录,把B、C上的共享文件夹挂载到客户端A上,因此需要挂载2个目录,也就是需要创建两个文件夹。命令如下。
sudo mkdir -p /files1
sudo mkdir -p /files2
然后就是挂载主机目录B和C了,命令如下。
sudo mount 192.168.10.1:/home /files1
sudo mount 192.168.10.2:/home /files2
这样就挂载成功了,查看挂载命令
df -h
开机自动挂载
不废话,还是在目录 /etc/fstab
贴入下方命令。
sudo nano /etc/fstab
添加下方命令,表示开机将主机共享的文件夹自动挂载到files文件夹。
192.168.10.1:/home /files1 nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
192.168.10.2:/home /files2 nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
卸载客户端NFS
命令如下。
cd ~
sudo umount /files1
sudo umount /files2
同时记得删除 /etc/fstab
里面的计划任务哦。