第八章 Hyper-V 2012 R2 故障转移群集

和终端用户相比,企业用户对于业务的连续性和可靠性更为在意。相对而言,企业一般不会将追逐单一硬件的性能排在第一位。

如何衡量业务是否持续可用,一般使用"x 个 9"这种方式来定义。如我们常说的"3 个 9",即表示年可用性为 99.9%,也即意味着一年只能有 8.76 个小时的系统停机时间。对于单台物理服务器而言,这意味着该设备一年内不能出现硬件损坏的情况,否则更换配件和重新上架的时间过长,很容易导致可用性等级超出这个标准。

像"5 个 9",甚至"6 个 9"这种高可用性是如何实现的呢?可想而知,通过单台物理服务器来实现这种目标将是非常苛刻且成本高昂的。

常见的可用性与相应的可允许停机时间如表 8-1 所示。

可用性%

每年可停机时间

每月可停机时间

每周可停机时间

99%

3.65

7.20 小时

1.68 小时

99.50%

1.83

3.60 小时

50.4 分钟

99.80%

17.52 小时

86.23 分钟

20.16 分钟

99.90%

8.76 小时

43.8 分钟

10.1 分钟

99.95%

4.38 小时

21.56 分钟

5.04 分钟

99.99%

52.56 分钟

4.32 分钟

1.01 分钟

99.999%

5.26 分钟

25.9

6.05

99.9999%

31.5

2.59

0.605

99.99999%

3.15

0.259

0.0605

8-1 可用性与停机时间简表

为了满足企业对业务持续可用的追求,降低年故障停机时间,系统、网络、存储各大厂商都引入了"群集"的概念。"群集"的作用是通过多台硬件同时运行来实现的,当故障发生时,通过快速且自动化的切换故障服务器,从而实现业务的持续运行。和传统的硬件故障或网络故障发生后,需要人为参与排障不同的是,群集技术是不需要人为参与的,可以做到全自动运行。当故障发生时第一时间转移故障节点,从而极大限度的提升业务持续可用的能力。

Windows Server 2012 R2 作为新一代的 Cloud OS,其 Hyper-V 角色自然也拥有"群集" 的能力。Windows 下的群集技术被称之为"故障转移群集",Hyper-V 角色的故障转移群集目的很明确:当群集内某一台 Hyper-V 主机出现故障无法提供服务时,可由群集内的其他主机快速接管任务,继续为用户提供持续可用的服务。

在介绍微软私有云之前,必须对微软的故障转移群集有深入的了解,它属于微软私有云实现高可用性的核心技术。

8.1 故障转移群集简介

8.1.1 故障转移群集功能

故障转移群集(Failover Cluster)是 Windows Server 下的群集技术的全称。它指的是一组协同工作的独立服务器,通过物理链路和软件进行连接,以相应的技术手段来实现更好的服务可用性:当群集内某一台物理服务器出现故障时,另一台服务器开始接管故障服务器的服务(此转移的过程被称为故障转移过程)。群集角色会主动监测群集内的主机工作是否正常,通过故障转移,最终用户所能感知到的停机时间将会非常短暂。尽管群集多数是由两台以上的独立服务器组成,但在逻辑上,它们被认为是一个紧密的整体。

故障转移群集在 Windows Server 下是一项覆盖面很广的技术,其不仅可以提升 Hyper-V 的服务可用性,还可以将以下几个重要角色添加到故障转移群集中:

  • DFS 命名空间服务器:命名空间是一个组织中文件共享的虚拟视图。当用户查看命名空间时,共享看似驻留于单个硬盘中。用户无需了解承载数据的服务器名称或文件共享,即可导航命名空间。
  • DHCP 服务器:DHCP 服务器自动提供客户端计算机和其他基于 TCP/IP 并具有有效 IP 地址的网络设备。
  • 虚拟机:虚拟机是在物理计算机上运行的虚拟化的计算机系统。多个虚拟机可运行在同一台计算机上。关于虚拟机的故障转移群集也是本书的重点之一。
  • Hyper-V 副本代理:故障转移群集可以使用 Hyper-V 副本代理加入具有 Hyper-V 副本的虚拟机复制。每个故障转移群集上只能配置一个 Hyper-V 副本代理。通过Hyper-V 副本代理,使得 Hyper-V 副本可以在故障转移群集中使用。
  • 文件服务器:文件服务器的群集可以为用户提供基于文件共享的高可用实例。
  • 通用服务、脚本、应用程序:可以将本不是用于在故障转移群集中运行的服务、脚本、应用程序配置高可用性。
  • Exchange 服务器:在早期的 Exchange 中,如 Exchange2007,即采用的故障转移群集技术,最新的 Exchange2010 2013 所采用的 DAG 技术则采用了故障转移群集组件提供的有限的一部分群集功能。DAG 使用群集数据库、群集心跳(Cluster heartbeat)及文件共享见证(File Share WitnessFSW)功能
  • SQL ServerSQL Server 是一套数据库系统,通过故障转移群集,可为 SQL Server 带来高可用性,使用户免遭服务中断的影响。

8.1.2 什么是高可用性

高可用性(High_Availability)简称 HA,其不限制具体采用的技术,只要利用到了"未雨绸缪"的设计思想,均算是高可用性的一种。如正常的系统备份、硬件级别的离线冷备份、硬件级别在线热备份、异地灾备、软件群集技术,这些均算是高可用性的范畴内。唯一不同

的是,由于所采用的技术不同,其所提供的可用性级别不同,出现故障时的转移时间不同。

8.1.3 故障转移群集优势

故障转移群集的优点正如其名称一样,通过转移故障,为最终用户带来自动化的,中断时间相对较短的高可用性。总的来说,故障转移群集可以实现以下几个目标:

  • 适应计划内的停机维护,通过故障转移群集,可以在设定的时间范围内对群集内的一部分服务器进行停机维护,同时可以保障业务的连贯性。使用故障转移群集,可以在白天进行一些维护工作,而无需等到夜深人静时加班去做这些操作。
  • 减少计划外的停机时间,故障转移群集通过自有的算法机制,自动接管意外停机服务器上的服务,减少由于硬件或软件的故障造成的停机,对业务连贯性的影响,维护整套系统的高可用性。

由此可以看出,故障转移群集是一种为提供更高可用性而存在的技术。在 Windows Server 2012 R2 中,故障转移群集支持最多 64 个节点,而在 Windows Server 2008 R2 中,仅仅支持 16 个节点。在数据中心越来越庞大的今天,16 个节点的限制显然是捉襟见肘的,要满足用户的需求,升级系统势在必行。同时,在 Windows Server 2012 R2 中,每个群集中的最大虚拟机数量也从 Windows Server 2008 R2 中的 1000 个提升到了 8000 个。

8.1.4 故障转移群集的缺点

故障转移群集可以为企业带来更高的可用性,相应的,为了搭建故障转移群集需要付出一部分代价方可实现。

  • 相对较低的资源利用率,由于希望当故障发生时,可以有备用的服务器随时转移故障,接管服务,因此群集内的所有服务器不可能会满负荷运行,至少要预留一部分资源,以完成可能会发生的故障转移的操作。
  • 增加响应时间,由于最终用户不是直接和目标服务器通信,而是由一套群集机制来负载和分流,因此对于维护故障转移群集本身,这需要消耗一部分系统资源去实现,相应的,会增加一些系统响应时间。
  • 额外的成本,由于使用故障转移群集需要投入冗余的硬件成本和共享存储,因此在设备投资上会超越非高可用架构的设计规划。
  • 相对较高的技术要求,由于使用了冗余的架构设计,因此需要 IT 管理人员的知识面要更加广泛。

8.1.5 故障转移群集的网络要求

故障转移群集要求网络存在冗余,一般实际部署中,单台物理服务器会使用两条网线,其中一条接入生产网络,另外一条作为心跳线(heart line),为群集之间互相验证存活的手段。需要注意的是,心跳线在 Windows Server 2012/2012 R2 中并不是必要条件。故障转移群集建议的是网络链路的"最好"存在冗余,至于冗余的线路是承载生产网络还是单纯作为心跳使用,并没有严格要求。

如果希望业务能够很好的分层处理,在规划服务器虚拟化或微软私有云之初,就需要对故障转移群集的网络部分进行统筹设计。任何方案都类似,当架构成型后,再做架构方面的变动,就会牵扯到很多环节,继而有可能影响业务的持续可用。

8.2 搭建共享存储服务器

如果希望使用故障转移群集,则必须要为故障转移群集准备共享存储,共享存储可以使用直连存储、iSCSI 存储、光纤存储中的一种。关于三种存储的优缺点,以及所采用的硬盘所带来的性能差异可参考本书前面的章节。如果企业预算紧张或在测试环境中希望对群集的功能进行验证,则可以使用 Windows Server 2012 R2 自带的角色功能来搭建"iSCSI 目标服务器"。

8.2.1iSCSI 目标服务器的优势

作为 Windows Server 2012 起自带的一项系统功能,"iSCSI 目标服务器"最大的优势是搭建简单,应用方便。在 Windows Server 2008 R2 时代,如果希望搭建虚拟化的共享存储,一般会采用"Openfiles"的类 Linux 操作系统来实现,Openfiles 配置共享存储的操作步骤较多,设置选项也较为复杂,相比我们熟知的 Windows Server 系统,其部署难度和管理难度都超出预期。Windows Server 2012 R2 提供了简便快捷的"iSCSI 目标服务器",将部署和运维共享存储的难度进一步降低。

