常见集群(Cluster)软件和技术解析

集群就是通过软件将一组服务器作为一个整体向客户提供资源。这些单个的服务器就是集群的节点。当对外提供资源的节点故障后,集群中其余的节点能够将资源接管起来,继续对客户提供资源

集群技术的核心就是资源访问控制。由于集群中所有节点都可以访问集群对外共享的资源,当多个节点同时操作同一个资源的时候,就可能引发问题。例如节点A要对共享的存储进行写数据操作,如果节点B也要对相同位置的存储进行写操作,则会引发数据不一致的后果。

一般情况,根据集群资源访问控制技术的发展,我们可以将集群分为无预留模式SCSI-2预留模式和SCSI-3预留模式集群。不同模式的集群对存储系统的要求是不同的。

最开始的时候,集群的模式为无预留。该模式下,最常见的控制方式是控制卷组状态。此时集群节点访问LUN的过程如下。

  • 1. 集群节点上对LUN创建卷组、逻辑卷。

  • 2. 集群节点启动集群业务。

  • 3. 集群判断哪个节点是主节点、哪个节点是备节点。

  • 4. 集群在主节点激活卷组、挂载逻辑卷。

  • 5. 集群在备节点去激活卷组,确保无法访问逻辑卷。

这种工作模式下,对存储系统并没有额外的要求,只需要映射的LUN能够在操作系统上创建卷组、逻辑卷并正常读写即可。集群控制每个节点对LUN的访问是通过控制节点上卷组的状态来实现的。

这种方式实现起来是最简单的,但是有一个非常严重的缺陷就是心跳不能出现问题。一旦出现脑裂(集群节点间心跳通信断开),集群节点间相互失去了联系,则每个节点都会误认为对方出现故障,从而引发节点抢占资源的情况。

另外,在一个共享存储的环境下,多台前端主机可能会同时访问同一台存储设备,如果此时多台主机在同一时点上对一个LUN进行写操作,那么可想而知这个LUN将不知道哪个数据先写,哪个数据后写。为了防止这种情况发生而导致的数据损坏,所以就有了SCSI预留概念。通过SCSI Reservation机制来进行数据读写的操作,目前绝大多数的磁盘和阵列都支持SCSI reservvation命令。如果一台主机给磁盘阵列传输了一条SCSI Reservation命令,则这个磁盘阵列对于其他的主机就处于锁定状态。

如果有其他的主机给已经被锁定的磁盘发送读写请求,则会收到Reservation Conflict报错信息。如果保留SCSI预留的主机崩溃,或者其他主机给磁盘阵列发送Break Reservation或者Reset Target命令用来解除SCSI锁。然后,第二个主机发送I/O请求之前需要重新发送SCSI Reservation命令给磁盘阵列,才可以进行后续的IO操作。SCSI预留有SCSI-2 Reservation和SCSI-3 Reservation两种类型,然而一个LUN上只能存在一种类型的SCSI预留

为解决脑裂后集群节点抢占资源的问题,引入了SCSI-2预留模式的集群。在这种情况下,集群节点访问LUN的过程如下。

  • 1. 集群节点向需要访问的LUN发起预留操作。

  • 2. 预留操作成功后,则节点获得LUN操作权限;如果预留失败,提示预留冲突,会继续尝试,直到预留成功。

  • 3. 节点对LUN操作完毕后,执行释放操作,其他节点可以预留。

通过使用这种预留方式,可以保证任意时刻均只有一个节点能访问共享资源,但是它要求存储系统支持SCSI-2预留命令集,同时也有下面的一些缺陷。

  • 1)预留基于路径。集群节点存在多路径的情况下,当前路径故障后,预留无法取消,无法对LUN继续访问,多路径相当于没有生效。

  • 2)谁预留谁释放。如果LUN已经被预留,其他节点将无法预留,除非对LUN进行重置操作。但是重置容易引发数据不一致。因为重置操作是不会通知原先预留主机的。

由于SCSI-2 Reservation只允许设备被发出SCSI锁的Initiator访问,也就是主机的HBA。比如主机1上的HBA1对访问的LUN加上SCSI-2锁,此时即使主机1的HBA2也无法访问这个LUN。所以SCSI-2 Reservation也被称为Single Path Reservation

