用户访问流程
# 用户在浏览器输入URl-->浏览器先查看本地缓存-->DNS解析-->TCP/IP三次握手建立连接-->建立TCP连接之后,浏览器向web服务器发送一条HTTP请求报文。-->web服务器关闭HTTP连接,TCP/IP四次挥手,断开连接,把web服务器访问到的网站内容显示到屏幕上
用户访问网站集群架构流程
1.客户端发起http请求,请求会先抵达前端的防火墙
2.防火墙识别用户身份,正常的请求通过内部交换机通过tcp连接后端的负载均衡,传递用户的http请求
3.负载接收到请求,会根据请求的内容进行下发任务,通过tcp连接后端的web,转发发用户的http请求
4.web接收到用户的http请求后,会根据用户请求的内容进行解析,解析分为如下:
静态请求:web直接返回给负载均衡->防火墙->用户
动态请求:web向后端的动态程序建立TCP连接,将用户的动态http请求传递至动态程序->由动态程序进行解析
5.动态程序在解析的过程中,如果碰到查询数据库请求,则优先与缓存建立tcp连接,并发起数据查询操作。
6.如果缓存没有对应的数据,动态程序再次向数据库建立tcp连接,并发起查询操作。
7.最后数据由, 数据库->动态程序->缓存->web服务->负载均衡->防火墙->用户。
1.dns解析过程
1)客户端通过域名访问网站(www.baidu.com.)
查看本地客户端上面有没有域名对应IP地址信息
①. 查看本地缓存
ipconfig/displaydns
②. 查看本地域名解析文件hosts
C:\Windows\System32\drivers\etc
2)客户端会向LDNS服务器发出请求 本地网卡上指定的DNS服务器
LDNS服务器有就响应告知
3)LDNS服务器会首先向根域名服务器发出请求(全球只有13台)
将顶级域名服务器信息告知LDNS服务器
4)LDNS服务器会向顶级域名服务器(一级域名服务器)发出请求
将二级域名服务器信息告知LDNS服务器
5)LDNS服务器会向二级域名服务器(授权DNS服务器)发出请求 ,www.baidu.com---192.168.1.1 A记录
收到A记录信息
6)LDNS服务器会将解析后的IP地址信息进行缓存,缓存好将A记录信息返回给客户端
7)客户端收到LDNS服务器响应A记录信息,会将A记录缓存到本地
用解析后的IP地址访问百度公司网站服务器
涉及到两个特殊查询:
客户端---LDNS服务器:递归查询
LDNS服务器---根域名服务器 顶级域名服务器
二级域名服务器:迭代查询
7.DHCP工作原理
01. 客户端主机发出广播信息,请求获取IP地址
02. 服务端从地址池里取出一个IP地址分配给客户端
03. 客户端返回确认信息
04. 服务端从地址池把已经分配的地址删除掉
05. 客户端可以在一定时间内使用分配的IP地址
8.OSI七层模型、TCP四层模型分别是啥?每一层作用?
物理层-->数据链路层-->网络层-->传输层-->会话层-->表示层-->应用层
#OSI七层模型作用
应用层:为用户提供服务,给用户一个操作界面
表示层:
- 数据提供表示:将底层数据 "0101" 翻译成二进制
- 加密
- 压缩
会话层:确定数据是否需要进行网络传递
传输层:
- 对报文进行分组(发送时)、组装(接收时)
- 提供传输协议的选择
- TCP(传输控制协议):可靠,面向咯按揭的传输协议(速度慢)
- UDP(用户数据报协议):不可靠,买你想无连接的传输协议 (速度快)
- 端口封装
- 差错校验
网络层:
- ip地址编址
- 路由选择:
- 静态路由
- 动态路由
数据链路层:
- MAC地址编址 *****
- MAC地址寻址
- 差错效验
物理链路层
- 数据实际的传输
- 电器的特性定义
#TCP四层模型作用同7层模型
应用层
传输层
网络层
网络接口层
9.TCP/IP三次握手和四次挥手
TCP三次握手过程:
客户端向服务端发送syn请求连接,服务端接收到syn,并回复ack及syn,
客户端接收到syn,回复ack,建立连接
TCP四次挥手过程:
双方在连接状态,客户端向服务端发送断开请求FIN,服务端收到FIN后向客户端发送ACK,客户端收到ACK后,
继续等待数据传输,服务端再次向客户端发送断开请求FIN及ACK,客户端收到FIN断开请求,发送ACK. 双方进入断开状态。
2.CDN的工作原理
CDN是一种新型网络内容服务体系,其基于IP网络而构建,基于内容访问与应用的效率要求、质量要求和内容秩序而提供内容的分发和服务。而从广义的角度,CDN代表了一种基于网络而构建的高质量、高效率、具有鲜明网络秩序的网络应用服务模式。
简单地说, CDN是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理是CDN的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。
总的来说,内容服务基于缓存服务器,也称作代理缓存),它位于网络的边缘,距用户仅有"一跳"之遥。同时,代理缓存是内容提供商源服务器(通常位于CDN服务提供商的数据中心)的一个透明镜像。这样的架构使得CDN服务提供商能够代表他们客户,即内容供应商,向最终用户提供尽可能好的体验,而这些用户是不能容忍请求响应时间有任何延迟的。
CDN的通俗理解就是网站加速,可以解决跨运营商,跨地区,服务器负载能力过低,带宽过少等带来的网站打开速度慢等问题。
比如:
1.一个企业的网站服务器在北京,运营商是电信,在广东的联通用户访问企业网站时,因为跨地区,跨运营商的原因,网站打开速度就会比北京当地的电信客户访问速度慢很多,很容易造成这个企业的客户流失
2.一个网站的服务器性能比较差,承载能力有限,有时面临突发流量,招架不住,直接导致服务器崩溃,网站打不开,尤其是电商网站在节日期间,因为这种情况网站打不开,销售额白白流失的占比都高涨至60%
3.再比如一些中小企业租用的虚拟主机,因为跟好几个网站共用一台服务器,每个网站所分带宽有限,带宽过小经常导致流量稍微一多,网站打开速度就很慢,甚至打不开
使用了CDN缓存后的网站的访问过程变为:
1)、用户向浏览器提供要访问的域名;
2)、浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,使用的全局负载均衡DNS解析,如根据地理位置信息解析对应的IP地址,使得用户能就近访问。
3)、此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求;
4)、缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;
5)、缓存服务器从实际IP地址得得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程;
6)、客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。
3.iptable工作流程
1.防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
2.如果匹配上规则,即明确表示是阻止还是通过,数据包就不再向下匹配新的规则。
3.如果规则中没有明确表明是阻止还是通过的,也就是没有匹配规则,向下进行匹配直到匹配默认规则得到明确的阻止还是通过。
4.防火墙的默认规则是所有规则执行完才执行的。
===================
1.规则从上往下依次匹配
2.一旦匹配上规则之后,就不会继续往下匹配了
3.有一条默认规则,当所有的规则都没有匹配上才会执行
4.默认规则是放行所有
1.iptables四表五链?
filter表、net表、Mangle、raw表
INPUT 作用: 用于指定到本地套接字的包
OUTPUT 作用:本地创建的数据
FORWARD 作用:通过路由的数据包
PREROUTING 作用:对进来的数据包,立马进行改变
POSTROUTING 作用:在数据包即将出去的时候进行改变数据包信息
2.网卡配置文件
1. HWADDR=00:0c:29:90:89:d9 Mac地址
2. DEVICE=eth0 设备名称
3. ONBOOT=yes 开机自启动
4. TYPE=Ethernet 网络类型 以太网
5. BOOTPROTO=none 手动static
a. dhcp 自动获取ip地址
b. none 固定的ip地址
c. static 固定的ip地址
6. IPADDR=10.0.0.100 IPADDR ip地址
7. NETMASK=255.255.255.0 子网掩码 决定这个局域网中最多有多少台机器
8. GATEWAY=10.0.0.2 网关 整个大楼的大门
9. DNS1=223.5.5.DNS DNS域名解析器
4.负载均衡:
1.你们公司用的什么负载均衡 ========= nginx
2.那你还知道哪些负载均衡软件
haproxy:
LVS
3.为什们使用nginx,与haproxy和LVS啥区别?
- ngixn支持7层负载,但是nginx在1.9版本后支持四层负载
- haproxy支持4层和7层
- LVS只支持四层负载均衡
区别:
nginx和haproxy都是第三软件,都七层负载
LVS是内核集成,只需要安装命令ipvsadm(修改路由,修改arp),是四层负载
4.LVS的工作模式有几种,企业常用那种,区别是什么?
- NAT模式:======== 动态地址转换
- 用户请求经过LB,LB将请求传到后端,后端取数据,拿到数据并返回LB,lb将数据返回给用户
(进出都需要经过LB)
- TUNNEL模式:==== IP隧道协议模式
- 用户请求进来经过LB,获取数据返回给用户不经过LB (缺点:必须你的服务器支持TUNNEL协议)
- DR模式: ======== 路由冗余模式 ***企业常用***
- 不该写ip和端口,通过mac地址来请求后端的服务器,拿到数据通过路由返回
- FULLNAT模式:新模式
- FULLNAT转发数据包是类似NAT模式,IN和OUT数据包都是经过LVS;唯一的区别:后端RealServer 或者
交换机不需要做任何配置。
- 主要用在淘宝,电商平台
1.什么是负载均衡、负载均衡能做什么?
前端使用nginx的七层负载,将请求分散给虚拟服务池的web服务器,实现负载的分发
负载均衡实际上是一种网络技术,主要是基于现有的网络结构,增加吞吐量加强网络数据处理能力、提高应用系统的灵活和可用性。负载均衡可以将客户端的请求均衡地分布到其他服务器上;
2.四层负载均衡与七层负载均衡区别
四层负载均衡数据包在底层就进行了分发,而七层负载均衡数据包则是在最顶层进行分发、由此可以看出,七层负载均衡效率没有四负载均衡高。
但七层负载均衡更贴近于服务,如:http协议就是七层协议,我们可以用Nginx可以作会话保持,URL路径规则匹配、head头改写等等,这些是四层负载均衡无法实现的。
注意:四层负载均衡不识别域名,七层负载均衡识别域名
3.四层负载均衡总结
1、四层负载均衡仅能转发TCP/IP协议、UDP协议、通常用来转发端口,如:tcp/22、udp/53;
2、四层负载均衡可以用来解决七层负载均衡端口限制问题;(七层负载均衡最大使用65535个端口号)
3、四层负载均衡可以解决七层负载均衡高可用问题;(多台后端七层负载均衡能同事的使用)
4、四层的转发效率比七层的高得多,但仅支持tcp/ip协议,不支持http和https协议;
5、通常大并发场景通常会选择使用在七层负载前面增加四层负载均衡。
4.公有云中叫法
SLB 阿里云负载均衡
LB 青云负载均衡
CLB 腾讯云负载均衡
ULB ucloud负载均衡
5.haproxy是怎样实现负载均衡的
HAProxy特别适用于那些负载特大的web站点, 这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
其支持从4层至7层的网络交换,即覆盖所有的TCP协议。就是说,Haproxy 甚至还支持 Mysql的均衡负载。
相同点:在功能上,proxy通过反向代理方式实现 WEB均衡负载。和 Nginx,ApacheProxy,lighttpd,Cheroke 等一样。
不同点:Haproxy 并不是 web 服务器。以上提到所有带反向代理均衡负载的产品,都清一色是 WEB 服务器。简单说,就是他们能处理解析页面的。而Haproxy 仅仅是一款的用于均衡负载的应用代理。其自身并不能提供web服务。但其配置简单,拥有非常不错的服务器健康检查功能还有专门的系统状态监控页面,当其代理的后端服务器出现故障, HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。
6.nginx、haproxy和LVS的区别
1)LVS:基于4层做负载均衡
2)Nginx:既可以做4层又可以做7层
3)HAproxy:既可以做4层又可以做7层
LVS是基于四层的IP负载均衡技术,而HAProxy是基于四层和七层技术、可提供TCP和HTTP应用的负载均衡综合解决方案。
LVS工作在OSI模型的第四层,因此其状态监测功能单一,而HAProxy在状态监测方面功能强大,可支持端口、URL、脚本等多种状态检测方式。
以前的nginx只能做7层的负载均衡,现在在1.9版本之后,nginx出现了stream模块也可以来做4层的负载,但是要注意:stream模块做4层负载,是轮询的,轮询的缺点就是,如果后端服务器有多个域名且都是80端口,那这样分配是有问题的。而且nginx也可以配合lua做前端的WAF,可以文件缓存,模拟一个cdn。
7.Nginx负载均衡调度算法
nginx 默认轮询机制
调度算法 | 概述 |
---|---|
轮询(rr) | 按时间顺序逐一分配到不同的后端服务器(默认) |
weight(wrr) | 加权轮询,weight值越大,分配到的访问几率越高 |
ip_hash | 每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器 缺陷:达不到负载均衡 |
url_hash | 按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器 |
least_conn | 最少链接数,那个机器链接数少就分发 |
8.Nginx负载均衡后端状态
后端Web服务器在前端Nginx负载均衡调度中的状态
状态 | 概述 |
---|---|
down | 当前的server暂时不参与负载均衡 |
backup | 预留的备份服务器 |
max_fails | 允许请求失败的次数 |
fail_timeout | 经过max_fails失败后, 服务暂停时间 |
max_conns | 限制最大的接收连接数 |
9.Nginx负载均衡健康检查
在Nginx官方模块提供的模块中,没有对负载均衡后端节点的健康检查模块,但可以使用第三方模块。
nginx_upstream_check_module
来检测后端服务的健康状态。
10.Nginx负载均衡会话保持
在使用负载均衡的时候会遇到会话保持的问题,可通过如下方式进行解决。
1.使用nginx的ip_hash
,根据客户端的IP,将请求分配到对应的IP上
2.基于服务端的session
会话共享(NFS,MySQL,memcache,redis,file)
5.Keepalived
1.keepalived是如何实现高可用的?
keepalived软件是基于VRRP协议实现的,VRRP虚拟路由冗余协议,主要用于解决单点故障问题
VRRP协议,中文名为虚拟路由冗余协议,VRRP的出现是为了解决静态路由的单点故障。
VRRP是通过IP多播的方式(默认多播地址(224.0.0.18))实现高可用对之间通信的。
工作时主节点发包,备节点接包,当备节点接收不到主节点发的数据包的时候,就启动接管程序接管主节点的资源。
备节点可以有多个,通过优先级竞选,但一般Keepalived系统运维工作中都是一对。
2.高可用keepalived使用场景
1、如何确定谁是主节点谁是背节点(选举投票,优先级)
2、如果Master故障,Backup自动接管,那么Master回复后会夺权吗(抢占试、非抢占式)
3、如果两台服务器都认为自己是Master会出现什么问题(脑裂)
3. 如何使用keepalived-------->生产中
- 需要有硬件服务器,在云服务器上不需要keepalived,阿里云自带高可用。
- 申请虚拟IP,是内网得,公网不能申请
4.高可用keepalived故障脑裂
由于某些原因,导致两台keepalived高可用服务器在指定时间内,无法检测到对方的心跳,个字去的资源及服务的所有权,而此时的两台高可用服务器又都还活着。
脑裂故障原因
1、服务器网线松动等网络故障
2、服务器硬件故障发生损坏现象而崩溃
3、主备都开启firewalld防火墙
解决脑裂故障方案
#如果发生闹裂,则随机kill掉一台即可
#在备上编写检测脚本, 测试如果能ping通主并且备节点还有VIP的话则认为产生了列脑
[root@lb02 ~]# cat check_split_brain.sh
#!/bin/sh
vip=10.0.0.3
lb01_ip=10.0.0.5
while true;do
ping -c 2 $lb01_ip &>/dev/null
if [ $? -eq 0 -a `ip add|grep "$vip"|wc -l` -eq 1 ];then
echo "ha is split brain.warning."
else
echo "ha is ok"
fi
sleep 5
done
6.LNMP架构
1.LNMP架构请求访问原理
1. 静态请求由nginx进行处理
2. 动态请求由nginx进行接收,将动态请求发送给PHP(fastcgi_pass)
3. 动态请求由PHP进行处理,利用php-fpm进程接受nginx发过来的请求
利用warpper进程进行解析动态请求,将解析后的结果发送给MySQL数据库
4. MySQL数据库接收查询或者存储请求,进行处理,将结果响应给PHP程序
5. PHP程序将动态处理的结果返还给nginx程序
6. nginx程序最终将动态请求处理的结果,响应给客户端用户
2.Nginx
Nginx是一个开源且高性能、可靠的Http Web服务、代理服务。
开源: 直接获取源代码
高性能: 支持海量并发
可靠: 服务稳定
我们为什么选择Nginx服务
Nginx非常轻量
功能模块少 (源代码仅保留http与核心模块代码,其余不够核心代码会作为插件来安装)
代码模块化 (易读,便于二次开发,对于开发人员非常友好)
互联网公司都选择 Nginx
1.Nginx技术成熟,具备的功能是企业最常使用而且最需要的
2.适合当前主流架构趋势, 微服务、云架构、中间层
3.统一技术栈, 降低维护成本,* 降低技术更新成本。
Nginx 采用 Epool 网络模型, Apache 采用 Select 模型
Select: 当用户发起一次请求,select模型就会进行一次遍历扫描,从而导致性能低下。
Epool: 当用户发起请求,epool模型会直接进行处理,效率高效,并无连接限制。
3.Nginx的特色及优点
1. 支持高并发:能支持几万并发连接(特别是静态小文件业务环境)
2. 资源消耗少:在3万并发连接下,开启10个Nginx线程消耗的内存不到200MB
3. 可以做HTTP反向代理及加速缓存、即负载均衡功能,内置对RS节点服务器健康检查功能,
这相当于专业的Haproxy软件或LVS的功能。
4. 具备Squid等专业缓存软件等的缓存功能。
5. 支持异步网络I/O事件模型epoll(nginx)-select(apache)(Linux 2.6+)
4.Nginx-Rewrite使用场景
1、地址跳转,用户访问www.drz.com这个URL是,将其定向至一个新的域名mobile.drz.com
2、协议跳转,用户通过http协议请求网站时,将其重新跳转至https协议方式
3、伪静态,将动态页面显示为静态页面方式的一种技术,便于搜索引擎的录入,同时建上动态URL地址对外暴露过多的参数,提升更高的安全性。
4、搜索引擎,SEO优化依赖于url路径,好记的url便于智齿搜索引擎录入
5.fastcgi工作原理
1). 用户请求的静态文件,由nginx服务自行处理,根据静态的location配置进行处理
用户请求的动态文件,由php服务进行处理,根据动态的location配置进行处理
2). nginx服务接收到动态请求,会将请求抛送给fastcgi,类似于nginx服务接收动态请求的秘书,秘书会将动态请求送给PHP程序
3). PHP如果可以处理,会将处理结果直接通过fastcgi返回给nginx程序;如果不可以处理,还会请求后端数据库,最终再把处理结果返回给nginx
6.php-fpm优化
1.通常情况我们修改/etc/php.ini文件,仅会修改错误日志与文件上传
2.php-fpm主配置文件/etc/php-fpm.conf调整
3.php-fpm状态模块,用于监控php-fpm状态使用
4.访问测试phpfpm_status状态页面
5.PHP-FPM配置文件
7.Nfs共享存储
共享存储,文件服务器
让局域网内的不同主机共享一个文件或目录,实现web服务器之间的文件共享和数据一致,cs结构
NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统FastDFS,glusterfs,HDFS,ceph
1.为什么要使用共享存储
- 1.实现多台服务器之间数据共享*
- 2.实现多台服务器之间数据一致*
2.集群没有共享存储的情况
- 1.A用户上传图片经过负载均衡,负载均衡将上传请求调度至WEB1服务器上。*
- 2.B用户访问A用户上传的图片,此时B用户被负载均衡调度至WEB2上,因为WEB2上没有这张图片,所以B用户无法看到A用户传的图片。*
3.NFS的工作原理
- 1.用户进程访问NFS客户端,使用不同的函数对数据进行处理*
- 2.NFS客户端通过TCP/IP的方式传递给NFS服务端。*
- 3.NFS服务端接收到请求后,会先调用portmap进程进行端口映射。*
- 4.nfsd进程用于判断NFS客户端是否拥有权限连接NFS服务端。*
- 5.Rpc.mount进程判断客户端是否有对应的权限进行验证。*
- 6.idmap进程实现用户映射和压缩7.最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,由内核驱动硬件。*
4.NFS应用建议
1)生产场景应将静态数据尽可能往前端推, 减少后端存储压力2)必须将存储里的静态资源通过CDN缓存jpg\png\mp4\avi\css\js3)如果没有缓存或架构本身历史遗留问题太大, 在多存储也无用
为什么要做备份?如果让你备份50台左右的机器,你会怎么做?
解:
因为数据重要,保证数据不丢失,出了问题便于快速的恢复。
①.找一台用于备份的服务器,作为服务端,其他服务器作为客户端,每台服务器都要安装rsync这个软件,服务端部署rsync,以守护进程的方式进行传输数据。
②.客户端将要备份的数据打包备份到本地的一个备份目录,且存放备份数据的目录名称中要带有客户端的ip信息及时间戳。
③.客户端给备份好的数据做一个校验值存放在一个文件中。
④.客户端将备份好的数据和存放校验值的文件用rsync命令传输到服务端。
⑤.客户端为了节省磁盘空间,本地备份数据只保留7天。
⑥.将以上操作写成一个脚本,并添加到定时任务,每天定时备份。
⑦.服务端对客户端传输过来的备份数据进行校验。且把校验结果以邮件的方式发送给管理员。
⑧.服务端对备份数据只保留六个月。
⑨.将服务端的操作写成一个脚本,定时校验客户端传输过来的数据,并把校验结果发送给管理员。
⑩.服务端的定时任务时间要晚于客户端的定时任务时间,这个相差时间取决于客户端的备份和传输到服务端的时间。
5.raid1 、0、 5、 10、 6 区别
raid 0:读写性能是所有RAID级别中最高的,磁盘空间使用率:100%,故成本最低。冗余:无,任何一块磁盘损坏都将导致数据不可用。
raid 1:磁盘空间使用率:50%,故成本最高。
读性能:只能在一个磁盘上读取,取决于磁盘中较快的那块盘
写性能:两块磁盘都要写入,虽然是并行写入,但因为要比对,故性能单块磁盘慢。
冗余:只要系统中任何一对镜像盘中有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行。
raid 5:磁盘空间利用率:(N-1)/N,即只浪费一块磁盘用于奇偶校验。
读性能:(n-1)*单块磁盘的读性能,接近RAID0的读性能。
写性能:比单块磁盘的写性能要差(这点不是很明白,不是可以并行写入么?)
冗余:只允许一块磁盘损坏。
raid 10:磁盘空间利用率:50%。
读性能:N/2*单块硬盘的读性能
写性能:N/2*单块硬盘的写性能
冗余:只要一对镜像盘中有一块磁盘可以使用就没问题.
8.backup解决nfs单点
生产场景架构集群备份方案
1.借助cron+rsync把所有客户服务器数据同步到备份服务器。
2.针对公司重要数据备份混乱状况和领导提出备份全网数据的解决方案。
3.通过本地打包备份,然后rsync结合inotify应用把全网数统一备份到一个固定存储服务器,然后在存储服务器上通过脚本检查并报警管理员备份结果。
4.定期将IDC机房的数据 备份公司的内部服务器,防止机房地震及火灾问题导致数据丢失。
5.实时同步,解决存储服务器等的单点问题。
1.备份的类型
完全备份 :将数据全部备份下来
增备 : 全备之后新增的数据,备份下来
差异备份
2.为什么要实时同步
保证数据的连续性, 减少人力维护成本,解决nfs单点故障
基于sersync海量文件实时同步:TP
1.为什么要使用实时同步?
1.解决nfs单点
2.大量的静态资源迁移(本地迁移云端)
2.实时同步能解决什么问题?
1.平滑的迁移
2.备份:减少人为的干预
3.实时同步工具选择?
rsync+inotify 少量文件同步,麻烦。同步大文件太慢,遍历扫描,非常影响效率。
sersync 配置简单,多线程同步,同步块。适合大量的小文件或者图片。
lsryncd
4.demo:用户上传文件-->web-->写入-->nfs存储-->inotify-->action-->rsync--->backup
用户上传文件-->web-->写入-->nfs存储(本地)--->实时的同步到-->存储(云端)
web-->卸载存储(本地)--->重新挂载存储(云端)