另一方面,Windows Server 2012 R2 中"iSCSI 目标服务器"所生成的存储格式为 vhd 或 vhdx,在 Windows Server 2012/2012 R2 操作系统中,这种文件格式极易被编辑和拷贝、增减、维护。这一点也是该功能的显著优势。

8.2.2 安装 iSCSI 目标服务器角色

为了使用"iSCSI 目标服务器"来模拟 iSCSI 共享存储,首先需要为目标服务器添加"iSCSI 目标服务器"角色。如果希望保证"iSCSI 目标服务器"的性能,建议最好在物理服务器上安装此角色。如果为了验证功能,不考虑性能,则可以在虚拟化环境中搭建。在继续进行下面的操作之前,需要简单理解三个概念:

  • iSCSI 目标服务器:为其他计算机提供 iSCSI 存储的服务器,角色性质类似于FTP/HTTP,以对外提供服务为主要特征。
  • iSCSI 发起程序:连接 iSCSI 目标服务器的客户端信息,可以为 IP 地址、MAC 地址、DNS 名称等。
  • iSCSI 目标:iSCSI 目标是 iSCSI 发起程序的集合,一个 iSCSI 目标可以包含多个并且不同种类的发起程序。iSCSI 目标对应的主机可以是 iSCSI 目标服务器,也可以是 iSCSI 发起程序所在的主机。

第 1 步,登录 hv4.contoso.com 这台计算机,本地登录或远程桌面登录均可。依次点击打开"服务器管理器"→"仪表盘"→"添加角色和功能"。如图 8-1 所示。

8-1 添加角色和功能

第 2 步,弹出"添加角色和功能向导",在"开始之前"对话框中,点击"下一步"以继续安装。如图 8-2 所示。

8-2 开始之前

第 3 步,在"安装类型"对话框中,选择"基于角色或基于功能安装",点击"下一步",如图 8-3 所示。

8-3 安装类型

第 4 步,在"服务器选择"对话框中,选择"从服务器池中选择服务器",点选 hv4.contoso.com,点击"下一步",如图 8-4 所示。如之前通过"添加要管理的其他服务器" 整合了多台服务器,则此处可以看到服务器列表,需要手动予以选择。

8-4 服务器选择

第 5 步,在"服务器角色"对话框中,依次展开"文件和存储服务"→"文件和 iSCSI 服务",点选"iSCSI 目标服务器",如图 8-5 所示,点击"下一步"继续。

8-5 服务器选择

第 6 步,在"功能"对话框中,无需勾选任何选项,直接点击"下一步",如图 8-6 所示。

8-6 功能选择

第 7 步,在"确认"对话框中,勾选"如果需要,自动重新启动目标服务器",点击"安装",稍等片刻即会安装成功。如此时系统存在挂起的任务,则服务器可能会重新启动,如图 8-7 所示。

8-7 确认功能,并开始安装

8.2.3 创建 iSCSI 虚拟磁盘

完成"iSCSI 目标服务器"的角色安装后,即开始创建 iSCSI 虚拟磁盘的操作。

第 1 步,打开"服务器管理器",于列表左侧依次点击"文件和存储服务"→"iSCSI",在 iSCSI 虚拟磁盘对话框中,点击蓝色斜体字部分(若要创建 iSCSI 虚拟磁盘,请启动"新建 iSCSI 虚拟磁盘向导"),如图 8-8 所示。

8-8 进入"新建 iSCSI 虚拟磁盘向导"

第 2 步,在"新建 iSCSI 虚拟磁盘向导"中,于"iSCSI 虚拟磁盘位置" 对话框点击存储位置的"按卷选择",选中此例中的 F 盘,可以看到该磁盘下还有 172G 空间,默认 iSCSI 虚拟磁盘保存在选定卷的\iSCSIVirtualDisk 目录中,如图 8-9 所示,点击"下一步"继续,配置 iSCSI 虚拟磁盘的名称,便于识别即可。

8-9 定义虚拟磁盘位置

第 3 步,在"iSCSI 虚拟磁盘大小"对话框中,为了获得更好的存储性能,选择"固定大小"选项,关于固定大小、动态扩展、差异磁盘的优缺点,可参考本书前面的章节。这里同时输入的还有虚拟磁盘的空间大小,此处输入 140G。只要输入的大小不超过物理磁盘的实际大小即可,如图 8-10 所示,点击"下一步"继续。

8-10 定义虚拟磁盘位置

第 4 步,在"iSCSI 虚目标"对话框中,点击"新建 iSCSI 目标"按钮,并点击"下一步",如图 8-11 所示。

8-11 定义虚拟磁盘位置

第 5 步,在"添加发起程序 ID"对话框中,此处有三种选项可选:分别是"查询发起程序计算机 ID"、"从目标服务器上的发起程序缓存中选取"、"输入选定类型的值",如图 8-12 所示。

8-12 添加发起程序 ID 的三种方式

第 6 步,选择"查询发起程序计算机 ID",并点击右侧的浏览按钮,会弹出选择计算机对话框,输入允许使用 iSCSI 目标服务器的域内计算机名称即可,如图 8-13 所示。

8-13 查询发起程序计算机 ID

第 7 步,点击确定后,可以检查发起程序类型,此时会发现,通过这种方式创建的 iSCSI 发起程序类型为"IQN",如图 8-14 所示。

8-14 创建 IQN 类型的发起程序

第 8 步,除了 IQN 的类别外,还可以使用 DNS、IP 地址、MAC 地址这三种方式来识别发起程序。在"添加发起程序 ID"对话框中,可以选择"输入选定类型的值"的方式,于下拉菜单中选择手动输入此类型值。如图 8-15 所示。

8-15 使用 DNSIP 地址、MAC 地址创建发起程序

第 9 步,如果并非是第一次创建 iSCSI 虚拟磁盘,则在"从目标服务器上的发起程序缓存中选择"下,会列出已经被使用的发起程序。其作用类似于"收藏夹",保存了之前添加过的目标服务器信息。如图 8-16 所示,配置完发起程序后,可以点击"下一步"继续。

8-16 可使用已存在的发起程序进行连接

第 10 步,接下来配置"目标名称和访问",此处填写准确详细的名称和描述可为管理带来便利,如图 8-17 所示,点击"下一步"继续。

8-17 配置目标名称和访问

第 11 步,在"访问服务器"对话框中,可以看到于第 9 步所添加的 iSCSI 目标名称,目标的类型与连接效果无任何关联,只要是系统支持的连接类型,均可提供完全一致的访问能力,如图 8-18 所示,点击"下一步"继续。

8-18 检查访问服务器

第 12 步,在"启用验证服务"对话框中,可以配置 CHAP 协议,以对发起程序连接进行身份验证。如果对系统的安全性有要求,可以配置此验证服务,一般情况下无需配置,如图 8-19 所示,点击"下一步"继续。

8-19 确认是否启用验证服务

第 13 步,在"确认"对话框中,可以检查之前配置的所有环节,如果在此处发现有配置错误的地方,则可点击"上一步",依次返回修改,如图 8-20 所示。

8-20 确认配置是否无误

第 14 步,在"结果"对话框中,可以看到系统开始逐步进行创建 iSCSI 虚拟磁盘的过程。由于此前选择了虚拟磁盘的格式为固定大小,会发现创建过程很慢。

此时打开"资源监视器"(依次按下 Ctrl+Alt+Esc 打开"任务管理器"→切换至"详细信息"→"性能"选项卡→ "打开资源管理器"),会发现磁盘资源消耗严重的文件正是我们创建的 iSCSI 虚拟磁盘文件,其持续进行写入操作,所操作的时间与实际文件大小相匹配(每秒写入 100MB 数据,140GB 的 iSCSI 虚拟磁盘文件写入需时 24 分钟(1430 秒))。由于固定大小的 iSCSI 虚拟磁盘本身的特性,因此此时耗时过长是正常现象,如图 8-21 所示。

8-21 进入 iSCSI 虚拟磁盘创建过程

第 15 步,创建如果未完成,亦可关闭操作窗口,进行其他操作。返回"文件和存储服务"→"iSCSI"可以观察到 iSCSI 虚拟磁盘的创建进度,如图 8-22 所示。需要注意的是,仅在使用固定大小时会使用较长的时间进行创建。如使用动态扩展,则创建过程会瞬间完成。

8-22 文件和存储服务中检查 iSCSI 虚拟磁盘创建进度

8.2.4 使用 iSCSI 虚拟磁盘

完成 iSCSI 虚拟磁盘的创建后,即可由 iSCSI 发起程序来连接 iSCSI 目标服务器。该操作会将 iSCSI 目标服务器上所共享的 iSCSI 虚拟磁盘挂载在需要使用共享存储的主机上供主机使用。

1. 单主机连接 iSCSI 目标服务器首先以 iSCSI 目标服务器本身来连接 iSCSI 虚拟磁盘。

第 1 步,依次打开"控制面板"→"iSCSI 发起程序"(iSCSI 发起程序仅存在于 Windows Server 2008 以上的操作系统中,Windows Server 2003 不自带 iSCSI 发起程序,需要下载额外的软件)。默认情况下 iSCSI 服务不自动开启,首次使用需要点击"是"按钮开启该功能,如 图 8-23 所示。

8-23 使用 iSCSI 发起程序

第 2 步,点击"是"按钮后,会弹出"iSCSI 发起程序 属性"窗口,在"目标"选项卡下,输入 iSCSI 目标服务器的 IP 地址,点击"快速连接"。在弹出的"快速连接"窗口,可以看到 iSCSI 目标服务器。点击"完成"即可,如图 8-24 所示。

