《VMware vSphere设计(原书第2版)》——1.4 设计流程

1.4 设计流程

既然已经讨论了设计的三个层面和5个基本原则,那么是时候介绍设计流程了。本节将介绍如何进行VMware vSphere设计,其中要完成哪些任务,以及要完成这些任务需要使用什么工具。
我们在前面提到过,vSphere设计最重要的就是功能需求。那么从功能需求开始介绍设计流程。

1.4.1 收集并定义功能需求

功能需求是vSphere设计的基础和驱动力。大多数设计决策都是基于或者受制于功能需求的,因此在收集和定义功能需求阶段,应该尽可能实现功能需求的全面性和完整性。
很多时候,有些功能需求是不需要收集的。例如,组织准备应用VMware vSphere来达到整合的目的,功能需求可能已经描述得很清楚,比如:用虚拟化环境实现整合后,其承载能力应相当于250台物理服务器。这样就不需要再定义这个需求了(但是,在设计中实现这个功能需求还是要花些心思的)。
根据我们的经验,有现成功能需求的情况并不常见。所以,我们不得不自己收集并定义功能需求。收集功能需求主要有两种方式:
阅读文档。
采访。
 你可以这么认为:VMware定义的通过采访来收集信息的方式是一种咨询性方法。
阅读文档
有时候,实施VMware vSphere的客户或单位有概述功能需求的文档。虚拟化的实施是为了实现一个目标(去“做什么”),这个文档就记录了组织大概想要实现什么。例如,实施虚拟化是其桌面虚拟化目标的一部分,这样VMware vSphere环境的一些功能需求就可以直接从为桌面虚拟化项目准备的文档中得到。如果桌面虚拟化文档中有规定:在host故障的时候,VMware vSphere环境可以自动重启桌面虚拟机,那么这就相当于给你提了个醒:你的vSphere环境需要使用vSphere HA来满足这个需求。而且,因为使用vSphere HA,就必然会用到集群,这就意味着还需要冗余管理,而冗余管理又影响到了网络设计…如此,牵一发而动全身。
再举个例子,假设组织要将现有的数据中心迁移到一个新的数据中心,并已经在文档中列出了需要迁移的应用。你可以通过这个文档了解各个应用都有什么要求,然后制定必要的功能需求来实现这些要求。文档中很可能还指出了I/O profile主要是写而不是读,而且应用还需要每秒钟维持一定数量的事务处理(Transactions Per Second,TPS)。将这个信息转化为存储需求就是RAID级别,阵列类型,存储协议和每秒进行读写的操作次数(I/O Operations Per Second,IOPS)。
虽然阅读文档对挖掘需求很有帮助,但是不可能在文档中得到所有信息。如果这个单位和其他单位一样,文档稀少且不完整。那么,就需要直接通过这个单位的人来收集需求信息。
采访
收集信息以了解功能需求的第二个主要方法就是:采访要实施VMware vSphere的单位或组织中的人。
一般而言,除非你已经从别人那里得到了想要的信息(即使得到了,也有可能需要进行采访来确保没有遗漏什么信息),你就得采访组织的以下人群:
桌面支持人员。
服务器管理员。
网络管理员。
存储管理员。
安全经理。
符合性/法务人员。
应用所有人。
业务主管。
项目经理或项目负责人/所有人。
执行/管理负责人。
架构师。
并不是所有情况下,都得采访上述所有人。有选择性地采访,能覆盖到每类人员即可。
这些人可以提供给你很多信息:当前环境支持什么应用、这些应用的需求、当前遵循的服务级别协议、数据中心中不同应用或服务间的相互依赖关系、项目计划或针对未来趋势的计划、复合型或法规要求、业务级别的需求、财务目标、运维层面和工作流,以及其他一些可以用来挖掘出功能需求的信息。

1.4.2 评估环境

