2 配置 MVS 主机软件

本章介绍了 VLE 的 MVS 主机软件配置,具体如以下各节中所述:

主要配置值

以下各节介绍了软件配置所需的值,这些值必须与通常在硬件配置中设置以及记录在 IP_and VMVC_Configuration.xls 工作表中的值匹配。

子系统名称

按如下所示指定 VLE 的子系统名称(通过 VLE 安装脚本进行设置):

  • VTCS CONFIG TAPEPLEX STORMNGR 参数或 CONFIG STORMNGR NAME 参数

  • VTCS CONFIG RTD STORMNGR 参数

  • SMC STORMNGR NAME 参数

  • SMC SERVER STORMNGR 参数

  • HSC STORCLAS STORMNGR 参数

VTSS 以太网端口地址

要通过 CONFIG RTD IPIF 参数配置 VTSS 到 VLE 的 IP 连接,需要 VTSS 以太网端口地址。对于 VSM 5,此值必须与 VSM5 "IFF Configuration Status" 屏幕上指定的值匹配。对于 VSM 6,此值必须对每个 VTSS 唯一,但对应于 VSM 6 TCP/IP 端口上的实际值。

用于主机 (UUI) 通信的 VLE 端口的 IP 地址

SMC SERVER IP 参数需要用于主机 (UUI) 通信的 VLE 端口的 IP 地址。

VMVC 卷序列号

针对 SMC/VTCS 定义 VMVC 时需要此卷序列号,定义方法取决于软件版本。请参见“向 MVS 主机软件定义 VLE VMVC 并在 MVC 池中包括 VMVC”。

VMVC 回收阈值

有关更多信息,请参见“指定 VMVCS 的回收策略”。

VTV 重复数据删除

STORCLAS DEDUP 参数指定迁移到指定 STORMNGR 的 VMVC 中的 VTV 数据是否删除重复项。例如:

STORCLAS NAME(VLEDEDUP)STORMNGR(VLE1) DEDUP(YES)

STORCLAS 语句指定对迁移至 VLE1 的存储类 VLEDEDUP 中的数据执行重复数据删除。有关更多信息,请参见《ELS 7.3 Command, Control Statement, and Utility Reference》。

重复数据删除可增加 VMVC 有效容量,由 VLE 在将 VTV 写入 VMVC 之前执行。因此,Oracle 建议,一开始即启用重复数据删除,然后使用 SCRPT 报告监视结果,并根据需要微调重复数据删除。

提前读取第一个字节 (Early Time to First Byte, ETTFB)

ETTFB(也称为并发磁带调回/挂载功能)允许主机应用程序在从 VMVC RTD 调回 VTV 的过程中读取数据。ETTFB 是通过重叠 VTV 调回和挂载阶段实现的,允许应用程序更快地读取 VTV 数据。如果应用程序尝试读取 VTV 中尚未调回的那部分数据,则应用程序的 I/O 请求将被阻止,直到所需的 VTV 数据已调回。通过对 VLE 使用 ETTFB,应用程序能在不到一秒内访问第一个字节,从而使 VLE 真正成为 VTSS 的扩展。因此,VLE ETTFB 对于按顺序访问 VTV 数据的应用程序来说是不错的选择。对于将多个文件堆叠在单个 VTV 上的应用程序(包括 HSM 和映像管理应用程序),VLE ETTFB 通常无法提供此优势。在这些类型的应用程序中,所需的数据通常不位于 VTV 的开头,而是随机分布在 VTV 中的某个位置。

默认情况下,ETTFB 处于禁用状态。可以通过 CONFIG GLOBAL FASTRECL 参数全局启用 ETTFB。全局启用 ETTFB 后,可以通过 CONFIG VTSS NOERLYMNT 参数对单个 VTSS 禁用 ETTFB。

发生了 ETTFB 调回错误的 VTV 将在 CDS 中的 VTV 记录中设置错误标志。随后不会为 ETTFB 选择这些 VTV。如果要重置错误标志,请执行以下任一操作:

  • 为 VTV 输入 VTVMAINT SCRATCH(ON) 命令。

  • 将 VTV 迁移至新的 MVC 副本。

  • 导入 VTV。

  • 创建新版本的 VTV。

  • 擦写 VTV。

MVS 主机软件配置任务

