NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

超越整合:使用 VMware 搭建更好的开发环境

  • 2009-04-29
  • 本文字数:3780 字

    阅读完需:约 12 分钟

Mak King 的这篇文章描述了服务器整合之外的高级虚拟化应用,证实了虚拟化背后的技术和好处不仅仅局限于老生常谈的服务器整合。此外(绝对不是凑热闹),Mark 的文章描述的方法显然是“绿色计算”。

如果你在实现这个或者类似的开发环境时需要 Mark 的建议或者帮助,请联系 info@ShiftMETHOD.com

引言

近年在 IT 界工作的人肯定对虚拟化多少都有些了解。业界诸多关于虚拟技术多么无可比拟的宣传,让人开始不耐烦起来。众多粉丝甚至将其追捧为 IT 界过去十几年里的至宝。可以肯定,虚拟技术的应用节省了设备,节省了资金,基本上实现了它众所周知的功能。然而,虚拟技术的应用难道仅此而已? 实现虚拟化以后究竟能得到怎样的好处?直到我所在的 NYCE Payments Network,LCC——Metavante 子公司——的开发部门实现虚拟化时,我才真正体会到虚拟在现实开发中的意义。我们开发的电子付费网络连接了国内 8900 多万银行卡、200 多万台 ATM 机和出售点,消费者因此可以在任何时候任何地点安全、实时地访问自己的帐户。因此,系统的可用时间、依赖性和扩展性都是我们在实施基础构架时必须考虑的核心问题。

作者背景

在 IT 界工作的 12 年里,我觉得自己在应用新技术解决业务问题方面有相当丰富的经验。当然,一直尽量采用最新的技术来开发充满了挑战,应用虚拟化也不例外。尽管 NYCE 在 2001 年就安装了虚拟系统,但我个人在虚拟技术方面的经验仍然局限于在自己电脑上尝试安装几个不同的 Linux 系统,直到去年的一个目录服务整合项目,我才开始采用 VMWare ESX 结合本地存储介质(基本上是以一个服务器和大量硬盘为基础提供 VM 存储,而不采用 SAN)把 3 个陈旧的物理服务器整合到单个硬件设备上。这样的手法实在好极了!不仅节省了大量磁盘空间,还摆脱了旧设备,也不再需要很多数据线连接各个设备。在整合项目中采用 VMware,证明了虚拟机在小范围内的高效。

项目概述

在目录服务整合项目之后,我把注意转移到了下一个 VMware 实现上——开发。

在开发环境中工作或者支持开发环境的工作都有很多挑战,这些挑战在产品数据中心很少遇到。首先,一起工作的都是一些对技术了如指掌的技术人员,所以如果环境上有什么不对劲,那就是真的不对劲了,不是什么小事。其次,开发中会修改很多地方,这些修改都应当对项目起推动作用。我工作的大部分内容就是支持开发人员,满足他们的开发环境的需求,包括维护研发实验室、一些产品设备和 LAN。实验室当然是最难维护的一个。其中涉及到包括从 PC 类设备到 workstation,再到连接了大量硬件的服务器等各种设备。这些设备都有不同的内存大小,处理能力及磁盘空间,还各自有各自的可避免电源功率波动的 UPS。除此之外,它们所连接的硬件也都各不相同,驱动器兼容性的先后次序问题、BIOS 升级问题,还有对应用兼容性提供支持的要求更是增加了保证开发环境的一致、可依赖和易管理的难度。另外,每次测试某个特定应用,我们往往会被要求采办新硬件(当然这些硬件往往跟什么都不匹配),或者是增补已有设备,但升级 BIOS 来支持新 OS 使得这些举措非常麻烦。

将一个原本建立在独立服务器设备基础上的实验室重新设计为采用 VMware Infrastructure 和 SAN 的构架,这要求一个完全不同的思维方式。转移到这个新构架上来可以避免独立服务器的各种限制。实验室因此成为一个联合资源池,我们可以动态使用这些资源,可以通过对资源池定义一系列的规则来重新按需部署资源和大量设备。高度访问性和分布式资源调度器贯彻于整个设计过程,而不是单独的、空头支票似的特性。这样的解决方案学起来都相当容易!事实证明,前面提到的顾虑仍然阻碍了很多虚拟服务器的部署(我最近看到一个名为高级虚拟管理的视频,作者是 VP and Service Director Data Center Strategies,Burton Group 的 Richard Jones,他在这个视频中说虚拟服务器的实现,在环境中部署了高度访问性的案例不到 10%)。大部分实现都局限于服务器整合,往往是一个物理服务器对应移植到一个虚拟服务器,在同一台机器上寄宿多个虚拟服务器。这样做无疑可以清理数据中心的老机器,但同时又引进了一个单点失败的隐患,一旦宿主机器当掉,会丢失所有虚拟服务器数据。

