DASDボリュームを初期化(イニシャライズ)する(MVSおよびMSP)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
// JOB Statement //********************************************************************* //* Sample JCL for ICKDSF //* ====================== //********************************************************************* //*------- DASD ONLINE Initialize //ICKDSF EXEC PGM=ICKDSF,REGION=0M //SYSPRINT DD SYSOUT=* //DASD DD DISP=OLD,UNIT=SYSALLDA,VOL=SER=volnam //SYSIN DD * INIT DDNAME(DASD) NOVERIFY PURGE VTOC(0,1,14) NOINDEX INIT DDNAME(DASD) NOVERIFY PURGE VTOC(0,1,14) INDEX(1,0,15) // // //*------- DASD OFFLINE Initialize //ICKDSF EXEC PGM=ICKDSF,REGION=0M //SYSPRINT DD SYSOUT=* //SYSIN DD * INIT UNIT(XXXX) NOVERIFY PURGE VOLID(XXXXXX) VTOC(0,1,14) NOINDEX INIT UNIT(XXXX) NOVERIFY PURGE VOLID(XXXXXX) VTOC(0,1,14) - INDEX(1,0,15) REFORMAT UNIT(XXXX) NOVERIFY VOLID(newvol) // // //*------- Create IPL Volume //ICKDSF EXEC PGM=ICKDSF,REGION=0M //SYSPRINT DD SYSOUT=* //IPLTEXT DD DISP=SHR,DSN=SYS1.SAMPLIB(IPLRECS) // DD DISP=SHR,DSN=SYS1.SAMPLIB(IEAIPL00) //SYSIN DD * INIT UNIT(XXXX) NOVERIFY VOLID(XXXXXX) VTOC(0,1,29) INDEX(2,0,15) - IPLDD(IPLTEXT) BOOTSTRAP // // |
プログラム名は、MSPではJTGGDSですが、ICKDSFの別名が付いているのでMVSと同じ名前でも利用できます(VOS3ではJSFDASDという全く別のユーティリティーになり、ICKDSFとの互換はありません)。
ボリューム名を変えなければ、オンライン状態のままでイニシャライズできます。全データセットがパージされますが、カタログは残ります。ボリューム名を変える場合は、ボリュームをオフラインにした状態で実行しなければなりません。実行後にオンラインにすればマウントされます(MSPではMOUNTコマンドも必要)。中のデータセットを残したままボリューム名だけ変える場合は、REFORMAT機能を使えます。
VTOCおよびINDEXパラメーターで、VTOCとVTOC INDEXデータセットの位置と大きさを(cyl番号,trk番号,trk数)の形式で指定します。VTOCは、一般的にはボリュームの先頭に配置します。その場合、CYL番号は0、TRK番号は1となります。TRK=0は、システムで使用するため利用できません。VTOCのTRK数は、ボリューム内に作成されるデータセットの数によって変ります。VTOC 1トラックで50のデータセットが作成できます。正確には、1トラックあたりに作成できるDSCBの個数で3390Diskでは50、3380Diskでは53です。1つのデータセットは、最低1つのDSCBを使用します。エクステントが増えたりすると、追加のDSCBが作られますが、とりあえずは1データセットで1DSCBと考えてよいでしょう。作成されるデータセット50個につき1トラック使うと考えて必要なTRK数を計算し、システムが使うDSCBの分を考慮して10%増しぐらいにすればよいでしょう。VTOCは後で増やせない(基本的には)から、あまりきちきちにする必要はありません。14trk、29trk、44trkあたりでしょうか。1cylは15trkですが、14と1つ少ないのは、CYL番号0のTRK番号0はシステムでリザーブされてるので、残りが14trkだからです。以降は、CYL単位にVTOCを増やそうとすれば29、44と15ずつ増えていきます。きれいなボリュームの空き容量を、きっちりシリンダー単位にそろえたければこんな計算になります。
昔は「アクセスされるデータセットがたくさん格納されるボリュームのVTOCは、ボリュームの真ん中に配置させるとヘッドの動く量が小さくできるからパフォーマンスが良くなる」なんて教わったものですが、個人的には先頭にある方がすっきりします。ヘッドが飛び回る量を減らすには、アクセス頻度の高いデータセットは単一エクステントになるようにしてなるべくVTOCの近くに置くのがいいですが…
MSPの場合、インデックスVTOCにするかどうかはセンターの運用方針に沿って下さい。z/OSの場合、インデックスVTOC一択でしょう。SMSの機能をきっちり使うならインデックスVTOCが前提になってたりします。
SYSRESボリュームを作る場合は、IPLDDパラメーターでIPLプログラムのオブジェクトを指定します。SYS1.SAMPLIBにメンバーIPLRECS(ブート・ストラップ・コード)とIEAIPL00(IPLプログラム)で格納されています。MSPではKAAIPL00です。
向学心旺盛でもDASDのイニシャライズだけは注意してください。特に、データセットが入っているボリュームは。PCだってHDDのフォーマットってちょっとどきどきするでしょ?