MVS的存储机制和Catalog error checking

前些日子遇到一个issue,一个job跑的时候报告无法获取data set information:

Command ===>                                                  Scroll ===> CSR 
001080 0ADR497E (001)-CATLG(09), A CATALOG ERROR OCCURRED WHILE OBTAINING INFORMATION FOR DATA SET
001081                           PFME.W.PE.SK52863.Y0.C724.OSSM.BUECSM.M12. RETURN CODE IS 050, REASON CODE IS E0-006

 

从3.4 检查的时候能查找到该data set PFME.W.PE.SK52863.Y0.C724.OSSM.BUECSM.M12,但是无法用E/B/V/I等编辑查看。

同时根据3.4中给出的data set所在volume,直接查询volume上的所有文件的时候,没有返回此文件。当时初步怀疑是只有一个catalog的entry而文件实际不存在。

 

查询了两天相关文档,这里把资料sum一下。

 


 

首先先回顾一下MF上面的文件存储。

1. VTOC & DSCB

 

大机上面DASD的一个卷(volume)和PC上面一个磁盘分区的概念感觉比较类似。
磁盘上存储的数据在PC里面叫文件(file),在mainframe上面叫数据集(data set)。
PC上面访问一个文件/文件夹需要给出包括分区在内的完整路径,比如C:/Documents and Settings/Administrator
而mainframe上面在引入catalog的概念之前,使用data set的时候也是要给出volume的, 比如:
//DIAGDD   DD UNIT=3390,VOL=SER=FUSR06,DISP=SHR,  
//            DSN=SYS1.VVDS.VFUSR06,AMP='AMORG'    

在这个时候(引入catalog之前),MF实际上已经建立了一套自己的区别于NTFS和FAT的文件系统。
在FAT文件系统下面,每个分区上面都有一张 File Allocation Table来记录磁盘使用情况和定位文件物理存储位置。
MF在这个时候也在每一个volume上面维护了一个VTOC(volume table of content)。

VTOC由DSCB(Data Set Control Block)组成,每个DSCB的记录长度为140字节,它对应于:
       一个数据集,
       或者驻留于该卷上的VSAM数据集的定位信息,

       或者未分配的磁道。

 

DSCB的格式(或者说是类型吧)也因此分为6种
       FMT0:未使用的DSCB,全字段为0. FMT0的个数记录在FMT4的DS4DSREC字段中
       FMT1:最关键的类型,对应于该volume上的一个data set, 关键字为data set name,并记录了data set的一些其他信息
                如果该data set扩展超过了三次,则FMT1中有一个指针指向一个FMT3,FMT3中有该data set关于扩展的更多信息
                如果该data set是一个ISAM文件,则FMT1中还有一个指针指向一个FMT2,该FMT2中描述了此data set index的信息
       FMT2:描述ISAM文件的index信息
       FMT3:描述data set的4-16次 extend的信息。
                PDSE、顺序扩展格式的数据集以及在ICF 编目中编目的VSAM 数据集可以有123 个extent,
                如果是这种情况,则数据集的所有FMT3 连接在一起形成一个链。
                其它数据集则在每个卷上至多有16 个extent。
       FMT4:可以算是一种特殊的FMT1,描述的data set是vtoc自己。它是VTOC中的第一个DSCB
                描述卷所在的设备,卷的属性,当前情况下FMT0 的个数以及VTOC 数据集的大小等内容。
       FMT5:描述volume上的可用空间。
                对于未索引的VTOC,每个FMT5可记载26个空白块, 所有FMT5形成一个链表
                对于indexed的VTOC, Volume 上的free space由index描述,VTOC中只有一个FMT5

 

下面是一个典型的VTOC的结构:

VTOC的结构

 

VTOC的内部结构如下:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值