8-24 连接目标

第 3 步,从控制面板打开"磁盘管理工具",或从"运行"中直接输入"diskmgmt.msc" 以开启。此时可以发现通过 iSCSI 发起程序连接的虚拟磁盘已正确挂载,默认情况下,该虚拟磁盘为脱机状态,如图 8-25 所示。

 

8-25 默认挂载的磁盘为脱机状态第 4 步,在该磁盘上右键点击,选择"联机",如图 8-26 所示。

8-26 使磁盘处于联机状态

第 5 步,确认磁盘为联机状态后,在该磁盘上右键点击,选择"初始化磁盘",如果虚拟磁盘容量超过 2T,则需要选择 GPT 的分区形式,如果虚拟磁盘容量小于 2T,则可以使用

MBR 的分区形式,如图 8-27 所示。

8-27 初始化磁盘

第 6 步,初始化磁盘完成后,可以于虚拟磁盘上"新建简单卷",并进行磁盘分区的操作,如图 8-28 所示。

8-28 创建简单卷并分区

第 7 步,磁盘分区完成后,可以在系统中看到新的盘符,同时在磁盘管理工具中,也可以发现,这块虚拟磁盘使用起来和本地磁盘是完全一致的。如图 8-29 所示。

8-29 使用虚拟磁盘

2. 群集主机连接 iSCSI 目标服务器

群集主机连接 iSCSI 目标服务器的方法与单主机一致,需要注意的是,必须对共享的 iSCSI 虚拟磁盘设置正确的 iSCSI 目标。

第 1 步,在 iSCSI 目标服务器上依次点击"服务器管理器"→"文件和存储服务"→"iSCSI"

→"iSCSI 目标",在 iSCSI 目标上右键点击,选择"属性",如图 8-30 所示。

8-30 修改 iSCSI 目标属性

第 2 步,点击"发起程序",准备添加群集所涉及的主机。如图 8-31 所示。

8-31 修改 iSCSI 目标属性

第 3 步,点击"添加"按钮,使用"查询发起程序计算机 ID"的方法,依次添加群集主机的计算机 FQDN(hv2.contoso.com 和 hv3.contoso.com),此处也可以根据个人习惯,输入群集主机的 MAC 地址或 IP 地址,如图 8-32 所示,点击"确定"后,完成属性修改。

8-32 添加额外的 iSCSI 目标

第 4 步,依次登录群集所涉及的主机,使用 "iSCSI 发起程序"连接 iSCSI 目标服务器,如图 8-33 所示。

8-33 依次配置 iSCSI 发起程序

第 5 步,返回"iSCSI 目标",在 iSCSI 目标上右键点击,选择"属性",点击"连接",可以看到 hv2.contoso.com、hv3.contoso.com、hv4.contoso.com 三台主机均同时正常连接到该 iSCSI 虚拟磁盘上了,如图 8-34 所示。

8-34 检查 iSCSI 发起程序的连接状况

3. 为群集主机添加仲裁磁盘

使用 Window 的故障转移群集,在某些情况下,需要用到仲裁磁盘。仲裁磁盘不需要存储数据,仅作为仲裁方存在。它可以实现在某个节点发生故障时,起到"投票"的作用,使群集资源根据"少数服从多数"的原则将资源从故障主机转移到正常运行的主机上。

为了使用仲裁磁盘,需要在 iSCSI 目标服务器中再次添加一块 iSCSI 虚拟磁盘。

第 1 步,在"iSCSI 虚拟磁盘"对话框中,于右侧的"任务"下拉菜单中,选择"新建 iSCSI 虚拟磁盘",如图 8-35 所示。

8-35 新建 iSCSI 虚拟磁盘

第 2 步,在"新建 iSCSI 虚拟磁盘向导"中,于"iSCSI 虚拟磁盘位置对话框"点击存储位置的"按卷选择",选中此例中的 D 盘,如图 8-36 所示,点击"下一步"继续。需要注意的是,为了保证 iSCSI 虚拟磁盘的性能和使用的稳定性,尽量不要在 iSCSI 虚拟磁盘上嵌套创建 iSCSI 虚拟磁盘。

8-36 新建 iSCSI 虚拟磁盘

第 3 步,在"iSCSI 虚拟磁盘名称"对话框中,输入 iSCSI 虚拟磁盘的名称,此处的名称设置可用中文,如图 8-37 所示,点击"下一步"继续。

8-37 配置 iSCSI 虚拟磁盘名称

第 4 步,在"iSCSI 虚拟磁盘大小"对话框中,选择"动态扩展"的类型,大小输入 10G 即可。由于仲裁磁盘不参与数据存储,对性能要求也不高,因此使用动态扩展完全可以满足要求。如图 8-38 所示,点击"下一步"继续。

8-38 配置 iSCSI 虚拟磁盘大小和类型

第 5 步,在"iSCSI 目标"对话框中,直接使用直接已创建的 iSCSI 目标即可,如图 8-39 所示,点击"下一步"继续。

8-39 选择 iSCSI 目标

第 6 步,在"确认"对话框中,检测无误即可点击"创建"完成仲裁磁盘的创建,如图8-40 所示。

8-40 确认仲裁磁盘的创建过程

第 7 步,创建完毕后,客户端无需进行任何设置,新增的 iSCSI 虚拟磁盘即会出现在"磁盘管理"的列表中。在管理列表中,可以看到虚拟磁盘的状态和目标的状态均已变为"已连接",如图 8-41 所示。

8-41 确认仲裁磁盘的创建过程

第 8 步,使用仲裁磁盘的场合,群集默认会优先使用逻辑单元号较小的磁盘作为仲裁磁盘。在本例中,由于仲裁磁盘是后创建的,因此通过群集向导创建的群集,会错误的将"故障转移群集.vhdx"这个容量较大的磁盘识别为仲裁磁盘。所以在正式使用之前,还需要手动修改 iSCSI 虚拟磁盘的逻辑单元号(LUN),右键点击"故障转移群集.vhdx",选择属性,如图8-42 所示。

8-42 准备修改 iSCSI 虚拟磁盘的逻辑单元号

第 9 步,在 iSCSI 虚拟磁盘的属性窗口中,修改逻辑单元号(LUN)的值为 2 或更大的数字并点击"确认",最大不可超过 63。相同 iSCSI 目标下创建多个 iSCSI 虚拟磁盘,其逻辑单元号会从 0 至 63 依次增加,如果希望调整磁盘的优先级顺序,可以通过调整逻辑单元号来完成,如图 8-43 所示。

8-43 修改 iSCSI 虚拟磁盘的逻辑单元号,保障磁盘排序符合要求

第 10 步,在任意一台已连接该 iSCSI 目标服务器的群集成员主机上,打开"磁盘管理",将新添加的磁盘进行联机,并格式化,如图 8-44 所示。

8-44 联机并格式化仲裁磁盘

为了减少后期的重复操作,创建仲裁磁盘可以在创建故障转移群集磁盘之前进行,这样拥有两个好处:

  • 无需后期调整逻辑单元号,默认即符合群集创建要求。
  • 一次性创建完成,iSCSI 目标连接 iSCSI 目标服务器时,不会再有预期的停机中断。

4. 导入虚拟磁盘

如遇服务器迁移或者备份还原,可以手动导入虚拟磁盘来完成 iSCSI 目标服务器的重新搭建。

第 1 步,在 iSCSI 虚拟磁盘对话框中,于右侧的"任务"下拉菜单中,选择"导入 iSCSI 虚拟磁盘",如图 8-45 所示。

8-45 准备导入 iSCSI 虚拟磁盘

第 2 步,在 iSCSI 虚拟磁盘位置对话框中,手动输入或使用"浏览"选择之前创建的 iSCSI 虚拟磁盘文件,本例中为"D:\iscsivirtualdisks\备份磁盘.vhdx",如图 8-46 所示,点击"下一步"继续。

8-46 选择需要导入的 iSCSI 虚拟磁盘

第 3 步,在"iSCSI 目标的对话框"中,选中已有的 iSCSI 目标,如图 8-47 所示,点击 "下一步"继续。之后进行的确认、分配、联机等操作与上一小节一致,在此不再赘述。

8-47 选择现有的 iSCSI 目标

5. 删除虚拟磁盘如遇误操作或长远规划考虑,需要删除某些虚拟磁盘,则需要进行如下操作。

第 1 步,在"iSCSI 虚拟磁盘"对话框中,选中需要删除的 iSCSI 虚拟磁盘,右键点击,选择"删除 iSCSI 虚拟磁盘",如图 8-48 所示。

图 8-48 删除 iSCSI 虚拟磁盘

第 2 步,如该 iSCSI 虚拟磁盘正在被使用,则点击"删除 iSCSI 虚拟磁盘"后会弹出如下错误提示,如图 8-49 所示。错误提示指出正在被使用的 iSCSI 虚拟磁盘无法删除。

8-49 正在使用的 iSCSI 虚拟磁盘无法被删除

第 3 步,在"iSCSI 虚拟磁盘"对话框中,选中需要删除的 iSCSI 虚拟磁盘,右键点击,选择"禁用 iSCSI 虚拟磁盘",如图 8-50 所示。处于禁用或未使用的状态下,iSCSI 虚拟磁盘方可被删除,禁用时系统会提示对于正在使用的 iSCSI 虚拟磁盘操作会有数据损坏的风险,因此在确认删除和禁用 iSCSI 虚拟磁盘时,需要格外谨慎。