为解决SCSI-2预留的问题,最终引入了SCSI-3持续预留的集群技术。在该模式下,集群节点在访问LUN之前,首先向LUN注册(Registration)一个预留密钥(Persistent Reservation key),注册成功后集群节点可以尝试进行持续预留(Persistent Reserve),持续预留成功后就可以获得LUN操作权限

不同的主机对应的PR Key也不同,所以一般SCSI-3 Reservation通常被应用在多路径的共享环境下面。这里SCSI-3 Reservation也称之为Persistent Reservation。与SCSI-2不同,SCSI-3释放操作根据预留密钥,不同集群节点可以使用相同密钥或是不同密钥进行预留,具体可以结合持续预留类型决定。集群节点可以通过抢占来获取已被持续预留的LUN访问权限。SCSI-3抢占和SCSI-2重置不一样,抢占不会造成数据丢失。

SCSI-3预留能够解决之前集群模式预留的问题,但是它对存储系统要求更高,要求其支持更多更复杂的SCSI-3预留命令集

SCSI预留是多台主机用来操作LUN的基本机制。在Windows存储环境中,当多台Windows主机需要访问一个LUN的情况下,例如Windows Cluster环境,就会用到SCSI预留命令。接下来就Windows Cluster 2003/ 2008中使用到的SCSI预留命令进行介绍

Windows 2003集群中使用SCSI-2 ReserveRelease命令。作为非持久的Reservation,集群中的一台节点会持有SCSI-2 Reservation的锁,然后每过3秒会重新刷新一次。如果故障转移发生,则切换节点主机会在相应的磁盘上放置SCSI-2 Reservation然后维护SCSI锁。如果所有节点主机上的集群服务都会关闭,Reservation也不会保留。

Windows 2008集群中使用SCSI-3 Persistent Reservation机制。如果磁盘从主机上没有正确移除,集群使用的磁盘(Cluster Disk)会保留着这些Reservation。锁对应的SCSI预留会一直存在于相应的磁盘之上,即使集群服务被关闭或者磁盘对于主机取消映射(Unmasked)。所以,有些时候需要强行移除磁盘上的Reservation。

温馨提示:请搜索“ICT_Architect”或“扫一扫”下面二维码关注公众号,获取更多精彩内容。

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

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

相关文章

[Linux基础与服务管理——常用集群高可用软件 Keepalived]

1.Keepalived 简介 Keepalived是Linux下的一个免费的、轻量级的高可用解决方案。是一个由C语言编写的路由软件,主要目标是为Linux系统和基于Linux的基础架构提供简单而强大的负载平衡和高可用性设。Keepalived实现了一组检查器,以根据其健康状况动态地和…

集群分为几种,用的软件分别是什么?

集群分为几种,用的软件分别是什么? 补充:涉及的组件 1.1、apache 跨平台的网页服务器,主要使用它做静态资源服务器,也可以做代理服务器转发请求 1.2、ngnix 高性能的 HTTP和反向代理服务器,ngnix处理能力相当于apache…

轻量级集群管理软件-Ansible

ansible概述和运行机制 ansible概述 Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具, 它用Python写成,类似于saltstack和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端 , 它使用SSH来和节点进行通信 Ansible基于 Pytho…

了解集群、集群的分类、常用的集群软硬件及选型介绍(内附详细图解)

Table of Contents 一、集群简介 二、集群的七大优点 三、集群的分类 四、常用的集群软硬件及选型介绍 一、集群简介 集群就是一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点&…

数据I/O

I/O类型 区分同步或异步(synchronous/asynchronous)。 简单来说,同步是一种可靠的有序运行机制,当我们进行同步操作时,后续的任务是等待当前调用返回,才会进行下一步;而异步则相反,…

【赋权算法】Python实现熵权法

在开始之前,我们先说一下信息熵的概念。 当一件事情发生,如果是意料之中,那么这个事情就并不能拿来当做茶余饭后的谈资,我们可以说这个事情并没有什么信息和价值。而当一件不可能发生的事情发生的时候,我们可能就会觉…

【软件测试】大学毕业后顶着压力,巧合的开启了我人生的新篇章......

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 小李:…

中国矿业大学徐海学院最不常见的网络工程计算机毕业设计题目推荐50例

之前有矿业大学徐海学院的童鞋在后台找我们,最近要准备毕业设计了,不会选题,希望可以帮忙给一些毕业设计题目,我整整花了一周把之前做的答辩通过的毕业设计成品进行整理,并精选一些容易实现且不会刷下来的题目列举下。…

