集群和分布式系统简介

集群的概念

(一)集群的相关术语

  • 服务硬件:指提供计算服务的硬件,比如PC机、PC服务器。

  • 服务实体:服务实体通常指服务软体和服务硬体。

  • 节点(node):运行Heartbeat进程的一个独立主机称为节点,节点是HA的核心组成部分,每个节点上运行着操作系统和Heartbeat软件服务。

  • 资源(resource):资源是一个节点可以控制的实体,当节点发生故障时,这些资源能够被其他节点接管。如: 磁盘分区、文件系统、IP地址、应用程序服务、共享存储

  • 事件(event):事件也就是集群中可能发生的事情,例如节点系统故障、网络连通故障、网卡故障和应用程序故障等。这些事件都会导致节点的资源发生转移,HA的测试也是基于这些事件进行的。

(二)集群的概念
集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源,这些单个的计算机系统就是集群的节点。或者说集群是为了解决某个特定问题将多台计算机组合起来形成的单个系统。

  • 当单台服务器的性能达不到实际生产需求时,提升服务性能的方式:
    ● Scale UP:垂直扩展,向上扩展,增强,性能更强的计算机运行同样的服务
    ● Scale Out:水平扩展,向外扩展,增加设备,并行地运行多个服务调度分配问题,Cluster

    • 目前垂直扩展不再提及:
      ● 随着计算机性能的增长,其价格会成倍增长
      ● 单台计算机的性能是有上限的,不可能无限制地垂直扩展
      ● 多核CPU意味着即使是单台计算机也可以并行的。那么,为什么不一开始就并行化技术?

集群的特点

(三)集群的特点

  • 1.可扩展性:集群的性能不限于单一的服务实体,新的服务实体可以动态的加入到集群,从而增强集群的性能。

  • 2.高可用性:集群通过服务实体冗余使客户端免于轻易遭遇到“out of service”警告。当一台节点服务器发生故障的时候,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。消除单点故障对于增强数据可用性、可达性和可靠性是非常重要的。

  • 3.负载均衡:负载均衡能把任务比较均匀的分布到集群环境下的计算和网络资源,以便提高数据吞吐量。

  • 4.错误恢复:如果集群中的某一台服务器由于故障或者维护需要而无法使用,资源和应用程序将转移到可用的集群节点上。这种由于某个节点中的资源不能工作,另一个可用节点中的资源能够透明的接管并继续完成任务的过程叫做错误恢复。

集群的分类

(四)集群的分类

  • 负载均衡集群(Load Balance Cluster,LBC)侧重于数据库的横向扩展,提升数据库的性能。
  • 高可用性集群(High Availability Cluster,HAC)侧重保证数据库应用持续不断。大部分的数据库集群侧重与此。
  • 高安全性集群(High Security Cluster,HSC)侧重于容灾。
  • 高性能集群(High Performance Computing,HPC) 高性能:www.top500.org

与高可用集群相关的评价参数:

  • HA:High Availiablity,高可用,SPOF(single Point Of failure)

  • ● MTBF:Mean Time Between Failure 平均无故障时间
    ● MTTR:Mean Time To Restoration( repair)平均恢复前时间
    ● A=MTBF/(MTBF+MTTR) (0,1):99%,99.5%,99.9%,99.99%,99.999%

      ● 一般的话可达到:==99.99%==、==99.95%== 的高可用性● 以99.99%为例:一个月可故障时间:(60*24*30)*(1-0.9999)=4.32min
    

分布式系统

分布式系统的概念

  • 用最简单的方式定义,分布式系统就是让终端用户把一组工作在一起的计算机当做一个单独的机器来使用。这些机器共享状态,并发操作,并且单个机器出现问题不会影响到整个系统的正常工作。常见的分布式系统实现:DNS(上级域只存放下级子域的相关信息,并不会存储所有域名和与之对应的ip地址)

分布式系统的作用

  • 分布式计算机系统的体系结构可用处理机之间的耦合度为主要标志来加以描述。耦合度是系统模块之间互联的紧密程度,它是数据传输率、响应时间、并行处理能力等性能指标的综合反映,主要取决于所选用体系结构的互联拓扑结构和通信链路的类型。

