WSFC2016 工作组部署模型

今天老王来和大家聊聊WSFC 2016里面的工作组部署模型,正如老王刚开始在WSFC 2016系列开篇所讲,对于WSFC 2016 我们会从维护管理,排错优化,部署迁移几个点分别讲起,基本上我们对于WSFC 2016维护管理的新功能已经讲的差不多,优化和部署还有几篇未完

在讲到工作组部署模型之前呢,我们首先来看看历史问题,为什么要有工作组部署模型

早起在2003时代,如果我们要建立一个群集,每个群集都需要使用一个CSA(Cluster Service Account),即一个域账号,用于支持群集服务启动和群集资源的运行

这样的模型运行了一段时间后,有的管理员开始抱怨,一旦不小心修改了这个账号的密码,或者应用上了一些账号管理策略,群集无法启动了,等等。

于是在2008时代开始,微软改变了这种群集账户模型,引入了CNO和VCO模型

CNO   Cluster Name Object

1.作为群集访问标识的一部分,管理员或应用可以连接到CNO访问群集

2.负责管理VCO 虚拟机计算机对象的创建,密码同步,VCO DNS记录创建维护。

3.CNO会被写入特定的SPN,应用程序会通过CNO来和群集完成Kerbros验证

4.CNO会被创建和VCO之间的关联关系,在群集节点注册表中可以得到查看

基本上当我们创建群集的时候,输入的群集名称,群集就会拿着使用我们当前创建群集的账户,联系到AD,在指定OU下生成CNO计算机对象,因此我们创建群集的账户需要可以在OU上面创建计算机对象的权限,创建完成CNO后,还会拿着我们的账号去DNS里面创建CNO的DNS记录。计算机对象和DNS记录合起来算作一个CAP,管理或应用都依赖于这个CAP去访问群集。

创建完成CNO之后,所谓VCO 虚拟计算机对象,即是指,我们在群集上面跑的群集应用,通常情况下大部分群集应用都会要单独的访问名称和IP,向导完成后,群集就会拿着我们输入的访问名称,去AD里面创建VCO,以及VCO的 DNS记录,这里VCO的计算机对象和DNS记录,就是由CNO负责维护的了,CNO创建完成VCO后会在VCO ACL里面写入CNO的权限。

基本上大家可以看到,在2008时代之后,群集和AD域的关系变的越来越紧密,如果你要部署Windows Cluster,那么就一定要有一个AD,那对于很多企业来说可能就面临一些问题

  1. 我企业里面只有几个SQL DBA,我们需要SQL群集,但是又不懂AD,部署群集需要AD,AD出现问题,SQL DBA没办法解决AD层面的问题
  2. 带来额外的管理成本
  3. 一旦AD域服务器进行维护,群集将无法启动

上面我们说到群集会在AD中创建CNO,VCO计算机对象,它们和其它计算机对象也是一样的,也需要进行密码同步,启动时也需要联系到AD进行验证,在2012之前,假设这时AD服务器正在维护重启,这时候如果群集正在进行故障转移,手动切换,或冷启动,群集需要联机上线时,你会发现群集网络名称资源时没办法连接的,因为联系不到AD,CNO和VCO无法进行验证,因此群集会关闭,只有等AD重新启动时,群集才能启动,这样就导致了额外的停机时间

其关键还是群集与AD太过于紧密了,每次联机都需要和AD进行验证,而且Kerbros验证也需要经过AD

所以有的企业如果没有AD域环境的需求,可能就在想能不能不用AD域,或者减轻群集对于AD域的依赖

微软在WSFC 2012时代更新了这方面的技术,主要有两个

  1. 无Active Directory集群启动

在一些虚拟化场景下,可能域控制器也进行了虚拟化,就在群集中,那么就很可能会陷入一个循环问题,群集启动,但是虚拟机在群集里面,而域控虚拟机没启动群集又始终启不来,WSFC 2012微软在虚拟化域控制器的场景下,可以支持域控制器没启动下,先让群集节点启动。

