冗余技术

计算机网络之数据链路层

一个人想着一个人 提交于 2019-11-29 13:42:58
功能 数据链路层 主要作用是加强物理层传输原始比特流的功能,将物理层提供的 可能出错的物理连接 改造为 逻辑上无差错的数据链路 ,使之对网络层表现为一条无差错的链路。(物理上肯定有一些差错,但是可以通过修改,改为逻辑上无差错) 任务:负责将数据报通过链路从一个节点传输到相邻的节点 三个基本功能: 封装成帧 透明传输 差错检测 封装成帧 基本概念: 将一段数据的前后分别添加首部和尾部,就构成了帧。 注意: 首部和尾部中含有很多 控制信息 (如 检验序列等),它们的一个重要作用是确定帧的界限,即 帧定界 。 透明传输 如果在数据中心恰好出现与帧定界符相同的比特组合,会导致帧提前结束而丢弃后面的数据。所以引入了 “透明传输” 。 基本概念: 透明传输就是不管所传的数据是什么样的比特组合( 透明的,看不见里面的数据 ),都应当能在链路上传送。 基本方法: 字符计数法: 在帧头部使用一个计数字段来标明帧内字符数。 字符填充的首尾定界符法: 在特殊字符前面填充一个转义字符(DLE)来加以区分,以实现数据的透明传输。接收方收到转义字符后,就知道其后面紧跟的是 数据信息 ,而不是控制信息。 数据中有可能出现转义字符,所以要 在转义字符前再插入一个转义字符 。 比特填充的首尾标志法: 由于使用01111110(6个1)来标志一帧的开始和结束,故发送方只要在数据中遇到5个连续的“1”时

GlusterFs卷类型分析及创建、使用(结合kubernetes集群分析)

纵然是瞬间 提交于 2019-11-28 22:05:18
引言 本文通过对卷类型的分析对比,来帮助读者选取生产环境最符合服务的挂载存储,命令可结合《 glusterfs详解及kubernetes 搭建heketi-glusterfs 》进行实验,下面进入正题 几种卷类型 基础卷:布式卷(distribute)、条带卷(stripe)、复制卷(replica)、纠错卷(Dispersed ) 复合卷:分布式条带卷(distribute stripe)、分布式复制卷(distribute replica)、条带复制卷(stripe replica)、分布式条带复制卷(distribute stripe) 一、基础卷 以下创建挂载卷,均可通过以下命令进行查看、启用、停止、删除 #查看已创建挂载卷 gluster volume info #启动挂载卷 gluster volume start gv0 #删除前,先停止挂载卷 gluster volume stop gv0 #删除挂载卷 gluster volume delete gv0 1. 布式卷(distribute voulme) 分布式模式,既DHT,是GlusterFS的默认模式,在创建卷时,默认选项是创建分布式卷。在该模式下,并没有对文件进行分块处理,而是通过hash算法分布到所有brick server上,只是扩大了磁盘空间,类似window中的跨区卷 distribute

14 个实用的数据库设计技巧

孤者浪人 提交于 2019-11-28 20:30:59
点击上方“ 后端技术精选 ”,选择“置顶公众号” 技术文章第一时间送达! 作者:echozh juejin.im/post/5d5b4c6951882569eb570958 原始单据与实体之间的关系 主键与外键 基本表的性质 范式标准 通俗地理解三个范式 要善于识别与正确处理多对多的关系 主键PK的取值方法 正确认识数据冗余 E--R图没有标准答案 视图技术在数据库设计中很有用 中间表、报表和临时表 完整性约束表现在三个方面 防止数据库设计打补丁的方法是“三少原则” 提高数据库运行效率的办法 1. 原始单据与实体之间的关系 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。 〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表、社会关系表、工作简历表。这就是“一张原始单证对应多个实体”的典型例子。 2. 主键与外键 一般而言,一个实体不能既无主键又无外键。在E—R 图中, 处于叶子部位的实体, 可以定义主键,也可以不定义主键(因为它无子孙), 但必须要有外键(因为它有父亲)。 主键与外键的设计,在全局数据库的设计中

什么是高可用?