要将 VLE 添加到 VSM 系统,需要执行以下各节中所述的任务:

有关本章中引用的命令和控制语句的更多信息,请参见《ELS 7.x Command, Control Statement, and Utility Reference》。

获取适用于 VLE 的 ELS 支持 PTF

对于 ELS 7.2 及更高版本,包括了基本级别的支持。对于 ELS 7.1,请获取最新的 SMP/E receive HOLDDATA 和 PTF(L1H16J6、L1H1674)并在使用 GROUPEXTEND 的情况下运行 SMP/E APPLY

更新 SMC OMVS RACF 安全入口

VLE 要求 SMC 具有一个 OMVS RACF 安全入口,以便与主机建立 TCP/IP 连接。

OMVS 是与 RACF 用户 ID 关联的段。SMC 启动的任务必须在 RACF STARTED 类定义或 ICHRIN03 LNKLST 模块中具有与 OMVS 关联的用户 ID。与 SMC 任务关联的用户 ID 需要在 RACF 中定义与该用户 ID 关联的 OMVS 段,如下所示:

ADDUSER userid
DFLTGRP(groupname)OWNER(owner)OMVS(UID(uidnumber))

或者,如果该用户 ID 已存在但不具有 OMVS 段,请执行以下操作:

ALTUSER userid OMVS(UID(uidnumber))

修改 SMC SCMDS 文件

SMC 管理 VTCS 和 VLE 之间的所有通信,因此 SMC 必须了解如何连接到 VLE 服务器。为此,需要为每个 VLE 系统添加一个 SMC STORMNGR 语句,以及一个或多个定义 VLE 的 TCP/IP 控制路径的 SMC SERVER 语句。对于 7.0 及更高版本,您可能希望在 SMC CMDS 文件中执行该操作,如示例 2-1中所示。

示例 2-1 VLE 的 SMC 命令

TAPEPLEX NAME(TMVSA)LOCSUB(SLS0)
SERVER NAME(ALTSERV) TAPEPLEX(TMVSA) +
HOSTNAME(MVSX) PORT(8888)
STORMNGR NAME(VLE1)
SERVER NAME(VLE1)+ STORMNGR(VLE1)IP(192.168.1.10)PORT(60000)

示例 2-1包含:

  • 一个 TAPEPLEX 语句,该语句定义单个 TapePlex(即 TMVSA)以及在同一 MVS 主机上运行的 HSC/VTCS (SLS0)。

  • 一个 SERVER 语句,该语句定义在其他主机上运行的备份 HSC/VTCS 子系统 (ALTSERV)。

  • 一个 STORMNGR 命令,该命令定义了一个 VLE (VLE1)

  • 另一个 SERVER 命令,该命令定义到该 VLE 的 UUI 通信路径,其中:

    • 服务器名称为 VLE1

    • STORMNGR 参数值为 VLE1

    • IP 参数值为 UUI 通信的 VLE 端口 IP 地址 192.168.1.10。

    • PORT 参数值为 60000;此值总是用于 SERVER PORT 参数,以便 SMC 与 VLE 通信。

更新 VTCS CONFIG 文件以定义 VLE

必须更新 VTCS CONFIG 文件以定义 VLE 以及从 VTSS 系统到 VLE 的连接。VTCS 可以驱动 VLE,如下所示:

  • 对于 VTCS 7.0 及更高版本CONFIG TAPEPLEX 语句定义将运行 VTCS 的 TapePlex,并在 CONFIG TAPEPLEX STORMNGR 参数中提供已定义 VLE 的列表,如示例 2-2中所示。

示例 2-2 VTCS 7.0 CONFIG VLE

TAPEPLEX THISPLEX=TMVSA STORMNGR=VLE1 
VTSS NAME=VTSS1 LOW=70 HIGH=80 MAXMIG=8 MINMIG=4 RETAIN=5
RTDPATH NAME=VL1RTD1 STORMNGR=VLE1 IPIF=0A:0 
RTDPATH NAME=VL1RTD2 STORMNGR=VLE1 IPIF=0A:1 
RTDPATH NAME=VL1RTD3 STORMNGR=VLE1 IPIF=0I:0 
RTDPATH NAME=VL1RTD4 STORMNGR=VLE1 IPIF=0I:1 
RTDPATH NAME=VL1RTD5 STORMNGR=VLE1 IPIF=1A:0 
RTDPATH NAME=VL1RTD6 STORMNGR=VLE1 IPIF=1A:1 
RTDPATH NAME=VL1RTD7 STORMNGR=VLE1 IPIF=1I:0 
RTDPATH NAME=VL1RTD8 STORMNGR=VLE1 IPIF=1I:1 
VTD LOW=6900 HIGH=69FF

