Linux(10):期中架构--- NFS存储服务
Posted neozheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux(10):期中架构--- NFS存储服务相关的知识,希望对你有一定的参考价值。
1. 共享存储服务概念:
# NFS是Network File System的缩写,中文意思是网络文件系统, # 它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。
2. NFS共享存储服务的应用:
# 将数据存储到一台服务器上,实现数据统一一致,共享访问 # NFS存储服务器中主要存储哪些信息:用户上传的图片 音频 视频 附件等信息 # NFS服务是分为服务端和客户端 # 存储服务器:NFS服务端 网站web服务器:NFS客户端 # 实现共享存储好处: 01. 实现数据统一一致 02. 节省网站磁盘资源 03. 节省网站访问带宽
3. NFS共享存储服务的原理:
①. nfs服务端创建共享存储目录
②. nfs客户端创建远程挂载点目录
③. nfs客户端进行远程挂载
④. 实现客户端数据信息统一一致
4. NFS服务重要概念说明:
4.1 NFS共享文件系统RPC服务介绍
4.2 NFS共享文件系统RPC服务由来:
# NFS服务启动进程和端口过程,需要由rpc服务统一管理
5. NFS服务部署实践过程
5.1 NFS服务端部署流程:
# 第一步:检查服务软件是否安装 [[email protected] ~]# rpm -qa|egrep "nfs-utils|rpcbind" # 检查 nfs 和 rpc 服务是否已经安装 # 第二步:进行软件服务安装 [[email protected] ~]# yum install -y nfs-utils rpcbind ... [[email protected] ~]# rpm -qa|egrep "nfs-utils|rpcbind" nfs-utils-lib-1.1.5-13.el6.x86_64 rpcbind-0.2.0-16.el6.x86_64 nfs-utils-1.2.3-78.el6_10.1.x86_64 [[email protected] ~]# # 补充说明:nfs-utils 和 rpcbind两个软件大礼包 rpm -ql nfs-utils # 查看软件包内容 的命令 /etc/rc.d/init.d/nfs <-- nfs服务启动脚本文件 /usr/sbin/showmount <-- 检查nfs服务共享目录信息 rpm -ql rpcbind /etc/rc.d/init.d/rpcbind <-- rpcbind服务启动脚本文件 /usr/sbin/rpcbind <-- 检查nfs服务向rpc服务注册信息 # 第三步:编写nfs服务配置文件 [[email protected] ~]# ll /etc/exports -rw-r--r--. 1 root root 0 Jan 12 2010 /etc/exports [[email protected] ~]# vim /etc/exports # 编写服务配置文件; /etc/exports ---> 系统默认的配置共享存储的文件,NFS服务会识别这个文件实现共享存储 [[email protected] ~]# cat /etc/exports /data 172.16.1.0/24(rw,sync) # /data 表示数据存储的目录; 172.16.1.0/24 表示允许哪个网段的主机可以挂载到我这台共享服务器上; (rw,rsync) ---> rw 表示共享目录是可读可写的,rsync 是一个同步参数; 172.16.1.0/24 和 (rw,sync) 之间不能有空格 [[email protected] ~]# # 说明:配置文件信息 指定共享目录 指定共享目录访问控制网段或主机信息(共享目录参数信息) # 第四步:创建nfs服务共享目录,并且进行授权 [[email protected] ~]# mkdir /data [[email protected] ~]# chown -R nfsnobody.nfsnobody /data/ [[email protected] ~]# # 第五步:启动nfs和rpc服务 [[email protected] ~]# /etc/init.d/rpcbind start # 要先启动 rpc 这个“中介”服务 Starting rpcbind: [ OK ] [[email protected] ~]# /etc/init.d/nfs start # 再启动 nfs 服务 Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS mountd: [ OK ] Starting NFS daemon: [ OK ] Starting RPC idmapd: [ OK ] [[email protected] ~]# # 第六步:进行服务配置检查 # 检查 nfs 是否向 rpc 服务注册 [[email protected] ~]# rpcinfo -p 172.16.1.31 # 检查本地主机(172.16.1.31,也可用10.0.0.31)是否已经向 rpc 注册 ... # 检查是否存在可用的共享目录 [[email protected] ~]# showmount -e 10.0.0.31 # showmount -e 服务端的地址 ---> 检查是否有可用的共享目录 Export list for 10.0.0.31: /data 172.16.1.0/24 [[email protected] ~]#
5.2 NFS客户端部署流程:
# 第一步:检查服务软件是否安装 [[email protected] ~]# rpm -qa|egrep "nfs-utils|rpcbind" [[email protected] ~]# # 第二步:进行软件服务安装 # 第三步:进行共享目录挂载 [[email protected] ~]# mount -t nfs 172.16.1.31:/data /mnt # -t nfs 表示挂载 nfs 文件系统类型 ; 172.16.1.31:/data ---> 这个服务器上的 /data 目录; /mnt 表示挂载到 /mnt 目录 [[email protected] ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 8.8G 1.5G 6.9G 18% / tmpfs 238M 0 238M 0% /dev/shm /dev/sda1 190M 40M 141M 22% /boot 172.16.1.31:/data 8.8G 1.5G 6.9G 18% /mnt # 共享目录挂载到了 /mnt [[email protected] ~]# # 第四步:进行共享存储测试 # 网站服务器01上的操作 [[email protected] ~]# cd /mnt/ [[email protected] mnt]# ll total 0 [[email protected] mnt]# touch test.txt [[email protected] mnt]# ll total 0 -rw-r--r-- 1 nfsnobody nfsnobody 0 May 3 16:58 test.txt [[email protected] mnt]# # 存储服务器上的操作 [[email protected] ~]# ll /data/ total 0 -rw-r--r-- 1 nfsnobody nfsnobody 0 May 3 16:58 test.txt # 存储在 网站服务器的 /mnt 目录下的内容 就相当于 存储在了 存储服务器的 /data目录下 [[email protected] ~]# # 网站web服务器02 上的操作 [[email protected] ~]# ll /mnt/ total 0 -rw-r--r-- 1 nfsnobody nfsnobody 0 May 3 16:58 test.txt # 在 web02 上也能看到 web01 上的数据 [[email protected] ~]# # 说明:在web01的mnt目录中创建的数据,在nfs和web02服务器上都可以看到,即已经实现数据共享存储 客户端上不需要启动NFS服务 # 共享文件系统的工作原理(服务端3步 客户端3步) # 服务端做了三件事: 1. 启动rpcbind服务,创建中介 2. 启动nfs服务,创建“房源”信息 3. 将“房源”信息向中介进行注册,在nfs服务稳定运行过程中,“房源”信息只注册一次 # 客户端做了三件事: 1. 启动rpcbind服务(可选) 2. 确保客户端和服务端网络连接建立成功 3. 执行mount命令进行网络存储挂载
6. NFS服务部署进程信息详述
[[email protected] ~]# 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 # <- 磁盘配额进程(remote quote server) 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 # 用户压缩/用户映射(记录) root 5512 4670 0 22:02 pts/0 00:00:00 egrep rpc|nfs
7. NFS共享存储服务配置说明
7.1 NFS共享文件系统配置文件格式说明:
# NFS共享目录: 为NFS服务器端要共享的实际目录,要用绝对路径,如(/data)。 注意共享目录的本地权限,如果需要读写共享,一定要让本地目录可以被NFS客户端的用户(nfsnobody)读写。 # NFS客户端地址: 为NFS服务器端授权的可访问共享目录的NFS客户端地址,可以为单独的IP地址或主机名、域名等,也可以为整个网段地址。 还可以用“*”来匹配所有客户端服务器,这里所谓的客户端一般来说是前端的业务的业务服务器,例如:web服务。具体说明见表10-3 权限参数集 对授权的NFS客户端的访问权限设置。参数具体说明见后文。 nfs权限(共享目录【借给你手机】) nfs配置的/etc/exports /data 172.16.1.0/24(rw) 本地文件系统权限(【手机密码不告诉你】) 挂载目录的权限rwxr-xr-x root root /data
NFS共享配置文件语法格式:
同步和异步(sync 和 async):
NFS客户端地址配置说明:
以上是关于Linux(10):期中架构--- NFS存储服务的主要内容,如果未能解决你的问题,请参考以下文章