分布式系统的特点

  • 分布式系统(distributed system)具有高度的内聚性和透明性。

    ●内聚性:每一个节点高度自治,有本地的数据库管理系统;

    ●透明性:每一个数据库分布节点对用户来说是透明的,用户是感觉不到"分布"的,即用户不需要知道关系是否分割、有无副本、数据位于哪个节点、事物在哪个站点上执行等;

分布式系统的分类

(一)按功能分:

  • 分布式存储: Ceph,GlusterFS,FastDFS,MogileFS
  • 分布式计算:hadoop,Spark

分布式系统的特征

  • (1)分布性。分布式系统由多台计算机组成,它们在地域上是分散的,可以散布在一个单位、一个城市、一个国家,甚至全球范围内。整个系统的功能是分散在各个节点上实现的,因而分布式系统具有数据处理的分布性。

  • (2)自治性。分布式系统中的各个节点都包含自己的处理机和内存,各自具有独立的处理数据的功能。

  • (3)并行性。一个大的任务可以划分为若干个子任务,分别在不同的主机上执行。

  • (4)全局性。分布式系统中必须存在一个单一的、全局的进程通信机制,使得任何一个进程都能与其他进程通信,并且不区分本地通信与远程通信。同时,还应当有全局的保护机制。系统中所有机器上有统一的系统调用集合,它们必须适应分布式的环境。在所有CPU上运行同样的内核,使协调工作更加容易。

分布式系统的优点

  • (1)资源共享
  • (2)加快计算速度
  • (3)可靠性高
  • (4)通信方便

集群与分布式系统

集群和分布式

  • 集群:同一个业务系统,部署在多台服务器上。集群中,每一台服务器实现的功能没有差别,数据和代码都是一样的。
  • 分布式:一个业务被拆成多个子业务,或者本身就是不同的业务,部署在多台服务器上。分布式中,每一台服务器实现的功能是有差别的,数据和代码也是不一样的,分布式每台服务器功能加起来,才是完整的业务。
  • 分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。
  • 对于大型网站,访问用户很多,实现一个群集,在前面部署一个负载均衡服务器,后面几台服务器完成同一业务。如果有用户进行相应业务访问时,负载均衡器根据后端哪台服务器的负载情况,决定由给哪一台去完成响应,并且一台服务器垮了,其它的服务器可以顶上来。分布式的每一个节点,都完成不同的业务,如果一个节点垮了,那这个业务可能就会失败。

集群设计原则

  • 可扩展性—集群的横向扩展能力

  • 可用性—无故障时间(SLA)

  • 性能—访问响应时间

  • 容量—单位时间内的最大并发吞吐量(C10K 并发问题)

  • 基础设施层面:
    ● 提升硬件资源性能—从入口防火墙到后端web server均使用更高性能的硬件资源
    ● 多域名—DNS 轮询A记录解析
    ● 多入口—将A记录解析到多个公网IP入口
    ● 多机房—同城+异地容灾
    ● CDN(Content Delivery Network)—基于GSLB(Global Server Load Balance)实现全局负载均衡,如:DNS

  • 业务层面:
    ● 分层:安全层、负载层、静态层、动态层、(缓存层、存储层)持久化与非持久化
    ● 分割:基于功能分割大业务为小服务
    ● 分布式:对于特殊场景的业务,使用分布式计算

分布式的设计

  • 分布式应用-服务按照功能拆分,使用微服务
  • 分布式静态资源–静态资源放在不同的存储集群上
  • 分布式数据和存储–使用key-value缓存系统
  • 分布式计算–对特殊业务使用分布式计算,比如Hadoop集群

