单机/集群/热备/磁盘阵列(RAID)的区别详解

news2024/11/25 4:33:55

一、单机部署(stand-alone)

单个服务器,只有一个饮水机提供服务,服务只部署一份。 

二、集群部署(cluster)

服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。

有多个饮水机同时提供服务,服务冗余部署,每个冗余的服务都对外提供服务,一个服务挂掉时依然可用

服务器集群分为以下这些类型:

  • 计算集群:服务器计算集群通常被用于承载计算密集型任务,而并不用于 I/O 密集型的应用场景(例如 Web 服务或者数据库)。这类计算集群是以并行计算为基础的,它对外而言就好像是一台性能强大的超级计算机。计算集群又可根据其中节点之间耦合的紧密程度做更进一步的细分。例如,如果某个计算任务需要在节点之间进行频繁的通信,那么这意味着节点之间最好由专用的网络进行连接,而且集群密度可能很高以尽量减少通信开销。实现这类场景通常使用 Beowulf 这样的高性能计算集群;而与之相对应的,如果某个计算任务只需使用较少的服务器节点,或者在服务器之间几乎没有通信的需求,则可以使用网格计算集群实现。

  • 负载均衡集群:负载均衡集群的关键在于能够使多台彼此互联的服务器共同分担计算任务,即任务负载可以在集群中被尽可能地平均分配到多台服务器上处理,从而避免出现集群中某几台服务器超载而其他服务器闲置的情况,有效地改善集群性能。

  • 高可用集群:高可用集群中的部分服务器发生故障时,集群管理系统将及时发现故障并将由该部分承载的任务重新分派到其他正常工作的服务器上。其关键在于能够在系统高速运行的过程中尽可能快速地对系统故障做出响应。为了实现这一点,集群通常会在多台服务器运行冗余节点和服务,并用来互相跟踪,例如通过心跳(heartbeat)机制探知服务器的工作状态。如果侦测到某个服务器节点发生失效,那么其替补者会在非常短的时间内取代它。因此,对于用户而言,高可用集群永远不会停机。

  • 高性能和集群存储:高性能群集由连接到同一网络以执行任务的许多计算机组成。高性能集群连接到数据存储集群,并共同组成一个复杂的体系结构,可以极其快速地处理数据。存储和网络组件必须彼此保持同步,以实现无缝性能和高速数据传输。高性能群集也称为超级计算机,不像高可用性群集和负载平衡群集那样常见,但是用于资源密集型工作负载的企业可以使用它们来提高性能,容量和可靠性。它们被广泛用于 IoT(物联网)和 AI 技术,因为它们促进了诸如实时流,风暴预测或患者诊断等项目的创新,并提供了实时数据处理。它们被大量部署在研究实验室,媒体和娱乐以及金融行业以及许多其他行业中。

  • 集群存储:群集存储由至少两个扩展性能,节点空间 I/O(输入 / 输出)和可靠性的存储服务器组成。根据业务需求和存储需求,可以在紧密耦合的体系结构中针对主存储部署数据存储,并且可以将数据分为节点之间的很小的块,或者在独立的松散耦合结构中不存储数据跨节点,并提供更大的灵活性。在松散耦合的体系结构中,性能和容量受限于存储数据的节点的功能。与紧密耦合的体系结构不同,在此设置中,不能选择具有新节点的可伸缩性。

三、热备部署(hot-swap)

热备(hot-swap)就是将两个相同的工程集中起来提供同一种服务,这些单个的工程就是集群的节点(node)。在这个基础上,以其中一个节点作为响应前端请求的节点(active node),另一个节点作为工程的备份节点(standby node),避免单机不可用导致系统停止造成的损失(业务中断、数据/模板丢失),并且在 active 节点出现问题时,代替其返回前端的请求,确保系统 7*24h 稳定运行的集群。

只有一个桶提供服务,另一个桶stand-by,在水用完时自动热替换,服务冗余部署,只有一个主服务对外提供服务,影子服务在主服务挂掉时顶上

3.2  热备特点

1)高可用性

  • 一主一备模式,主节点宕机后集群系统仍可正常提供服务。

  • 主节点宕机后,自动切换备节点,已登录的用户无需重新登录。

2)高一致性

  • 各节点间平台配置信息和资源文件修改更新能够实时同步。

  • 对于节点间 JAR 包不一致情况,启动时可自动检测对比并提醒。

3)强扩展性

基于良好的架构设计,在 FineBI 和 FineReport 进行集成之后,热备集群能够兼容 FineReport 的 web 集群。

4)使用简单

  • 简单可视化配置,80% 的配置都可在平台上完成。

  • 实时监控各节点的运行状态,对于节点宕机、节点间时间不一致等情况可以及时进行提醒。

