安装和配置NFS服务器和客户端

安装和配置NFS Server

先介召如何在 Ubuntu18.04 安装NFS, 以后有空在补CentOS 7的内容.

Install NFS Kernel Server

第一步当然是安装包啦

$ sudo apt-get update -u && sudo apt-get install -y nfs-kernel-server

Create the Export Directory

创建需要共享的目录

$ sudo mkdir -p /home/ops/nfs/k8s
$ sudo mkdir -p /home/ops/nfs/tools

修改权限

$ sudo chown nobody:nogroup /home/ops/nfs/k8s
$ sudo chown nobody:nogroup /home/ops/nfs/tools
$ sudo chmod 777 /home/ops/nfs/k8s
$ sudo chmod 777 /home/ops/nfs/tools

将需要共享的目录添加到 /etc/exports.

Create one if this file does not exist.

$ sudo touch /etc/exports
$ sudo vim /etc/exports

Append following lines to the file above:

/home/ops/nfs/k8s               192.168.0.0/16(rw,sync,no_subtree_check)
/home/ops/nfs/tools             192.168.0.0/16(rw,sync,no_subtree_check)

括号内的参数选项的意义列举如下(来源于网络):

参数	        说明
rw              表示可读写
ro              Read-only表示只能读权限
Sync	        请求或者写入数据时,数据同步写入到NFS server的硬盘中后才会返回
no_root_squas	访问nfs server共享目录的用户如果是root的话,它对该目录具有root权限。这个配置原本为无盘用户准备的。用户应避免使用!
root_squash     对于访问NFS server共享目录的用户,如果是root的话会被压缩成为nobody用户身份。
all_squash      不管访问nfs server共享目录的用户身份如何包括root,它的权限都将被压缩成为匿名用户,同时他们的udi和gid都会变成nobody或nfsnobody账户的uid,gid。在多个nfs客户端同时读写nfs server数据时,这个参数很有用可以确保大家写入的数据的权限是一样的。
但不同系统有可能匿名用户的uid,gid不同。因为此处我们需要服务端和客户端之间的用户是一样的。比如说:服务端指定匿名用户的UID为2000,那么客户端也一定要存在2000这个账号才可以

Export the shared directory

$ sudo exportfs -a

exportfs命令参数不多,请执行 man exportfs 查看

最后为重启一下服务

$ sudo systemctl restart nfs-kernel-server

Open firewall for the client

如果有防火墙的需要把防火墙打开

Configuring the Client Machine

Install NFS Common

$ sudo apt-get update -y && sudo apt-get install -y nfs-common

创建挂载目录

$ sudo mkdir -p /data/nfs/tools

Mount the shared directory on the client

$ sudo mount 192.168.50.3:/home/ops/nfs/tools /data/nfs/tools

上面的命令在客户机重启的时候挂载目录就没了。要修改 /etc/fstab 文档,让机器重启后自动挂载.

启动时自动挂载NFS目录

修改 /etc/fstab, 在添加下面几行

192.168.50.3:/home/ops/nfs/tools    	/data/nfs/tools   nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

关于上面这行各参数的解释,可以参考下面的link:
https://linoxide.com/file-system/understanding-each-entry-of-linux-fstab-etcfstab-file/

你可能感兴趣的:(Linux)