Tip:虽然微软宣称有了这项技术,但还是建议大家额外部署一台域控在群集外,或始终保留一台物理机域控

2.无Active Directory依赖群集

2012开始支持无AD依赖群集,即不需要创建CNO与VCO对象的群集,群集管理员不再需要过多关心AD,也不需要担心CNO VCO对象被删除,导致群集无法使用的情况,在2012时代,此技术仍需要群集节点加入到域,但创建群集的时候不需要联系AD管理员分配AD写入权限,群集管理员完全就可以自行创建群集

这种所谓的无AD依赖群集,看起来很好,结合无AD群集启动技术,可以把对于AD的依赖降到最低,但是随之也有它的弊端,No Computer Object No Kerberos,您不能对无AD依赖群集进行Kerberos的验证,虽然在群集内通信可以使用Kerberos,但是从外面访问群集名称要做验证,只有通过NTLM

以下为群集负载对于无AD依赖环境的支持情况

集群工作负载 支持/不支持 更多信息
SQL Server 支持 我们建议您使用SQL Server身份验证进行Active  Directory独立的群集部署。
File server 支持,但不推荐 Kerberos身份验证是服务器消息块(SMB)流量的首选身份验证协议。
Hyper-V 支持,但不推荐 支持快速迁移,不支持实时迁移,因为它具有对Kerberos身份验证的依赖。
Message Queuing (also known as MSMQ) 不支持 消息队列存储属性在AD DS

除上述资源外:Bitlocker群集磁盘加密,自动更新的CAU也不被支持

基本上最适合的负载就是SQL Server了,SQL DBA现在可以部署一个SQL群集或SQL Always on,然后使用SQL身份验证,AD服务器重启维护短时间也不会影响到SQL群集的正常运行。

2012时代创建一个无AD依赖群集步骤如下

#创建无AD依赖群集

New-Cluster SQLCluster -Node sql01,sql02 -StaticAddress 10.0.0.80 -NoStorage -AdministrativeAccessPoint Dns

#查看群集管理点模式

(Get-Cluster).AdministrativeAccessPoint

命令中的AdministrativeAccessPoint即群集的管理点模式,默认情况下是由CNO计算机对象+DNS记录共同构成,如果您不需要群集依赖于AD,不需要CNO,那么您单独指定仅DNS作为管理点即可

需要注意,WSFC 2012创建无AD依赖群集,没有GUI的方式,只有通过Powershell操作

一旦创建完成后群集部署架构已定,无法更改,除非摧毁重建群集

创建完成无AD依赖群集后,您需要为群集配置共享存储,见证,建议最优先实现磁盘见证,文件共享见证次之

这是2012时代的模型,好像国内对于这项功能关注的朋友并不多,事实上老王觉得一些SQL DBA倒是应该了解下,至少可以减少你SQL群集对于AD域的一部分依赖

也maybe是无AD依赖环境还是存在一些问题,例如仍然还是需要AD,而AD又通常和DNS在一台,如果这台服务器维护,一段时间过后群集也可能出现问题。

到了WSFC 2016时代,微软彻底如大家所愿,现在可以在一个完全工作组的环境下部署WSFC群集,连域成员身份也不需要了,彻底摆脱AD,直接使用工作组就可以部署群集,这对于企业没有AD域环境,又想要部署群集,或者想要部署群集但是又不一点也想管理AD域的管理员来说就太方便了

但是和2012时代无AD依赖一样,No Computer Object No Kerberos,支持的负载依然一样,最适合的负载还是SQL 群集&AG 使用SQL身份验证

实验验证WSFC 2016工作组模式群集

环境介绍

DNS&iscsi

lan:10.0.0.2 255.0.0.0

iscsi:30.0.0.2 255.0.0.0

HV01

MGMET:10.0.0.9 255.0.0.0 DNS 10.0.0.2

ISCSI:30.0.0.9 255.0.0.0

CLUS:18.0.0.9 255.0.0.0

HV02

MGMET:10.0.0.10 255.0.0.0 DNS 10.0.0.2