四、磁盘阵列RAID(Redundant Arrays of independent Disks)

RAID(Redundant Array of Independent Disks)中文简称为独立磁盘冗余磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。

组成磁盘阵列的不同方式称为RAID级别(RAID Levels)。在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等等。总之,对磁盘阵列的操作与单个硬盘一模一样。不同的是,磁盘阵列的存储速度要比单个硬盘高很多,而且可以提供自动数据备份。数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性。


4.1  RAID0

存储性能高的磁盘阵列,又称striping,它的原理是,将连续的数据分散到不同的磁盘上存储,这些不同的磁盘能同时并行存取数据(速度快)这意味着磁盘的连续读写性能成倍增长(随机不变),但是数据会变得十分危险:因为数据被拆分成多份,一旦某块磁盘出现问题,数据将不可恢复。RAID 0 是速度最快的磁盘阵列,同时也是最危险的磁盘阵列。RAID 0 至少需要两块磁盘。

4.2  RAID1

安全性高的磁盘阵列,又称mirror,它的原理是,将数据完全复制到另一个磁盘上,磁盘空间利用率只有50%(冗余,数据安全)。这意味着磁盘的安全性非常高,但同时也是最浪费磁盘空间的。RAID 1 至少需要两块磁盘

4.3  RAID0+1

RAID0和RAID1的综合方案,这也是国企用的比较多的存储方案(速度快,安全性又高,但是很贵)。RAID0+1 综合了 RAID 0 与 RAID 1 的优点,获取连续读写性能的同时,安全性也得到了提升。RAID0+1 至少需要4块磁盘。

4.4  RAID5

RAID0和RAID1的折衷方案,读取速度比较快(不如RAID0,因为多存储了校验位),安全性也很高(可以利用校验位恢复数据),空间利用率也不错(不完全复制,只冗余校验位),这也是互联网公司用的比较多的存储方案。RAID 5 则是将数据与校验码打散于各个磁盘,其中某一块磁盘出现问题,利用其他磁盘也可以进行恢复。并且由于校验码打散于各个磁盘,当磁盘越多时,数据的安全性就越强。同时RAID 5 是使用率最高的磁盘阵列。 RAID 5至少需要3块磁盘。

a为数据,b为校验码,假设有四块磁盘,存放数据方式:
           磁盘:  1           2           3           4
第三组数据:a31       a32       b33       a34    
第二组数据:a21       b22       a23       a24    
第一组数据:b11       a12       a13       a14    
第二块磁盘损坏,第一组数据由b11加a13,a14可以恢复a12;第二组数据完整不需要恢复;第三组数据由b33加a31,a34可以恢复a32。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/429711.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL连接空闲时间超过8小时报错原因与延伸知识

1 错误原因 1.1 两个参数 MySQL服务端两个参数控制连接超时时间: wait_timeoutinteractive_timeout1.1.1 如何查看 show global variables like interactive_timeout show global variables like wait_timeout 复制代码 1.1.2 含义与区别 wait_timeout&#xf…

JAVA System.nanoTime()与GO time.Now().UnixNano()区别

JAVA System.nanoTime() public static void main(String[] args) {long nano System.nanoTime();System.out.println(nano);} 输出:701863191254000,这个值有点奇怪,System.currentTimeMillis()不是System.nanoTime()的1000000倍。 这个值…

【springcloud开发教程】路由网关——zuul

官方资料:https://github.com/Netflix/zuul/ 什么是Zuul? Zuul包含了两个主要的功能:路由和过滤 路由功能将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,而过滤器功能则负责对请求的处理过程进行干预&#…

Ubuntu环境安装指定版本的docker 和一键卸载dockerdocker-compose

一、环境 我的linux系统是Ubuntu 22.04 二、开始安装 卸载旧版 由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本: $ sudo apt-get remove docker docker-engine docker-ce docker.io更新apt包索引 $ sudo apt-get update安装以下…

基础工业工程(易树平、郭伏)——第四章 程序分析

第四章 程序分析 第一节 程序分析概述 一、程序分析的概念、特点及目的 1.程序分析的概念 程序分析是一种重要的生产管理工具,它是依照工作流程,从第一个工作地到最后一个工作地,全面地分析有无多余、重复、不合理的作业&…

【单片机/普中A2】学习笔记3-数码管

数码管主要概念 参考文献:点击前往 数码管分类 字形重叠数码管:将不同数字、字母与符号重叠,需要用到那个就显示那个 分段式数码管:最常见的数码管,按照笔画来显示,主要有七段式和八段式数码管 点矩阵式…

JavaScript 代码整洁之道