集群和分布式系统简介相关推荐

  1. mysql集群与分布式数据库_数据库集群与分布式系统的区别

    1. 集群是个物理形态,分布式是个工作方式. 只要是一堆机器,就可以叫集群,他们是不是一起协作着干活,这个谁也不知道:一个程序或系统,只要运行在不同的机器上,就可以叫分布式,嗯,C/S架构也可以叫分布 ...

  2. 容器集群技术-Kubernetes简介

    随着Docker技术的发展和广泛流行,云原生应用和容器调度管理系统也成为IT领域大热的词汇.事实上,云原生应用的思想,在Docker技术火爆之前,已经由云计算技术的领导者和分布式系统架构的推广者广泛传 ...

  3. cluster-trace-v2018 阿里集群数据集中文简介

    原文地址(英文版):https://github.com/alibaba/clusterdata/blob/v2018/cluster-trace-v2018/trace_2018.md 1简介 作为 ...

  4. Spring整合Quartz定时任务 在集群、分布式系统中的应用(Mysql数据库环境)

    转载:http://www.cnblogs.com/jiafuwei/p/6145280.html 单个Quartz实例能给予你很好的Job调度能力,但它不能满足典型的企业需求,如可伸缩性.高可靠性满 ...

  5. Spring整合Quartz定时任务 在集群、分布式系统中的应用

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:sundoctor www.iteye.com/blog/sundoctor-486 ...

  6. DB2 PC服务器本地磁盘集群部署模式简介

    1.综述 IBM DB2 通用数据库具有很多的部署模式,可以适应客户的不同需求.如:DB2 HADR技术采用数据库日志复制的方式同步两个DB2实例的数据库数据,实现数据库高可用.灾备及业务分担:DB2 ...

  7. Linux集群软件LifeKeeper简介

    SteelEye Technology公司最近为部署Linux服务器集群的企业推出了一款高可用性软件.该公司的LifeKeeper软件使集群中的服务器可以接替发生故障的服务器或应用.硬件部件和应用程序 ...

  8. 服务器集群和分布式系统的区别,服务器集群和分布式的区别

    简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率. 例如:如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行改任务 ...

  9. 【Linux集群教程】09 集群监控 - 监控简介和Cacti搭建

    1 监控简介 1.1 重要性 Windows 的任务管理器工作:监控CPU,内存的占用率,查看相关的进程管理(杀死进程) 很多人说监控,是运维的眼睛,是稳定性建设中最重要的一环,监控也是运维工程师必须 ...

最新文章

  1. microsoft visual basic保存时错误429_win10更新失败错误8000FFF的解决小技巧
  2. mysql免安装版5.7.7以后在windows上的那些操作(1)
  3. 【GoLang】GoLang 遍历 map、slice、array方法
  4. DNS入门介绍之三BIND安装配置全过程
  5. [转]使用CSS3 Grid布局实现内容优先
  6. linux忆连软件,linux安装软件方法汇总
  7. HarmonyOS之常用组件Button的功能和使用
  8. cnn图像二分类 python_TensorFlow2基础:CNN图像分类
  9. Oracle用rowid删除同一张表的重复记录
  10. tempdb页面分配争用问题
  11. fpcx教程:在Final Cut Pro中添加多语言字幕
  12. 博客园文章中图片太大显示不全的解决办法
  13. 湖南大学离散数学实验——代码(一)
  14. editorMd插件的使用总结(包括开启图片上传及拖拉粘贴上传图片)
  15. 线性代数Python计算:矩阵对角化
  16. 【洛谷P4315】月下毛景树 树链剖分03
  17. python线性回归预测pm2.5_基于随机森林算法的PM2.5预测
  18. JavaScript中的escape() 函数
  19. 单目标优化算法测试函数python绘制及相关代码
  20. 微软携手联想来酷试水渠道共享,打造创新销售通路

热门文章

  1. 小程序计算两点之间距离
  2. C++ Sleep 函数
  3. 【SAP-FI】哪些科目不能手工记账?
  4. mac移动硬盘安装linux系统安装教程,yong移动硬盘安装Linux的最新方法
  5. php 同步代码,PHP进程同步代码实例_PHP
  6. ppt的快捷键的使用和显示
  7. Java jar 找不到主类,jar包找不到或无法加载主类
  8. 小米 mix android 版本,小米MIX 3等4款机型获得基于安卓 10的MIUI开发版更新
  9. 烧录引导程序出错_自学「单片机」时许多人都绕不开的一个词「烧录」,你了解多少?...
  10. Spug设置报警提醒功能(钉钉、微信、邮箱)落地详细