《VMware vSphere设计(原书第2版)》——3.2 关键管理层设计决策分析-阿里云开发者社区

开发者社区> 华章出版社> 正文

《VMware vSphere设计(原书第2版)》——3.2 关键管理层设计决策分析

简介:

本节书摘来自华章出版社《VMware vSphere设计(原书第2版)》一 书中的第3章,第3.2节,作者:[美] 福布斯·格思里(Forbes Guthrie)斯科特·罗威(Scott Lowe)肯德里克·科尔曼(Kendrick Coleman),更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.2 关键管理层设计决策分析

本节将分析一部分(不是全部)设计管理层时需要做的重要决策。主要包括以下4个方面:
使用虚拟的还是物理的vCenter 服务器?
vCenter 服务器是部署在Windows上还是vCenter服务器设备上?
使用本地还是远程的数据库服务器?
vCenter 服务器上安装什么操作系统?
首先我们来分析是将vCenter 服务器部署在物理系统还是虚拟机上。

3.2.1 虚拟的还是物理的vCenter服务器

将vCenter服务器安装在虚拟机上还是物理服务器上一直存在着争议。下面,分别介绍支持二者的理由。
物理服务器
这本书是讲如何设计虚拟基础设施环境的,为什么要讨论物理服务器呢?因为虚拟基础设施环境中,一定数量的物理服务器是必需的:至少ESXi host需要物理服务器。但是为什么要考虑把vCenter安装在物理服务器上呢?理由如下:
鸡与蛋的问题 你肯定很熟悉鸡生蛋还是蛋生鸡这个矛盾问题。很多人都用这个来类比虚拟机形式的vCenter。
比如,vSphere环境规模很大:有100个ESXi host。由于某些原因,发生了严重的服务中断。例如:存储vCenter 虚拟机的LUN丢失了。由于各种各种的原因,你不会用几个小时为虚拟机创建备份。你可能认为这样做是没问题的,直到vSphere环境出了大问题才意识到问题的严重性。一个虚拟机由于CPU内存使用率过高而无法工作,你努力在这100个ESXi中的2000个虚拟机中找到它。这简直就是噩梦。如果很侥幸,检查到第三个ESXi host的时候你就定位到了出问题的那个虚拟机。然后想用vMotion来迁移这个虚拟机,但是,对不起,你没有vCenter来执行这个操作。
这只是vCenter搭建在虚拟机上可能发生的问题之一。此外,在VMware View或vCloud Director环境中,如果vCenter发生故障的话,你是无法部署新的虚拟机的。当然也不能执行任何操作来恢复环境,因为你没有vCenter可用。而没有vCenter可用的原因就是你的环境不能正常运行。由此可见,虚拟vCenter服务器故障会导致非常严重的问题。
职责分离 有些组织认为在这些职责问题没有讨论清楚前,不应该在vSphere环境中部署管理应用程序。这并不是说你不能以虚拟机的形式运行vCenter(可以在一个独立的host上运行它),但这样做会失去很多特性(这一点马上就可以看到)。
资源数量 vCenter服务器上的资源是比较密集的。如果把vCenter服务器5.0 和后端数据库服务器部署在同一个虚拟机上,那么就需要4个vCPU和8GB的内存。在vSphere 5.1中,如果你将vCenter SSO、vCenter inventory 服务、vCenter服务器、vCenter Web客户端和后端数据库服务器部署在同一个虚拟机上,那么也需要4个vCPU和8GB的内存的最低配置。实际上,所需最低配置可能更高。你想在单个虚拟机上使用这么多资源吗?
虚拟vCenter服务器
我们已经讨论过为什么在vSphere环境中部署物理的vCenter是必须要的,以及为什么这个选择比部署虚拟的vCenter会更好。现在,看看硬币的另一面:为什么选择用虚拟机形式的vCenter。注意:VMware已将虚拟机形式的vCenter加入到最佳实践中。然而,正如第1章所述,理解有些实践为什么会被列为最佳实践是很必要的。
鸡与蛋的问题 如果事先做好计划和准备,上个场景中发生的问题是可以缓解的。主要是发现问题并找到解决方案。我们继续分析上个场景中LUN的丢失问题。
vCenter是一个应用程序。该环境的问题在于vCenter使用的数据库。所以在上个方案中,如果你将vCenter数据库和vCenter服务器分离,将它们分别装在不同的物理服务器上,或者部署在不同的ESXi host上(如果它们是装在虚拟机上的话),那么是不会导致服务中断6小时的。
表3-4列出了解决这些问题的方法。