VMware 的部署

在开启三个 VMware 主机服务器(预载 ESX3.5)、SAN,插上 fiber cable 之后,我们就可以开始部署了。安装、配置设备很直接,这中间我只用了一个 APC Symmetra 中央处理器。我发现 fiber cable 比 CAT 5 线缆麻烦。设备运行起来以后,就可以开始配置环境了。

虚拟设施客户(Virtual Infrastructure Client - VIC)用来管理、配置 VM 环境。在安静明亮的小隔间里,用我台式机上的客户端工作,比起之前要在嗡嗡作响的实验室里呆上很多天来要舒适得多。可能你不相信,在嘈杂的实验室里最好的耳机也只能过滤掉风扇的噪声。VIC 非常直观,能够构建集群、模板、服务器、虚拟交换机以及 HA、DRS 参数的配置。我在桌面上保留了几个 VIC 的快捷图标。我倾向于把 3 个 VMware 主机配置到同一个集群里,把所有资源放到根资源池中,而不是由应用或其它准则来分配。整个设施构架修改起来很轻松,不费吹灰之力。这样一来,我们可以随意尝试多种配置,直到找到最适合的为止。一旦确定新环境配置,就该动手把物理服务器移植到虚拟服务器上。我在更新现有环境的过程中结合了 Converter(P2V)和服务器模板。当然,在移植到虚拟环境之前,我对所有机器都做了备份,总共占了满满一磁带,以防万一。这只是一些小绊脚石,尤其是在 Windows 2000 Server 设备上使用 Converter,但这些都不难处理。有时候还需要从头创建全新的 VM,然后复制数据和应用,虽然有点麻烦,但好处是可以在创建和复制过程中清理服务器上的内容。

系统构架的进化

在实现 VMware 之前,我们研发实验室的部分构架如下图所示。显然,用来连接所有设备的线缆就需要很多管理,很多 workstation 也没有足够的存储介质。

我们在某些部分安装了 VMware、把物理服务器转换到虚拟服务器(P2V),又在某些情况下用 VM 来替代物理服务器,之后,实验室现有构架如下图所示。

现在实验室有了更多的冗余能力,配置了高可用性,每个服务器的资源都不再是硬性绑定到物理硬件资源上。通过将三个主机服务器的资源组成池,虚拟机可以动态更新各自所需资源。另外,由于通过远程客户端来访问虚拟机,我甚至可以同时开着 4 个 LCD 显示屏监控。总体上,这一实现将实验室设备削减了 85%。实验室也没有以前那么热,都不需要开什么空调。

高度可行性测试

在集群配置了高可用性之后,让我们来好看看它是不是真有传闻说的那么好。

整个环境中,一个集群下有 3 个主机(A、B、C),运行有 12 个 VM。有 11 个 VM 通过 VMotion 迁移到了主机 B 和 C, 而主机 A 上单运行一个 Windows 2003 Server。然后我做了件通常情况下极为糟糕的事情 —— 拔掉主机 A 的电源。按计划,VMotion HA 应该可以检测到主机 A 当机了,然后在其它运行的主机上重启受影响的 VM。这究竟行不行呢?事实证明,两分钟后,主机 A 上的 VM 在主机 B 上重启运行了。接着,我重复了实验,在主机 A 上运行 Windows 2000 Server。结果也一样,不到两分钟的时间,VM 就在另一个主机上重启了。在确认了 HA 的这个功能之后,我才把主机 A 的电源重新插上,恢复集群原先的冗余,再通过 VMotion 把 VM 恢复到早先的主机上。测试结果更加巩固了我在开发环境中采用 VMware 的信心。

优点

实验室安装运行 VMware 已经有几个月了,VMware 的优点逐渐明显起来。以下是比较明显的几点:

  1. 实验室更容易管理。原先 13 台各不相同的机器,现在只要 3 台同样的机器,更为简单。KVMs、LCDs、小型中央处理器以及连接这些设备的线缆都不再需要,因此实验室空间得以节省了 85%。
  2. 增加了灵活度。比如,通过调节分配到 VM 上的资源数,我们可以决定特定的数据库查询所需要的最恰当的资源(包括 RAM 和处理器的数目)数量;我们还能重复测试任务,直到到达收益递减的转折点。在物理硬件上做这些简直就是噩梦,又耗硬件资源又花时间。
  3. 提高了网络吞吐量。之前,每个设备的网络吞吐量都局限于它的 nic 端口数——大部分情况都只有一个端口。现在,每个 ESX 主机都有好几个 nic,有多个端口,这些都将带宽扩大了两倍,而且在 nic 失败的情况下都能提供足够的带宽。这样的配置,还节省了我很多备份的时间。
  4. HA、DRS 和 VMotion 的使用极大地提高了冗余性和系统可用时间。

