服务器名词解释
高可用性
在计算中,术语可用性用于描述服务可用的时间段,以及系统响应用户请求所需的时间。高可用性是系统或组件的质量,可确保在给定时间段内实现高水平的操作性能。
高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。
假设系统一直能够提供服务,我们说系统的可用性是100%。
如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。
很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系统的年停机时间为8.76个小时。
百度的搜索首页,是业内公认高可用保障非常出色的系统,甚至人们会通过http://www.baidu.com 能不能访问来判断“网络的连通性”,百度高可用的服务让人留下啦“网络通畅,百度就能访问”,“百度打不开,应该是网络连不上”的印象,这其实是对百度HA最高的褒奖。
容错技术
容错技术是容忍并防范局部错误的决策方法。是提高决策可靠性的重要方法之一。所谓容忍错误,就是认识到错误是客观存在的,不可避免的,因此,要把主要的精力放在防范错误的对策上。其主要内容有:(1)诊断技术,即在最短的时间内,也就是在错误还不致于造成重大损失之前,就发现并排除错误。(2)错误防范技术和错误影响弱化技术。(3)冗余技术,即用功能相近的若干决策方案或措施来代替单一方案,在原方案有效时,其余方案从表面上看是多余的,然而一旦原方案失效时,这些“多余”的方案就可自动依次接替原方案而维持决策实施的正常进行。
容错服务器
容错服务器 ,是基于容错技术的原理,采用硬件全冗余的技术,在两套硬件之间还通过独立芯片和软件保证故障时临时切换的服务器。简单的说就是在服务器系统中出现数据或文件丢失及损坏时,自动恢复到损坏前的正常状态,确保服务器正常使用,用以体现服务器对错误的容纳能力。
冗余
在通信工程当中,冗余指出于系统安全和可靠性等方面的考虑,人为地对一些关键部件或功能进行重复的配置。当系统发生故障时,比如某一设备发生损坏,冗余配置的部件可以作为备援,及时介入并承担故障部件的工作,由此减少系统的故障时间。冗余尤用于应急处理。冗余可以存在于不同层面,如网络冗余、服务器冗余、磁盘冗余、数据冗余等。
形式
1硬件冗余
举例:
1)电源冗余:高端服务器产品普遍采用双电源系统,这两个电源是负载均衡的,即在系统工作时它们同时为系统提供电力,当一个电源出现故障时,另一个电源会立即承担所有的负载。有些服务器系统实现了直流电源的冗余,另一些服务器产品实现了直流和交流电源的全冗余。
2)存储子系统:存储子系统是整个服务器系统中最容易发生故障的地方,可以通过以下几种方法实现冗余:
磁盘镜像:将相同的数据分别写入两个磁盘中。 磁盘双联:为镜像磁盘增加一个I/O控制器,形成了磁盘双联,使总线争用情况得到改善。 独立/廉价冗余磁盘阵列RAID(Redundant Arrays of Independent/Inexpensive Disks)由2个以上磁盘组成,通过一个控制器协调运动机制使单个数据流依次写入这几个磁盘中,有RAID10、RAID01、RAID0、RAID5等级别。
3)I/O卡冗余:网卡冗余是指在服务器中插上多个网卡。冗余网卡技术原为大型机及中型机上的技术,现也渐被PC服务器所拥有。多个网卡可共同承担网络流量,且具有容错功能。
4)CPU冗余:系统中主处理器并不会经常出现故障,但对称多处理器(SMP)能让多个CPU分担工作以提供某种程度的容错。
2信息冗余
举例:差错检查和纠错法
3软件冗余
举例:双机集群软件、代码冗余
不足
冗余配置的初衷是为了加强系统的可靠性,但冗余配置会导致系统变得更为复杂,从而极易引入新的问题。
P2V(物理机转虚拟机)
p2v,就是physical machine to virtual machine,物理机转换成虚拟机,物理机有硬件和
软件资源两部分,虚拟机同样也有硬件和软件资源,只是硬件是虚拟出来的。p2v是把
物理机的软件资源(操作系统,数据等)迁移到虚拟机,虚拟机的物理资源(CPU、内
存、磁盘等),根据现场情况分配创建。
p2v,一般会通过转换整个物理磁盘,或者某个分区成某种格式的镜像文件,来完成软
件资源的迁移。不同的虚拟化产品会有不同的p2v转换工具,这里介绍了qemu/kvm虚
拟化环境下p2v。
v2v
v2v,就是不同虚拟化环境的虚拟机之间互相迁移、转换。这里介绍了用qemu-img手动静态转
换VirtualBox虚拟机镜像、以及Vmware虚拟机镜像为raw或者qcow2格式的镜像,然后以该镜
像为系统盘创建Qemu/KVM虚拟机。
32位、64位、x86、x64区别和联系
一切都要从1978年说起,英特尔在这年发布了世界上第一款 x86 指令集架构的处理器「Intel 8086」。
之后这个系列的处理器名称都以数字 86 作为结尾,比如 Intel 8086、80286、以及 80486,所以慢慢的这个系列就被简称为 x86 了。x86 从 1985 年发布的 Intel 80386 处理器开始使用「32 位架构指令集」,称之为 x86_32(此前都是 16 位),随着 Intel 不断推出新的 32 位处理器,慢慢大家发现 32 位 和 x86 通常指的都是一个东西,所以 32 位也被简称为 x86 ,这也是为什么现在我们看到的x86 几乎都默认指 32 位。
然而谁能想到 AMD 在2003年一个翻身,抢在英特尔之前发布了 64 位 处理器,并将其命名为「AMD 64」,从此 x86 正式进入了 64 位 的时代。
64 位 不光数字上领先 32 位,在性能和应用场景上也得到了大幅提升(后面讲),之后英特尔也跟进推出了与之兼容的处理器,命其为「Intel 64」,两者被统称为 x86_64。所以,x86 的本意其实同时包含「32位和64位」 。
历史的经验告诉我们,懒癌不是能接受 x86_32 and x86_64 这种说法的,于是 x86_64 被简称成了 x64。
容错服务器与双机热备
1、性能对比 从硬件配置和性能测试来看,容错服务器和单台同配置的服务器性能没有差别,并不会因为容错而导致任何的性能下降,因为容错服务器是 完全依靠硬件保障可靠性的,并不需要系统资源完成故障切换和监控。 2、可靠性对比 双机热备系统可靠性达到99.9%,而容错系统的可靠性能够达到99.999%,也就是说全年的停机时间从8小时降到5分钟。 双机热备虽然是两台硬件冗余,但是同时又引进了双机软件,使整个系统的可靠性并不能理解成为两套硬件对系统的可靠性保障。而且,由于双机热备系统维护过程中对使用者技术的要求,往往在系统故障时会因为使用过程中双机或者应用系统的配置变化而导致无法故障切换,存在较大风险。 而容错系统采用的是硬件检测和切换故障,不引进任何额外的软件,对于使用者来说是单一的系统,不会因为维护过程影响系统的可靠性保障。 3、可用性对比 容错系统对使用者来说完全是单一系统,对于操作系统以上的应用完全透明,应用不需要做任何更改,维护不需要额外的技术背景。 双机热备要求维护人员有较深的双机技术背景,安装实施复杂。双机系统对应用的支持需要额外的投入,比如对数据库系统和其他一些标准应用,用户需要购买相应的Agent才能支持对该应用的故障切换,对于非标准的应用(软件开发时没有事先考虑留好接口)双机软件不能支持故障切换。而且实现切换也需要做较复杂的配置和脚本调试。 4、故障切换对比 双机热备的故障切换是当主机出现故障时,在Standby机器上重新启动所有的应用,这样必然导致用户当前任务的丢失。也就是说客户端当前进行的操作将终止,所进行的业务需要从头开始。一方面造成客户应用的停止,另一方面将给后台系统造成一些不必要的麻烦比如垃圾数据。而且由于所有应用都需要重新启动,切换时间最少在1分钟以上。 容错系统当出现故障时,由于Cache、内存和硬盘的数据是完全同步的,而且两套系统是同时工作的,所以切换只需要把输出从故障部分转移到正常部分即可。当前的任务无需终止,完全无缝地切换过去,几乎不用切换时间(应用完全感觉不出来)。 5、成本对比 以一套两路服务器系统运行Oracle数据库应用(其他应用同样存在相同的成本问题)来对比两种系统的成本如下,不难看出总体考虑容错系统相对双机系统有较大的成本优势,而且双机系统还没有考虑系统后续的实施和维护成本。 (1)容错系统:总计64万元 一套两路容错系统 大约35万元 一套操作系统 大约4万元 一套Oracle数据库 大约25万元 (2)双机热备系统:总计86万元(含1年维护) 两台两路服务器 大约10万元 一套SCSI磁盘阵列 大约8万元 两套操作系统 大约8万元 两套Oracle数据库 大约50万元 一套双机软件 大约5万元 维护费用 大约5万元/年 6、投标指标 (1)可靠性要求达到99.999%,全年平均停机时间5分钟; (2)全冗余方案设计,故障切换时间小于3秒; (3)对应用软件透明,支持所有的用户应用软件; (4)故障切换时客户端不需要重新连接,当前任务不需要重新开始; (5)便于维护和管理,使用人员不需要专门的维护技术基础。
双机热备、容错服务器、小型机的对比
为了实现系统的高可用,保障系统运行稳定,在采购服务器或搭建方案时往往要选择具有高可用的容错服务器。目前实现容错的方案有多种,如大家最常见的双机热备。还有一种是单机容错,可以选择IBM或HP的小型机服务器,这类产品上面使用大了大量的高可用技术,另外,也可以选择性价比更高的容错服务器,如美国容错公司和NEC生产的产品。
下面这张图表比较了上述多种容错产品在技术、价格等方面的情况,如观点有偏颇之处,仅供参考:
服务器美国容错公司NEC小型机双机性能够用够用最快比容错慢20%安全性6几乎是个9的可用性没指标小机做完双机后可用性为99.99% 99.90%
服务器 |美国容错公司 NEC 小型机 双机 性能 | 够用 够用 最快 比容错慢20%安全性 |6几乎是个9的可用性 没指标 小机做完双机后可用性为99.99% 99.90%价格 | 合理 合理 贵 贵系统 |兼容性强,能装windows和linux, 一种机器只能装一种系统,可控性差 只能装UNIX,比较难操作,对厂家的依赖比较严重 能适应所有的主流系统,前期工作 |部署简单 部署简单 从设计到安装都比较麻烦 从设计到安装都比较麻烦后期维护成本 |无 无 相当高每年要20%的维护费用 维护成本比较高设计理念| 避免停机 缺 减少停机 减少停机历史| 28年制造历史 3年OEM制造历史 多年 多年 成功案例 |全国医疗系统有超过30家 无 多 最多能解决软件BUG问题(OS)| 能 无 无 无软件成本| 单系统单数据库(所以成本很低) 单系统单数据库(所以成本很低) 双系统双数据库(所以成本很高) 双系统双数据库(所以成本很高)系统集成能力 |高 未知 未知 未知软件商的口碑 |非常好 未知 好
RAID
在单机时代,采用单块磁盘进行数据存储和读写的方式,由于寻址和读写的时间消耗,导致I/O性能非常低,且存储容量还会受到限制。另外,单块磁盘极其容易出现物理故障,经常导致数据的丢失。因此大家就在想,有没有一种办法将多块独立的磁盘结合在一起组成一个技术方案,来提高数据的可靠性和I/O性能呢。
在这种情况下,RAID技术就应运而生了。
RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,简称为「磁盘阵列」,其实就是用多个独立的磁盘组成在一起形成一个大的磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性。
VMware FT 容错的工作方式
VMware 容错可通过创建和维护等同于主虚拟机并可在发生故障切换时替换主虚拟机的辅助虚拟机来为虚拟机提供连续可用性。
可以为大多数任务关键虚拟机启用容错。并会创建一个重复虚拟机(称为辅助虚拟机),该虚拟机会以虚拟锁步方式随主虚拟机一起运行。VMware vLockstep 可捕获主虚拟机上发生的输入和事件,并将这些输入和事件发送到正在另一主机上运行的辅助虚拟机。使用此信息,辅助虚拟机的执行将等同于主虚拟机的执行。因为辅助虚拟机与主虚拟机一起以虚拟锁步方式运行,所以它可以无中断地接管任何点处的执行,从而提供容错保护。
高可用性(英语:high availability,缩写为 HA)
IT术语,指系统无中断地执行其功能的能力,代表系统的可用性程度。是进行系统设计时的准则之一。高可用性系统意味着系统服务可以更长时间运行,通常通过提高系统的容错能力来实现。
高可用性或者高可靠度的系统不会希望有单点故障造成整体故障的情形。一般可以透过冗余的方式增加多个相同机能的部件,只要这些部件没有同时失效,系统(或至少部分系统)仍可运作,这会让可靠度提高。
脑裂问题
脑裂(split-brain)是指“大脑分裂”,本是医学名词。在HA集群中,脑裂指的是当联系主备节点的"心跳线"断开时(即两个节点断开联系时),本来为一个整体、动作协调的HA系统,就分裂成为两个独立的节点。由于相互失去了联系,主备节点之间像"裂脑人"一样,使得整个集群处于混乱状态。脑裂的严重后果:
1)集群无主:都认为对方是状态好的,自己是备份角色,后果是无服务;
2)集群多主:都认为对方是故障的,自己是主角色。相互争抢共享资源,结果会导致系统混乱,数据损坏。此外对于客户端访问也是一头雾水,找谁呢?
避免脑裂问题的核心是:保持任意时刻系统有且只有一个主角色提供服务。
Active、Standby
Active:主角色。活跃的角色,代表正在对外提供服务的角色服务。任意时间有且只有一个active对外提供服务。
Standby:备份角色。需要和主角色保持数据、状态同步,并且时刻准备切换成主角色(当主角色挂掉或者出现故障时),对外提供服务,保持服务的可用性。
2U / 4U机器供电情况
2U机器一个电源模块功耗是2130W,机器上总共有两个电源模块,实际只有一个电源模块在工作,另外一个作为备用的,也就是说只有一个电源有用电功耗,最大值是2130W。2130W是机器在满配的情况下才能达到,插满所有的内存和硬盘,我们正常硬盘和内存配置,机器功耗不会超过1000W。
4U机器分两个模块,每一个模块有两个1300W电源模块,整套机器上总共有4个电源模块,实际只有两个电源模块在工作,另外两个作为备用的,在工作的情况下只有两个电源有用电功耗,最大值是2600W。2600W是两个模块在满配的情况下才能达到,插满所有的内存和硬盘,我们正常硬盘和内存配置,单个模块机器功耗不会超过600W,两个模块不会超过1200W。