系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用
文章目录
NFS
概念:
Network File System 网络文件系统,基于内核的文件系统。共享存储,文件服务器。
原理:
nfsd默认端口2049
1.用户访问NFS客户端,将请求转化为函数
2.NFS通过TCP/IP连接服务端
3.NFS服务端接收请求,会先调用portmap进程进行端口映射
4.Rpc.nfsd进程用于判断NFS客户端能否连接服务端;
5.Rpc.mount进程用于判断客户端对服务端的操作权限
6.如果通过权限验证,可以对服务端进行操作,修改或读取
作用:
1、为了实现文件共享,
2、多台数据一致
nsf优缺点
优点:
缺点
1:nfs属于本地文件系统,在高并发场景和大存储量下,需要使用分布式存储mfs, FastDFS, tfs(taobao)等。
2:客户端的数据都是通过明文传送。客户端没有用户认证机制,安全性能一般,所以建议一般在局域网内使用。
3:容易发生单点故障,即server服务器宕机所有的客户端都不能访问。
部署NFS
以centos7为例
前期准备
关闭防火墙:systemctl stop firewalld
关闭selinux:set enforce 0
修改文件永久关闭
vi /etc/selinux/config
SELINUX=enforcing # 按 i 进入编辑模式,将参数修改为 SELINUX=disabled 。 修改完成后,按下键盘 Esc 键,执行命令 :wq ,保存并退出文件。 重启ECS实例。 试用 shutdown -r now 重启后,运行命令 getenforce ,验证SELinux状态为 disabled ,表明SELinux已关闭。
查看系统是否安装
rpm -aq |grep nfs
rpm -aq | grep rpcbind
显示未安装
第一步:安装
yum install -y nfs-utils rpcbind
至此安装成功
第二步:创建
安装完nfs服务一般会自动生成配置文件exports,如果没有就自己创建一个
nsf安装完成,自动创建nfsnobody用户
如果不指定共享用户,则nfs系统在分配权限时会以用户uid为主,客户端如果用root账户会在服务器被自动降级至nfsnobody。
mkdir -p /data/nfs
chown -R nfsnobody:nfsnobody /data/nfs
未报错,成功,也可自行手动创建用户
useradd www -r -M -s /sbin/nologin -u 996
第三步:修改配置文件
编辑配置文件/etc/exports
vi /etc/exports
/data/nfs 172.16.1.0/20(rw,all_squash,sync)
/data/nfs 192.168.1.0/24(rw,,ll_squash,sync)
格式:共享目录 指定共享对象(共享参数)
/data 192.168.1.0/24(rw,sync)
配置参数
控制NFS读写权限
rw 读写权限 (常用)
ro 只读权限 (不常用)
控制访问NFS时,NFS基于的权限
root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 (不常用)
no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 (不常用)
all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 (常用)
no_all_squash 无论NFS客户端使用什么账户访问,都不进行压缩 (不常用)
控制NFS同步方式
sync 同时将数据写入到内存与硬盘中,保证不丢失数据 (常用),但是会产生延时
async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 (不常用)
控制默认的用户(非必须)
anonuid 配置all_squash使用,指定NFS的用户UID,必须存在系统 (常用)
anongid 配置all_squash使用,指定NFS的用户UID,必须存在系统 (常用)
第四步:启动NSF服务
systemctl start rpcbind
systemctl start nfs-server
#可以两个一起启动,特殊情况下,需单独启动
查看是否启动成功
netstat -lntp | grep rpc
第五步:查看NFS挂载点是否成功
shownount -e 第一次查看可能只会有一个挂载项,查询完成后,需要多执行一条命令
增加NSF配置文件
exportfs -rv
完成之后查看共享目录参数
cat /var/lib/nfs/etab
第六步:客户端配置
IP地址:192.168.15.100
前期准备
安装客户端软件:nfs-utils
nfs客户端安装成功
第八步:客户端挂载nfs共享目录
nfs挂载到服务端
mount -t nfs 192.168.15.77:/data/nfs /nfs
查看是否挂载成功
df -h
上传案例
第一步:在客户端上安装web服务软件
yum install -y httpd php
显示安装成功
第二步:切换到web目录下。创建php文件
文件内容
vi index.php
<?php
phpinfo;
第三步:开启web服务,浏览器访问
systemctl start httpd
第四步:从本地上传图片到nfs服务器
scp /Users/raoxurou/Pictures/pap.er/1.jpg root@192.168.15.77:/data
在nsf服务器上查看
第五部:挂载NSF到web网站
mount -t nfs 192.168.15.77:/data/nfs /var/www/html/img/
第六步:在新的服务器上安装http和php
上传些好的代码到新服务器上
scp -r /Users/raoxurou/Desktop/kaoshi root@192.168.15.33:/var/www/html
将文件全部复制到html下
cd kaoshi/kaoshi/
cp -r ./* /var/www/html/
cd /var/www/html/
第七部 创建用户(与之前的用户同步)
useradd www -r -M -s /sbin/nologin -u 996
查看配置信息,修改httpd的启动用户
rpm -qc httpd
修改成用户刚刚创建的用户
vi /etc/httpd/conf/httpd.conf
User apache
Group apache
User www
Group www
修改完成
重新启动web服务器
systemctl restart httpd
修改站点目录的用户
chown -R www.www /var/www/html
第八步 上传文件到web1的服务器上
安装nfs服务
yum install nfs-utils -y
上传的文件共享到原有web服务器中
mount -t nfs 192.168.15.77:/data/nfs /var/www/html/upload
前端上传图片
前端图片设置在192.168.15.33上,
第九步 实现文件同步备份
在本机上查看
在从挂载机器上查看