8-50 iSCSI 虚拟磁盘置于禁用状态

第 4 步,此时可对处于禁用状态的 iSCSI 虚拟磁盘进行删除操作,在删除菜单中可选是否删除本地的 iSCSI 虚拟磁盘文件,如确定已无重要数据,可勾选该选项,完成文件的删除操作,如图 8-51 所示。

8-51 删除禁用状态的 iSCSI 虚拟磁盘文件

8.3 故障转移群集的前期准备

8.3.1 故障转移群集与 SMB 多通道

Windows Server 2012 R2 的故障转移群集对网络的要求并不苛刻,最恶劣的情况下,群集的每个节点只需一个物理网卡接口即可完成群集搭建。但如此的环境,网络层面没有任何保障性可言,在生产活动当中,不建议用户使用这种单网卡架构。同时,由于数据流量和管理流量都使用同一个接口完成,当数据流量因为各种原因跑满带宽时,这将导致没有足够的带宽去进行服务器管理。

在部署 Windows Server 2012 R2 的故障转移群集时,可以利用到两种技术手段,对网络的持续服务质量进行保障:

  • NIC 组合:通过 NIC 组合,将多条物理链路进行整合,完成网络层面的冗余架构规划。关于 NIC 组合的配置和原理,可参考本书之前的章节。
  • SMB 多通道:服务器消息块 (SMB) 协议是网络文件共享协议,让计算机上的应用程序可读取和写入文件以及从计算机网络中的服务器程序请求服务。SMB 协议可在其 TCP/IP 协议或其他网络协议上使用。自 Windows Server 2012 起,引入了全新 3.0 版的 SMB 协议。如果在 SMB 3.0 客户端和 SMB 3.0 服务器之间通过多个网络连接,则系统自动应用 SMB 多通道,这让服务器应用程序可以充分利用可用网络带宽并在发生网络故障时恢复。SMB 多通道是默认开启的功能,只要作为接收端和发送端的 Windows Server 2012/2012 R2 主机都拥有两条或两条以上的网络链路,则可以使用该功能。

6.     SMB 多通道的使用和配置

在基于 Windows Server 2012/2012 R2 的服务器或基于 Windows 8/8.1 的计算机连接到使用服务器消息块 (SMB) 3.0 的文件共享服务器时,SMB 多通道将会均衡流量至多条物理链路上,同时链路具有故障转移功能。需要注意的是,SMB 多通道仅在可路由的 IP 地址和链路上运行,如果没有为网卡配置网关,或网络不可达,则 SMB 多通道不会生效。

SMB 多通道是一项默认开启的策略,在虚拟化和私有云的应用前提下,可以为部署虚拟机模板、实时迁移、快速迁移、Hyper-V 主机之间的文件拷贝带来带宽分流和链路冗余的功能。

SMB 多通道拥有以下优势:

  • 故障转移, 如果计算机中的某一个网卡失效,则使用其他网卡进行通信。
  • 带宽叠加, 在多张网卡上聚合带宽,并使用多个处理器处理网卡上的网络中断。
  • 自动化,自动检测并使用多个网络路径。

我们可以在 PowerShell 下使用如下命令检查 SMB 多通道工作是否正常。

Get-SmbServerConfiguration | Select-Object EnableMultiChannel

输入以上 PowerShell 命令后,返回 EnableMultChannel 对应结果为 True,则表示 SMB 多通道处于开启状态,如图 8-52 所示。

8-52 检查 SMB 多通道是否开启

如表 8-2 所示,此次创建群集涉及两台 Hyper-V 主机的网卡信息,为了同时展示 NIC 组合和 SMB 多通道,这两台 Hyper-V 主机均配置了三张网卡,其中网卡 1 和网卡 2 做 NIC 组合,网卡 3 做普通的数据通信。网卡 1 和网卡 2 通过 NIC 组合形成新的虚拟网卡与网卡 3 同时工作,实现 SMB 多通道。由于 NIC 组合会产生一张新的虚拟网卡,并且通信也以新的虚拟网卡为准,所以在架构规划时,无需为网卡 1 和网卡 2 单独设计 IP 地址,只需要对组合后的网卡配置 IP 即可。

Hyper-V主机名称

网卡1

网卡2

网卡3

hv2.contoso.com

NIC组合

数据通信

hv3.contoso.com  

NIC组合

数据通信

表 8-2 群集成员主机的网卡功能配置

  • SMB 多通道的应用要求

在虚拟化和私有云中,SMB 多通道的客户端与服务器两者的界限并不是很明显,当从 hv2 到 hv3 的文件拷贝时,hv2 作为客户端,hv3 作为服务端;当从 hv3 到 hv2 的文件拷贝时,hv3 作为客户端,hv2 作为服务端。

SMB 多通道在实际部署时只需关注两个技术要点即可实现:

  • 通信双方的操作系统均为 Windows Server 2012/2012 R2
  • 至少拥有两张网卡,且两张网卡的链路均可达对方。
  • SMB 多通道的典型网络配置

为了实现 Hyper-V 主机配置多张网卡,且多张网卡的链路均可达对方,这里需要借助物理交换机的 VLAN 设置,本环境故障转移群集所涉及的 IP 配置信息如表 8-3 所示。

其中网卡 1+2 进行 NIC 组合(下简称网卡 12)处于 VLAN11 中,网卡 3 处于 VLAN12 中。

Hyper-V主机名称

hv2.contoso.com  

hv3.contoso.com

网卡1+2NIC组合IP地址

192.168.0.207  

192.168.0.208  

网卡1+2子网掩码

255.255.255.0  

网卡1+2网关

192.168.0.250  

网卡3IP地址

192.168.136.108

192.168.136.124

网卡3子网掩码

255.255.255.0  

网卡3网关

192.168.136.250  

网卡1+2群集地址

192.168.136.145  

网卡3群集地址

192.168.0.5  

8-3 群集成员主机的网卡 IP 信息配置

在思科 2960S 交换机上需要做如下相关设置:关键部分以"!"的形式作为注释,供参考。表 8-3 中为网卡 1+2 和网卡 3 分配了不同的网关地址,但实际均指向了同一台物理交换机的不同物理端口。关于 NIC 组合的交换机配置,可参考本书之前的章节。

!!!!为 VLAN11 和 VLAN12 接口配置 IP,同时设置允许通过的 DHCP 服务器的信息。如果希望在不同 VLAN 上使用同一台 DHCP,这该选项必须配置。此处 192.168.136.1 指的是 dc.contoso.com 这台域控。

interface Vlan11 ip address 192.168.0.250 255.255.255.0 ip helper-address 192.168.136.1

!!

interface Vlan12

ip address 192.168.136.250 255.255.255.0 ip helper-address 192.168.136.1

 

 

!!!! 本例采用 AccessVLAN 的方式连接 Hyper-V 主机,在不同的接口下,可以为其配置不同的 VLAN 信息,如在交换机的 6、7 口配置允许 VLAN11 的流量通过;8、9 口允许 VLAN12 的流量通过。

interface GigabitEthernet1/0/6 switchport access vlan 11 spanning-tree portfast interface GigabitEthernet1/0/7 switchport access vlan 11 spanning-tree portfast interface GigabitEthernet1/0/8 switchport access vlan 12 spanning-tree portfast interface GigabitEthernet1/0/9 switchport access vlan 12 spanning-tree portfast

为了验证 SMB 多通道是否成功启用,在进行如上交换机和网卡配置后,可以尝试从 hv2 往 hv3 上复制文件,如在任务管理器中发现两组网卡均有数据流量,即意味着 SMB 多通道已经生效,如图 8-53 所示,在硬盘速度较为理想的情况下,可以很明显的看到流量叠加的效果。

8-53 验证 SMB 多通道实际效果

9. 多网关下调整网卡顺序在配置多网卡,同时多张网卡均有网关的时候,系统会提示如下警告,如图 8-54 所示。

8-54 配置多网卡的多网关必然会出现的警告

此警告意味着如果为两张或两张以上网卡配置网关,则必须保障他们在同一个网络(通过 VLAN 互联,且 VLAN 之间不可做 ACL 限制)。此时也可以通过调整网卡的优先级来对网关进行排序,以确保主要流量通过指定的网关传递。

第 1 步,依次打开"控制面板"→"网络和 Internet"→"网络连接",在网络连接窗口中按下键盘上的"alt"键,此时地址栏下方会出现一排管理按钮,如图 8-55 所示,依次点击"高级"→"高级设置"。

8-55 调出网络连接"高级设置"菜单

第 2 步,在弹出的"高级设置"对话框中,通过调整"连接"中网卡的上下次序,重新定义网卡的顺序排列,点击确定完成设置,如图 8-56 所示。

8-56 调出网络连接"高级设置"菜单

10. Hyper-V 下的 NIC 组合与 SMB 多通道

根据之前小节的规划,将要部署的故障转移群集每个节点均使用了 3 张物理网卡。本小节将会对网卡进行相应配置,以实现同时使用 NIC 组合和 SMB 多通道。以下操作需要依次在所有涉及的故障转移节点执行。

第 1 步,在"控制面板"→"网络和 Internet"→"网络连接"下,为故障转移群集成员主机的网卡修改容易识别的名称,此处修改网卡 1、网卡 2、网卡 3 分别为"1"、"2"、

"136"如图 8-57 所示。

8-57 修改容易识别的网卡名称

