大家好,欢迎来到IT知识分享网。
NFS共享存储
1.NFS概述
NFS(Network File System)主要功能是通过网络来做文件存储。
使用NFS可以实现多台服务器之间数据共享,也可以实现多台服务器之间的数据一致
2.NFS工作原理
1.当用户发送请求通过用户进程访问NFS客户端,会根据不同的请求来使用不同的函数对数据进行处理
2.NFS客户端通过TCP/IP协议的方式传递给NFS服务端
3.NFS服务端接收到请求,会先调用portmap进程进行端口映射
4.rpc.nfsd进程用于判断NFS客户端是否拥有权限链接NFS服务端
5.Rpc.mount进程判断客户端是否有对应的权限进行验证
6.idmap进程实现用户映射和压缩
7.最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,再由内核驱动硬件
# Rpc.nfsd:是NFS的守护进程,主要是管理客户端是否能够登陆NFS服务器
# Rpc.mount:主要是管理NFS的文件系统。当客户端顺利通过nfsd登陆到NFS服务器后,在使用NFS服务所提供的文件前,还必须顺利通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限
# Portmap:主要是进行端口映射工作
# rpc是一个远程过程调用,使用NFS必须要有rpc服务,它的服务名为:rpcbind
3.安装部署NFS
3.1.服务端
1.先安装nfs服务:
centos5,centos6:yum install -y nfs rpcbind
centos7:yum install -y nfs-utils
2.配置NFS服务:vim /etc/exports
# 共享目录 允许访问NFS服务端的网段(权限)
/data 172.16.1.0/24(rw,sync,all_squash
nfs共享参数 | 参数作用 |
---|---|
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* | 指定NFS的用户gid,系统中必须存在 |
3.创建共享目录:mkdir /data
4.修改共享目录的属主和属组为nfs的匿名用户:
chown nfsnobody:nfsnobody /data
5.关闭防火墙和selinux:
systemctl stop firewalld
setenforce 0
6.启动服务并加入开机自启
systemctl start nfs
systemctl enable nfs
7.检查进程:ps -ef|grep nfs
8.检查配置文件是否生效:cat /var/lib/nfs/etab
3.2.客户端操作
1.安装nfs:yum install -y nfs-utils
2.查看服务端里面可以挂载的目录:
showmount -e 172.16.1.31
3.挂载共享目录:
mount -t nfs 172.16.1.31:/data /opt
4.NFS共享存储实战
4.1 环境
主机名 | WanIP | LanIP | 角色 | 部署应用 |
---|---|---|---|---|
web01 | 10.0.0.7 | 172.16.1.7 | 网站服务(nfs客户端) | httpd,php,nfs |
web02 | 10.0.0.8 | 172.16.1.8 | 网站服务(nfs客户端) | htppd,php,nfs |
nfs | 10.0.0.31 | 172.16.1.31 | 共享储存(nfs服务端) | nfs |
4.2.部署交作业网站
1.安装apache和php:
yum install - y apache php
2.下载代码到站点目录中
3.解压代码:
unzip kaoshi_modify.zip
4.让apache和nfs统一使用用户www uid和gid为666:
创建用户及用户组:groupadd www -g 666
useradd www -u 666 -g 666
5.修改apache的配置文件,将用户和用户组改成www:
vim /etc/httpd/conf/httpd.conf
6.将站点目录的属主和属组改成www:
chown www:www /var/www/html
7.启动apache服务:
systemctl start httpd
8.检查进程:
ps -ef|grep httpd
9.端口检查:
ntestat -lntup|grep httpd
10.打开浏览器访问
11.上传文件
12.查看站点目录下是否有user_data目录,查看该目录下是否有上传的文件,并查看它们的属主与属组是否是www用户
4.3 给交作业网站部署共享储存
1.先安装nfs服务:
centos5,centos6:yum install -y nfs rpcbind
centos7:yum install -y nfs-utils
2.配置NFS服务:vim /etc/exports
# 共享目录 允许访问NFS服务端的网段(权限)
/data 172.16.1.0/24(rw,sync,anonuid=666,anuogid=666,all_squash
3.创建www用户:
groupadd www -g 666
useradd www -u 666 -g 666
4.创建共享目录并修改共享目录的属主与属组为nfs指定的匿名用户:
mkdir /data
chown www:www /data
5.关闭防火墙和selinux:
systemctl stop firewalld
setenforce 0
6.启动服务并加入开机自启
systemctl start nfs
systemctl enable nfs
7.检查进程:ps -ef|grep nfs
8.检查配置文件是否生效:cat /var/lib/nfs/etab
9.在客户端挂载nfs服务端的目录:
mount -t nfs 172.16.1.31:/data /var/www/html/user_data
10.上传文件查看服务端是否能够获取到文件
11.将第二台客户端挂载到服务端上,查看是否能够共享到文件
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/32166.html