电路叠加定理的例题

来看第二题 不擅长画这种图形,见谅 注:叠加定理中,电压源当导线短路处理,电流源当开路处理。

计算机春季高考考什么时候开始报名,2021春季高考报名时间 什么时候报名

2021春季高考报名时间是什么时候,小编整理了相关信息,来看一下! 2021春季高考报名时间 春考招生简章公布(2020年12月下旬); 春考校测方案公布(2021年1月) 春考(2021年1月); 春考出分(通常为考试后两周); 春…

【运维】hadoop集群安装(一)多节点安装

文章目录 一.Purpose二. Prerequisites三. Installation1. 节点规划2. Configuring Hadoop in Non-Secure Mode3. 准备工作4. 配置core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xmlworkers 4. 分发配置、创建文件夹5. 格式化6. 操作进程6.1. hdfs启动停止 6.2. yarn启动…

Mysql--技术文档--基本概念--《世界上最流行的关系型数据库之一》

官方网址 MySQL 阿丹: 作为关系型数据库管理的老大哥,一个合格的程序员多多少少一定要了解mysql库。 官方解释 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管…

Spring Boot中通过maven进行多环境配置

上文 java Spring Boot将不同配置拆分入不同文件管理 中 我们说到了,多环境的多文件区分管理 说到多环境 其实不止我们 Spring Boot有 很多的东西都有 那么 这就有一个问题 如果 spring 和 maven 都配置了环境 而且他们配的不一样 那么 会用谁的呢? 此…

二十年前的电脑配置单,大家见过吗?

去年搬家时,从角落里找到一台小时候用过的台式电脑,当时家人像宝贝供着,不让我用,后来出去读书,不知道什么时候淘汰的,现在放在角落里吃灰。如下图所示,不知道是什么牌子,还是挺重的…

无盘服务器怎么设置客户端启动,网吧无盘客户端配置向导

你知道网吧无盘客户端配置向导是怎么样的吗?网吧无盘客户端配置向导如何呢?下面是学习啦小编收集整理的网吧无盘客户端配置向导,希望对大家有帮助~~ 网吧无盘客户端配置向导 工具/原料 深度无盘网吧系统 网吧服务器设备 步骤/方法 1客户端安装完毕后,重启客户机,进入BIOS设…

网吧无盘60台服务器配置,网吧40台无盘服务器的配置

网吧40台无盘服务器的配置 内容精选 换一换 弹性云服务器(Elastic Cloud Server)是一种可随时自动获取、计算能力可弹性伸缩的云服务器,可帮助您打造可靠、安全、灵活、高效的应用环境,确保服务持久稳定运行,提升运维效率。 本节定义了云耀云…

网吧无盘最新服务器配置,2018年50台机网吧无盘服务器配置

大家都知道,现在的网吧都是无盘,无盘网吧服务器和网络配置决定了网吧的大部分性能。而网吧电脑配置的性能直接影响到网吧顾客对网吧的印象。网吧顾客玩得不爽,下次自然不会再来你网吧了。所以,网吧无盘服务器的电脑配置非常关键。…

网吧服务器组装方案,网吧服务器配置方案有哪些

服务器作为硬件来说,通常是指那些具有较高计算能力,能够提供给多个用户使用的计算机。服务器与PC机的不同点很多,例如PC机在一个时刻通常只为一个用户服务。服务器与主机不同,主机是通过终端给用户使用的,服务器是通过…

网吧服务器系统如何配置,网吧服务器系统配置

网吧服务器系统配置 内容精选 换一换 支持。SFS容量型文件系统:支持为SFS容量型文件系统配置多个VPC,以使归属于不同VPC的云服务器,只要所属的VPC被添加到文件系统的VPC列表下,或云服务器被添加到了VPC的授权地址中,则实际上归属于不同VPC的云服务器也能共享访问同一个文件…

网吧电脑可以练计算机一级吗,为啥网吧电脑配置不高却不卡?真相恍然大悟

为什么网吧电脑配置不高,但从来不会觉得卡? 5月13日消息,联想官方微博解读了这一问题,原因有以下几点: 1、独享光纤网络 咱们都知道很多家里玩起来卡的游戏,在网吧玩就流畅的不行,配合着旁边队友…