NFS(网络文件系统)服务部署
版权声明:原创作品,谢绝转载!否则将追究法律责任。 ————— 作者:kirin
存储服务器概念介绍—NFS
NFS是Network File System的缩写,中文意思是网络共享文件系统,
它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录
nfs服务优缺点:
优点:部署简单,配置简单,管理简单,节省成本
缺点:没有认证功能 不能在windows上部署 不具有高可用功能(主备份) -- keepalived
一、企业环境:实现数据共享存储
1. FTP服务器(windows--server-U) 部署安装麻烦 / 权限设置
2. samba软件 部署安装麻烦 windows linux系统都支持
3. 分布式存储 Moosefs(mfs)、GlusterFS、FastDFS
二、NFS存储服务器架构中作用
1. 实现数据共享同一存储,保证数据一致性
2. 降低公司架构服务器成本
三、NFS服务安装部署
服务端部署:
第一个历程:软件安装部署
# yum install -y nfs-utils rpcbind
第二个历程:编写配置文件
# vim /etc/exports
存储目录信息 主机地址或网段信息-进行安全访问控制(共享目录权限参数)
/data 172.16.1.0/24(rw,sync)
第三个历程:创建存储目录,并进行授权
# mkdir -p /data
第四个历程:启动程序服务
# systemctl status rpcbind
# systemctl start rpcbind
# systemctl enable rpcbind
# systemctl start nfs
# systemctl enable nfs
# systemctl status nfs
第五个历程:客户端进行检查验证(客户端需要先安装yum install -y nfs-utils rpcbind)
# rpcinfo -p 172.16.1.31/10.0.0.31 --- 检查nfs服务信息是否注册
# showmount -e 172.16.1.31/10.0.0.31 --- 检查是否有共享存储目录信息
客户端部署:
第一个历程:安装部署软件
# yum install -y nfs-utils
# systemctl status rpcbind
# systemctl start rpcbind
# systemctl enable rpcbind
# systemctl start nfs
# systemctl enable nfs
# systemctl status nfs
第二个历程:实现挂载存储目录
# mount -t nfs 172.16.1.31:/data /mnt
# df -h
第三个历程:通过客户端,执行创建文件的时候发下失败了的解决方法
# touch 123.txt
touch: cannot touch ‘123.txt’: Permission denied
##通过修改服务端的权限##
# cat /var/lib/nfs/etab
/data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)
anonuid=65534,anongid=65534 ##表示最终写入数据时,最终调用UID为65534的用户
####执行以下命令#####
# chown -R nfsnobody.nfsnobody /data/
再次写入就成功了
四、NFS存储服务存储原理
服务端:3件事
客户端:3件事
服务端注册进程信息:
# ps -ef|egrep "rpc|nfs"
rpc 1564 1 0 09:32 ? 00:00:00 rpcbind
rpc 1065 1 0 09:32 ? 00:00:00 rpc statd <- 检查数据存储一致性
root 4736 2 0 21:31 ? 00:00:00 [rpciod/0]
root 5363 1 0 21:47 ? 00:00:00 rpc.rquotad<- 磁盘配额进(remotequote server)
带宽 100M 限速 1个人10M 2个人10M
/ -- 分区大小10G /tmp 8G kirin1(6G) kirin2(2G) root (2G)
root 5368 1 0 21:47 ? 00:00:00 rpc.mountd <- 权限管理验证等(NFS mount daemon) root 5375 2 0 21:47 ? 00:00:00 [nfsd4]
root 5376 2 0 21:47 ? 00:00:00 [nfsd4_callbacks]
root 5377 2 0 21:47 ? 00:00:00 [nfsd] <- NFS主进程
root 5378 2 0 21:47 ? 00:00:00 [nfsd] <- NFS主进程
root 5379 2 0 21:47 ? 00:00:00 [nfsd] <- NFS主进程,管理登入,ID身份判别等。
root 5380 2 0 21:47 ? 00:00:00 [nfsd]
root 5381 2 0 21:47 ? 00:00:00 [nfsd]
root 5382 2 0 21:47 ? 00:00:00 [nfsd]
root 5383 2 0 21:47 ? 00:00:00 [nfsd]
root 5384 2 0 21:47 ? 00:00:00 [nfsd] <- NFS主进程
root 5415 1 0 21:47 ? 00:00:00 rpc.idmapd <- name mapping daemon用户压缩/用户映射(记录)
五、NFS配置文件参数说明
rw --- 设置共享目录权限为可读可写
ro --- 设置共享目录权限为只读
企业应用:开发人员想查看线上服务器数据 线下服务器权限
线下环境 线上环境不一致
sync --- 同步存储数据 数据传输到服务器--磁盘 保证数据安全性 存储服务器async --- 异步存储数据 数据传输到服务器--内存 保证数据传输效率
root_squash --- root用户传输数据需要做映射转换 nfsnobody
no_root_squash --- root用户传输数据不需要做映射转换 root
all_squash --- 普通用户传输数据需要做映射转换 nfsnobody
no_all_squash --- 普通用户传输数据不需要做映射转换 原来是什么用户,存储好的数据就是什么用户管理
六、企业中:如何进行配置
1. root是否应该做映射
no_root_squash:存储数据可以被客户端root用户随意改动
root_squash: 原有的其他用户文件不能查看,可以编辑 (推荐)
2. 其他用户是否应该做映射:
no_all_squash: 目录属主修改好,有效提高存储目录安全 (推荐)
all_squash: 安全性较低
------------------------------------------------------------------------------------
企业存储服务器部署方案:
服务端:
第一个历程:编写配置文件
# vim /etc/exports
/data 172.16.1.0/24(rw,sync,root_squash,no_all_squash)
第二个历程:修改好目录权限
# chown -R www. /data/
第三个历程:重启服务
# systemctl restart nfs
客户端:
第一个历程:进行挂载
# mount -t nfs 172.16.1.31:/data /mnt
七、NFS服务程序常见的问题总结:
1)服务权限不正确:
原因1:配置文件中权限参数书写不正确
原因2:目录本身权限不正确 755 nfsnobody
原因3:目录的权限具有继承关系
PS:尽量存储服务配置文件中不要出现父子关系
原因4:客户端挂载参数权限指定不正确
------------------------------------------------------------------------------------
2)错误信息:‘/data/w’: Stale file handle
文件句柄错误:存储服务端有共享目录取消了,客户端并没进行卸载
什么是卸载完整:cat /proc/mounts文件没有相关挂载信息了
解决:将所有挂载信息,进行卸载重新挂载
------------------------------------------------------------------------------------
3)存储服务无法进行启动:
当服务没有启动的时候,无法使用reload进行启动
------------------------------------------------------------------------------------
4)clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
原因:防火墙服务没有关闭 客户端 --- 访问 --- 服务端 111
------------------------------------------------------------------------------------
5)RPC: Program not registered
原因:rpcbind服务和nfs服务启动顺序不正确,nfs服务没有启动
解决:两个服务全关闭,再按照顺序启动
------------------------------------------------------------------------------------
6)无法卸载挂载目录:/data/w: device is busy
第一种方式:离开挂载目录进行卸载
第二种方式:强制卸载
umount -lf 挂载点目录
-l lazy(懒惰)
-f force(强制)
-----------------------------------------------------------------------------------
7)nfs实现restart重启==放大招(大招冷却时间cd)
在系统配置中/etc/sysconfig/nfs中指定了无敌时间的配置参数
NFSD_V4_GRACE=90
NFSD_V4_LEASE=90
NLM_GRACE_PERI0D=90
八、补充:运维异常问题三种大招 被人攻击了 负载过高
1. 服务重启
2. 操作系统重启
3. 服务或系统重装
------------------------------------------------------------------------------------存储服务重要文件/命令总结
/etc/exports 存储服务端配置文件
/usr/sbin/exportfs 负责平滑重启nfs服务
-----------------------------------------------------------------------------------实践操作:
[root@nfs01 r]# exportfs -rv
exporting 172.16.1.0/24:/data/w
exporting 172.16.2.0/24:/data/r
可以临时配置共享存储目录信息
exportfs -o rw,sync 172.16.1.0/24:/data
/usr/sbin/showmount 检查可用存储共享目录信息
/var/lib/nfs/etab nfs服务端默认配置信息记录文件(日志文件)
/proc/mounts 显示客户端挂载信息文件(默认挂载参数)
本文来自博客园,作者:kirin(麒麟),转载请注明原文链接:https://www.cnblogs.com/kirin365/articles/16343759.html