示例 2-2中,请注意:

  • CONFIG TAPEPLEX 语句,该语句将 TMVSA 定义为运行 VTCS 的 TapePlex,并定义所有已连接 VLE 的名称(在此示例中是一个名为 VLE1 的 VLE)。

  • CONFIG RTDPATH 语句,该语句为每个从 VTSS 到 VLE 的路径定义单个 VLE RTD。在本例中,VTSS1CONFIG RTDPATH 语句指定了:

    • RTDPATH 的名称。

    • 到已定义的 VLE 的连接 (STORMNGR=VLE1)。

    • VTSS 到 VLE 端口的每个连接的 IPIF 值(格式为 ci:p),其中:

      • c 是 0 或 1。

      • i 是 A 或 I。

      • p 是 0 到 3。

      注意:

      对于 VSM 5,此值必须与 VSM5 "IFF Configuration Status" 屏幕上指定的值匹配。对于 VSM 6,该值必须对每个 VTSS 唯一,但对应于 VSM 6 TCP/IP 端口上的实际值。
  • 当然,VTCS 7.1 及更高版本的系统可以像 VTCS 7.0 一样驱动 VLE 1.5.1。但是,在此模式中,VLE RTD 目标的数量受源自 VTSS 的路径数量限制。此外,VLE RTD 将分配给固定的 VTSS 路径。VTCS 始终会保留从 VTSS 到 VLE 的路径,不论是否出现任何 VTSS 到 VLE 的数据传输。

    但是,使用 VTCS 7.1 及更高版本时,您可以定义 VLE RTD 目标多于从 VTSS 到 VLE 的路径的 VLE,这意味着:

    • 不会保留从 VTSS 到 VLE 的路径,除非需要进行 VTSS 到 VLE 的数据传输。

    • 可以同时执行更多 VLE RTD 操作。例如,对 VMVC 的审计需要在 VTSS 和 VLE 之间进行数据传输。

    示例 2-3 中所示,VLE 是通过 CONFIG STORMNGR 语句而不是 CONFIG TAPEPLEX STORMNGR 参数定义的。CONFIG STORMNGR 语句指定 VTCS 连接到的 VLE。此外,对于每个 VLE,CONFIG STORMNGR VLEDEV 参数定义了 VLE 所模拟的 RTD 设备的数量和名称。定义的设备越多(每个 VLE 最多 96 个设备),VTCS 可以在 VLE 上调度并发活动的程度越高。

示例 2-3 VTCS 7.1 CONFIG VLE

TAPEPLEX THISPLEX=TMVSC 
STORMNGR NAME=VLE1 VLEDEV(S000-S05F) 
STORMNGR NAME=VLE2 VLEDEV(S000-S05F) 
VTSS NAME=VTSS1 LOW=70 HIGH=80 MAXMIG=8 MINMIG=4 RETAIN=5
RTDPATH NAME=VL1RTD1 STORMNGR=VLE1 IPIF=0A:0 
RTDPATH NAME=VL1RTD2 STORMNGR=VLE1 IPIF=0A:1 
RTDPATH NAME=VL1RTD3 STORMNGR=VLE1 IPIF=0I:0 
RTDPATH NAME=VL1RTD4 STORMNGR=VLE1 IPIF=0I:1 
RTDPATH NAME=VL1RTD5 STORMNGR=VLE2 IPIF=1A:0 
RTDPATH NAME=VL1RTD6 STORMNGR=VLE2 IPIF=1A:1 
RTDPATH NAME=VL1RTD7 STORMNGR=VLE2 IPIF=1I:0 
RTDPATH NAME=VL1RTD8 STORMNGR=VLE2 IPIF=1I:1 
VTD LOW=6900 HIGH=69FF