ISCSI:30.0.0.10 255.0.0.0

CLUS:18.0.0.10 255.0.0.0

工作组模式群集先决条件

  1. 所有节点操作系统必须为Windows Server 2016
  2. 所有节点必须使用已经认证的标识硬件
  3. 所有节点必须安装故障转移群集功能
  4. 工作组模式群集需在各节点使用相同密码相同用户,该用户需要是本地管理组成员,如果是非administrator用户还需额外修改注册表键值
  5. 对于工作组模式群集,要求每个节点需要有主DNS后缀

操作流程

  • 在各节点创建相同密码本地用户

  • 添加用户进入各节点本地管理员组

  • 设置用户密码,并勾选密码永不过期

  • 修改注册表键值

由于我们没有使用默认的administrator用户,所以我们需要修改各节点注册表键值

进入注册表如下位置HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

新增DWORD键值LocalAccountTokenFilterPolicy,设定值为1

  • 为各节点新增DNS主后缀,修改完成后需重启

  • 先决条件都准备完成后,我们可以通过GUI或Powershell创建工作组群集,Powershell命令和2012无AD依赖群集相同

这里我们选择通过GUI界面进行创建,打开故障转移管理器,创建群集,添加节点名称,正常情况下输入后应该可以看到带DNS后缀的节点

群集验证,这里我们暂时选择否

输入群集名称,这里如果我们部署的是传统的AD域模型,会拿着我们这个名称去创建CNO和DNS管理点,但是这里由于我们是工作组模型,因此只会创建DNS管理点

点击下一步确认,可以看到,群集创建向导识别出我们当前是工作组群集,自动帮我们确认为仅DNS注册

创建完成后可以看到,群集当前正常工作,且自动帮我们选择大于512MB的最小磁盘作为见证

这时如果执行群集验证向导,可以看到关于AD配置的警告,警告指出我们当前是工作组模式部署,需要为所有节点更新相同的补丁,确保DNS名称被复制到群集节点的权威DNS服务器

Tip:别忘记,生产环境下执行群集验证,如果勾选存储验证,会导致应用脱机联机

工作组群集创建完成后,下面我们可以开始做基于群集的应用部署,按照微软的建议,依然是使用SQL身份验证的SQL群集&AG为最佳场景,但老王认为不需要Kerberos验证,又不需要写入AD域对象的应用,也尝试工作组部署模型。

WSFC 2016新功能大部分也都可以用于工作组模式群集 ,例如

故障域站点感知

站点运行状况检测

Cluster Log 优化

简单的SMB多通道

群集VM负载均衡 ( No LiveMigration  Only QuickMigration )

VM弹性与存储容错 ( No LiveMigration  Only QuickMigration )

时间: 2024-10-21 09:29:23

WSFC2016 工作组部署模型的相关文章

SSIS教程:创建简单的ETL包 -- 6. 对项目部署模型使用参数(Using Parameters with the Project Deployment Model)

在本课中,将修改在第 5 课: 添加包部署模型的包配置中创建的包,以便使用项目部署模型.您将使用一个参数替换该配置值,以便指定示例数据位置.还可以复制本教程附带的已完成的 Lesson 5 包. 使用 Integration Services 项目配置向导,您将该项目转换为项目部署模型,并且使用参数而不是配置值来设置 Directory 属性.本课部分介绍了您将现有 SSIS 包转换为新的项目部署模型时要遵循的步骤. 再次运行包时,Integration Services 服务将使用参数填充该变

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第2章节--SharePoint 2013 App 模型概览 理解三个SharePoint 部署模型 Apps

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第2章节--SharePoint 2013 App 模型概览 理解三个SharePoint 部署模型 Apps 由于SharePoint 2013 正逐步移动到云,有三类部署模型可用来帮助你完毕这个目标(关于SharePoint Apps): SharePoint-hosted: Autohosted: Provider-hosted: 每一类部署模型都含有特色,使它成为针对不同类型App开发的理想的(选择).以下的部

