什么是集群测试?干什么用的?有什么功能?(请用通俗的语言说明)

什么是集群测试?干什么用的?有什么功能?(请用通俗的语言说明),第1张

分类: 电脑/网络 >> 互联网

问题描述:

刚才访问一个BBS,它们正在进行集群测试,不知道这是干什么用的?请高手赐教,并用简单通俗的语言表达,好让我们这些门外汉明白一二。

解析:

随着计算机网络应用的日益复杂,在Inter上的流量也变得日益拥挤,尤其伴随着宽带应用的逐渐普及,对网络和服务器性能的要求也越来越高,目前针对不同的应用服务类型,有不同的优化解决方案,其中服务器集群技术是切实可行的方法之一。

负载平衡集群(Load Balance)和高可用集群(High Availability)是当前应用范围最广的两种服务器集群技术,尤其是基于Linux技术实现的上述两种集群方案,具有成本低、效率高、适用性好、便于优化的特点。不仅可以解决网络访问负载过重和突发请求并快速转移的问题,还可以大幅度提高服务器的可靠性,是当前企业、数据中心、网站的首选解决方案。

因此集群测试的作用是针对当前网络的主要应用,对集群系统进行Web、Mail、Ftp、StreamMedia等应用性能测试和综合优化试验,为集群系统开发、制造、销售企业提供第一手的性能技术资料,为开发企业节省大量的开发费用和测试费用,为系统集成企业提供选型的依据。

一、集群的基本概念

有一种常见的方法可以大幅提高服务器的安全性,这就是集群。

Cluster集群技术可如下定义:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理。此单一系统为客户工作站提供高可靠性的服务。

大多数模式下,集群中所有的计算机拥有一个共同的名称,集群内任一系统上运行的服务可被所有的网络客户所使用。Cluster必须可以协调管理各分离的组件的错误和失败,并可透明地向Cluster中加入组件。

一个Cluster包含多台(至少二台)拥有共享数据存储空间的服务器。任何一台服务器运行一个应用时,应用数据被存储在共享的数据空间内。每台服务器的操作系统和应用程序文件存储在其各自的本地储存空间上。

Cluster内各节点服务器通过一内部局域网相互通讯。当一台节点服务器发生故障时,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。当一个应用服务发生故障时,应用服务将被重新启动或被另一台服务器接管。当以上任一故障发生时,客户将能很快连接到新的应用服务上。

二、集群的硬件配置

镜像服务器双机

集群中镜像服务器双机系统是硬件配置最简单和价格最低廉的解决方案,通常镜像服务的硬件配置需要两台服务器,在每台服务器有独立操作系统硬盘和数据存贮硬盘,每台服务器有与客户端相连的网卡,另有一对镜像卡或完成镜像功能的网卡。

镜像服务器具有配置简单,使用方便,价格低廉诸多优点,但由于镜像服务器需要采用网络方式镜像数据,通过镜像软件实现数据的同步,因此需要占用网络服务器的CPU及内存资源,镜像服务器的性能比单一服务器的性能要低一些。

有一些镜像服务器集群系统采用内存镜像的技术,这个技术的优点是所有的应用程序和网络操作系统在两台服务器上镜像同步,当主机出现故障时,备份机可以在几乎没有感觉的情况下接管所有应用程序。因为两个服务器的内存完全一致,但当系统应用程序带有缺陷从而导致系统宕机时,两台服务器会同步宕机。这也是内存镜像卡或网卡实现数据同步,在大数据量读写过程中两台服务器在某些状态下会产生数据不同步,因此镜像服务器适合那些预算较少、对集群系统要求不高的用户。

硬件配置范例:

网络服务器 两台

服务器操作系统硬盘 两块

服务器数据存贮硬盘 视用户需要确定

服务器镜像卡(部分软件可使用标准网卡) 两块

网络服务网卡 两块三、双机与磁盘阵列柜

与镜像服务器双机系统相比,双机与磁盘阵列柜互联结构多出了第三方生产的磁盘阵列柜,目前,豪威公司、精业公司等许多公司都生产有磁盘阵列柜,在磁盘阵列柜中安装有磁盘阵列控制卡,阵列柜可以直接将柜中的硬盘配置成为逻辑盘阵。磁盘阵列柜通过SCSI电缆与服务器上普通SCSI卡相连,系统管理员需直接在磁盘柜上配置磁盘阵列。