示例 2-3中,请注意:

  • CONFIG TAPEPLEX 语句现在仅将 TMVSC 定义为运行 VTCS 的 TapePlex。定义已连接的 VLE。

  • CONFIG STORMNGR 语句,该语句定义在此系统中配置的 VLE-VLE1VLE2,通过 VLEDEV 参数指定 VLE 设备数量。

    在此示例中,每个 VLE 最多有 96 个仿真设备,从而允许 VTCS 在每个 VLE 上最多调度 96 个进程。VLE 设备地址的格式为 Sxxx(其中 xxx 是十六进制值)。

    示例:S000-S05F 表示 96 个模仿设备。

  • 针对 VTSS1 的 CONFIG RTDPATH 语句,指定了:

    • RTDPATH 的名称

    • 到已定义的 VLE 的连接(STORMNGR=VLE1、STORMNGR=VLE2

    • VTSS 到 VLE 端口的每个连接的 IPIF 值(格式为 ci:p),其中:

      • c 是 0 或 1

      • i 是 A 或 I

      • p 是 0 到 3

      注意:

      对于 VSM5,此值必须与 VSM5 "IFF Configuration Status" 屏幕上指定的值匹配。对于 VSM 6,此值必须对每个 VTSS 唯一,但对应于 VSM 6 TCP/IP 端口上的实际值。

指定 VMVCS 的回收策略

VLE MVC 介质 (VMVC) 会碎片化,必须像真正的 MVC 那样回收。但是,VMVC 回收进程使用的资源远少于标准回收。VMVC 的回收阈值是通过 CONFIG RECLAIM VLTHRES 参数指定的。将 VLTHRES 的值设置得越低,VTCS 在 VMVC 上运行回收的频率越高,因而,VMVS 的有效容量越大(碎片更少)。

向 MVS 主机软件定义 VLE VMVC 并在 MVC 池中包括 VMVC

必须同时向 MVS 主机软件和 VLE 定义 VMVC 卷序列号。对于 VLE,VMVC 作为 VLE 配置的一部分来定义。以下各节介绍如何向 MVS 主机软件定义 VMVC。

创建 VMVC 卷池(7.0 及更高版本)

  1. 编写 HSC POOLPARMVOLPARM 语句定义 VMVC 池。

    例如,为 VLE1 和 VLE2 定义两个单独的池:

    POOLPARM NAME(LEPOOL1)TYPE(MVC)
    VOLPARM VOLSER(VL0000-VL880)
    
    POOLPARM NAME(LEPOOL2)TYPE(MVC)
    VOLPARM VOLSER(VL2000-VL2880) 
    
  2. 运行 SET VOLPARM 验证 POOLPARMVOLPARM 语句。

    SET VOLPARM APPLY(NO)
    

    APPLY(NO) 将在不装入这些语句的情况下对其进行验证。如果对结果满意,请继续执行下一步。否则,请重新进行卷定义以及执行此步骤,如果定义有效,请继续执行下一步。

  3. 运行 SET VOLPARM 装入 POOLPARMVOLPARM 语句。

    SET VOLPARM APPLY(YES)
    

更新 MVS 主机软件策略

以下各节介绍了如何更新 MVS 主机软件策略以便将数据定向到 VLE 系统。

为 VLE 创建存储类和管理类

管理类指定 VTCS 管理 VTV 的方式。HSC MGMTclas 控制语句用于定义管理类及其属性。例如,MGMTclas 语句的 DELSCR 参数指定 VTCS 是否从 VTSS 中删除已擦写的 VTV。管理类也可以指向存储类,存储类指定迁移的 VTV 所驻留的位置。HSC STORclas 控制语句用于定义存储类及其属性。通过 STORCLAS STORMNGR 关键字可将 VLE 系统指定为迁移 VTV 的目标。例如:

STOR NAME(VLOCAL) STORMNGR(VLESERV1) DEDUP(YES)
STOR NAME(VREMOTE) STORMNGR(VLESERV2)DEDUP(YES) 

上述语句定义了一个 VLE1 上的“本地”存储类 (VLOCAL) 和一个 VLE2 上的“远程”存储类 (VREMOTE)。如这些 STORCLAS 语句所指定的那样,所有到存储类 VLOCLALVREMOTE 的迁移都必须转至指定的 VLE。为两个存储类指定重复数据删除。

如果需要,可以减少限制。例如,如果定义了同时包含 VMVC 和 MVC 的 MVCPOOL,可以设置迁移策略以迁移至 VLE。但是如果 VLE 已满或不可用,则继续迁移至真正的磁带介质 (MVC)。例如,按如下所示定义 MVC 池 DR

POOLPARM NAME(DR)TYPE(MVC)
VOLPARM VOLSER(VL0000-VL0100)
VOLPARM VOLSER(ACS000-ACS099)

因此,池 DR 同时包含 MVC 和 VMVC。存储类指定池 DR 首先迁移至 VMVC;只在 VMVC 不可用时使用 MVC。

示例:

STOR NAME(DRCLASS) MVCPOOL(DR)DEDUP(YES)

如果采用 ACS 和 VLE 同时连接到 VTSS 系统的配置,此方法将十分有用。

接下来,要指定到 VLE 的迁移,应指定通过 MGMTCLAS MIGPOL 参数定义的 VLE 存储类。例如:

MGMT NAME(M1) MIGPOL(VLOCAL,VREMOTE)
MGMT NAME(M2) MIGPOL(DRCLASS)

管理类 M1 会将一个 VTV 副本迁移至“远程”VLE,将另一个副本迁移至“本地”VLE。管理类 M2 会将一个 VTV 副本迁移至指向“混合”MVC 池的存储类,该池同时包含 MVC 和 VMVC。

注意:

除了将迁移定向到 VLE,还应考虑以下事项:
  1. 如果是在 ELS 7.0 或更高版本上运行,可以使用 HSC MIGRSELMIGRVTV 微调到 VLE 的迁移。通过这些语句,您可以指示管理类中的数据按一定优先顺序迁移至不同的存储类。该方法通常用于确保尽快进行关键 DR 复制。有关更多信息,请参见配置 HSC 和 VTCS

  2. 在 VLE 1.1 及更高版本的系统上,如果多个 VLE 互相连接并连接到 VTSS,则默认情况下 VTCS 将首选 VLE 到 VLE 的连接来创建多个 VTV 副本。您可以控制此行为,如“控制 VLE 到 VLE 复制”中所述。

控制 VLE 到 VLE 复制

对于 VLE 到 VLE 连接,如果某个 VTV 副本同时位于一个 VTSS 和一个 VLE 上,并且想要将该副本迁移至连接的 VLE,默认将使用 VLE 到 VLE 的连接。例如,请考虑具有一个本地 VLE (LOCVLE) 和连接到 VTSSA 的远程 VLE (REMVLE) 的 DR 方案。您希望迁移以下两个 VTV 副本:

  • 首先是从 VTSSALOCVLE 迁移一个本地副本。

  • 然后是使用 VLE 到 VLE 复制(而不是使用 VTSS 到 VLE 迁移)从 LOCVLEREMVLE 迁移一个副本。

要创建所需的 VTV 副本,请执行以下操作:

  1. 创建一个 STORCLAS 语句,将 VTV 副本发送至 LOCVLE

    STORCLAS NAME(FORLOCAL) STORMNGR(LOCVLE)
    
  2. 创建一个 STORCLAS 语句,将 VTV 副本发送至 REMVLE

    STORCLAS NAME(FORREMOT) STORMNGR(REMVLE)
    
  3. 创建 MGRVTV 语句来指定到存储类 FORLOCAL 的迁移在到存储类 FORREMOT 的迁移之前进行。

    MIGRVTV STOR(FORLOCAL) INITIAL
    MIGRVTV STOR(FORLOCAL) SUBSEQNT(360)
    

    最后,创建一个 MGMTCLAS 语句,指定两个 VTV 副本,一个位于本地站点,一个位于远程站点:

    MGMTCLAS NAME(DRVLE) MIGPOL(FORLOCAL,FORREMOT)
    

将数据路由到 VLE

要将数据路由到 VLE,请首先创建一条 SMC POLICY 命令指定 VLE 管理类。接下来,创建 SMC TAPEREQ 语句,将所需工作负荷路由到 SMC VLE 策略。例如:

POLICY NAME(VLEDR) MEDIA(VIRTUAL) MGMT(DRVLE)

TAPEREQ DSN(HR.**) POLICY(VLEDR)

上述示例将 VLEDR 策略指定给 HLQ 为 HR 的所有磁带数据集。