您是否对于不得不将 IBM Lotus Domino 系统被迫适应基础设施而感到厌烦?使用最新版本的 64 位 Lotus Domino on Linux® 和虚拟化技术,现在可以在单个物理基础设施内为 Lotus Domino on Linux 实现大型企业环境。本文将描述一些已完成的基准测试,以及该解决方案的早期采纳者的采用效果,展示了基础设施如何适应 Lotus Domino 并一同扩展。
虚拟化目前是计算机界的一个热门词汇。和任何流行词一样,应该谨慎看待它。虚拟化虽然有其优点,但任何新的技术都可能伴随着固有的缺陷。本文演示在一个有 Linux guest 的虚拟环境(VM)中实现 Lotus Domino,并且在生产环境中取得高度的可伸缩性。我们将讨论最新的基准测试结果和现实生产中的例子,证明 Lotus Domino 在虚拟 Linux 环境中有高度的可伸缩性。另外,本文还展示一个最新基准测试的结果,在该基准测试中,可以在一个运行在 VM 下的 Linux 内核中达到 102 K Lotus Domino NRPC 邮件基准测试用户。
我们还讨论当今市场上一些不同的虚拟环境的功能,以及它们可以为 Lotus Domino 带来的优点。通过利用这些新的功能,可以重新设计 Lotus Domino 环境的架构,进一步节省成本。
虚拟化和 Lotus Domino:有何优点?
运行虚拟化环境获得的优点取决于选择部署的虚拟化技术。并非所有的虚拟化技术都具有相同的能力或提供相同的优点。理解特定的虚拟化环境的能力和优点,可以避免每种虚拟化技术固有的局限性。
例如,在如今的环境中,如果在专用硬件上运行 Lotus Domino,当一个服务器的资源不够用时,接下来必须做什么?首先,必须购买、订购和等待安装新的硬件。接着,必须购买和安装新的 Lotus Domino 许可。然后,必须构建和配置一个新的 Lotus Domino 服务器。然后,必须将一些工作负载从资源紧张的服务器迁移到新的服务器。而在虚拟环境中,只需启用备用容量,或者向现有硬件添加更多容量,并为新的资源重新配置虚拟映像,就这么简单。当资源达到极限时,不需要管理和操纵 Lotus Domino 服务器。虚拟化可以让基础设施适应 Lotus Domino 环境的需要,而不必让 Lotus Domino 环境适应基础设施的限制。
虚拟环境的另一个优点是可以执行服务器整合和基础设施缩减,从而降低成本。在虚拟环境中,由于可以动态地扩展新的资源,因此可以设计一个能够利用这些能力的 Lotus Domino 环境。例如,通过在 VM 下作为 guest 在一个单独的 Linux 映像中运行多个 Lotus Domino 服务器,可以避免服务器之间的物理硬件连接。取决于整合的程度,还可以减少或消除围绕物理服务器的当前支持基础设施。
通过降低 Lotus Domino 环境的复杂性,可以减少需要在环境中运行的服务器的数量。这直接导致管理(即安装和升级)和支持(即性能、容量、问题诊断过程)环境的成本的降低。我们知道,打破惯性思维而不仅仅是将现有的映像移植到虚拟环境,可以大大降低运行 Lotus Domino 基础设施的成本。
图 1 显示一个从分布式物理 Lotus Domino 基础设施转移到集中式虚拟 Lotus Domino 基础设施的例子。
图 1. 虚拟化部署的例子
在这个例子中,我们从 18 个硬件系统、操作系统映像和 Lotus Domino 邮件服务器转移到 6 个 Lotus Domino 邮件服务器,这 6 个邮件服务器在一个 VM 下的两个 Linux guest 中。
该实现假定选择的 VM 和硬件具有支持这个工作负载所需的容量。而且,由于多个 Linux guest 在相同的物理足迹中运行,它们可以利用虚拟 LAN(VLAN)技术。这不仅避免了使用 hub 服务器的需求,而且 VLAN 还允许 Lotus Domino 服务器之间以内存的速度而不是 LAN 的速度相互通信。此外,也不需要使用专用的骨干网络来处理服务器之间的通信(邮件、集群、复制和管理)。
飞机、火车和汽车:并非所有的虚拟化都是相同的
正如本节标题的意思一样,提供运输的方式有多种,每种方式都有其特点,例如速度、容量和距离。如今,实现虚拟化的方式有很多种。有些虚拟化是在硬件中完成的,有些是在固件中完成的,还有一些是在软件中完成的。有些虚拟化则结合了这几种方式。具体的配置取决于选择的虚拟化产品和提供支持的软件、固件和硬件。
然而,并非所有这些虚拟化技术都能解决相同的业务需求,或提供相同的优点。取决于具体的虚拟化技术和实现方式,不同虚拟化技术提供的性能特征可能各不相同。虚拟化技术的开销越大,就需要越多的资源来运行它的实现。
虚拟化不是新的概念,它存在至今已经超过 40 年了。1967 年,虚拟化随 CP-67 首次作为一个产品出现。提供虚拟化的供应商有不同的历史和经历,近年来有很多新的动作。IBM 在改进虚拟化环境和提高性能方面有超过 40 年的经验。
虚拟化的不同方面有不同的相关成本。例如,与虚拟化 I/O 的成本相比,在处理器上实现线程虚拟化所需的成本是不相同的。这意味着必须看到虚拟化环境的所有成本,包括处理器、内存和 I/O,才能理解运行这个虚拟化环境的总体成本。取决于启用的特性和功能,Lotus Domino 对处理器、内存和 I/O 有重大的影响,要想评估为 Lotus Domino 实现虚拟化的成本,就必须理解这些组件是如何工作的。
如图 2 所示,有不同的方法可完成虚拟化的基本服务器实现,包括硬件分区(hardware partitioning)、裸机管理程序(bare-metal hypervisor)和托管管理程序(hosted hypervisor)。
图 2. 基本服务器虚拟化方法
还有一点很重要,那就是理解虚拟化如何构建它的管理程序(hypervisor)实现。如图 3 所示,不同的实现各有其优点和问题。
图 3. 管理程序实现方法
理解了虚拟化的实现方式,就可以更好地理解如何利用它的能力。2008 年 4 月出版的标题为 “IBM Systems Virtualization: Servers, Storage, and Software” 的 IBM Red Paper(REDP-4396)详细描述了不同的虚拟化技术以及它们的优点和存在的问题。
VM 下的一个 Linux 内核中的 102 K Lotus Domino 基准测试用户
在 2008 年第四季度,发布了用于 Linux 的本地 64 位版本的 Lotus Domino。另外,根据以下两个目标,设立了一个基准测试:
- 我们想要看到,与旧的 32 位代码相比,使用新的本地 64 位代码对一个 Lotus Domino 分区服务器中 Lotus Domino 的可伸缩性有什么影响。
- 我们想要看到,在 VM 下运行 Lotus Domino 的 64 位操作系统环境中,虚拟化 Linux 内核可以承受多大的工作负载。
我们在马里兰盖瑟斯堡的 Washington System Center 执行该基准测试。对于这个基准测试,使用了一个 z10 EC 2097-764 系统。该系统有 64 个通用处理器(不包括 I/O 处理器、备用处理器等)和 1.52 TB 内存。这个系统只有一部分被分配给这个基准测试。这个系统上构建了一个逻辑分区,即 LPAR,有 4 个处理器和 48 GB 内存的初始配置。在这个 LPAR 中,我们构建了一个 VM 操作系统映像,然后在 VM 下构建一个 Linux 内核,可以使用 4 个引擎和 10 GB 的内存。在这个拥有 4 个中央处理器(CP)或引擎/10 GB 内存的初始配置中,我们将运行初始的单个 Lotus Domino 分区服务器测试。
注意,这个系统不是专用于这个 Lotus Domino 基准测试的,它同时还运行其他工作负载。除了 Lotus Domino 基准测试外,在相同的物理硬件上还运行着另外两个客户基准测试。其中一个基准测试用于保险业的客户,另一个基准测试用于银行业的客户。在相同的物理硬件中,每个基准测试有它自己的 LPAR 和虚拟化。除了这些工作负载外,这个系统上还运行其他一些较小的 LPAR。
通过不同光纤连接到这个物理系统上的直接访问存储设备(DASD)加起来超过 200 TB。对于 Lotus Domino 工作负载,根据 extended count key data(ECKD)设备的定义,我们最终有大约 20 TB 的 DASD 连接到这一个 Linux 内核。经常会遇到这样的问题:是使用 ECKD DASD 还是使用 Fibre Channel Protocol(FCP)连接的 SCSI 逻辑单元数(LUN)。每种选择各有优缺点。在 Linux 环境中使用 FCP 连接的 SCSI LUN 的最有效的方法是通过专用的 FCP 子通道,而不是使用 z/VM® 模拟设备。
在这种情况下,可以使用 Linux SCSI 栈来管理、读取和写入目标 LUN 上的数据。这种配置的缺点是,目标磁盘设备在 Conversational Monitor System(CMS)环境中是不可见的,所以不能使用 z/VM 工具和过程辅助管理这些设备。目标磁盘设备只在 Linux 环境中可见,因此必须在该环境中进行管理。IBM Boeblingen Lab 的性能研究表明,就每秒传输的兆字节数而言,使用专用的 FCP 子通道和 SCSI LUN 可以提供最佳性能。从 z/VM 角度看,这个解决方案所需的处理器开销也是最低的,因为既然 I/O 过程是基于 qdio 而不是开始子通道(start subchannel),那么就可以使用硬件 qioassist(在 z9® 和 z10 上可用)。要了解更多关于 qdio 的详细描述,请参阅参考资料小节中的文章 “Queued Direct I/O (QDIO)”。
这个解决方案的缺点是,System z® 通道子系统不能自动为目标存储设备提供多路径支持。所有多路径必须通过在 Linux 中手动定义一个多路径配置并为其使用设备映射器支持来完成。
使用 ECKD DASD 设备的优点是,它们在 z/VM CMS 环境中是可见的,因此可以从典型的 z/VM 系统编程环境中轻松地管理它们。还有一个优点是,对目标存储子系统的多路径的管理完全包含在硬件通道子系统中,不需要从 Linux 端进行任何的人为干预。缺点是,System z I/O 架构规定,一个特定的目标设备(UCB 或 DASD 子通道)上每次只能有一个活动的 I/O 操作。可以通过使用并行访问卷克服这个限制。通过最新版本的 Linux DASD 驱动器中提供的新的支持和 DS8300 hyperpav 特性,可以有效地在 Linux on System z 中使用 PAV,并取得与前面描述的那些专用 FCP 环境近似的吞吐率。
我们的环境由 ECKD 设备组成,它们是 27 个 3390 型号的设备。之所以使用 ECKD 设备,是因为它们可以立即使用,而 FCP SCSI 环境则不能。
对于第一组测试,我们为 Lotus Domino 提供 4 秒的 CP 和 10 GB 内存来建立用于在 Linux guest 中运行 Lotus Domino 服务器的基准测试。在这一系列的测试中,我们将这个 Lotus Domino 实例的负载增加到接近令它崩溃为止。这种方法使我们可以伸缩这个 Lotus Domino 实例,看它在资源不受限的情况下可以承受多大的工作负载。由于我们想比较之前的 Lotus Domino 发行版基准测试,我们重新构建了它们的环境、配置和工作负载。这个基准测试的基本定义如下:
- 无事务日志记录
- R6Mail 工作负载
- VM 下的一个 Linux guest 中的一个 Lotus Domino 服务器
R6Mail 工作负载通过使用从 Lotus Notes 客户机到服务器动作的邮件和日程表操作进行模拟。对于每个用户,它每小时将发送 4.67 条消息。要了解关于这个工作负载的更多信息,请参阅 developerWorks® 文章 “The new Domino 6 Notesbench workloads: Heavier by request!”。