仮想装置/CKDディスク - FAQ

Q11台のFBAディスク上に1台の仮想CKDディスクを作成しますか?
A1

FBAディスクの空き容量が許す範囲で1台のFBAディスク内に複数の仮想CKDディスクを作成することができます。

Q2仮想CKDディスクを作成したFBAディスクの未使用領域は利用できますか?
A2

仮想CKDディスクを作成したFBAディスクの未使用領域は、FBAディスクとしてファイルを作成し、利用することができます。

Q3最初は16台の仮想CKDディスクで十分と考えて16DISKのPPを購入したが、その後17台以上仮想CKDディスクが必要になった場合、16DISKのPPをもう一つ購入することになりますか?
A3

17台以上の仮想CKDディスクを作成する場合は、あらためて64DISKのPPを購入する必要があります。

Q4仮想CKD制御ジョブを起動したときに、SPACEOVで異常終了します。
下記のエラーが表示されます。
(コンソールメッセージ)
・xxxxxxx:ron番号,sss:step番号
(英) STPM30
xxxxxxx STEP=sss ABNORMALLY TERMINATED AT LOADING CODE=SPACEOV(1BC01201)
(日) STPM30
xxxxxxx STEP=sss 実行が異常終了しました ローディング コード=SPACEOV(1BC01201)
(JOR)
FM_VML:ABNORMAL RETURN CODE WHEN LOADING
VALUE OF G4 1BC21201
STEP INITIATION ABNORMALLY TERMINATED AT LOADING
A4

仮想CKD制御ジョブの起動JCLのBUFSZパラメータで指定されたサイズが、システムパラメータの $VMMDEFINE の型2大セグメントの最大サイズより大きい場合に、仮想CKD制御ジョブは上記のエラーになります。
(システムパラメータ)

$VMMDEFINE  UMAXLSZ=(SHARE=nn,・・・),・・・
nn:型2大セグメントの最大サイズ
システムパラメータの型2大セグメントの最大サイズ以下の値を、起動JCLのBUFSZパラメータに指定してください。
もしくは、起動JCLのBUFSZパラメータの値よりも大きい値を、システムパラメータの$VMMDEFINEの型2大セグメントの最大サイズに設定して、変更を反映してください。

Q5CKDディスクから仮想CKDディスクに移行する場合に、特定のファイルだけを仮想CKDディスクに移行する場合は、どのようにするのですか?
A5

ファイル単位のセーブ/リストアで移行できます。例えば、$FILSAVEでCKDディスクからMTにセーブを行い、$FILRESTで仮想CKDディスクにリストアを行うことで移行できます。

Q6二重化ファイルはどのように移行すればよいですか?
A6

仮想CKDディスク上では二重化ファイルは使用できないので、非二重化ファイルに移行する必要があります。

  • ファイル単位で移行する場合
    1. 移行元のCKDディスクから二重化ファイルをファイル単位でセーブ($FILSAVE,$CREATESEQ等)
    2. 移行先の仮想CKDディスクに非二重化ファイルをアロケート
    3. 移行先の仮想CKDディスクにファイル単位でリストア($FILREST,$CREATESEQ等)
  • ボリューム単位で移行する場合
    1. 移行元のCKDディスクをボリューム単位でセーブ($VOLSAVEなど)
    2. 移行先の仮想CKDディスクにボリューム単位でリストア($VOLRESTなど)
    3. $VCKDMTNのALTER機能で二重化ファイルを非二重化ファイルに変換

Q7移行元CKDディスクについてトラックオーバフローレコード形式のファイルの有無を確認する方法を教えてください。
A7

$VOLCONTSで移行元CKDディスクのファイル一覧を出力し、トラックオーバフローレコード形式のファイルの有無を確認してください。
なお、トラックオーバフローレコード形式とは以下に示すレコード形式のファイルです。
レコード形式:FT,FBVT,VT,VBT

Q8トラックオーバフローレコード形式のファイルを含んだボリュームはどのように移行すればよいですか?
A8

仮想CKDディスク上ではトラックオーバフローレコード形式のファイルを使用できないので、トラックオーバフローレコード形式以外のレコード形式に移行する必要があります。

  • ファイル単位で移行する場合
    1. 移行元のCKDディスクからトラックオーバフローレコード形式のファイルをファイル単位でセーブ($FILSAVE,$CREATESEQ等)
    2. 移行先の仮想CKDディスクにレコード形式を変更してファイルをアロケート
    3. 移行先の仮想CKDディスクにファイル単位でリストア($FILREST,$CREATESEQ等)
  • ボリューム単位で移行する場合
    1. 移行元のCKDディスクからトラックオーバフローレコード形式のファイルをファイル単位でセーブ($FILSAVE,$CREATESEQ等)
    2. 移行元のCKDディスクからボリューム単位でセーブ($VOLSAVEなど)
    3. 移行先の仮想CKDディスクにボリューム単位でリストア($VOLRESTなど) (注1)
    4. $VCKDMTNのALTER機能でトラックオーバフローレコード形式のファイルを削除
    5. 移行先の仮想CKDディスクにレコード形式を変更してファイルをアロケート
    6. 移行先の仮想CKDディスクに(1)でセーブしたファイルをリストア
  • (注1)ボリューム単位のリストアでエラーが発生しますが、移行先の仮想CKDディスクにトラックオーバフローレコード形式のファイルが不正な状態で存在することになります。削除する必要があるため、$VCKDMTNのALTER機能を実行します。

Q9バックアップ/リストアは、仮想CKDディスクとして$VOLSAVE/$VOLRESTで実施するのと、FBAディスクとして$AMSで実施するのとではどちらがよいですか?
A9

仮想CKDディスクを組み込み中に仮想CKDディスクとしてバックアップ/リストアを行うには、$VOLSAVE/$VOLRESTで実施してください。
$AMSでFBAディスクとしてのバックアップ/リストアを行う場合は、仮想CKDディスクを「VCKD V」コマンドで切り離してOFFLINE状態にしてからバックアップ/リストアを行ってください。

Q10CKDディスクから仮想CKDディスクへの移行した場合、実体であるFBAディスクへのI/O回数はCKDディスクへのI/O回数と変わりますか?
A10

仮想CKDを作成したFBAディスクへのI/O回数は、CKDディスクのときの実I/O回数と異なります。基本的には入力系のI/Oでは減少し、出力系のI/Oでは増加します。
実I/Oが多いディスクに対しては、ディスク毎のI/Oバッファ量を予め多く割り当てることで物理I/O回数を減らすことができます。