心已入冬 提交于 2019-11-28 07:10:43
一、什么是高可用 高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。 假设系统一直能够提供服务,我们说系统的可用性是100%。 如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。 很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系统的年停机时间为8.76个小时。 百度的搜索首页,是业内公认高可用保障非常出色的系统,甚至人们会通过 www.baidu.com 能不能访问来判断“网络的连通性”,百度高可用的服务让人留下啦“网络通畅,百度就能访问”,“百度打不开,应该是网络连不上”的印象,这其实是对百度HA最高的褒奖。 二、如何保障系统的高可用 我们都知道,单点是系统高可用的大敌,单点往往是系统高可用最大的风险和敌人,应该尽量在系统设计的过程中避免单点。方法论上,高可用保证的原则是“集群化”,或者叫“冗余”:只有一个单点,挂了服务会受影响;如果有冗余备份,挂了还有其他backup能够顶上。 保证系统高可用,架构设计的核心准则是:冗余。 有了冗余之后,还不够,每次出现故障需要人工介入恢复势必会增加系统的不可服务实践。所以,又往往是通过“自动故障转移”来实现系统的高可用。 接下来我们看下典型互联网架构中,如何通过冗余+自动故障转移来保证系统的高可用特性

mysql 范式和反范式

拟墨画扇 提交于 2019-11-27 16:22:43
第一范式(1NF) 强调的是列的原子性,即列不能够再分成其他几列。 第二范式 (2NF) 首先是 2NF,另外包含两部分内容一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。 第三范式 (3NF) 首先是 2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。 第三范式通常已经可以满足业务需求了,表之间的关系也比较清楚了,容易维护。但是为什么要反范式呢? 首先我们需要了解到定义数据库范式的历史背景,在20世纪70年代到80年代范式基本完善定型。在那个时候的系统下:一个硬盘的大小有限,一般也就几百兆(价格也比较高),上网的人也少,所以范式的理论强调减少依赖,降低冗余节省空间的使用。而现在最普通的硬盘都是500G,大一点的就上T了而且价格便宜,同时上网人数也增多了,数据库面临则高并发,业务逻辑复杂,低延迟的要求。很难在遵循这范式的基础上进行数据库设计开发,那么适当的降低范式,增加冗余,用空间来换时间是值得的。最低可以把范式降低到1NF。 通常在设计数据库时遵循以下原则: 1.核心业务使用范式。在类似交易有关的这种敏感核心业务中,强调数据安全和一致性,需要遵循范式保证数据唯一和一致。具体什么是核心业务视情况而定。 2.弱一致性需求——反ACID

交换机

孤街醉人 提交于 2019-11-27 13:32:02
1.局域网设计 1.1分级网络设计 典型设计分三层 接入层 access 、汇聚层 distribution、核心层 core a接入层为终端设备 提供访问接口 在此层提供冲突域的隔离 、vlan的划分和交换机的端口安全 b汇聚层 实现vlan间的通信和广播域的划分,定义网络的策略 policy 控制某些类型通信的一种方法,包括路由更新,路由汇总,vlan间通信、地址聚合、访问控制盒路由的重新分布等 c核心层 只有一个用途,快速转发 1.2 网络设计原则 a 网络直径 源到目的之间的经过的设备的数量 越少越好 pc1 到pc2 s1-d1-s2 b 带宽聚合 s1和d1之间连接多条线缆 配置链路聚合 可以提供更高的吞吐量 c 冗余 分为链路冗余和设备冗余 任何两台交换机之间的链路故障都不会影响网络的正常通信 链路冗余 除接入层s1和s2外,任何一台交换机的故障也不会影响网络的通信 设备冗余 为了保障高可用行,往往同时使用链路和设备的冗余 注意arp病毒 的问题 2.交换机的型号选择 a 固定配置交换机 不可以扩展端口 b 模块化交换机 配置了不同大小的迹象 可以安装不同的模块化线路卡 可以添加端口 数量可增加 24-48 c 可堆叠交换机 使用一根背板电缆相互连接,交换机之间提供高的吞吐量。可以将堆叠的多台交换机当成一台交换机 堆叠和级联概念不同 级联

数据库设计原则