现状

NYCE 的开发环境现在已经迁移到 VMware,我很高兴,因为这个开发环境很灵活。我们可以很快部署资源服务器,本来需要好几个星期,现在就几分钟就能搞定。VMotion 配合 HA 和 DRS 的使用,在保证环境全天候运行的前提下提高了可用时间和可信度。商务方面对此也很高兴,因为这一方案削减了现场维护和支持开销,从原先多台机器的使用减少到目前的三台。总之,这对我来说是个非常积极、有益的经验。我很期待在公司其他环境下使用 VMware。

作者简介

Mak King 是 NYCE Payments Network,LLC 的高级商业系统工程师,他期待着你的评价。他的 Email 地址是:akamak at gmail dot com。

申明

本文中的信息、观点仅属于作者,不代表 NYCE Payments Network,LLC 公司的研发、观点。该公司对本文内容不承担任何责任,作者对本文负全责。


给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

2009-04-29 00:318121
用户头像

发布了 71 篇内容, 共 19.3 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

常见Http响应码

风翱

3月日更 http响应码

比特币:21世纪的终极离岸银行

CECBC

比特币

使用组件的细节点

小小

第七次作业

秦挺

Service Mesh框架选型对比分析:Linkerd、Envoy、Istio、Conduit

xcbeyond

Service Mesh 服务网格 3月日更

百度AI人才培养课程0元报名倒计时

百度大脑

百度 AI 飞桨

2021最新整理Java面试合集(1000道附答案解析)

比伯

Java 编程 架构 面试 程序人生

寻找被遗忘的勇气(二十五)

Changing Lin

3月日更

Java后端开发面试题之MySQL上篇(含答案)

北游学Java

Java MySQL 面试

JVM疑难情况分析

秋天

jvm调优

区块链重新定义支付结算,让行业更便捷高效

CECBC

移动支付

你不知道的 Proxy

阿宝哥

JavaScript Proxy web api

搭建博客可能会用到的 Git 命令|学习笔记

彭宏豪95

学习 极客时间 笔记

Redis - 替换策略:LRU和LFU

insight

redis 3月日更

「 视频云大赛 — 大咖驾到 」驱动下一代技术浪潮,我们更专注价值落地

阿里云视频云

阿里云 音视频 视频处理

简单粗暴实现深色模式

小小

深色模式

盘点数字人民币试点地区 哪里既可申请开通又能领红包?

CECBC

数字人民币

为智能世界“高”歌:HEIGHT,五种风景,一个答案

脑极体

Wireshark数据包分析学习笔记Day22

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

发展数字经济要因地制宜

CECBC

数字经济

大咖云集!阿里达摩院领航大数据 + AI向量检索专场Meetup回顾(内含讲师PPT领取)

Proxima 技术社区

人工智能 大数据 阿里巴巴 搜索 向量检索

vue+typescript实现组件封装之button篇

小小

typescript Vue

9种常用便捷的Java异常处理方法,帮你脱身繁琐

北游学Java

Java 异常 异常检测 异常处理

管理者如何应对员工离职

石云升

离职 28天写作 职场经验 管理经验 3月日更

作为后端开发人员应该懂的TCP、HTTP、Socket、Socket连接池,一文详解丨Linux后端开发

Linux服务器开发

TCP 后端 socket HTTP Linux服务器开发

架构师训练营第一课学习笔记

杰语

Python OpenCV 图像缩放 cv2.resize 方法

梦想橡皮擦

3月日更

Hystrix 实战经验分享

vivo互联网技术

Java 服务器 熔断 Hystrix

rmtc交易所系统开发平台丨rmtc交易所源码设计

系统开发咨询1357O98O718

坚持输出文字

lenka

3月日更

APICloud多端开发 | 在线教育App模板源码讲解

YonBuilder低代码开发平台

软件开发 在线教育 移动开发 APP开发 APICloud

超越整合:使用VMware搭建更好的开发环境_架构_Mak King_InfoQ精选文章