390551d3bd0454a7dd95a354e9fce616f54bf0bd

服务器整合 使用虚拟基础设施的主要目的就是将众多物理服务器整合为运行在ESXi host上的虚拟机。而现在所做的却与其背道而驰。在合理规划的前提下,我们没有理由不去虚拟化所有负载。而且这也是VMware官方的最佳实践。
快照 假设要给vCenter服务器打补丁、安装插件,或者修改配置文件.cfg。使用虚拟机形式的vCenter的最大优势就是其内置的快照功能:在做变更前,可以截取虚拟机快照。如果发生明显错误,就可以使用变更前截取的快照将虚拟机恢复到原始状态。
便携性 如果需要,可以将虚拟机拷贝到容灾站点。如果想创建测试环境,也能很轻松地复制vCenter 服务器。vCenter崩溃时,还可以保留vCenter的冷备份,然后就可以用冷备份在VMware的 player、server、workstation或单机版的ESXi 服务器上运行虚拟机了(当然,根据冷备份的备份时间可能会存在一定程度的数据丢失)。
冗余 只要vCenter是安装在应用了高可用功能的集群中的,那么vCenter就自动具备了弹性应对硬件故障的能力。为了让vCenter具备和物理硬件相同级别的冗余,还需要一个Microsoft集群(该集群只能使用SQL数据库)。vCenter是个不支持集群的应用程序。很多第三方工具都能为其提供冗余能力,但这些工具费用都很高。
现在,有了vSphere Fault Tolerance(FT),就可以为vCenter提供更高级别的冗余了。目前,vSphere FT不支持vCPU,因此也不能为vCenter提供CPU冗余。vSphere FT对vCPU的支持会在后续版本实现。
对多vCPU容错的支持
在VMworld2011和VMworld 2012中,VMware都展示和讨论了支持vCPU的vSphere FT新版本的研发。但是,VMware(撰写本书时)并未明确指出这个版本的发布日期。
自产自用 当你不愿意把某个关键服务器放到虚拟基础设施中,你如何像虚拟化管理员对客户所承诺的那样对整个平台、它的能力和特性有足够的信心?众所周知,根据正确的规划部署虚拟环境,虚拟化产品就会像物理服务器一样运转,同时你还将得到巨大的额外收益。所以,如果相信虚拟化产品,就应该自己先使用它。

3.2.2 vCenter服务器部署在Windows上还是vCenter服务器设备上呢

