NFS就是Network File System的缩写,是一个分布式文件系统。在一个PC中使用NFS工具搭建一个NFS服务器,然后其他PC安装NFS客户端工具,将网络中的NFS服务器共享的网络磁盘挂载到本地端的文件系统中。在NFS客户端就可以像操作自己本地的磁盘一样,操作这个共享的网络磁盘,在使用上相当便利。
这个共享的网络磁盘中的所有文件都是存储在NFS服务器端,NFS客户端不会存储备份。
下图中,Z盘挂载了NFS服务器分享出来的网络磁盘,操作Z盘就像操作C盘,D盘等本地的磁盘一样
NFS底层使用呢了RPC远程调用协议,这里不再做过多介绍,只讲一下如何配置和使用NFS服务器
搭建使用NFS服务器前必须要安装一些基础的工具,centos和ubuntu两个系统中的操作不同
首先安装基础工具包,客户端和服务器端安装不同的工具包
sudo apt-get install nfs-kernel-server # 安装 NFS服务器端
sudo apt-get install nfs-common # 安装 NFS客户端
启动NFS服务
sudo /etc/init.d/nfs-kernel-server start
首先安装基础工具包
sudo yum install -y nfs-utils
sudo yum install -y rpcbind
启动NFS服务
systemctl start rpcbind
systemctl enable rpcbind
systemctl start nfs-server nfs-secure-server
systemctl enable nfs-server nfs-secure-server
修改NFS的配置文件/etc/exports
,设置共享目录,centos系统和ubuntu系统中都是修改这个文件。
下面两行是在/etc/exports
文件中配置的两个共享目录,192.168.245.0/24的含义是ip地址的前24位必须是192.168.245。
/public 192.168.245.0/24(ro)
的含义是,将NFS服务器上的/public
目录共享给ip地址前24位是192.168.245的NFS客户端,这个目录对NFS客户端来说是只读的(ro)
。
如果想配置一个所有人都可以挂载的目录,那么可以使用通配符“*”
/public 192.168.245.0/24(ro)
/protected 192.168.245.0/24(rw)
/share *(rw)
参数 | 作用 |
---|---|
ro | 只读 |
rw | 读写 |
root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 |
no_root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 |
all_squash | 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 |
sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 |
async | 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 |
/etc/exports
文件配置完成后,使用命令使其生效:
ubuntu系统下使用命令:
/etc/init.d/nfs-kernel-server restart
centos系统下使用命令:
systemctl reload nfs
在NFS服务端配置完之后,需要在NFS客户端做一些配置来使用NFS服务端共享出来的文件存储空间。
第一步要查看一下NFS服务端共享出来的文件夹是否可用,使用命令:
showmount -e NFS服务器的ip地址
showmount命令参数:
参数 | 作用 |
---|---|
-e | 显示NFS服务器的共享列表 |
-a | 显示本机挂载的文件资源的情况NFS资源的情况 |
-v | 显示版本号 |
如果出现上图所示信息,表示NFS服务器可以正常使用。上图左侧是NFS服务器共享出来的目录,右侧是显示哪些ip的机器可以使用这个共享的目录。例如/home/k8spv
就只能由ip的前16位是10.108的机器进行使用。
确认共享目录可以进行挂载操作后,可以选择使用命令挂载或者修改配置文件,使用命令的方式,机器重启之后配置就会失效,所以一般通过修改配置文件的方式来挂载共享目录。修改/etc/fstab
vim /etc/fstab
如果需要将NFS服务器共享的/home/k8spv
目录挂载到NFS客户端的/home/kuber
目录下,则添加如下的配置
10.108.224.173:/home/kuber /home/kuber nfs defaults 0 0
这是配置一个可读可写的文件目录,如果配置只读文件目录,则最后一个值要设为1
10.108.224.173:/home/ro /home/protect nfs defaults 0 1
使用命令使文件/etc/fstab
生效:
mount -a
准备工作:
Windows系统下使用NFS经常会出现权限问题,所以使用前最好修改一下注册表。打开注册表:regedit, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default 下新建两个OWORD(64)位值,添加值AnonymousGid,值默认为0,AnonymousUid,值默认为0。
配置NFS目录:
第二步:在此电脑,映射驱动器中添加nfs地址,和要共享的文件夹。