耦合设施
目录
耦合设施
在 IBM System/390 和 IBM Z 大型机计算机中,耦合设施或 CF 是协调多个处理器的计算机硬件或虚拟机。
并行系统综合体依赖于一个或多个耦合设施 (CF)。耦合设施是一个大型机处理器(在自己的 LPAR 中运行,具有专用的物理 CP,通过硬件管理控制台 (HMC) 定义),具有内存和特殊通道(CF 链接),以及称为耦合设施控制代码 (Coupling Facility Control Code) 的专用操作系统( CFCC)。它没有 I/O 设备,除了 CF 链接。CF 中的信息完全驻留在内存中,因为 CFCC 不是虚拟内存操作系统。CF 通常具有很大的内存——大约几十 GB。CF 不运行应用软件。
最初引入时,CFCC 在一个单独的 9674 大型机单元中执行,该单元本质上是一个处理器,除了 CF 链路之外没有 I/O 设施。后来,IBM 启用了内部耦合设施,其中 CFCC 在标准处理器复合体中定义的逻辑分区 (LPAR) 中运行,并通过该处理器复合体硬件内的内部链路进行通信。内部链路是模拟的,而到另一个处理器单元的链路是通过铜缆或光纤电缆。为了可靠性和可用性,通常在 Sysplex 集群中配置多个 CF。z/OS 操作系统中的恢复支持允许在发生故障时在备用 CF 中重建结构。
在 CF 的支持下,Sysplex 集群可以很好地扩展到数百个 CPU(最多 32 个成员,每个成员最多 190 个 CPU)运行事务和数据库应用程序。使用 CF 链接,数据可以在 CF 内存和附加系统的内存之间直接交换,使用类似直接内存访问的机制,而不会中断正在运行的程序。Sysplex 集群中的系统将 CF 信息存储在本地内存中称为位向量的区域中。这使他们能够在本地查询 Sysplex 中其他系统的关键状态信息,而无需向 CF 发出请求。System z 架构包括 18 条特殊机器指令和支持 CF 操作的附加硬件功能。
耦合设施结构
CF 用于三个目的:
- 锁定所有连接系统之间共享的信息
- 在所有附加系统之间共享的高速缓存信息(例如数据库)(或保持每个系统中本地缓冲池之间的一致性)。
- 在所有连接系统之间共享的数据列表信息
这三个目的由三种类型的结构来满足:
- 锁
- 缓存
- 列表(和变体序列化列表)
结构是 CF 内存的专用部分。据说它是由耦合的 z/OS 系统上的特定 CF 漏洞利用应用程序连接的。典型的并行系统综合体包含每种类型的多个结构。每个软件开发者可以使用每种类型的几种结构。例如,每个 Db2 数据共享组使用一个 Lock 结构、一个 List 结构和多个缓存结构(每个 Group Buffer Pool (GBP) 一个)。
结构双工
结构可以跨不同的 CF 进行双工,从而允许同一结构的两个副本保持同步。双工通常用作安装驱动器的一部分,以消除单点故障,目的是减少应用程序中断的发生率和持续时间。如果一个 CF 发生故障,则使用该结构的另一个副本来满足所有请求。
耦合设施请求
对 CF 结构的请求属于以下两种之一:
- 同步(sync)请求。当 z/OS 系统发出请求时,它会等待请求完成,并在其自己的处理器之一上主动旋转。同步请求很快,但响应时间与耦合系统的旋转 CPU 损失相同。因此,从耦合系统的角度来看,同步请求在 CPU 方面相对昂贵。
- 异步(async)请求。当 z/OS 系统发出请求时,它不会等待请求完成。异步请求比同步请求慢(因为它们在 CF 中的优先级较低),但不会导致耦合系统的处理器旋转。
利用 z/OS 应用程序以同步或异步方式显式发出 CF 请求。

耦合设施级别和利用软件级别
CFCC 代码作为级别发布,通常由其 CFLEVEL 表示。例如,CFLEVEL 15 于 2007 年 4 月发布。每个级别都会带来新的功能,有时还会提高性能。在大多数情况下,新功能或性能改进需要 z/OS 的同时发布,并且可能需要某些子系统(例如 Db2)中的新功能。一个这样的例子是耦合设施结构双工。(有时操作系统和子系统的支持可以通过 PTF 获得,而不是完整版本。)