收集完足够用来挖掘需求的信息后,就该评估下当前的环境了。评估环境的目的如下:
某些情况下,评估结果可以用来验证或澄清需求定义阶段收集的信息。人毕竟是人,总会犯错误或者遗漏信息。通过对环境进行评估,你可以验证别人告诉你当前在使用的应用的确存在。
评估还为技术层面的设计提供了必要的信息。它能够发现现有环境中服务器的类型和配置、当前的网络配置,以及存储配置。这些信息对创建一个能与当前结构紧密结合的新结构是至关重要的。如果现在使用iSCSI,要部署光纤,就会产生互操作难题。通过评估来彻底了解当前环境有助于合理裁剪vSphere设计的技术层面。
要评估环境,可供选择的工具有很多。如果组织内已经具备足够健壮的管理系统,那么你可以从中得到需要的目录、配置和性能信息。如果没有相应的管理系统,那么你就得分析整个环境,从如下资源中挖掘出想要的信息:
活动目录。
LDAP目录。
网络管理工具。
企业范围的日志解决方案。
IP寻址文档。
网络设备配置。
服务器性能数据。
服务器配置数据。
不难想象,只要是在稍微大一点的环境里,想通过手动收集数据来评估环境是相当耗时的,而且还容易出错。幸运的是,为了节省时间避免丢失关键数据,VMware以及其他虚拟化产品/解决方案供应商都会提供评估工具用来自动收集信息。甚至虚拟化社区也会提供脚本或其他工具来收集物理环境和虚拟环境的信息。
来自虚拟化供应商或社区会员的一些自动化工具如下:
VMware Capacity Planner。
来自社区会员的各种健康检查脚本。
NetIQ PlateSpin Recon (也就是以前的 Novell PlateSpin PowerRecon)。
CiRBA。
在第10章中介绍一些工具,因为容量规划会涉及一些虚拟化之前的评估工作。这些自动化工具还可以用来在准备结束vSphere设计时,评估当前虚拟化环境。
现在,已经了解了一些功能需求、用于定义其他功能需求的必要信息,以及现有环境状况。但是,在准备开始设计前,最好还是先进行差异性分析。

1.4.3 差异性分析

并不是所有的vSphere设计都是gree field implementation(即在一个从未部署过vSphere的环境中搭建全新的vSphere虚拟化环境)。当已经部署了VMware vSphere组织,想要升级或扩展现有环境,或者要迁移到新环境中时,你就需要执行差异性分析。
差异性分析是一个过程,在这个过程中我们对比环境当前状态和未来的期望状态,进而分析得出为了实现期望状态我们需要做什么。很可能当前环境并不支持相应的可扩展性。通过差异性分析就可以知道设计中的那些部分制约了其增长,并找到消除这些制约因素(至少改善其可扩展性)的方向。
一旦明确了功能需求、获得了当前环境的信息,以及执行了差异性分析(必要时),你就可以开始组合vSphere设计了。

1.4.4 组合设计

组合vSphere设计是初始过程,如图1-3所示。组合设计时,你要在每个设计层面做出各种决策。这些决策分别解答什么/谁/如何的问题,而且都是基于功能需求的(直接获取或通过设计的5个基本原则AMPRS定义的)。每个决策都有级联效应,会影响到一系列决策(称为下游决策),如图1-8所示。
每做一个决策,都要检查由此决策引出的所有下游决策的决策结果,以确保满足所有功能需求。如果满足则继续;如果不满足,就得改变决策或者不得不违背一个或多个功能需求。

违背功能需求也许是必要的
有时候,组织会有些不现实的需求。这样,偶尔违背一个功能需求也是必要的,只要有充分的理由并能提供补救措施。是坚持原有的需求,还是接受违背了某个功能需求的设计,这都取决于组织。
组合设计时,还要为VMware vSphere环境定义标准和最佳实践:
标准 好的设计会为host名称、网络配置、存储布局、资源分配和虚拟机配置等定义标准。标准之所以重要是因为它降低了复杂度。复杂度降低了,运维也就简化了,成本也跟着降低。如果没有标准,要想高效运维是十分困难的,而低效恰恰是导致VMware vSphere环境失败的致命因素。
最佳实践 好的设计还会定义并强化执行最佳实践,这些最佳实践都是与组织需要和功能需求相吻合的。“最佳时间”并不单单指供应商在如何部署其产品方面给我们的建议,它还可以是组织应该遵守的运维流程。例如,一个最佳实践指出所有基于Windows的虚拟机的文件系统必须和虚拟硬盘的文件系统对齐。的确,这是VMware的推荐做法,但同时它也是一个好的设计应该遵循的运维实践,这样能确保环境高效且运行稳定。好的设计还会包括一些与实施相关的内容,例如,新虚拟机的机构、新数据存储的配置等。
不要盲目遵从最佳实践
谈及供应商的最佳实践时,不要盲目地马上执行。请首先检验这个时间并试图去理解其背后的原因。如果存储供应商说最好采用某个多路径策略,那么仔细研究下为什么它会推荐这个多路径策略呢?如果服务器供应商把特定的BIOS设置作为最佳实践,那么想想为什么要这么设置。这样你就能够更加深刻透彻地理解虚拟化环境,同时也为制定实施相关的最佳实践做了更充分的准备。
组合设计是个很细致、很耗时的工作。后面的大部分章节都将专注于特定的技术领域以及做VMware vSphere设计时需要做的决策。