第 2 步,依次点击"服务器管理器"→"本地服务器"→"NIC 组合"或在运行中直接输入"lbfoadmin",打开 NIC 组合对话框,如图 8-58 所示,于"适配器和接口"下同时选中

"1"和"2",单击"任务",选择"添加到新组"。

8-58 修改容易识别的网卡名称

第 3 步,在弹出的对话框中,于"组名称"处输入"0"(意指该网卡承载 0 段地址,名称仅作为标示使用,无任何实际意义)。如果交换机不支持 LACP,可以点击"其他属性", "成组模式"和"负载平衡模式"配置为"交换机独立"和"Hyper-V 端口"。如果交换机支持 LACP,则可以按照本书之前章节说明,将"成组模式"配置为"LACP",如图 8-59 所示,点击"确定"完成配置。

8-59 配置 NIC 组合属性

第 4 步,完成配置的 NIC 组合状态如图 8-60 所示,此时可以前往"网络连接"对其配置 IP 地址、网关和 DNS。

图 8-60 完成 NIC 配置

第 5 步,打开"Hyper-V 管理器",在需要修改的 Hyper-V 主机上右键点击,选择"虚拟交换机管理器",如图 8-61 所示。

8-61 修改虚拟交换机配置

第 6 步,依次创建两台新的虚拟交换机,分别命名为 0 和 136,同时指定不同的外部网络。此时可以发现,通过 NIC 组合后的网卡名称变为了"Microsoft Network Adapter Multiplexor Driver",如图 8-62 所示。

8-62 增加两台虚拟交换机

第 7 步,点击"确定"按钮完成配置,此时系统会弹出警告,在创建虚拟交换机的同时,会有短暂的网络中断,如图 8-63 所示。

8-63 确认虚拟交换机创建

第 8 步,完成虚拟交换机的创建后,依次打开"控制面板"→"网络和 Internet"→"网络连接",会发现此时网络连接数量由 3 个变为 6 个,其中"0"代表网卡 1 和网卡 2 的 NIC 组合的虚拟交换机。vEthernet(0)代表"0"虚拟交换机上的虚拟网卡,vEthernet(136)代表"136"虚拟交换机上的虚拟网卡。如图 8-64 所示。

8-64 网络连接组成

依次在所有涉及的故障转移群集节点中进行如上配置即可同时使用 NIC 组合和 SMB 多通道,需要注意的是,为了使用故障转移群集,关于网卡和交换机的命名一定要一致。

8.3.1 故障转移群集的账号准备

运行 Hyper-V 的故障转移群集,需要用到 Hyper-V 主机上本地管理员的权限,同时群集必须是域成员计算机,加入域的计算机默认会将域管理员添加至本地管理员组中。因此创建故障转移群集的操作可以使用域管理员来进行,同时为了保证后期的运维和管理,创建故障转移群集的用户账户建议使用独立账号。

8.3.2 故障转移群集架构规划

  1. 故障转移群集逻辑架构

本书采用的故障转移群集为双物理节点,每节点 3 网卡,同时使用 NIC 组合和 SMB 多通道功能,通过 Windows Server 2012 R2 自带的 iSCSI 目标服务器搭建 iSCSI 共享存储。整体架构如图 8-65 所示。如读者测试条件不满足,可以使用单网卡创建故障转移群集。

8-65 网络连接组成

在生产活动中,如果条件允许,建议使用如图 8-66 所示的架构,多台 Hyper-V 主机通过交换机进行连接,至少配备 4 张网卡,可以使用 LACP 链路聚合协议配合 NIC 组合完成物理链路方面的高可用,同时存储使用单独专用的链路。

8-66 多节点共享存储

  1. 故障转移群集网卡分配

在单台 Hyper-V 主机拥有 4 张网卡的前提下,建议使用如下的使用方法,如表 8-4 所示。

网卡ID

作用

备注

1  

NIC组合

可配合交换机开启LACP

2  

3  

存储专用

VLAN分隔

4  

管理专用

VLAN分隔

8-4 四张网卡环境下的网络配置

13. 故障转移群集仲裁磁盘的使用

仲裁磁盘在故障转移群集中的某些场景下,并不是必须的。故障转移群集的仲裁拥有以下 4 种方式:

  • 节点多数(推荐用于含有奇数个节点的群集),可以承受的故障节点数为节点数的一半(四舍五入)减去一。例如,七个节点的群集可以承受三个节点出现故障。
  • 节点和磁盘多数(推荐用于含有偶数个节点的群集),在仲裁磁盘保持联机时可以承受的故障节点数为节点数的一半(四舍五入)。例如,在仲裁磁盘联机时,六个节点的群集可以承受有三个节点出现故障。在仲裁磁盘脱机或出现故障时可以承受的故障节点数为节点数的一半(四舍五入)减去一。例如,仲裁磁盘有故障时,六个节点的群集可以承受两 (3-1=2) 个节点故障。
  • 节点和文件共享多数(适合有特殊配置的群集)与"节点和磁盘多数"的工作方式类似,但是此群集使用见证文件共享,而不是仲裁磁盘。
  • 无多数:仅磁盘(不推荐)

仲裁是一个"少数服从多数的"机制,当某一台设备脱机后,如何确定其不可用,需要故障转移群集内的成员"投票表决",这个投票过程就是仲裁。为了实现少数服从多数,需要故障转移群集内参与投票的成员必须为单数。Hyper-V 故障转移群集的仲裁是自动设置的,根据 Hyper-V 主机的数量不同,故障转移群集会自动决定是采用"节点多数"还是"节点和磁盘多数"的仲裁配置。常见的 Hyper-V 主机数量所对应的仲裁方式如表 8-5 所示。

Hyper-V

主机数量

共享存储是否参与仲裁

参与仲裁数量

仲裁方式

2  

1  

3  

节点和磁盘多数

3  

0  

3  

节点多数

4  

1  

5  

节点和磁盘多数

5  

0  

5  

节点多数

6  

1  

7  

节点和磁盘多数

8-5 常见故障转移群集成员数量仲裁方式

 

8.4 故障转移群集的创建

8.4.1 添加故障转移群集功能

14. 通过向导添加故障转移群集功能

在创建使用故障转移群集之前,需要先为 Hyper-V 主机安装故障转移群集功能。

1 步,打开"服务器管理器",点击"添加角色和功能",如图 8-67 所示。

8-67 准备添加角色和功能第 2 步,在"开始之前"对话框中,单击"下一步",图 8-68 所示。

8-68 安装角色和功能向导

第 3 步,在选择"安装类型"对话框中,选择"基于角色或基于功能的安装"。单击"下一步",如图 8-69 所示。

8-69 确认安装类型

第 4 步,在"服务器选择"对话框中,选择从"服务器池中选择服务器",点选列表中出现的需要添加故障转移群集功能的服务器,本例中为 hv2.contoso.com 和 hv3.contoso.com, 添加故障转移群集功能需要使用该向导为两台 Hyper-V 主机分别执行一次,此时单击"下一步",如图 8-70 所示。

8-70 确认安装类型第 5 步,在"服务器角色"对话框中,直接单击"下一步"跳过,如图 8-71 所示。

8-71 跳过服务器角色安装

第 6 步,在"功能"对话框中,勾选"故障转移群集",并在弹出的询问是否添加故障转移群集工具的对话框中,点击"添加功能",如图 8-72 所示。

8-72 添加故障转移群集功能

第 7 步,在"确认"对话框中,勾选"如果需要,自动重新启动目标服务器",点击"安装",耐心等待功能添加完成,如图 8-73 所示。

8-73 添加故障转移群集完成

第 8 步,重复以上步骤,在所有故障转移群集节点中安装"故障转移群集功能"。在"运行"中输入"Cluadmin.msc",或在"管理工具"中找到"故障转移群集管理器"即可确认是否安装完成,如图 8-74 所示。

8-74 检查故障转移群集功能安装

15. 通过 PowerShell 添加故障转移群集功能以管理员身份运行以下 PowerShell 命令,即可对 hv2.contoso.com hv3.contoso.com 这两台 Hyper-V 主机完成故障转移群集功能和管理工具的安装。可以发现 PowerShell 的应用,能够在角色安装部署阶段节省很多重复劳动。

Invoke-Command -ComputerName hv2,hv3 -Command{Install-WindowsFeature -Name Failover-

Clustering -IncludeManagementTools -restart}

PowerShell 命令成功执行后,如图 8-75 所示。

8-75 PowerShell 添加故障转移群集

8.4.2 验证故障转移群集

"验证配置"是创建故障转移群集之前非常重要的一个步骤,建议大家在创建故障转移群集之前务必运行此功能。通过验证配置,可以对故障转移群集的网络、磁盘、系统补丁情况等多方面进行验证。同时验证配置也是一个故障转移群集错误检测工具,当故障转移群集工作不正常的时候,通过运行验证配置,可以得到关于当前故障转移群集运行状况的详细信息。

1 步,打开故障转移群集管理器,在左侧的"故障转移群集群集管理器"上右键点击,选择验证配置,如图 8-76 所示。

 

8-76 准备运行故障转移群集验证配置

第 2 步,在弹出的"验证配置向导"中,可以查看到微软对接下来操作的一些建议,如图 8-77 所示。包括:

  • 群集所涉及到的硬件组件必须明确表示支持 Windows Server 2012 R2
  • 必须是每个需要验证的群集节点上的本地管理员,(本例以域管理员来完成安装)。
  • 如果希望验证现有的故障转移群集,需要知道该群集的名称或某一个节点的名称。

    8-77 运行故障转移群集的注意事项

