首页 > 编程知识 正文

集群管理工具(rabbitmq镜像集群)

时间:2023-05-04 19:21:47 阅读:69901 作者:3472

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

由于群集技术的核心是资源访问控制群集中的所有节点都可以访问集群对外共享的资源,因此如果多个节点同时操作同一资源,可能会出现问题。 例如,假设节点a向共享存储进行写入。 节点b也向同一位置的存储写入时,会发生数据不一致。

一般来说,由于集群资源访问控制技术的发展,可以将集群分为无预留模式SCSI-2预留模式和SCSI-3预留模式集群。 群集要求因型号而异。

最初,集群的模式为无预留此模式下最常见的控制方法是控制卷组的状态。 此时,集群节点访问LUN的步骤如下。

1 .在群集节点上为LUN创建卷组和逻辑卷。

2 .集群节点开始集群业务。

3 .集群确定哪些节点是主节点,哪些节点是备用节点。

4 .群集在主节点上激活卷组并装载逻辑卷。

5 .群集在准备节点上激活卷组,使其无法访问逻辑卷。

在此操作模式下,存储系统没有其他要求,并且映射的LUN能够在操作系统上创建卷组、逻辑卷并正常读写即可群集可以控制每个节点对LUN的访问,方法是控制节点上卷组的状态。

这种方式实现起来最简单,但如果发生非常严重的缺陷就是心跳不能出现问题大脑分裂(集群节点间心跳通信断开) ),集群节点之间失去联系,各节点就会误认为对方发生了故障

此外,在共享存储环境中,多个前端主机可能同时访问同一存储设备。 在这种情况下,为了防止多台主机在同一时点上对一个LUN进行写操作,那么可想而知这个LUN将不知道哪个数据先写,哪个数据后写由此导致的数据损坏,在http://www.Sina.com/SCSI reservation机制中进行数据读写的操作现在是http://www.Sina .

如果有其他主机,则在有了SCSI预留概念保留的SCSI主机崩溃,或者其他主机在绝大多数的磁盘和阵列都支持SCSI reservvation命令然后第二个主机发送I/O请求之前,执行SCSI resess已经被锁定的磁盘发送读写请求,则会收到Reservation Conflict报错信息,但给磁盘阵列发送Break Reservation或者Reset Target命令用来解除SCSI锁

为了解决SCSI预留有SCSI-2 Reservation和SCSI-3 Reservation两种类型,引入了SCSI-2保留模式的集群。 在这种情况下,群集节点访问LUN的过程如下:

一个LUN上只能存在一种类型的SCSI预留

脑裂后集群节点抢占资源的问题如果保留失败,将显示一条保留冲突消息,并继续尝试,直到保留成功。

3 .对LUN的节点操作完成后,可以执行释放操作,其他节点可以保留。

使用此保留方法可以确保始终为1. 集群节点向需要访问的LUN发起预留操作。,但存储系统必须支持SCSI-2保留命令集,存在以下缺点:

如果2. 预留操作成功后,则节点获得LUN操作权限群集节点上存在多路径,则当前路径出现故障后无法取消保留,并且无法继续访问LUN。 多路径等于无效。

只有一个节点能访问共享资源,如果LUN已被保留,则无法保留其他节点,除非对LUN执行重置操作。 但是,复位容易引起数据的不一致。 因为复位操作不会通知您已经预约了主机。

为了SCSI-2 Rese

rvation只允许设备被发出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”或“扫一扫”下面二维码关注公众号,获取更多精彩内容。

听说点赞和分享的朋友都已走上人生巅峰

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。