Windows Cluster 分布式算法

在分布式系统中,都需要解决分布式一致性问题。那么,在Windows 集群中,使用了什么算法来保证集群的一致性呢——Paxos。Windows Server 故障转移集群 (WSFC) 使用 Paxos 算法在整个系统中同步更改。通过记录 Paxos Tag 值并保留历史记录,可以轻松监控节点之间的集群数据库同步。在分布式系统中,每个节点都存储提案数据。在Windows 集群中,节点和见证磁盘存储提案数据。

注意:文件共享见证并不存储集群数据(历史原因这就不得而知了)

在 Windows Server 集群中,集群数据库是存储集群配置的地方。这是一个名为 CLUSDB 的文件,其中包含一些辅助文件(CLUSDB.1.container、CLUSDB.2.container、CLUSDB.blf),你可以在 C:\Windows\Cluster (%systemroot%\Cluster) 中找到这些文件。

图片

集群数据库也存在于一个注册表配置单元中,该配置单元在集群服务启动时会被加载。数据在 HKEY_LOCAL_MACHINE\cluster。

图片

现在我们知道注册表存在于多个位置并在节点之间进行复制。这种复制对于一个健康的集群来说是至关重要的。你可以在名为 PaxosTag 的集群键下看到一个 DWORD 值(如上图)。这个就是版本号,它跟踪记录集群的任何更改,这对于节点和磁盘见证(如果存在)之间的集群数据库一致性很重要。如果你更改了集群配置,Paxos Tag的数值也将变化。

这是新版的 Paxos Tag 格式,也是使用冒号分隔为三段数据,例如 2021/01/13-07`59`06.363_28:2021/01/13-07`59`06.363_28:123416

每次更改集群配置时,内部同步过程都会向集群中的所有节点发送提案。这由一个序列号(Sequence Numbe)和一个提案号(ProposalNumber)组成。一旦提案者从大多数节点获得共识,它将选择一个值并将其广播给所有其他节点以提交该值。这是Paxos Tag算法的内部工作原理。
 

在Windows Server 2008 故障转移群集中,Paxos Tag由三个数字组成, 每个数字用冒号分隔开,例如 3:3:276。这三个数字表示NextEpochNumber、 LastUpdateEpoch Number和Sequence Number。该数字存储在注册表HKLM\Cluster 的PaxosTag中,在各个节点中应是保持相同的。

图片

当集群形成时,Epoch 数值将改变(新版本为集群形成时间戳)。每次对集群配置进行更新时,都会更最后的改序列号值。集群中的同步过程向集群中的所有节点发送一个提案。该提案由一个序列号和一个提案号组成。集群节点检查其集群配置的本地副本,以查看它是否具有更新的序列号或更高的提案号。如果节点没有更高的数字,则节点将接受提案值并发送回提案节点。如果集群中的大多数节点都接受了同一个提案,那么集群将达成“共识”。

所以,只有当集群恢复正常、或使用/forcequorum 开关(/FQ)启动集群时,Paxos Tag 的Epoch会发生改变。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue 如何发布并部署到服务器

一般情况npm run build即可 从而生成vue代码直接放到服务器即可 这里的具体情况要看package.json里面的配置从而使用命令 会生成dist就是该项目的发布包

Inno Setup打包winform、wpf程序可判断VC++和.net环境

Inno Setup打包winform、wpf程序可判断VC和.net环境 1、下载Inno Setup2、新建打包文件、开始打包1、新建打包文件2、填写 应用名称、版本号、公司名称、公司官网3、选择安装路径 Custom是指定默认路径、Program Files folder是默认C盘根目录4、选择程序启动exe文件 以及Addfol…

Ubuntu下安装、配置及重装CUDA教程

安装CUDA 前往Nvidia CUDA Tools官网选择对应的架构和版本下载CUDA 以如下架构和版本为例: 查看显卡驱动 nvidia-smi如果显卡驱动已经装了,那么在CUDA安装过程中不用再勾选安装driver 下载并安装CUDA wget https://developer.download.nvidia.co…

ETHERCAT转ETHERCAT网关西门子为什么不支持ethercat两个ETHERCAT设备互联

1.1 产品功能 远创智控YC-ECT-ECT是自主研发的一款ETHERCAT从站功能的通讯网关。该产品主要功能是将2个ETHERCAT网络连接起来。 本网关连接到ETHERCAT总线中做为从站使用。 1.2 技术参数 1.2.1 远创智控YC-ECT-ECT技术参数 ● 网关做为ETHERCAT网络的从站,可以连接…

HTML5学习简记

目录 HTML定义 标签 HTML基本骨架 常见标签 标题标签 段落标签 换行与水平线标签 文本格式化标签 图像标签 绝对路径与相对路径 超链接标签 音频与视频标签 列表标签 无序列表 有序列表 定义列表 表格标签 表格结构标签 合并单元格 表单标签 input标签 input标签占…

CSS---CSS面试题