第 3 步,在"选择服务器或群集"对话框中,输入需要加入到故障转移群集中的 HyperV 主机名称,此处输入 FQDN 或 Netbios 名均可,输入完成后点击"添加"按钮,并点击"下一步"继续,如图 8-78 所示。

8-78 添加故障转移群集节点

第 4 步,在"测试选项"对话框中,选中"运行所有测试",此选项会验证所有节点的关于故障转移群集的全部配置,,如图 8-79 所示。

8-79 选择测试项目

第 5 步,在"确认"对话框中,点击"下一步"继续,如图 8-80 所示。

8-80 确认故障转移群集

第 6 步,接下来进入"正在验证"对话框,系统开始自动进行故障转移群集验证,同时实时显示验证的过程和结果,此验证大约持续 10 分钟,如图 8-81 所示。如按照本章的配置方法完成前置操作,此处不会有任何报错信息。

8-81 开始验证故障转移群集

第 7 步,如前置操作存在配置失误的地方,则完成验证后,会出现图 8-82 所示的错误提示,需要仔细检查前置操作的环节是否存在故障。

8-82 验证出现问题,出现告警

第 8 步,如前置操作配置无误,则完成验证后,会出现图 8-83 所示的提示,同时多了一个"立即使用经过验证的节点创建群集"的选项,点击完成即进入创建群集的环节。

8-83 验证无误,可以进入创建群集环节

8.4.3 故障转移群集验证报告

完成故障转移群集验证后,无论是否成功,均可以点击 "查看报告"按钮检查群集健康情况,检查报告的结果将分为 Hyper-V 设置、存储、清单、网络、系统配置五个部分,如图 8-84 所示。

8-84 检查故障转移群集验证报告

"Hyper-V 设置"部分会检测 Hyper-V 主机是否安装 Hyper-V 角色,存储、CPU 是否符合群集要求,以及 CPU 的兼容性等信息,如图 8-85 所示。

8-85"Hyper-V"设置验证

"存储"部分会检测所使用的共享存储是否支持故障转移群集,包括是否能够创建 CSV(群集共享卷),是否支持永久保留,是否支持仲裁,以及文件系统是否受支持。

在存储检测中的关键项是是否支持永久保留,对于较老的 SCSI 存储来说,这项功能可能不受支持,通过验证故障转移群集可以提前发现此问题,如图 8-86 所示。

8-86"存储"设置验证

"清单"部分会对 Hyper-V 主机的硬件部分和软件部分进行整体的统计,包括 Hyper-V 主机的 BIOS 信息,操作系统信息,软件更新,内存信息、驱动信息、当前系统进程等,如图 8-87 所示。

其中软件更新部分是最容易出错的地方,此处故障转移群集会检测每一个群集节点上操作系统的系统补丁,如果补丁不一致,这里会出现黄色"警告"提示,因此建议用户使用 WSUS 一类的补丁安装工具,对操作系统进行统一升级和管理。但一般情况下补丁对群集搭建没有决定性的影响,即使此处出现相应报错,但多数情况下也不会导致创建故障转移群集失败。 8-87"清单"设置验证

"网络"部分会对所有群集节点的网络进行验证,如图 8-88 所示。此处主要是检查网卡所定义的名称和 Hyper-V 虚拟交换机的名称是否一致、参与群集通信的网卡和 IP 地址配置是否正确,通信是否正常。需要注意的是,群集节点需要通信的网卡名称标识一定要一致,同时 Hyper-V 虚拟交换机的名称也需要一致。如果不一致,则无法实现虚拟机的故障转移切换,同时此处的验证也会无法通过。

8-88"网络"设置验证

"系统配置"部分会对所有群集节点的 Hyper-V 主机的 Service Pack 版本进行验证,由于不同的 Service Pack 意味着群集拥有不同级别的功能,所以带有不同 Service Pack 的操作系统在特定条件下可能无法成功创建故障转移群集。同时此处会验证 AD 配置、驱动签名等不容易归类的信息,如图 8-89 所示。

8-89"网络"设置验证

8.4.4 创建故障转移群集

完全通过故障转移群集的验证后,可以进入创建故障转移群集的环节。

第 1 步,在正确完成"验证配置"后,自动弹出"创建群集向导",点击"下一步"继续,如图 8-90 所示。

8-90 创建群集向导

第 2 步,在"用于管理群集的访问点"对话框,可以输入群集的名称,以及为不同网卡配置不同的群集 IP 地址,本例中则是分别为 0 段和 136 段配置两个不同的群集 IP 地址。需要注意的是,此处群集名称限制不得超过 15 个字符,如图 8-91 所示,点击"下一步"继续。 8-91 配置群集 IP 地址和群集名称

第 3 步,在"确认"对话框中,可以再次检视群集配置情况,包括群集所涉及的节点,以及群集名称、群集 IP 地址,如图 8-92 所示,点击"下一步"继续。

8-92 检视群集配置信息

即使群集所涉及的 Hyper-V 主机如并未配置固定 IP,其同样可以创建群集。使用动态 IP 地址创建群集,则在"确认"对话框可以看到群集并未分配固定的 IP 地址,如图 8-93 所示,后期管理和访问需要使用Netbios名或FQDN进行维护,相对来说可靠性和可用性会差一些。

因此不建议在生产环境中使用动态 IP 地址进行群集的创建和管理。

8-93 群集可以使用动态 IP 进行创建

第 4 步,在"正在创建新群集"对话框,可以看到群集开始创建,在网速较为理想的情况下,创建群集会在 1 分钟内完成,如图 8-94 所示。

8-94 正在创建新群集

第 5 步,在"摘要"对话框,可以看到群集已经创建完毕,同时本例中的仲裁方式自动采用的是"节点和磁盘多数"。如图 8-95 所示。此时可以点击"查看报告",检查创建群集的过程。

8-95 完成群集创建

8.4.5 故障转移群集创建报告

故障转移群集创建报告是在群集创建过程中产生的日志,它会对群集创建过程中的每一个过程进行记录,其功能和"验证配置"相似,但相对来说检测项目少了很多,同时该环节会对域内的一些信息进行检测和验证。

一般来说,只要通过"验证配置",进入到故障转移群集创建过程,则很少有创建失败的情况,如图 8-96 所示。如此处有失败告警,多数会与域环境本身有关,解决故障的关键点也需向域环境倾斜。

8-96 故障转移群集创建报告

8.5 故障转移群集的基本操作

故障转移群集群集管理器包含 5 个重要组成部分:分别是角色、节点、存储、网络、群集事件。如图 8-97 所示。在日常运维中,我们经常会接触到各类角色和功能的创建、删除、修改。 8-97 故障转移群集管理器

8.5.1 配置虚拟机角色

角色是故障转移群集最常用的一个管理单位,创建高可用的虚拟机即是通过故障转移群集来完成的。

1 步,在"角色"上右键点击,选择"配置角色",如图 8-98 所示

8-98 开启配置角色

2 步,点击"配置角色"后,弹出"高可用性向导",在"开始之前"对话框,可以阅读故障转移群集是如何实现角色的高可用性的,同时此处对故障转移群集的工作原理进行了简单接受啊,如图 8-99 所示,点击"下一步"继续。

8-99 进入高可用性向导

3 步,故障转移群集的角色不仅仅包含在虚拟化和私有云中被频繁使用到的"虚拟机",还有 Hyper-V 副本代理、DHCP 服务器、DFS 命名空间服务器等角色,以及通用服务、通用脚本、通用应用程序等可自定义的角色,如图 8-100 所示,选择"虚拟机",点击"下一步"继续。

图 8-100 选择虚拟机角色

4 步,在"选择虚拟机"对话框,可以将存储在群集共享卷(CSV)上的虚拟机进行"导入",使其"高可用化"。需要注意的是,此处的操作仅对群集共享卷上的虚拟机生效,对安装在 Hyper-V 主机本地磁盘上的虚拟机无任何效果,如图 8-101 所示,点击"下一步"继续。

8-101 选择虚拟机

5 步,在"确认"对话框,可以检查上一步所进行的选项是否正确,如图 8-102 所示,点击"下一步"继续。

8-102 确认所选的虚拟机是否需要"高可用化" 6 步,在"配置高可用性"对话框,耐心等待群集角色的创建,如图 8-103 所示。 8-103 配置虚拟机角色的高可用性

7 步,在"摘要"对话框,可以看到配置虚拟机的高可用性已经成功完成,如图 8-104 所示,点击完成退出"高可用性向导"。

8-104 完成虚拟机高可用性的配置