这个问题时常见于管理设计问题中新增的一个问题。vSphere 5.0时,VMware推出了vCSA(vCenter Server virtual application),这是个基于Linux的虚拟化设备,是预安装在vCenter服务器上的。在引入vCSA之前,vCenter服务器的部署只有一个选择:安装在Windows上。现在,你需要做一个决策:选择基于Windows的还是vCSA的vCenter服务器?下面分别介绍支持二者的理由:
基于Windows的vCenter服务器
选择基于Windows的vCenter服务器的理由如下:
已知的恶魔/明枪 很多客户都会选择在Windows上部署vCenter服务器,原因很简单:它是个已知的恶魔/明枪。基于Windows的vCenter服务器这个方案的使用时间是最长的,因此人们对它已经很熟悉且更愿意采用这个方案。虽然这个推理有些武断,但是需要提醒你的是:设计时,要时刻考虑类似这样的运维问题。采用一个员工已经熟悉的部署方案对你的vSphere环境来说很可能是最佳选择。
支持Linked模式 如果vCenter 服务器需要支持Linked模式的实例,那么基于Windows的vCenter 服务器就是唯一的选择。真的是唯一的,因为基于vCSA的版本不支持Linked模式。
对Windows服务器的强大的运维支持 如果你的环境有对Windows服务器的强大的运维支持(即已有可靠的补丁方案、良好的监控和管理方式及具有前瞻性的Windows管理团队),那么部署基于Windows的vCenter 服务器要比引入基于Linux的虚拟设备(可能还未与现有的运维支持系统集成)更有意义。
vCenter服务器虚拟设备
既然我们已经讨论了部署基于Windows的vCenter服务器的原因,那么部署vCenter服务器虚拟设备(vCSA)的原因有哪些呢?可能原因如下:
vCSA不是Windows 对某些环境来说,光是这一个原因就足以支持部署vCSA了。可能整个环境以Linux和Unix为主,因此缺乏Windows的运维支持系统。也可能管理员更习惯管理和维护基于Linux的系统。还有可能组织自身反对使用Windows。vCSA不需要按月打补丁(虽然这并不意味着永远不需要打补丁),也不需要Windows授权许可。不管是哪个原因,选用基于Linux的虚拟设备都是说得通的。
简化部署 在较小的环境或组织中,vCSA的易部署性是很有吸引力的。部署vCSA只需要简单的安装OVF包(Open Virtualization Format),然后配置vApp,再使用Web管理工具即可。

3.2.3 使用本地还是远程数据库服务器