目录 1.盒模型 2.offsetHeight /clientheight/scrollHeight 3.left与offsetLeft 4.对BFC规范的理解 5.解决元素浮动导致的父元素高度塌陷的问题 6.CSS样式的先级 7.隐藏页面元素 8.display: none 与 visibility: hidden 的区别 9.页面引入样式时,使用link与import有…

GO 语言GC

目录 写屏障 读屏障 GO语言GC准备 堆内存结构: GC内存分配: GC触发: P的作用: 写屏障 实现强弱三色不式,为了避免误删,则实现写屏障. 写屏障是在写操作中插入指令,目的是把数据对象的修改通知到GC GO语言支持两种写屏障 读屏障 非移动垃圾回收(例如 三色)天…

文件共享服务器

文章目录 一、共享服务器概述二、创建共享三、访问共享四、创建隐藏的共享五、访问隐藏共享的方法六、共享相关命令七、屏蔽系统隐藏共享自动产生1. 打开注册表2. 定位共享注册表位置 八、查看本地网络连接状态(查看开放端口)九、关闭445服务 一、共享服…

java线上故障排查套路总结

线上故障主要会包括cpu、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top 三连&#x…

【Vue/element】 el-table实现表格动态新增/插入/删除 表格行,可编辑单元格

el-table实现表格动态新增/插入/删除 表格行,可编辑单元格 效果如下: 点击“新增一行”可以在表格最后新增一行,单元格内容可编辑 点击绿色按钮,可在指定行的后面插入一行 点击红色-按钮,可以删除指定行 原理&#…

【IM群发苹果日历】获取推送通知的设备标识符(Device Token)

苹果日历群发部署设置推送服务器推送服务器,用于向苹果日历应用的设备发送推送通知。推送服务器需要能够与Apple Push Notification Service (APNs) 进行通信。怎样来做? 部署设置推送服务器并与APNs进行通信需要以下步骤: 获取APNs证书&am…

Ubuntu下安装Miniconda

下载 到根据自己本地python版本到官网下载 https://docs.conda.io/en/latest/miniconda.html#linux-installers 我本地是python3.8 然后上传到Ubuntu服务器上,或者直接使用wget下载: wget https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5…

Go语言之函数补充defer语句,递归函数,章节练习

defer语句是go语言提供的一种用于注册延迟调用的机制,是go语言中一种很有用的特性。 defer语句注册了一个函数调用,这个调用会延迟到defer语句所在的函数执行完毕后执行,所谓执行完毕是指该函数执行了return语句、函数体已执行完最后一条语句…

vue使用echarts根据页面大小 echarts窗口自适应

1. 使用window.onresize var myChart echarts.init(document.getElementById(myChart)); window.onresize () > {myChart.resize() }优点: 可以根据窗口大小实现自适应 缺点: window.onresize是绑定到window上的,切换vue页面时监听依…

EXCEl——移除单元格中换行符

方法一:使用清除格式功能 步骤如下: 1.选中需要取消换行的单元格 2.在“开始"选项卡中找到"清除”功能,点击下拉菜单中的“清除格式" 3.这时单元格的换行就被取消了。 清除前效果图 清除后效果图 方法一:使用函数功能 步骤…

uniapp H5预览PDF文件

1&#xff0c;下载资源后hybrid文件存放在static静态文件里 (点击这里去下载文件) 2&#xff0c;pdf预览页面配置 <template><view style"width: 100vh;"><web-view :src"pdfUrl"></web-view></view> </template><…

多旋翼物流无人机节能轨迹规划(Python代码实现)

&#x1f4a5;1 概述 多旋翼物流无人机的节能轨迹规划是一项重要的技术&#xff0c;可以有效减少无人机的能量消耗&#xff0c;延长飞行时间&#xff0c;提高物流效率。下面是一些常见的节能轨迹规划方法&#xff1a; 最短路径规划&#xff1a;通过寻找起点和终点之间的最短路径…

性能测试学习阶段性总结

目录 1.前言 2.概念部分 2.1不同角度看软件性能 2.2关键词 2.3测试的方法 2.4应用领域 3.性能测试过程模型&#xff08;PTGM&#xff09; 2.1测试前期准备 2.2测试工具引入 2.3测试计划 2.4测试设计与开发 2.5测试执行和管理 2.6测试分析 总结&#xff1a; 1.前言…

visio 图片转换到 latex 中

调整图片大小 在Visio中&#xff0c;设计–>页面设置–>大小–>适应绘图&#xff0c;这样会自动去除多余空白&#xff0c;保留部分空白作为边界&#xff0c;无需使用Word。 2. 将新的Visio文件另存为pdf格式文件 3. latex 中插入pdf 格式图片

使用更少数据训练更好的alpaca

概述 该论文的研究背景是指令微调在大型语言模型中取得了重要的成果&#xff0c;但现有的训练数据质量问题导致模型性能下降。 过去的方法主要是使用低质量的数据进行指令微调&#xff0c;这些数据中存在错误或无关的回答&#xff0c;导致结果误导和训练成本增加。该论文的方…