我与影子孤独终老i 提交于 2019-11-27 01:39:52
1. 原始单据与实体之间的关系   可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。 在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。 这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。   〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表、社会关系表、工作简历表。        这就是“一张原始单证对应多个实体”的典型例子。 2. 主键与外键   一般而言,一个实体不能既无主键又无外键。在E—R 图中, 处于叶子部位的实体, 可以定义主键,也可以不定义主键   (因为它无子孙), 但必须要有外键(因为它有父亲)。   主键与外键的设计,在全局数据库的设计中,占有重要地位。当全局数据库的设计完成以后,有个美国数据库设计专   家说:“键,到处都是键,除了键之外,什么也没有”,这就是他的数据库设计经验之谈,也反映了他对信息系统核   心(数据模型)的高度抽象思想。因为:主键是实体的高度抽象,主键与外键的配对,表示实体之间的连接。 3. 基本表的性质   基本表与中间表、临时表不同,因为它具有如下四个特性:    (1) 原子性。基本表中的字段是不可再分解的。    (2) 原始性。基本表中的记录是原始数据(基础数据

关于RAID与SCSI的一些基本概念

不想你离开。 提交于 2019-11-26 10:13:43
RAID简介 内嵌微处理器的磁盘子系统通常称为R A I D系统。R A I D阵列的可用容量总小于成员磁盘的总量。 一、RAID 0(分块)是简单的、不带有校验的磁盘分块,本质上它并不是一个真正的R A I D,因为它并不提供任何形式的冗余。假如RAID 0的磁盘失败,那么,数据将彻底丢失。为了在RAID 0情况下恢复数据,唯一的办法是使用磁带备份或者镜像拷贝。 二、RAID 1(镜像)是非校验的R A I D级。 三、RAID 2(专有磁盘的并行访问)的定义涉及R A I D控制器中的错误校验电路。这个功能已经被集成到磁盘驱动器中,虽然便宜,但效率却不高。因此, RAID 2没有形成产品。 四、并行访问R A I D都属于R A I D 3。R A I D 3(使用专有校验磁盘的同步访问)子系统将数据分块存放到阵列中的所有驱动器,将校验数据写到阵列中的一个另外的校验磁盘, R A I D 3被认为是校镽 A I D。 五、RAID4(使用专用校验磁盘的独立访问)是一种独立访问的R A I D实现,它使用一个专用的校验磁盘。与RAID 3不同的是,RAID 4有更大量的分块,使多个I / O请求能同时处理。虽然它为读请求提供了性能的优势,但RAID 4的写开销特别大,因为在每次读、修改和写周期中,校验磁盘都被访问两次。 六、RAID 5(使用分布式校验的独立访问

局域网交换机实施冗余和负载均衡(初级篇)

醉酒当歌 提交于 2019-11-25 20:36:48
在局域网中,我们为了保证网络的健壮性和稳定性,一般会在关键的部位实施冗余,最(便)常(宜)见(点)的,就是实施链路冗余或者设备冗余: 看起来是很爽了,实际上问题是大大的,比如图1,如果交换机A、B之间的4个端口都处于转发状态,而此时下联的任意某台PC发出一个广播包,会怎么样?很悲催!由于交换机两条线路形成了环路,并且交换机端口又不能隔离广播包,所有的端口都会无条件的转发这个广播包,从而造成广播风暴,最终会导致网络资源耗尽,交换机死机。。。(你也可能会被XX骂一顿) 为了解决交换网络实施冗余导致的环路,大拿们开发了STP(Spanning Tree Protocol)生成树协议,它的原理说起来也很简单,把环路中的某一个端口关闭掉(阻塞),从而解决环路;当未阻塞的链路(主线)出现故障的时候,再把阻塞的那个端口打开,从而启动备线,这样就实现了冗余,但是,同一时刻只能用一条线传输数据(还剩下一半的悲催)。 当然,即使开启了STP(一般交换机都是默认开启),你可能还是会被XX骂!因为:第一,你浪费了一条线的资源,虽然实现了冗余,但是未能负载均衡;第二,图-2中,核心之间的链路被阻塞了,而下行的两条链路却是转发的,这个算是哪门子的备份?(我们应该实现的是下行的两条链路之间的备份) 对于图一的问题,如果我们是chunǚ座的,有严重的强迫症(前提还要有钱),我们设施了大量冗余