基于Multipass(Ubuntu) 部署NFS网络文件系统

NFS介绍

NFS是Network File System的缩写,是网络文件系统,它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录,主要存储用户上传的图片附件等信息。

NFS服务部署

  1. 先通过Multipass 创建nfsserver 节点(关于Multipass 请点击查看相关内容
#创建nfsserver 节点
% multipass launch --name nfsserver

#进入nfsserver 节点
% multipass shell nfsserver

#成功进入后,将会得到如下结果
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-109-generic aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Fri May  6 22:22:22 CST 2022

  System load:             0.03
  Usage of /:              27.2% of 4.68GB
  Memory usage:            19%
  Swap usage:              0%
  Processes:               101
  Users logged in:         0
  IPv4 address for enp0s1: 192.168.64.12
  IPv6 address for enp0s1: fd67:d40e:50d4:ad7b:5054:ff:fe81:c2b1


0 updates can be applied immediately.


The list of available updates is more than a week old.
To check for new updates run: sudo apt update

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

其中IP:\color{red}{192.168.64.12} 为容器可访问的IP地址。

  1. 开始安装服务端所需要的组件
% sudo apt-get install  -y nfs-kernel-server
  1. 创建需要共享的目录(例如/nfsdata/share)
$ sudo mkdir -p /nfsdata/share
  1. 配置好目录权限
$ sudo chown nobody:nogroup /nfsdata/share
$ sudo chmod 755 /nfsdata/share
  1. 修改关键配置文件:/etc/exports
sudo vim /etc/exports

#添加可指定客户端访问权限,
# /nfsdata/share 192.168.100.*(rw,sync,no_subtree_check)
#代表允许前缀为192.168.100. 的IP 可访问NFS
#如允许任意IP访问,则加入如下语句

/nfsdata/share *(rw,sync,no_subtree_check)

#配置参数说明
rw:读书
ro:只读
root_squash: 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
no_root_squash:当NFS客户端以root管理员访问时,映射为NFS服务器的root用户
all_squash: 不论NFS客户端使用什么身份帐号访问,均映射为NFS服务器的匿名用户
async:优先将数据保存到内存,然后再写入硬盘,这样效率更高,但可能会丢失数据。
sync: 同时将数据写入到内存与硬盘,保证不丢失数据。
  1. 检查nfs服务的目录
#重新加载配置
$ sudo exportfs -ra 

#查看共享的目录和允许访问的ip段
$ sudo showmount -e 

#正常会输出如下结果
#Export list for nfsserver:
#/nfsdata/share *

  1. 重启nfs服务使以上配置生效
$ sudo systemctl restart nfs-kernel-server

安装客户端进行验证

  1. 先在服务端的/nfsdata/share 创建一个测试文件
sudo vim /nfsdata/share/test.txt
#输入Hello NFS!

  1. 在本机"终端"新打一个multipass client 节点,可以名为nfsclient
#创建nfsclient 节点
% multipass launch --name nfsclient

#进入nfsclient 节点
% multipass shell nfsclient
  1. 安装NFS 客户端
% sudo apt-get install -y nfs-common
  1. 开始进行挂载
#先创建一个待挂载目录
sudo mkdir /nfsdata

#进行对192.168.64.12 NFS服务端挂载

sudo mount -t nfs -o nolock,nfsvers=3 192.168.64.12:/nfsdata/share /nfsdata

  1. 验证
ls /nfsdata
#输出结果
#test.txt

#发现出现了之前在server创建的文件,代表挂载成功。

#同时查看一下 磁盘信息
df -h
#得到(192.168.64.12:/nfsdata/share)的挂载信息
Filesystem                    Size  Used Avail Use% Mounted on
udev                          453M     0  453M   0% /dev
tmpfs                          97M  1.1M   96M   2% /run
/dev/sda1                     4.7G  1.3G  3.4G  28% /
tmpfs                         485M     0  485M   0% /dev/shm
tmpfs                         5.0M     0  5.0M   0% /run/lock
tmpfs                         485M     0  485M   0% /sys/fs/cgroup
/dev/loop0                     58M   58M     0 100% /snap/core20/1408
/dev/loop1                     38M   38M     0 100% /snap/snapd/15183
/dev/loop2                     62M   62M     0 100% /snap/lxd/22761
/dev/sda15                     98M  290K   98M   1% /boot/efi
tmpfs                          97M     0   97M   0% /run/user/1000
192.168.64.12:/nfsdata/share  4.7G  1.3G  3.4G  28% /nfsdata
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容