您的位置 首页 linux 运维

linuxNFS服务器搭建(linux nfs挂载) nfs安装

大家好,我是你的好朋友白眉大叔,今天这篇文章主要讲解 : linux 服务器端配置nfs

NFS 的作用: network file system 网络文件系统 ,在企业中主要用来做 文件存储服务器, 用来存放静态的资源,比如图片,视频等。

其他分布式文件系统: FastDFS, glusterfs, HDFS

不管是 rsync  还是其他的的系统,只要是网络传输的,都要进行打包操作。打包的优点

NFS 原理:

1.用户进程访问NFS客户端,使用不同的函数对数据进行处理
2.NFS客户端通过TCP/IP的方式传递给NFS服务端。
3.NFS服务端接收到请求后,会先调用portmap进程进行端口映射。
4.nfsd进程用于判断NFS客户端是否拥有权限连接NFS服务端。
5.Rpc.mount进程判断客户端是否有对应的权限进行验证。
6.idmap进程实现用户映射和压缩
7.最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,由内核驱动硬件。

注意: rpc是一个远程过程调用,那么使用nfs必须有rpc服务

RPC是远程过程调用(Remote Procedure Call)

接下来我们进行NFS服务器的搭建:

环境准备

注意: 不要忘记关闭防火墙, 以免默认的防火墙策略禁止正常的NFS共享服务

关闭防火墙:linux关闭防火墙命令

 

第一步: 安装NFS服务

yum -y install nfs-utils  (服务端客户端都需要安装, 服务端需要设置配置, 客户端 用showmount -e ip 的时候会使用)

第2步: 配置NFS服务 (相关配置文件: /etc/exports)

vim /etc/exports (注意里边的空格不能随便添加尤其是括号里边的)

 

可以这样:

echo "/mnt/nfs/k8sdata *(rw,sync,no_root_squash)" >> /etc/exports 

 #表示所有客户端可挂载

/mnt/nfs/k8sdata

 

需要创建一个 虚拟用户 www

groupadd -g666 www

useradd -u666 -g666 -M -s /sbin/nologin www

mkdir /data

chown www.www /data

exports 案例:

[root@nfs ~]#cat /etc/exports
/data/wordpress 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
/data/zh 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
/data/phpshe 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

第3步: 启动NFS服务

systemctl start nfs

systemctl enable nfs

 

第4步: 检查NFS配置文件是否正确

cat /var/lib/nfs/etab

到此为止, NFS的服务端已经配置好了,

showmount -e

 

NFS 客户端使用:

第1步: 客户端需要暗转nfs 服务,不需要启动nfs服务

yum -y install nfs-utils

第2步: 查看服务端共享的目录(是否能查到)

showmount -e 172.16.1.31

mount -t nfs 172.16.1.31:/data /mnt

-t (type)

第3步:挂载

mount -t nfs 172.16.1.31:/data/a /mnt/

umount  /mnt

第4步: 开机自动挂载:

/etc/rc.local   加 X 执行权限

/etc/fstab(也可以开机自动挂载,但是 在centos7中有并行 运行的隐患, 比如某个需要访问网络的服务 可能会优先fstab 执行。)所以最好有网络请求的 放在 /etc/rc.local中

 

 

 

 

NFS配置详解(配置参数)

n

fs共享参数

参数作用
rw* 读写权限
ro 只读权限
root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户(不常用)
no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员(不常用)
all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户(常用)
no_all_squash 无论NFS客户端使用什么账户访问,都不进行压缩
sync* 同时将数据写入到内存与硬盘中,保证不丢失数据
async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
anonuid* 配置all_squash使用,指定NFS的用户UID,必须存在系统
anongid* 配置all_squash使用,指定NFS的用户UID,必须存在系统

NFS共享存储实战(原)

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章