双机与磁盘阵列柜互联结构不采用内存镜像技术,因此需要有一定的切换时间(通常为60?D?D180秒),它可以有郊的避免由于应用程序自身的缺陷导致系统全部宕机,同时由于所有的数据全部存贮在中置的磁盘阵列柜中,当工作机出现故障时,备份机接替工作机,从磁盘阵列中读取数据,所以不会产生数据不同步的问题,由于这种方案不需要网络镜像同步,因此这种集群方案服务器的性能要比镜像服务器结构高出很多。

双机与磁盘阵列柜互联结构的缺点是在系统当中存在单点错的缺陷,所谓单点错是指当系统中某个部件或某个应用程序出现故障时,导致所有系统全部宕机。在这个系统中磁盘阵列柜是会导致单点错,当磁盘阵列柜出现逻辑或物理故障时,所有存贮的数据会全部丢失,因此,在选配这种方案时,需要选用一个品质与售后服务较好的产品。

硬件配置范例:

网络服务器 两台

服务器操作系统硬盘 两块

第三方生产的磁盘阵列柜 一台

磁盘柜专用SCSI电线 两根

磁盘阵列柜数据存贮硬盘 视用户需求确定

网络服务网卡 两块

除此之外,一些厂商还有更优秀的技术的解决方案,比如 HP

四、HP双机双控容错系统

HP NetServer为双机双控容错系统提供了高品质和高可靠的硬件基础……

HP双机双控容错系统结合了HP服务器产品的安全可靠性与Cluster技术的优点,相互配合二者的优势。

硬件配置范例:

HP L系统的网络服务器 两台

服务器操作系统硬盘 两块

HP硬盘存贮柜(SS/6,RS/8,RS/12) 一台

磁盘柜专用SCSI集群适配电缆 两根

磁盘柜数据存贮硬盘 视用户需求确定

HP集群专用阵列卡 两块

网络服务网卡 两块五、HP光纤通道双机双控集群系统

光纤通道是一种连接标准,可以作为SCSI的一种替代解决方案,光纤技术具有高带宽、抗电磁干扰、传输距离远、质量高、扩展能力强等特性,目前在FC-AL仲裁环路上可接入126个设备。

光纤设备提供了多种增强的连接技术,大大方便了用户使用。服务器系统可以通过光缆远程连接,最大可跨越10公里的距离。它允许镜像配置,这样可以改善系统的容错能力。服务器系统的规模将更加灵活多变。SCSI每条通道最多可连接15个设备,而光纤仲裁环路最多可以连接126个设备。

光纤集群系统组成:

HP光纤集群系统硬件设备包括有两台HP服务器(需支持光纤卡,目前有LC2000、LH3000、LH4、 LH6000、LT6000、LXr8000、LXR8500)及光纤适配卡,可以使用RS/12FC光纤磁盘阵列柜,需另加一对或两对网卡用于心跳检测和与客户端连接。在配置过程中还需另外选配光纤卡到光纤存贮设备的光纤电缆。

硬件配置:

HPL系统的网络服务器 两台

服务器操作系统硬盘 两块

HP光纤阵列存贮柜(RS/12FC) 一台

光纤磁盘柜专用光纤电缆 两根

光纤磁盘柜数据存贮硬盘 视用户需求确定

HP光纤适配卡 两块

网络服务网卡 两块

六、集群的软件配置

基于NT平台的集群软件

Microsoft的MSCS,也有许多第三方的专业软件公司开发的集群软件,如豪威的DATAWARE,VIN CA公司的STANDBY SERVER,NSI公司的DOUBLE-TAKE

MS WolfPack的特点

MS WolfPack是MS Cluster server的别称,是 微软针对Cluster技术研制开发的双机软件。它集成在NT SERVER上,支持由二台机器组成的双机系统,提供一种高可用且易管理的应用环境。

主要特点:

自动检测和修复服务器或应用程序的错误

可实现对服务器中应用程序的切换

可通过TCP/IP连接各种客户端,如MS-DOS、WINDOWS 3X/9X/NT,Apple Macintosh、UNIX等

生产主机无需人工干涉即可自动恢复数据并接管任务

易管理性:

可自动审核服务器和应用程序的工作状态

可建立高可用性的应用程序、文件共享、打印请求等

可灵活设置应用程序和数据的恢复策略