这是个没完没了的讨论话题:数据库装在哪呢?装在本地vCenter服务器上还是远程服务器上。下面将介绍这两个可选项背后的工作原理。
本地
使用本地数据库意味着把数据库和vCenter装在同一个操作系统上。把所有组件都装在同一个服务器上有一些好处:
绑定数据库 基于Windows的vCenter服务器中,Microsoft SQL Express和vCenter是捆绑安装的。数据库软件不需要额外费用,但是它并不适用于大型企业环境。而在vCSA中,你可以使用绑定的DB2(vSphere 5.0中)或PostgreSQL(vSphere 5.1中),这也同样适用于小型环境或测试环境。
数据库完全安装 假设你用的是基于Windows的vCenter服务器,那么你可以在vCenter服务器上进行数据库完全安装(Oracle或Microsoft SQL)。它提供了适用于生产环境的企业级功能。 而在vCSA上,是不能安装数据库完整版的。
快速访问数据库 大多数情况下,将数据放在本地会比远程存储然后通过网络访问要快得多。访问本地数据库不需要穿越网络线路,也不会受制于网络拥塞。
一体机 将数据库和vCenter安装在一起,可以清楚地知道系统的弱点位置,而不用担心网络上的应用程序会滥用共享数据库服务器(Oracle、SQL或DB2)的资源。
备份与恢复 一个可靠备份的基础设施的成本自然不会低。将所有组件都安装在同一个服务器上免去了多个服务器备份的麻烦,而且不用考虑去跟踪各部分基础设施位于企业的什么地方。
远程
与本地数据库相对照,我们再讨论下远程数据库:将vCenter安装在一个服务器上,然后连接到位于另一个服务器的数据库上。选择远程数据库的原因如下:
集中数据库服务器 如果组织中已经有了一个集中存放数据库的地方,那么你就不应该再为每个应用添加额外的服务器。DBA(数据库管理员)是不会喜欢分散数据库的。
部署vCSA 如果你已经部署了vCSA,但绑定数据库的能力略显不足。这时就需要在一个单独的服务器上运行数据库。
分离数据库和应用程序的职责 这也是个最佳实践。服务器都有特定的角色,而且这些角色都应该应用在独立的硬件服务器上。vCenter软件和VUM软件可以安装在同一个服务器上,而这些软件依赖的数据库应该安装在另一个服务器上。这保证了一个服务器的数据丢失不用导致长时间的服务中断。在合适的场景下,这种职责分离还可以为管理层提供更强的扩展能力。
共同策略(分解DBA团队)  组织内已有固定的数据库管理员。大多数情况下,他们更了解数据库性能、优化和故障排查。所以,将数据库安装在中央服务器上并由数据库管理员维护会比自己维护更好。虚拟化基础设施管理员(Virtualization Infrastructure Admin,VIAdmin)通常会很忙,仅虚拟环境本身就有很多工作,所以没有时间或资源去学习管理和维护数据库的知识。
vCenter服务器所需资源更少 如果把应用程序和数据库安装在同一个服务器上,那么这个vCenter服务器所需资源就比较多(硬件配置要求高),具体参见下一节“从资源角度看本地和远程”。
为数据库提供集群服务(冗余) SQL和Oracle可以是集群的。这样数据库发生故障时能提供恢复能力。如果将数据库与vCenter安装在同一个服务器上,那么则无法实现这一点。
从资源角度看本地和远程
主要的数据库供应商(微软、Oracle和IBM)都为各自的数据库服务器最佳性能的实现提供了推荐的资源配置。例如,微软为SQL Server推荐的最小内存配置是1GB,而最佳性能的内存配置是4GB。此外,考虑到vCenter服务、Web服务和插件所需资源,还需要为vCenter主机额外增加2~4GB的内存。在企业环境中很可能有适当配置的数据库服务器可以用来部署vCenter数据库且不会引起重大问题。
下文中包含了SQL Server 2012的详细推荐配置:
http://msdn.microsoft.com/en-us/library/ms143506.aspx
根据此文所述,SQL Server 2012至少需要1GB内存和1.4GHz的CPU。但是,更现实一点,推荐配置如下:
1个 CPU,2.0 GHz 或以上。
4 GB内存。
考虑到这个推荐配置,如果要将vCenter和数据库安装在同一个主机上,大概需要8GB内存和至少4个CPU(四核的物理主机或配置了4个vCPU的虚拟机)。本章后半部分内容将介绍如何调整配置,以及根据要管理的虚拟化环境规模的不同,vCenter需要配置多少资源。
从冗余角度看本地和远程
本章后面会详细讨论这个问题。总之,为一个数据库建立集群是没有什么意义的。通过建立集权来保护数据库,通常是为了同时保护多个数据库。因此将数据库安装在本地是没有用的。

3.2.4 vCenter服务器上安装什么操作系统

可能你觉得这个并不是什么问题,但它确实是设计时应该考虑的。vCenter是一个服务器,应该安装在服务器版的操作系统上,但是具体是哪个服务器操作系统呢?
从vSphere 4.1开始,基于Windows的vCenter 服务器所需操作系统是64位的Windows Server。这和微软的操作系统策略(Windows 2008 R2以及后续发布的操作系统都将只有64位的)是一致的。假设必须使用64位的Windows server,那么具体是哪个版本已经无所谓了,因为不管是64位的Windows Server 2008标准版还是Windows Server 2008 R2都支持最大32GB的内存寻址(而32位的Windows Server2008 标准版的最大寻址范围是4GB,因此不适合vCenter服务器)。

综上所述,可见选择在基于Windows的vCenter服务器上安装Windows Server 2008 R2标准版是很有道理的。
如果已经选择使用vCSA来部署vCenter服务器,那么就不需要考虑这个问题了,因为vCSA已经预安装了Linux操作系统。撰写本书时,vCenter是无法安装在普通Linux操作系统上的。
管理层设计还有很多潜在的问题需要考虑,但限于时间(和页数),我们不再一一讨论,下面继续讨论管理层设计。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接