搭建
NFS(Network File System)是一个允许文件在网络上通过RPC远程读取和写入的协议。在Linux环境下,我们可以使用NFS搭建文件共享服务,方便用户在多台计算机之间共享文件。CentOS7是目前比较常用的Linux操作系统,本文将介绍如何在CentOS7上搭建NFS服务器,供主机间共享文件。
1.NFS服务器搭建
首先安装NFS服务器,可以使用yum命令进行安装。
```shell
sudo yum install -y nfs-utils rpcbind
```
完成安装后,启动RPC绑定服务和NFS服务,开机自启动。
```shell
sudo systemctl enable rpcbind
sudo systemctl start rpcbind
sudo systemctl enable nfs-server
sudo systemctl start nfs-server
```
接着,创建共享目录,并设置共享权限。
```shell
sudo mkdir /share
sudo chmod -R 777 /share
```
编辑/etc/exports文件,将需要共享的目录写入其中。
```shell
sudo vi /etc/exports
```
在文件中添加一行配置信息,指定IP地址和共享目录。
```conf
/share 192.168.1.0/24(rw,async,no_root_squash,no_subtree_check)
```
其中,“/share”为共享目录,“192.168.1.0/24”为需要访问此目录的IP地址,rw表示允许访问并修改目录,async表示异步读写,no_root_squash表示允许root用户访问,并将root用户的访问映射为nfsnobody用户,no_subtree_check表示不检查子树。
最后,重新加载NFS服务。
```shell
sudo exportfs -arv
```
至此,NFS服务器搭建完成。可以在其他主机上进行测试,是否能够访问到此共享目录。
2.NFS客户端连接
在其他Linux主机上,使用mount命令挂载NFS共享目录即可。
```shell
sudo mount -t nfs 192.168.1.100:/share /mnt
```
其中,“192.168.1.100”为NFS服务器的IP地址,“/share”为共享目录的路径,“/mnt”为挂载点的路径。
为了方便在每次开机后自动挂载NFS共享目录,可以将挂载命令添加到/etc/fstab文件中。
```shell
sudo vi /etc/fstab
```
在文件中添加一行,指定需要挂载的配置信息。
```conf
192.168.1.100:/share /mnt nfs defaults 0 0
```
3.NFS共享设置
NFS共享不仅可以设置共享目录和权限,还可以设置共享选项,使得文件传输更加高效、稳定。以下是一些常用的NFS共享选项。
(1)sync:同步写入。
(2)async:异步写入。
(3)ro:只读共享。
(4)no_root_squash:允许root用户访问,并将root用户的访问映射为nfsnobody用户。
(5)root_squash:将root用户的访问映射为nfsnobody用户。
(6)all_squash:将所有用户的访问映射为nfsnobody用户。
(7)no_acl:禁用ACL权限管理。
可以在/etc/exports文件中添加这些选项,动态调整共享设置。
4.NFS性能优化
如果NFS服务器和客户端在同一个局域网内,性能通常较好。但是如果跨越不同的网络,在传输大文件时就可能遇到性能瓶颈。可以通过一些方法进行NFS性能优化,提升文件传输速度和稳定性。
(1)调整块大小:NFS默认块大小为4KB,可以通过在/etc/nfs.conf文件中添加如下配置,将块大小调整为32KB。
```conf
[rpc]
nfsd=tcp,udp
nfs-secure=tcp,udp
mountd=tcp,udp
rpc-bind=tcp,udp
[nfsd]
nfsd-threads=8
nfsd-max-threads=32
block-size=32768
```
注意,只有CentOS7.3以上的版本才支持此项配置。
(2)启用高速缓存:可以使用NFS缓存,使得文件在 NFS客户端端本地缓存,减少NFS服务器的访问压力。缓存的大小可以通过在客户端中设置一下参数来调整。
```shell
sudo mount -t nfs -o rsize=32768,wsize=32768,proto=tcp,hard,intr,noatime 192.168.1.100:/share /mnt
```
其中,rsize和wsize为读写块大小,proto为传输协议,hard表示设置超时时间,intr表示可以通过Ctrl+C中断挂载操作,noatime表示关闭文件的虚拟访问时间。
5.
扫码咨询 领取资料