某医药公司现有1台服务器,安装Windows Server 2008 R2,运行专用管理软件,计算机上有USB加密狗。网络中有100个左右的工作站,安装专用客户端软件,连接到这台服务器,进行业务管理及应用。因为业务系统比较重要,医药公司想对这台服务器实现类似“双机热备”的功能,但公司预算有限,想让设计较低成本的高可用解决方案。
经过现场了解,发现该单位只有一台服务器(服务器有8GB内存、2块300G硬盘做的RAID1、2块网卡使用了其中的一块连接到网络)。该单位也没有其他多余的服务器。
因为传统的“双机热备”配置较为繁琐,成本较高,我们首先排除了这种方法。另外,由于该公司的管理软件是使用USB加密狗,双机热备可能对此不支持,或者支持也需要在双机热备的每个主机安装一个USB加密狗,这也是不现实的。
经过多方面考虑,我决定采用Windows Server 2012 R2的故障转移群集解决,并使用“USB共享软件”解决USB加密狗的问题,设计拓扑如图1-1所示。
图1-1-1 网络拓扑
在图1-1-1中,我们增加了两台服务器,其中A服务器的硬盘较大(配置了6块2TB的硬盘,使用RAID10划分),为该服务器配置了4GB内存,在该服务器上安装Windows Server 2012 R2,升级到Active Directory服务器,并安装“文件和存储服务”,将这个服务器配置为iSCSI的服务器端。另两台服务器B、C安装Windows Server 2012 R2,加入到Active Directory做成员服务器,安装故障转移群集及Hyper-V服务。其中B服务器是新购置的,为其配置了8GB内存、1块80~120GB的固态硬盘安装Windows Server 2012。A服务器做的iSCSI存储服务器划分空间分配给这两台Hyper-V主机做共用存储。而原来的医药管理系统,则运行在Hyper-V的虚拟机中,由故障转移群集实现高可用性。将USB加密狗插在服务器A中,在A安装USB共享软件,共享该加密狗。在Hyper-V虚拟机中安装Windows Server 2008 R2、安装USB共享软件客户端、安装医药管理系统。
由于在服务器B、C配置了故障转移群集,并且虚拟机是保存在A提供的共享存储中,只要B或C有任意一个主机正常工具,虚拟机D即可正常运行,保证业务系统不致中断。当D在B或C切换时,USB共享不受影响。
为了保证服务器A、B、C的网络连通性,使用Windows Server 2012的“网卡成组”功能,将每个服务器的多个网卡绑定成同一组,只要每台服务器上有任意一个网卡连通,就能保证网络畅通。
在正式配置系统之前,将C服务器原来的医药管理系统数据备份出来(主要是数据库文件,因为C服务器有本地硬盘,将数据备份在D分区即可,在C分区重新安装Windows Server 2012 R2,在配置好虚拟机D盘,通过“共享文件夹”,将数据恢复到虚拟机D中即可,这些不做详细的介绍),下面主要介绍故障转移群集、USB共享等主要内容。
在服务器A中,进入RAID卡配置界面,将6块硬盘使用RAID10技术划分成2~4个逻辑磁盘,其中第1个逻辑磁盘80~120GB左右,用来安装操作系统,剩下的可以划分成一个逻辑磁盘(这要看RAID卡的配置是否支持单一分区超过2TB),也可以每2TB划分一个逻辑磁盘。在有6块2TB的硬盘做RAID10时,总的可用空间是3个磁盘的容量,大约为5.5TB左右(在我们的示例中,划分为2个2TB、1个1.47TB的逻辑磁盘)。
划分好逻辑磁盘之后,在服务器上安装Windows Server 2012 R2,设置计算机的名称为mh03,并升级到Active Directory,在本示例中,设置Active Directory域名为heinfo.edu.cn。之后,添加角色和功能,在“文件和存储服务→文件和iSCSI服务”中选择“iSCSI目标存储服务提供程序”及“iSCSI目标服务器”两种角色,如图1-1-2所示。
图1-1-2 添加文件和iSCSI服务
添加为iSCSI服务之后,在“服务器管理器→文件和存储服务→iSCSI”中,为服务器B、C创建iSCSI虚拟磁盘并为其分配iSCSI目标,主要步骤如下。
(1)在“服务器管理器→文件和存储服务→iSCSI”中,单击“若要创建iSCSI磁盘,请启动‘新建iSCSI虚拟磁盘’向导”链接,如图1-1-3所示。
图1-1-3 启动新建iSCSI虚拟磁盘向导
(2)在“选择iSCSI虚拟磁盘位置”对话框,在“存储位置”选择要为服务器B、C分配的虚拟磁盘位置,在此选择E盘,如图1-1-4所示。在实际的环境中,请大家根据你的服务器的配置进行选择。
图1-1-4 选择iSCSI虚拟磁盘位置
(3)在“指定iSCSI虚拟磁盘名称”对话框,在“名称”文本框中为将要新建的虚拟磁盘指定一个名称,在此设置名称为“Hyper-VHDXs”,如图1-1-5所示。
图1-1-5 指定iSCSI虚拟磁盘名称
(4)在“指定iSCSI虚拟磁盘大小”对话框,为新建虚拟磁盘设置大小,在此设置为500GB(你可以根据实际情况选择,例如你可以为其分配更大的空间,例如1.5TB甚至更大),并选择“固态大小”,这样可以为虚拟机提供较好的性能,如图1-1-6所示。如果以后虚拟磁盘空间不够,可以创建新的虚拟磁盘,并将其分配给虚拟机,使用“动态卷”功能扩展。
图1-1-6 指定iSCSI虚拟磁盘大小
(5)在“分配iSCSI目标”对话框,选择“新建iSCSI目标”,如图1-1-7所示。
图1-1-7 分配iSCSI目标
(6)在“指定目标名称”对话框,为新建目标设置名称及描述信息,在此设置名称为“Hyper-V-VM”,设置描述信息为“172.18.96.4、172.18.96.10”,表示这是为IP地址为172.18.96.4及172.18.96.10的服务器B、C分配,如图1-1-8所示。
图1-1-8 指定目标名称
(7)在“指定访问服务器”对话框,单击“添加”按钮,如图1-1-9所示。
图1-1-9 指定访问服务器
(8)在“选择用于标识发起程序的方法”对话框中,选择“输入选定类型的值”,在“类型”下拉列表中选择“IP地址”,然后在“值”文本框中输入第1台服务器的IP地址172.18.96.4,如图1-1-10所示,然后单击“确定”按钮返回到“指定服务器”对话框,再次单击“添加”按钮,添加第2台服务器的IP地址172.18.96.10。
图1-1-10 标识发起程序
(9)返回到“指定服务器”对话框中,可以看到,已经添加了服务器B、C的地址,如图1-1-11所示。如果还有其他服务器,则可以再次单击“添加”按钮添加。
图1-1-11 指定访问服务器列表
(10)在“启用身份验证”对话框中,选择是否启用CHAP协议进行身份验证,在此直接单击“下一步”按钮,如图1-1-12所示。
图1-1-12 启用身份验证
(11)在“确认选择”对话框中,检查设置是否正确,无误之后单击“创建”按钮,如图1-1-13所示。
图1-1-13 确认选择
(12)之后向导将开始创建iSCSI虚拟磁盘、分配iSCSI目标,创建完成后,在“查看结果”中可以看到,如图1-1-14所示。
图1-1-14 查看结果
(13)创建完成之后,返回到“服务器管理器”,如图1-1-15所示。
图1-1-15 创建iSCSI虚拟磁盘及分配目标完成
最后打开“高级安全Windows防火墙”,为iSCSI服务启用“iSCSI 服务(TCP-In)”、“iSCSI目标(TCP-In)”、“iSCSI目标服务(RPC-In)”等三个服务,默认情况下这三个服务没有开启,iSCSI客户端将不能连接服务器。如图1-1-16所示。
图1-1-16 在防火墙中开启iSCSI服务端口
在服务器上安装USB共享服务器端软件,然后插上USB加密狗,安装USB加密狗驱动程序,并将USB加密狗共享,主要步骤如下。
(1)安装usb over netork server 4.7.4版本,该版本支持64位的Windows Server 2012 R2,如图1-2-1所示。
图1-2-1 安装USB共享服务器端软件
(2)该软件安装很简单,使用默认值安装就可以,如图1-2-2所示。
图1-2-2 安装完成
安装完成后,在服务器上插上USB加密狗,然后安装USB加密狗驱动程序,如图1-2-3所示。在你的生产环境中,如果需要共享USB加密狗,请安装你的加密狗驱动程序。
图1-2-3 安装USB加密狗驱动程序
之后运行usb over netork server,在“My Computer”中列出可以共享的USB设备,检查USB加密狗是否已经识别,如果没有识别,在第一次安装USB加密狗驱动程序后,可能需要重新启动一次计算机才能识别。识别之后,用鼠标右键单击,在弹出的快捷菜单中选择“Share”,共享该设备,如图1-2-4所示。
图1-2-4 共享设备
在共享之后,该设备状态为“等待连接”,如图1-2-5所示。
图1-2-5 等待连接的USB共享设备
最后,在“高级安全Windows防火墙”中,还要启用“usb over netork server”策略,如图1-2-6所示。
图1-2-6 启用防火墙策略
在服务器B、C上安装Windows Server 2012 R2,然后根据图1-1-1所规划内容,将计算机加入到Active Directory,并安装Hyper-V服务。安装Hyper-V服务比较简单,在“服务器管理器”,添加角色和功能,在“选择服务器角色”中添加“Hyper-V”服务,如图1-3-1所示。
图1-3-1 添加Hyper-V角色
在安装完Hyper-V及故障转移群集之后,根据提示重新启动计算机。
之后在Hyper-V主机上,需要使用iSCSI发起程序连接存储服务器并在磁盘管理中初始化新添加的共享存储、创建分区、格式化并分配盘符之后才能使用。下面介绍在MH04主机上添加iSCSI存储的方法,另一主机也要执行相同的操作。
(1)在“服务器管理器”中,从“工具”菜单选择“iSCSI发起程序”,如图1-3-2所示。
图1-3-2 iSCSI发起程序
(2)弹出“Microsoft iSCSI”对话框,单击“是”按钮启动该服务,如图1-3-3所示。
图1-3-3 启动iSCSI服务
(3)打开“iSCSI发起程序 属性”对话框,在“发现”选项卡中,单击“发现门户”按钮,在弹出的“发现目标门户”对话框中输入存储服务器的IP地址,本例中为172.18.96.3,然后单击“确定”按钮,如图1-3-4所示。
图1-3-4 添加iSCSI存储服务器
(4)然后单击“目标”选项卡,在“己发现的目标”中列表出了添加的存储服务器,但当前状态为“不活动”,单击“连接”按钮,在弹出的对话框中单击“确定”按钮,如图1-3-5所示。如果为该存储服务器添加了多个路径,可以选中“启用多路径”。
图1-3-5 连接目标
(5)然后打开“计算机管理”,在“存储→磁盘管理”中,可以看到存储服务器分配的空间,为该磁盘“联机”、初始化,并创建分区,最新用NTFS文件系统格式化,并为该存储分配一个盘符,如图1-3-6所示。
图1-3-6 为新添加共享存储创建分区并分配盘符
对于另一台Hyper-V主机,也要重复(1)~(5)的步骤,只不过不再需要初始化、格式化磁盘,因为在第一台主机连接该共享存储时已经进行了格式化的工作,在另一台主机上,直接为添加的共享存储,分配同一盘符即可。
在配置群集之前,要加入群集的Hyper-V主机,需要具有相同的“虚拟交换机”名称,如果虚拟交换机名称不同,则配置群集时会出现错误。在下面的操作中,将会把两台Hyper-V主机的虚拟交换机改为同一个名称“vlan2006”,你可以根据你的实际情况,修改为有一定意义的名称。在我的网络中,vlan2006的所属网段即是172.18.96.0/24,所以这样设置。
(1)在“Hyper-V管理器”中,右击Hyper-V主机名称,在此选择MH04,在弹出的快捷菜单中选择“虚拟交换机管理器”,如图1-4-1所示。
图1-4-1 虚拟交换机管理器
(2)在“虚拟交换机属性”中,在“名称”标签处,修改虚拟交换机名称,在此命名为vlan2006,如图1-4-2所示。然后在“外部网络”中,选择该虚拟交换机连接的网卡,如果你使用了单独的网卡,请从“外部网络”列表中选择对应的网卡;如果你启用了“网卡成组(team)”功能,在此需要选择成组网卡的名称,不要选择team中的某一个网卡。
图1-4-2 虚拟交换机属性
(3)修改好Mh04的虚拟交换机属性后,再修改另一台主机mh10的虚拟交换机,同样命名为vlan2006,如图1-4-3所示。
图1-4-3 修改另一Hyper-V主机的虚拟交换机
在配置好Hyper-V主机,并添加了iSCSI共享磁盘后,接下来安装配置“故障转移群集”服务,下面一一介绍。
首先要在每台主机中安装“故障转移群集”服务,下面以在MH04安装为例,主要步骤如下。
(1)在MH04的主机中,打开“服务器管理器”, 在“所有服务器”中,将MH10添加到列表中,然后右击MH04,在弹出的快捷菜单中选择“添加角色和功能”,如图1-5-1所示。
图1-5-1 添加角色和功能
(2)在“选择安装类型”对话框,单击“基于角色或基于功能的安装”单选框,如图1-5-2所示。
图1-5-2选择安装类型
(3)在“选择目标服务器”,选择“从服务器池中选择服务器”,在“名称”列表中选择要安装角色的服务器,在此先选择“mh04.heinfo.edu.cn”,等这台服务器安装完成后,再运行安装向导,安装mh10。如图1-5-3所示。
图1-5-3 选择目标服务器
(4)在“选择功能”对话框中,单击并选中“故障转移群集”,如图1-5-4所示。
图1-5-4 故障转移群集
(7)在“确认安装所选内容”对话框中,单击并选中“如果需要,自动重新启动目标服务器”单选框,然后单击“安装”按钮,开始安装,如图1-5-5所示。
图1-5-5 确认安装所选内容
(8)在“安装进度”中显示了安装故障转移群集的进度,安装完成后单击“关闭”按钮,如图1-5-6所示。
图1-5-6 安装进度
之后参照(3)~(8)的步骤,在MH10主机上也安装故障转移群集。这些不再介绍。
在主机中都安装故障转移群集之后,开始验证并创建群集。首先要验证群集。
(1)在“服务器管理器→所有服务器”中,从“工具”菜单中选择“故障转移群集管理器”,如图1-5-7所示。
图1-5-7 故障转移群集管理器
(2)打开“故障转移群集管理器”,单击“验证配置”链接,如图1-5-8所示。
图1-5-8验证配置
(3)在“开始之前”对话框,单击并选中“不再显示此页”单选框,如图1-5-9所示。
图1-5-9开始之前
(4)在“选择服务器或群集”对话框中,在“输入名称”文本框中输入“mh04;mh10”然后单击“添加”按钮,将这两台服务器添加到“选定的服务器”列表中,如图1-5-10所示。
图1-5-10选择服务器或群集
(5)在“测试选项”,单击“运行所有测试”单选框,如图1-5-11所示。
图1-5-11测试选项
(6)在“确认”对话框,显示了测试的内容,包括要测试的服务器及测试的选项,如图1-5-12所示。
图1-5-12 确认测试内容
(7)在“摘要”对话框中,显示了测试的结果,如图1-5-13所示。可以单击“查看报告”按钮,查看测试报告。或者单击“完成”按钮,开始使用经过验证的节点创建群集。
图1-5-13 摘要
在运行测试并且测试都成功之后,进入创建群集向导对话框,开始创建群集,步骤如下。
(1)在“开始之前”显示了群集的介绍,如图1-5-14所示。
图1-5-14 创建群集向导
(2)在“用于管理群集的访问点”对话框中,设置群集名称及群集IP地址,在此设置群集名称为“Cluster”,设置群集管理地址为172.18.96.16(该IP未在网络上分配),如图1-5-15所示。
图1-5-15 设置群集名称及管理IP地址
(3)在“确认”对话框,根据情况选择,是否“将所有符合条件的存储添加到群集”的选项,如图1-5-16所示。
图1-5-16 确认
【说明】如果你的群集是使用SAS或FC光纤连接到存储,则取消选中“将所有符合条件的存储添加到群集”的选项,否则可能会将主机中的所有硬盘添加到群集,这样会造成错误,你可以取消该项选择,而在安装之后,手动添加存储。
(4)在“摘要”对话框,显示了群集的创建结果,如图1-5-17所示,创建群集完成。
图1-5-17创建群集完成
如果创建群集出错,例如这两台主机原来已经创建过群集但卸载不完全,有可能出现图1-5-18的错误信息。
图1-5-18创建群集出错
如果是这种错误,请依次在群集中每台主机上,使用PowerShell,执行clear-clusternode命令,清除群集节点,如图1-5-19所示。
图1-5-19 清除节点信息
等在每台主机执行该命令后,重新创建群集即可成功。
在创建群集之后,向群集中添加符合条件的磁盘用于群集存储,步骤如下。
(1)在“故障转移群集管理器”控制台中,右击“存储→磁盘”,在弹出的快捷菜单中选择“添加磁盘”,如图1-5-20所示。
图1-5-20添加磁盘
(2)在“将磁盘添加到群集”对话框中,选择共用的磁盘,单击“确定”按钮添加,如图1-5-21所示。
图1-5-21 选择群集共用的磁盘
(3)添加之后的磁盘显示为“可用存储”,需要将“可用存储”添加为“群集共享卷”,只有这样磁盘才能为群集所使用,如图1-5-22所示,用鼠标右键单击存储,在弹出的快捷菜单中选择“添加到群集共享卷”。
图1-5-22 可用存储
(4)将可用存储添加为“群集共享卷”之后,磁盘访问路径变更为C:\ClusterStorage\Volume1、C:\ClusterStorage\Volume2等,如图1-5-23所示。如果还有其他磁盘用于群集共享,则依次添加。
图1-5-23添加到群集共享卷
(5)打开“资源管理器”,可以查看每个卷的内容,如图1-5-24所示。
图1-5-24群集共享卷磁盘及内容
在配置了故障转移群集之后,为了实现高可用性,需要修改虚拟机的默认保存位置,以后新建的虚拟机可以直接保存在群集共享卷上。
(1)打开“Hyper-V管理器”,修改MH04的Hyper-V设置,如图1-5-25所示。
图1-5-25 Hyper-V设置
(2)修改“虚拟硬盘”路径为C:\ClusterStorage\Volume1\Hyper-V\、修改“虚拟机”路径为C:\ClusterStorage\Volume1\Hyper-V\,如图1-5-26所示。
(3)之后修改MH10的“Hyper-V设置”,将“虚拟硬盘”路径为C:\ClusterStorage\Volume1\Hyper-V\、修改“虚拟机”路径为C:\ClusterStorage\Volume1\Hyper-V\,如图1-5-27所示。
图1-5-26修改MH04虚拟硬盘及虚拟机默认路径 图1-5-27 MH10虚拟硬盘与虚拟机默认路径
经过上面一系列的配置,就可以在“故障转移群集”中创建虚拟机D,并在虚拟机D中安装医药管理系统、安装USB共享客户端,连接到USB加密狗,实现高可用了。首先介绍新建虚拟机的方法,主要步骤如下。
(1)在“故障转移群集管理器”中,右击“角色”,在弹出的快捷菜单中选择“虚拟机→新建虚拟机”,如图1-5-28所示。
图1-5-28 新建虚拟机
(2)在“新建虚拟机”对话框,选择用于创建虚拟机的目标群集节点,在“群集节点”中选择一个可用的节点,在此选择MH04,如图1-5-29所示。
图1-5-29 选择节点主机
(3)在“指定名称和位置”对话框中,为新建虚拟机设置名称及保存位置,在此设置虚拟机名称为ws08r2_172.18.96.18,保存在C:\ClusterStorage\Volume1\Hyper-V\ ws08r2_172.18.96.18文件夹中,如图1-5-30所示。说明,在创建Hyper-V的虚拟机时不会新建新的文件夹,为了后期管理方便,请管理员自己添加文件夹。
图1-5-30 指定虚拟机名称及保存位置
(4)在“指定代数”对话框,选择“第一代”,如图1-5-31所示。在Windows Server 2012 R2的Hyper-V中,第二代虚拟机只支持64位的Windows Server 2012或Windows 8或以后的系统,并不支持Windows Server 2008。
图1-5-31 虚拟机代数
(5)在“分配内存”对话框,为虚拟机分配内存,在此实验环境中选择1024MB,如图1-5-32所示。如果在实际的生产环境,在虚拟机运行SQL Server及IIS的情况下,至少要为虚拟机分配4~8GB内存。
图1-5-32 分配内存
(6)在“配置网络”对话框,在“连接”下拉列表中,选择vlan2006,如图1-5-33所示。
图1-5-33 配置网络
(7)在“连接虚拟硬盘”对话框,选择“新建虚拟硬盘”,如图1-5-34所示。在Hyper-V中,默认虚拟硬盘为127GB,最大为64TB。
图1-5-34 新建虚拟硬盘
(8)在“安装选项”对话框,选择要安装操作系统的方法,如图1-5-35所示,请你根据实际情况选择。
图1-5-35 安装选项
(9)在“正在完成新建虚拟机向导”对话框,单击“完成”按钮,新建虚拟机完成,如图1-5-36所示。
图1-5-36 完成新建虚拟机向导
(10)之后“高可用性向导”会为虚拟机配置高可用性,如图1-5-37所示。
图1-5-37 为虚拟机配置高可用性
(11)为虚拟机配置为高可用性,会弹出“摘要”对话框,显示配置结果,单击“完成”按钮,如图1-5-38所示。
图1-5-38 摘要
最后,在虚拟机D中安装Windows Server 2008 R2,安装Hyper-V集成插件,最后安装USB共享客户端、安装USB加密狗驱动、安装医药管理系统,在本节主要介绍USB共享客户端的安装与使用,其他不再介绍。
(1)在虚拟机安装Windows Server 2008 R2,并按照图1-1-1的拓扑图规划,设置IP地址为172.18.96.18。
(2)安装“usb over network client 4.7.4”客户端软件,如图1-5-39所示。
图1-5-39 安装USB共享客户端软件
(3)该软件安装比较简单,一般按照默认值即可完成安装。在安装的过程中,弹出“Windows安全对话框”,单击“安装”按钮,确认安装“Fabula Tech系统设备”,如图1-5-40所示。
图1-5-40 确认安装设备
(4)安装完成后,单击“Finish”按钮,如图1-5-41所示。
图1-5-41 安装完成
(5)安装完成后,运行USB over Network Client,右击“My Computer”,在弹出的快捷菜单中选择“Add”按钮,如图1-5-42所示。
图1-5-42 添加
(6)在弹出的“Add Remote USB Server”对话框中,在“Remote IP address of computer name”对话框中,输入远程USB共享服务器端的地址,在本例中为172.18.96.3,共享端口默认为33000,并选择“Automatically connect all shared USB devices from server(自动连接服务器上所有共享的USB设备)”,如图1-5-43所示,这样会自动连接USB共享服务器上所有共享的设备。
图1-5-43 连接USB共享服务器
(7)连接之后,当前计算机会通过网络,自动连接USB共享服务器(172.18.96.3)上共享的USB加密狗,如图1-5-44所示。
图1-5-44 连接的USB加密狗
之后再在虚拟机D中安装USB加密狗驱动程序、安装医药管理系统,并恢复数据到虚拟机D,至此系统配置完成。
在以后使用的过程中,只要服务器B或C有任意一台主机工作,整个业务系统即不会中断,实现了系统的高可用性。另外,我们的应用只是创建了一个虚拟机,为一个虚拟机实现高可用,实际上,在配置了服务器A、B、C这一个基本平台后,只要服务器B、C的资源足够,可以创建多个虚拟机,为多个应用实现高可用。