文章目录概述篇变量篇函数篇注释篇异常处理篇复杂判断函数篇重构篇参考资料概述篇 书写能让人读懂的代码使用英语编写代码团队协作 制定通用的规则,依靠工具让团队的代码风格保持统一,要让代码看起来是由一个人编写的,消除个人的代码风格。…

这么好看的客服组件,还是觉得接入ChatGPT,把它放在博客中那就完美了

我们在使用ChatGPT时,它的返回方式是采用流式回复。感觉这个效果不错。之前做的全都是的等全部结果请求完成,再一次性返回给用户。今天就通过流式回复的效果重写之前的程序。 前端 前端采用一个网页版的客服组件,整体的效果如下:…

小白学Pytorch系列- -torch.distributions API Transforms (2)

小白学Pytorch系列- -torch.distributions API Transforms (2) AbsTransform AffineTransform 通过逐点仿射映射进行转换yloc⁡scale xy\operatorname{loc}\text { scale } \times xyloc scale x loc (Tensor or float) : 位置参数scale (Tensor or float) : 尺度参数event…

k8s Deployment

一个Deployment控制器会创建一个新的ReplicaSet控制器,通过ReplicaSet创建pod rs v1控制三个pod,删除一个pod,在rs v2上重新建立一个,依次类推,直到全部都是由rs v2控制,如果rs v2有问题,还可以…

Spark on Yarn(client和cluster模式,spark-shell 和 spark-submit 的区别,WorldCount实现与理解)

文章目录Spark on Yarn两种模式clientclusterspark-shell 和 spark-submit 的区别的理解spark-shellspark-submitWorldCount实现IDEA本地实现On Yarn 实现WorldCount图解Spark on Yarn spark on yarn 的两种模式是指 spark 应用程序的 driver 进程(负责控制和协调整…

JAVA8的Optional类,还用 != null 判空?

在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示 在这种情况下,有如下代码 user.getAddress().getProvince(); 这种写法,在…

springboot整合mybatis(idea)

从idea新建项目 选择spring启动* help、mvnw 文件可以删除 springBoot3.0需要的最小JDK是JDK17,当低于17的时候会报错。 改成2.7.6 新建控制层Controller、Mapper层和Model文件夹 必须在springBoot启动项下面新建,不然无法识别。 允许XML进入target…

Java - 泛型

一、什么是泛型? 一般的类和方法,只能使用具体的类型: 要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的 代码,这种刻板的限制对代码的束缚就会很大。----- 来源《Java编程思想》对泛型的介绍。 泛型是在JDK1.5…

初次使用yolov8遇到的问题

记录第一次使用yolo8跑自己的数据; 首先将官方文档看一下,大概捉摸了2个小时,地址:GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > CoreML > TFLite 获得了基本的一些了解&#x…

$\Beta$分布推导与可视化

$\Gamma$函数 $\Gamma$函数(Gamma函数)是阶乘函数在实数和复数域的扩展。对于正整数$n$,阶乘函数表示为$n! 1 \times 2 \times ... \times n$。然而,这个定义仅适用于正整数。Gamma函数的目的是将阶乘扩展到实数和复数域,从而计算实数和复数…

代码随想录【链表】--->删除倒数第N个节点、链表相交、环形链表

⭐️代码随想录⭐️ 数组篇: 二分查找 移除数组 有序数组的平方 长度最小的数组 螺旋矩阵 链表篇: 链表移除 设计链表 反转链表 交换链表中的节点 文章目录19. 删除链表的倒数第 N 个结点思路代码面试题 02.07. 链表相交思路代码142. 环形链表 II思路判断链表有环确…

ARM 制作简易的根文件系统

一、根文件系统概述 1、为什么需要根文件系统 (1) init 进程这个应用程序,在根文件系统上。 (2) 根文件系统提供了根目录:/。 (3) 内核启动后的应用层配置(/etc 目录),在根文件系统上。几乎可以认为:发行版 内核 rootfs。 …

Arduino开发之如何连接压力传感器模块?

文章目录0.引言1.压力传感器模块说明2.代码编写3.功能演示0.引言 在利用Arduino开发过程中,若需知道设备能感知到受到外部按压,设备可以通过压力传感器模块来感知周围环境。本文在【Arduino如何进行开发?】基础上,借鉴现有网络资料…

数字营销新宠:探究2023年YouTube网红营销的核心趋势和商业价值

2023年,YouTube网红营销已经成为全球广告营销行业的重要组成部分。YouTube作为全球最大的视频分享平台,每月活跃用户数达到了20亿,其中有超过100万的YouTube网红在平台上分享自己的创意和想法。在这篇文章中,Nox聚星将和大家探讨2…