1.4.5 文档化设计

设计组合完毕后,也就是说已经做好了每个技术层面的决策,并且将决策结果(以及下游决策结果)和功能需求进行对照,以确保满足功能需求。接下来就可以开始文档化设计了。
设计流程的这个环节可能会和组合设计环节同时进行,而且大部分都是直接记录。你需要确保文档阐述了设计的每个层面。很多时候,IT专家们会忘记组织和运维层面,但是这两个层面和技术层面是同样重要的,在设计资料中应该对三者给予同样的重视。
特别要注意的是,设计资料中至少要包含如下文档:
功能需求描述,包括直接提供的和自己定义的。
技术层面决策的完整描述,解决关于“什么”的问题。
组织层面决策的完整描述,解决关于“谁”的问题。
运维层面决策的完整描述,解决关于“如何”的问题。
构造文档(也叫蓝图),描述构建设计时涉及的细节。
测试计划,描述如何验证该设计是否满足功能需求。
概述性的架构设计文档,将众多元素组织在一起,介绍设计的整个过程。

1.4.6 实施

设计完成且被组织认可后,就可以着手实施了。这样就有机会根据自己的文档来构建虚拟化环境。
如果不是亲自实施,就需要交给其他人来做。这就是为什么设计文档一定要足够详细且完整的原因。当别人实施你的设计时,他不可能知道你设计时脑子里想的是什么。所以,请确保在设计文档中提供尽可能多的信息,让实施过程能够简单顺利地进行。

时间: 2024-09-19 09:31:19

《VMware vSphere设计(原书第2版)》——1.4 设计流程的相关文章

《面向对象的思考过程(原书第4版)》一2.2 使用抽象思维设计接口

本节书摘来自华章出版社<面向对象的思考过程(原书第4版)>一书中的第2章,第2.2节,[美] 马特·魏斯费尔德(Matt Weisfeld) 著黄博文 译更多章节内容可以访问"华章计算机"公众号查看. 2.2 使用抽象思维设计接口 面向对象编程的主要优势之一是可以重用类.通常可以重用的类比具体的类的接口更加抽象.具体的接口可以是非常明确的,而抽象接口则更通用.简单来说,高层次的抽象接口比高度具体的接口更有用,大部分情况下如此,当然并非适用于所有情况.完全可以编写一个非常有用

Java核心技术 卷Ⅰ 基础知识(原书第10版)

Java核心技术系列 Java核心技术 卷Ⅰ 基础知识 (原书第10版) Core Java Volume I-Fundamentals (10th Edition) [美] 凯S.霍斯特曼(Cay S. Horstmann) 著 周立新 陈 波 叶乃文 邝劲筠 杜永萍 译 图书在版编目(CIP)数据 Java核心技术 卷Ⅰ 基础知识(原书第10版) / (美)凯S. 霍斯特曼(Cay S. Horstmann)著:周立新等译. -北京:机械工业出版社,2016.8 (Java核心技术系列) 书

ROS机器人程序设计(原书第2版).

机器人设计与制作系列 ROS机器人程序设计 (原书第2版) Learning ROS for Robotics Programming,Second Edition 恩里克·费尔南德斯(Enrique Fernández) 路易斯·桑切斯·克雷斯波(Luis Sánchez Crespo) 阿尼尔·马哈塔尼(Anil Mahtani) 亚伦·马丁内斯(Aaron Martinez) 著 刘锦涛 张瑞雷 等译 图书在版编目(CIP)数据 ROS机器人程序设计(原书第2版) / (西)恩里克·费尔南

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一导读