简单操作即可进行应用程序的离线,重新再线,服务器间的迁移。

目前,WINDOWS 2000 Advanced Server与WINDOWS 2000 DataCenter Server都集成有更先进集群技术。

其它的网络操作系统平台上也有许多集群软件,比如:

基于novell平台的集群软件有Novell HA Server、Novell SFT III

基于sco UNIX平台的集群软件有Sentinel集群软件

基于Linux平台的集群软件有TurboCluster

七、集群技术的发展趋势

集群技术随着服务器硬件系统与网络操作系统的发展将会在可用性、高可靠性、系统冗余等方面逐步提高。未来的集群可以依靠集群文件系统实现对系统中的所有文件、设备和网络资源的全局访问,并且生成一个完整的系统映像。这样,无论应用程序在集群中的哪台服务器上,集群文件系统允许任何用户(远程或本地)都可以对这个软件进行访问。任何应用程序都可以访问这个集群任何文件。甚至在应用程序从一个节点转移到另一个节点的情况下,无需任何改动,应用程序就可以访问系统上的文件。

在今天,利用服务器的集群技术,通过周密计划和网络维护,系统破坏的机率是非常小的。所以,企业服务器的稳定必须使用集群技术。

双机热备是应用于服务器的一种解决方案,其构造思想是主机和从机通过TCP/IP网络连接,正常情况下主机处于工作状态,从机处于监视状态,一旦从机发现主机异常,从机将会在很短的时间之内代替主机,完全实现主机的功能。

双机热备就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一台服务器出现故障时,由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务。双机热备由备用的服务器解决了在主服务器故障时服务不中断的问题。

扩展资料:

双机热备原理:

双机热备主要是实时数据、报警信息和变量历史记录的热备。主从机都正常工作时,主机从设备采集数据,并产生报警和事件信息。从机通过网络从主机获取实时数据和报警信息,而不会从设备读取或自己产生报警信息,主从机都各自记录变量历史数据。

同时,从机通过网络监听主机,从机与主机之间的监听采取请求与应答的方式,从机以一定的时间间隔(冗余机心跳检测时间)向主机发出请求,主机应答表示工作正常,主机如果没有作出应答,从机将切断与主机的网络数据传输,转入活动状态,改由下位设备获取数据,并产生报警和事件信息。此后,从机还会定时监听主机状态,一旦主机恢复,就切换到热备状态,通过这种方式实现了热备。

-服务器

-双机热备

阿里云ECS实例已经提供了NTP服务器支持,直接启动已配置好的NTP服务即可。

《阿里云NTP服务器》

《配置Linux实例NTP服务》

在开启服务前,先确保环境配置:

文档 《配置Linux实例NTP服务》 中介绍了CentOS环境下开启NTP服务。

由于本人购买的Ubuntu服务器,下面总结Ubuntu环境下的配置。

执行命令查询所有服务,看ntp服务是否已开启(+号:已开启;-号:未开启):

发现香港地区的服务默认都没有开启ntp服务;但深圳地区的服务器默认已经开启了ntp服务。

执行命令查询ntp进程,发现深圳服务器默认已经开启了ntp服务:

如果未开启ntp服务,执行命令开启ntp服务:

开启成功后,如图:

或者查询ntp相关的进程:

重启后通过如下命令观察NTP的运行状态:

这个命令可以列出目前我们的 NTP 与相关的上层 NTP 的状态,上头的几个字段的意义为:

driftfile /etc/ntp/drift

语法为: restrict IP地址 mask 子网掩码 参数

其中IP地址也可以是default ,default 就是指所有的IP

参考 《ubuntu安装和使用NTP》

为什么集群?

通常,为了提高网站响应速度,总是把热点数据保存在内存中而不是直接从后端数据库中读取。Redis是一个很好的Cache工具。大型网站应用,热点数据量往往巨大,几十G上百G是很正常的事儿,在这种情况下,如何正确架构Redis呢?

首先,无论我们是使用自己的物理主机,还是使用云服务主机,内存资源往往是有限制的,scale up不是一个好办法,我们需要scale out横向可伸缩扩展,这需要由多台主机协同提供服务,即分布式多个Redis实例协同运行。

其次,目前硬件资源成本降低,多核CPU,几十G内存的主机很普遍,对于主进程是单线程工作的Redis,只运行一个实例就显得有些浪费。同时,管理一个巨大内存不如管理相对较小的内存高效。因此,实际使用中,通常一台机器上同时跑多个Redis实例。