8.5.2 创建群集共享卷(CSV

在上一小节提到,虚拟机需要创建在群集共享卷(CSV)上才可以实现高可用性,群集共享卷的功能是什么,又是如何创建的呢?

群集共享卷 (CSV):这是一种在 Windows Server 2008 R2 开始中引入的功能,它的目的是为群集虚拟机提供公用存储,群集共享卷属于构筑在共享存储上的一种独特的文件格式。它允许群集内的多个节点同时访问同一个 NTFS 文件系统。通过使用群集共享卷,可实现群集内多个节点间的实时迁移或快速迁移。

群集共享卷的创建非常简单,它可以通过可用的共享存储直接生成。

1 步,在故障转移群集管理器中,依次点击"存储"→"磁盘",可以看到右侧列出了通过 iSCSI 目标服务器所创建的两个群集磁盘,如图 8-105 所示,其中较小且排序靠前的磁盘自动变为"仲裁中的磁盘见证",而另外一块"群集磁盘 2"则是"可用存储"的状态。

8-105 群集磁盘之可用存储第 2 步,在"群集磁盘 2"上右键点击,选择"添加到群集共享卷",如图 8-106 所示。

8-106 添加可用存储至群集共享卷

3 步,待"群集磁盘 2"变成"群集共享卷"后,可以看到在磁盘的信息窗口下,群集共享卷的存储位置变成了"C:\ClusterStorage\Volume1",如图 8-107 所示。

8-107 群集共享卷的存储位置有小改变

群集共享卷的创建非常简单,在 Windows Server 2012 R2 中依然使用这项遗传自 Windows Server 2008 R2 的技术,是因为群集共享卷拥有如下优点:

  • 群集节点可同时访问 CSV,这意味着不同节点访问 CSV 上的虚拟机存储文件是无延时的,每一个虚拟机都位于"C:\ClusterStorage\VolumeX)"中自己的文件夹中,所以细粒度的故障转移无需为每一个虚拟机配置单独的 LUN,在管理上带来很大的便捷性。同时对于 Hyper-V 主机来说,物理磁盘的配置可能不一致,但至少每一个系统都会拥有一个 C 盘分区,使用 CSV 无需为共享存储分配其他盘符。
  • CSV 代理文件系统 (CSVFS)。在仍使用基础 NTFS 文件系统的同时,提供具有一致的单个文件命名空间的群集共享存储。
  • 支持 BitLocker 驱动器加密。允许使用群集计算机帐户(又称为群集名称对象,简称为 CNO)的公用标识进行加密。这在某些有合规要求的企业中具有很好的适用性。
  • 便于进行文件备份,可以使用卷影复制服务 (VSS) 进行便捷的备份
  • SMB 多通道和 SMB 直通集成。使用新的 SMB 3.0 功能,允许 CSV 流量在群集内的多个网络间传输,并可以利用支持远程直接内存访问 (RDMA) 的网络适配器。本书中所创建的 NIC 组合+SMB 多通道的架构可以很好的利用 CSV 的这个特性。
  • Windows Server 2012 R2 自带的存储空间功能集成。允许对多组低成本磁盘上的群集存储进行虚拟化。
  • 能够在不脱机的情况下扫描和修复卷,为数据恢复带来一定的便利性。

8.5.3 创建高可用虚拟机

配置完群集共享卷(CSV)后,就可以开始创建高可用的虚拟机了。

1 步,在"故障转移群集群集管理器"下,在"角色"上右键点击,依次选择"虚拟机"→"新建虚拟机",如图 8-108 所示。

8-108 创建高可用虚拟机

2 步,在弹出的"新建虚拟机窗口"中,任意选择群集中的一个节点,点击"确认",如图 8-109 所示。

8-109 选择虚拟机承载的节点

3 步,点击"确定"按钮后,系统自动弹出"Hyper-V 管理器"的"新建虚拟机向导",接下来的创建流程与在非群集环境下创建虚拟机类似。点击"下一步"继续,如图 8-110 所示。

8-110 选择虚拟机承载的节点第 4 步,在"指定名称和位置"对话框,为虚拟机配置名称以及虚拟机存储的位置。如图 8-111 所示,点击"下一步"继续。

需要注意的是,此处必须将虚拟机保存在群集共享卷上,也就是"C:\ClusterStorage\Volume(X)"下,否则创建高可用虚拟机失败。

8-111 定义虚拟机存储位置

5 步,在"指定代数"对话框,选择"第一代"。为了保持较好的兼容性,建议用户最好选择该选项。点击"下一步"继续,如图 8-112 所示。

8-112 定义虚拟机代数

6 步,在"分配内存"对话框,修改合适的数值或直接点击"下一步"继续,如图 8-113 所示。

8-113 分配虚拟机内存

7 步,在"配置网络"对话框,选择合适的虚拟网络交换机,由于本例中配置了两个不同的网段,因此在这里拥有两个不同网段的虚拟交换机可选,如图 8-114 所示,点击"下一步"继续。

8-114 为虚拟机配置网络

8 步,在"连接虚拟硬盘"对话框,可以检查虚拟硬盘的存储位置,由于在第 4 步,已经指定虚拟机保存在群集共享卷上,因此虚拟磁盘默认也位于群集共享卷的相应目录下。如图 8-

115 所示,点击"下一步"继续。

8-115 为虚拟机配置虚拟硬盘

9 步,在"安装选项"对话框,可以为虚拟机配置引导光盘或使用网络引导,也可以直接点击"下一步"继续,如图 8-116 所示。

8-116 定义虚拟机安装选项

10 步,在"摘要"对话框,检视配置信息是否有误,点击"完成"结束高可用虚拟机的创建,如图 8-117 所示。

8-117 摘要界面,检视虚拟机配置

11 步,点击完成后,系统自动从"Hyper-V 管理器"的"新建虚拟机向导"返回到"故障转移群集管理器"的"高可用向导",如图 8-118 所示。点击"查看报告",可以看到在报告中,主要的检测项目就是虚拟机存储是否保存在群集共享卷上。

8-118 完成高可用虚拟机的创建

在创建高可用虚拟机的过程中,很明显可以发现,"故障转移群集管理器"利用了"HyperV 管理器"的"新建虚拟机向导",和单纯通过"Hyper-V 管理器"创建虚拟机不同的是,其仅在创建结束将虚拟机置于群集中。

8.5.4 删除高可用虚拟机

当群集中的高可用虚拟机不再被使用时,可以手动将其删除。

1 步,在"故障转移群集管理器"中,依次点击"角色"→需要删除的虚拟机,在需要删除的虚拟机上右键点击,选择"删除",如图 8-119 所示。本例操作的目标为上一小节创建的"高可用虚拟机"。

8-119 删除高可用虚拟机

2 步,点击"删除",系统提示"该群集角色有 2 个资源",此时可以"点"是按钮进行删除,如图 8-120 所示。

8-120 提示群集角色拥有 2 个资源

系统提示的"该群集角色中有 2 个资源",这是怎么回事呢?依次点击"角色"→需要删除的虚拟机,在"角色"下方,点击"资源"按钮,查看当前虚拟机的资源,可以看到该虚拟机拥有两个资源,分别是"存储"和"虚拟机",如图 8-121 所示,这也就是为什么删除虚拟机时会提示"该群集角色中有 2 个资源"。

8-121 群集角色的资源

3 步,完成删除后,可以看到在"故障转移群集管理器"中,"高可用虚拟机"已经没有了,如图 8-122 所示。

8-122 从群集中删除资源

4 步,在"Hyper-V 管理器"中,发现"高可用虚拟机"依然存在,可见"故障转移群集管理器"中的"删除"操作,仅仅是将虚拟机从群集中移除,如图 8-123 所示。

8-123 虚拟机仅从群集中移除,实际并未删除

5 步,如希望继续进行删除操作,需要在"Hyper-V 管理器"中关闭虚拟机,然后在其上右键点击,选择"删除",如图 8-124 所示。

8-124 继续在"Hyper-V 管理器"中删除虚拟机

6 步,"Hyper-V 管理器"中删除虚拟机仅删除选定虚拟机的配置,但不删除与虚拟机关联的虚拟硬盘,因此还需要前往"C:\ClusterStorage\Volume1"的相对应目录下,手动删除虚拟硬盘文件,如图 8-125 所示。

8-125 手动删除虚拟机的虚拟硬盘文件

可以看到,在删除高可用虚拟机的流程中,整体环节还是显得有些繁琐,同时不仅需要在 "故障转移群集管理器"中操作,还需要切换到"Hyper-V管理器",以及最后还需前往群集共享卷手动删除虚拟机文件。

这样的操作是不是有些多此一举呢?有没有简单的方法处理高可用虚拟机的删除呢?很遗憾的是,通过 Windows Server 2012 R2 和"Hyper-V 管理器"是无法实现简化操作的,要想实现更简单的管理只能使用本书后续章节所介绍的微软私有云组件。

8.5.5 添加高可用虚拟硬盘

由于"故障转移群集管理器"和"Hyper-V管理器"的关系很紧密,因此很多"Hyper-V管理器"中的操作,都可以在"故障转移群集管理器"中看到。通过为虚拟机添加一块创建在群集共享卷上的虚拟硬盘,能够实现虚拟机的按需扩容。

1 步,在"故障转移群集管理器"下,依次点击"角色"→需要操作的虚拟机,虚拟机关机状态下右键点击,选择"设置",如图 8-126 所示。

8-126 设置虚拟机,准备添加虚拟硬盘

2 步,在弹出的虚拟机设置窗口,依次点击"IDE 控制器 0"→"硬盘驱动器"→"添加",如图 8-127 所示。

8-127 添加新的硬盘驱动器

3 步,此时左侧会增加一项新的"硬盘驱动器",于右侧点击"新建"按钮,打开"新建虚拟硬盘向导",如图 8-128 所示。

8-128 开启新建虚拟硬盘向导

4 步,在弹出的"新建虚拟硬盘向导"中,点击下一步,开始创建虚拟硬盘,如图 8-129 所示。

8-129 创建虚拟硬盘

5 步,在"选择磁盘格式"对话框中,选中默认的 VHDX 格式,点击"下一步"继续,如图 8-130 所示。

图 8-130 选择 VHDX 格式虚拟硬盘

6 步,在"选择磁盘类型"对话框中,选中默认的动态扩展格式,点击"下一步"继续,如图 8-131 所示。

8-131 选择动态扩展类型

7 步,在"指定名称和位置"对话框中,修改虚拟硬盘的名称,同时修改"位置"为群集共享卷"C:\ClusterStorage\Volume1"下的目录,点击"下一步"继续,如图 8-132 所示。

8-132 指定虚拟磁盘位置在群集共享卷上

8 步,在"配置磁盘"对话框中,点选默认"新建空白虚拟硬盘",点击"完成"结束虚拟硬盘配置,如图 8-133 所示。

8-133 完成虚拟硬盘配置

9 步,返回虚拟机设置选项卡,可以看到新增的虚拟硬盘已被指定在"IDE 控制器 0"下,如图 8-134 所示。

8-134 检查虚拟硬盘配置

需要注意的是,尽管高可用环境下的增加硬盘操作和"Hyper-V 管理器"下增加硬盘的操作基本一致,但使用"Hyper-V 管理器"是无法对故障转移群集中的高可用虚拟机进行修改的,其错误提示如图 8-135 所示。

8-135 "Hyper-V 管理器"无法对高可用虚拟机进行修改

如需对高可用虚拟机的硬盘进行扩展,可以在虚拟机管理选项卡下,依次点击"IDE 控制器0"→"硬盘驱动器",于右侧点击"编辑"按钮,对虚拟硬盘进行编辑,如图 8-136 所示。

8-136 对高可用虚拟机的虚拟硬盘进行扩容

相对普通虚拟机的硬盘扩容而言,高可用虚拟机的硬盘扩容限制条件稍多一些,如图 8-137 所示。其中包括:

  • 虚拟硬盘不能是差异磁盘链中存在子虚拟硬盘的父硬盘。
  • 当前虚拟机不能存在检查点。
  • 当前虚拟机不能参与 Hyper-V 副本。

    8-137 高可用虚拟机扩充虚拟硬盘的限制条件

8.6 故障转移群集节点管理

在本例的故障转移群集中,每一台物理的 Hyper-V 主机都是一个"节点",只要满足创建群集的基本条件,则节点可以在群集中任意增删。需要注意的是,节点不是无限制的增加的,其受限于 Windows Serve 的最大节点数限制,如表 8-6 所示。

群集资源

Hyper-V

Hyper-V

Hyper-V

Hyper-V2012/2012 R2 相对2008R2 提高的倍数

(2008 R2)

2012

2012 R2

最大节点数量

16

64

64

最大虚拟机数量

1,000

8,000

8,000

表 8-6Windows Server 2012 R2 下的群集相比前代产品的进步

8.6.1 暂停和恢复群集

在"故障转移群集管理器"的"节点"下,可以看到当前群集所管理的两个节点,如图 8-

138所示。

 

图 8-138 故障转移群集节点信息

  • 暂停群集功能

在任意一个节点上右键点击,可以发现弹出菜单中有"暂停"选项,如图 8-139 所示,其中:

  • 排出角色,由于故障转移群集的设计目的在于为用户提供持续可用的服务,因此当用户主动点击暂停时,同样意味着服务中断,排除角色意味着在点击暂停后,该节点上的故障转移群集角色会转移到其他节点上。
  • 不排除角色,当点击暂停后,该节点上的故障转移群集角色依然保留在该虚拟机上,无法对外提供服务,直到该节点退出暂停状态。

    8-139 暂停群集功能

  • 恢复群集功能

当群集节点手动暂停后,可以对该节点进行打补丁,安装软件,重启等维护操作。而当维护结束后,需要将该节点恢复正常。

在任意一个暂停节点上右键点击,可以发现弹出菜单中有"恢复"选项,如图 8-140 所示,其中:

  • 故障回复角色,当处于暂停状态的节点需要恢复正常时,点击该选项可以恢复之前在该节点上开启的故障转移群集角色。
  • 不故障回复角色,当处于暂停状态的节点需要恢复正常时,点击该选项不会恢复该节点点击暂停前的故障转移群集角色。

例如,当暂停时选择排除角色,而恢复时选择不故障回复角色,则所涉及的节点首先会迁移节点上的虚拟机到其他节点上,而恢复时,位于其他节点上的虚拟机不自动回迁。暂停和恢复是维护群集所常用的两个功能。

8-140 暂停群集功能

8.6.2 启动和停止群集

如果希望测试群集自动迁移的效果,可以手动对群集进行"停止"操作,而当群集因为意外情况自动停止时,也可以通过"启动"操作,来恢复群集的可用性。

在任意一个节点上右键点击,可以看到"更多操作"选项,点击后可以看到"停止群集服务" 选项,如图 8-141 所示。和暂停相比,停止群集服务属于"意外"的中断群集服务。

8-141 停止群集服务停止后的群集状态会显示为"故障",如图 8-142 所示。

8-142 停止群集服务后,节点会显示为"故障"

在故障节点右键点击,可以看到"更多操作"选项,此时可以点击"启动群集服务",如图

8-143 所示,启动后的群集节点的状态将由"故障"变为"正常"。

8-143 可对故障节点"启动群集服务"

8.6.3 逐出群集节点

当某个群集节点因为某些原因需要离线时,必须先将该节点"逐出"群集。如群集节点需要退役,换新设备;设备保养,长时间不联网;挪做他用,不再归现有群集所有。这些情况都需要将群集节点"逐出"群集。

在任意一个节点上右键点击,可以看到"更多操作"选项,点击后可以看到"逐出"选项,如图 8-144 所示。此时系统会弹出警告信息框,提醒该操作的危险性,点击"是"按钮完成逐出群集的操作。

需要注意的是,在逐出群集节点之前,一定要将该节点上的故障转移群集角色迁移至其他角色。

8-144 逐出群集节点

完成逐出群集节点后,可以在"故障转移群集管理器"下检查群集摘要,此时可以看到本例中的群集由于逐出一个节点,只剩下一个节点了,如图 8-145 所示。

8-145 检查群集摘要

8.6.4 添加群集节点

和"逐出"相反的操作就是"添加",当组织面临规模扩大,或群集现有资源无法满足用户需求时,需要对现有群集横向扩容,增加现有群集节点,提升业务处理能力和处理速度。添加群集节点和创建群集的操作类似,都是通过向导完成的。

1 步,在"故障转移群集管理器"下群集摘要选项卡下,点击"添加节点",如图 8-146 所示。

8-146 为现有群集添加新的节点

2 步,进入"添加节点向导",在开始之前"对话框",系统会对添加群集节点的关键技术要点进行介绍,如图 8-147 所示,点击"下一步"继续。其中介绍的内容包括:

  • 新增的群集节点必须满足节点之间硬件、软件、固件的相同,其具体要求和初次创建群集的要求完全一致。
  • 强烈建议用户在添加节点向导时使用验证配置向导进行所有测试的验证。

    8-147 添加节点向导开始之前

3步,在"选择服务器"对话框,填写并添加在上一小节逐出群集的节点 hv2.contoso.com,如图 8-148 所示,点击"下一步"继续。

8-148 选择之前"逐出"的节点进行添加

4 步,在"验证警告"对话框,可以对添加的节点进行配置验证测试,由于被逐出的节点我们完全肯定其软硬件配置合乎要求,因此此处可以点"否"跳过验证。如点击"是"则进入验证配置向导,如图 8-149 所示,点击"下一步"继续。

8-149 选择是否进行配置验证测试

5 步,在"确认"对话框,可以检视已添加的节点,如图 8-150 所示,点击"下一步"继续。

8-150 确认需要添加的节点6 步,在"配置群集"对话框,系统会很快完成添加节点的操作,如图 8-151 所示。

8-151 选择是否进行配置验证测试。

7 步,在"摘要"对话框,此处会看到一个错误提示,错误提示的内容是"不会考虑将群集磁盘 2 用做磁盘见证……",出现该错误提示的原因是,群集磁盘 2 是我们之前创建的群集共享卷(CSV),只有群集磁盘 1 才是仲裁磁盘。因此该错误提示完全可以忽略,如图 8-152 所示。

同时需要注意的是,如果是新增节点,导致群集节点由单数变为双数或双数变为单数,群集的仲裁方式也会自动的随之改变,完全不需人为参与。所以尽管群集仲裁方式看起来复杂多变,但这些仅仅需要我们掌握知识,而不需要手动修改。

8-152 检查摘要,完成添加群集节点

 

8.7 小结

本章对什么是故障转移群集,故障转移群集的优缺点,以及搭建故障转移群集最重要的两个因素:存储、网络进行了详细的介绍和部署。如果用户拥有硬件存储产品,则可以直接使用,而不需要搭建 iSCSI 目标服务器。相对而言,硬件级的存储产品可以提供更好的性能和稳定性。

在群集的网络方面,也建议用户使用 NIC 绑定和 SMB 多通道,特别是后者,这是一项几乎没有任何额外支出的高可用性技术。

故障转移群集在虚拟化和私有云的建设中,主要是作为虚拟机底层的高可用平台而存在的。因此对于故障转移群集的基本操作,如仲裁磁盘、群集共享卷;创建、删除、修改虚拟机;添加、逐出群集节点也进行了详细介绍。

本章仅对群集的基础环境进行了介绍,因此显得稍微枯燥了一些,但毕竟这是虚拟化和私有云稳健运行的基石,很多高级功能都离不开群集的支持。而在后续章节中,本书会对群集在虚拟化和私有云中的实际应用逐一展开。

 

 

 

posted @ 2015-08-23 17:02  王哥哥哥哥  阅读(18043)  评论(1编辑  收藏  举报
网站流量统计分析