前 言 致读者 本书是按照Java SE 8完全更新后的<Java核心技术 卷Ⅱ 高级特性(原书第10版)>.卷Ⅰ主要介绍了Java语言的一些关键特性:而本卷主要介绍编程人员进行专业软件开发时需要了解的高级主题.因此,与本书卷Ⅰ和之前的版本一样,我们仍将本书定位于用Java技术进行实际项目开发的编程人员. 编写任何一本书籍都难免会有一些错误或不准确的地方.我们非常乐意听到读者的意见.当然,我们更希望对本书问题的报告只听到一次.为此,我们创建了一个FAQ.bug修正以及应急方案的网站http:/

《Unity着色器和屏幕特效开发秘笈(原书第2版)》一2.7 创建透明材质

本节书摘来自华章出版社<Unity着色器和屏幕特效开发秘笈(原书第2版)>一书中的第2章,第2.7节,作者 [英]艾伦朱科尼(Alan Zucconi) [美]肯尼斯拉默斯(Kenneth Lammers),更多章节内容可以访问"华章计算机"公众号查看 2.7 创建透明材质 到现在为止,我们见到的着色器都有一个共同点-都用在实心材质上.如果你想提升游戏视觉效果,某些时候透明材质是个不错的选择,比如火焰效果或者窗户玻璃等.透明材质的制作相对复杂一点.在渲染实心物体之前,Uni

《面向对象的思考过程(原书第4版)》一1.1 基本概念

本节书摘来自华章出版社<面向对象的思考过程(原书第4版)>一书中的第1章,第1.1节,[美] 马特·魏斯费尔德(Matt Weisfeld) 著 1.1 基本概念 本书主要目标是让你学会思考如何将面向对象概念应用于面向对象的系统设计中.历史上定义面向对象的语言拥有以下特点:封装(encapsulation).继承(inheritance)和多态(polymorphism).因此,如果设计一门语言时没有完全实现以上特性,那么通常我们认为该语言不是完全面向对象的.即使实现了这三点,我也往往会加入组

《用户至上:用户研究方法与实践(原书第2版)》一1.1 什么是用户体验

本节书摘来自华章出版社<用户至上:用户研究方法与实践(原书第2版)>一书中的第1章,第1.1节,作者 Understanding Your Users: A Practical Guide to User Research Methods, Second Edition凯茜·巴克斯特(Kathy Baxter)[美]凯瑟琳·卡里奇(Catherine Courage) 凯莉·凯恩(Kelly Caine)更多章节内容可以访问"华章计算机"公众号查看. 第1章 用户体验入门

《面向对象的思考过程(原书第4版)》一3.5 多重继承

本节书摘来自华章出版社<面向对象的思考过程(原书第4版)>一书中的第3章,第3.5节,[美] 马特·魏斯费尔德(Matt Weisfeld) 著黄博文 译更多章节内容可以访问"华章计算机"公众号查看. 3.5 多重继承 第7章会讲述有关继承的更多细节.然而,这里很适合讨论多重继承.多重继承是类设计中最强大也最具挑战的一个方面. 顾名思义,多重继承允许一个类继承自多个类.实际看起来这是个好主意.对象都应该模拟现实世界,不是吗?现实世界中存在很多多重继承的例子.父母是多重继承的

《Unity着色器和屏幕特效开发秘笈(原书第2版)》一1.3 从Unity 4向Unity 5迁移

本节书摘来自华章出版社<Unity着色器和屏幕特效开发秘笈(原书第2版)>一书中的第1章,第1.3节,作者 [英]艾伦朱科尼(Alan Zucconi) [美]肯尼斯拉默斯(Kenneth Lammers),更多章节内容可以访问"华章计算机"公众号查看 1.3 从Unity 4向Unity 5迁移 不可否认,电子游戏中的图像技术在过去的10年中发生了翻天覆地的变化.每一个包含前沿技术的新游戏的面世,带给我们的都是无与伦比的实时超现实体验.同样,在Unity中着色器及其相关技

《面向对象的思考过程(原书第4版)》一 第3章 高级的面向对象概念

本节书摘来自华章出版社<面向对象的思考过程(原书第4版)>一书中的第3章,第3.1节,[美] 马特·魏斯费尔德(Matt Weisfeld) 著黄博文 译更多章节内容可以访问"华章计算机"公众号查看. 第3章 高级的面向对象概念 第1章和第2章讲述了面向对象的基本概念.在开始学习关于构建面向对象系统的一些具体设计问题之前,我们需要更进一步了解面向对象的一些概念,比如构造函数.操作符重载以及多重继承.我们也会讲述错误处理技术以及面向对象的设计中作用域的重要性.其中一些概念可能