方案

1Redis官方集群方案 Redis Cluster

Redis Cluster是一种服务器Sharding技术,30版本开始正式提供。

Redis Cluster中,Sharding采用slot(槽)的概念,一共分成16384个槽,这有点儿类pre sharding思路。对于每个进入Redis的键值对,根据key进行散列,分配到这16384个slot中的某一个中。使用的hash算法也比较简单,就是CRC16后16384取模。

Redis集群中的每个node(节点)负责分摊这16384个slot中的一部分,也就是说,每个slot都对应一个node负责处理。当动态添加或减少node节点时,需要将16384个槽做个再分配,槽中的键值也要迁移。当然,这一过程,在目前实现中,还处于半自动状态,需要人工介入。

Redis集群,要保证16384个槽对应的node都正常工作,如果某个node发生故障,那它负责的slots也就失效,整个集群将不能工作。

为了增加集群的可访问性,官方推荐的方案是将node配置成主从结构,即一个master主节点,挂n个slave从节点。这时,如果主节点失效,Redis Cluster会根据选举算法从slave节点中选择一个上升为主节点,整个集群继续对外提供服务。这非常类似前篇文章提到的Redis Sharding场景下服务器节点通过Sentinel监控架构成主从结构,只是Redis Cluster本身提供了故障转移容错的能力。

Redis Cluster的新节点识别能力、故障判断及故障转移能力是通过集群中的每个node都在和其它nodes进行通信,这被称为集群总线(cluster bus)。它们使用特殊的端口号,即对外服务端口号加10000。例如如果某个node的端口号是6379,那么它与其它nodes通信的端口号是16379。nodes之间的通信采用特殊的二进制协议。

对客户端来说,整个cluster被看做是一个整体,客户端可以连接任意一个node进行操作,就像操作单一Redis实例一样,当客户端操作的key没有分配到该node上时,Redis会返回转向指令,指向正确的node,这有点儿像浏览器页面的302 redirect跳转。

Redis Cluster是Redis 30以后才正式推出,时间较晚,目前能证明在大规模生产环境下成功的案例还不是很多,需要时间检验。

2Redis Sharding集群

Redis 3正式推出了官方集群技术,解决了多Redis实例协同服务问题。Redis Cluster可以说是服务端Sharding分片技术的体现,即将键值按照一定算法合理分配到各个实例分片上,同时各个实例节点协调沟通,共同对外承担一致服务。

多Redis实例服务,比单Redis实例要复杂的多,这涉及到定位、协同、容错、扩容等技术难题。这里,我们介绍一种轻量级的客户端Redis Sharding技术。

Redis Sharding可以说是Redis Cluster出来之前,业界普遍使用的多Redis实例集群方法。其主要思想是采用哈希算法将Redis数据的key进行散列,通过hash函数,特定的key会映射到特定的Redis节点上。这样,客户端就知道该向哪个Redis节点操作数据。

庆幸的是,java redis客户端驱动jedis,已支持Redis Sharding功能,即ShardedJedis以及结合缓存池的ShardedJedisPool。

Jedis的Redis Sharding实现具有如下特点:

1 采用一致性哈希算法(consistent hashing),将key和节点name同时hashing,然后进行映射匹配,采用的算法是MURMUR_HASH。采用一致性哈希而不是采用简单类似哈希求模映射的主要原因是当增加或减少节点时,不会产生由于重新匹配造成的rehashing。一致性哈希只影响相邻节点key分配,影响量小。

2为了避免一致性哈希只影响相邻节点造成节点分配压力,ShardedJedis会对每个Redis节点根据名字(没有,Jedis会赋予缺省名字)会虚拟化出160个虚拟节点进行散列。根据权重weight,也可虚拟化出160倍数的虚拟节点。用虚拟节点做映射匹配,可以在增加或减少Redis节点时,key在各Redis节点移动再分配更均匀,而不是只有相邻节点受影响。

3ShardedJedis支持keyTagPattern模式,即抽取key的一部分keyTag做sharding,这样通过合理命名key,可以将一组相关联的key放入同一个Redis节点,这在避免跨节点访问相关数据时很重要。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 什么是集群测试?干什么用的?有什么功能?(请用通俗的语言说明)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情