SSIS教程:创建简单的ETL包 -- 5. 添加包部署模型的包配置(Adding Package Configurations for the Package Deployment Model)

包配置允许您从开发环境的外部设置运行时属性和变量. 配置允许您开发灵活且易于部署和分发的包.Microsoft Integration Services 提供了以下配置类型: XML 配置文件 环境变量 注册表项 父包变量 SQL Server 表 Step 1: 复制第 4 课包 Step 2: 启用和配置包配置 创建映射到 Directory 属性的新的包级别变量 在 SSIS 设计器中,单击“控制流”选项卡的背景. 这会将要创建的变量的作用域设置为包. 在 SSIS 菜单中,选择“变量”.

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第2章节--SharePoint 2013 App 模型概览 理解三个SharePoint 部署模型 Apps

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第2章节--SharePoint 2013 App 模型概览 理解三个SharePoint 部署模型 Apps 因为SharePoint 2013 正逐步移动到云,有三类部署模型可用来帮助你完成这个目标(关于SharePoint Apps): SharePoint-hosted: Autohosted: Provider-hosted: 每一类部署模型都含有特色,使它成为针对不同类型App开发的理想的(选择).下面的部

SSIS2012 项目部署模型

SSIS 2012 支持两种部署模型:项目部署模型和包部署模型. 使用项目部署模型可以将项目部署到 Integration Services 服务器,使用包部署模型可以将单独的包部署到Integration Services 服务器. 关于部署 SSIS 2012 支持两种部署模型:项目部署模型和包部署模型. 使用项目部署模型可以将项目部署到 Integration Services 服务器,使用包部署模型可以将单独的包部署到Integration Services 服务器. 下表显示使用项目部

浅谈同城双中心的网络部署模型

企业建设数据中心时,出于灾备的考虑,会建设两个甚至多个数据中心.例如我们经常提到的"两地三中心",即同城双中心+异地中心. 同城双中心是指在同城或邻近城市建立两个可独立承担业务的数据中心,双中心具备基本相同的业务处理能力并通过高速链路实时同步数据,日常情况下可同时分担业务及管理系统的运行,并可切换运行:灾难情况下备应急切换,保证业务的持续性.异地灾备中心是指在异地的城市建立一个备份的灾备中心,用于双中心的数据备份,当双中心出现自然灾害等原因而发生故障时,异地灾备中心可以用备份数据进行业

你真的了解ASP.NET Core 部署模型吗?

原文:你真的了解ASP.NET Core 部署模型吗? ----------------------------   以下内容针对 ASP.NET Core2.1,2.2出现IIS进程内寄宿 暂不展开讨论-------------------------- 相比ASP.NET,ASP.NET Core 2.1出现了3个新的组件:ASP.NET Core Module.Kestrel.dotnet.exe, 后面我们会理清楚这三个组件的作用和组件之间的交互原理. ASP.NET Core 设计的初

ssis 项目部署模型

前几天完成了对ssis的整套流程的熟悉,今天对部署有了一个新的认识,记录一下 上一篇地址:SSIS 初次接触 + 开发记录 之前是使用的包部署模型对项目进行了部署,今天发现可以使用项目部署模型来进行部署,但是需要注意以下几点 1:sql server 端在 "Integration Services Catqalogs" 手动创建 “SSISDB” 数据库,然后自己 创建文件夹,创建包,总共三步 2:赋予登录账号(sa或其他账号)SSISDB访问权限 3:vs端(我使用vs2019),

【tensorflow2.0】使用tensorflow-serving部署模型

TensorFlow训练好的模型以tensorflow原生方式保存成protobuf文件后可以用许多方式部署运行. 例如:通过 tensorflow-js 可以用javascrip脚本加载模型并在浏览器中运行模型. 通过 tensorflow-lite 可以在移动和嵌入式设备上加载并运行TensorFlow模型. 通过 tensorflow-serving 可以加载模型后提供网络接口API服务,通过任意编程语言发送网络请求都可以获取模型预测结果. 通过 tensorFlow for Java接口