BS2000 unterstützt Dateien und Pubsets mit einer Kapazität bis zu 4 Terabyte und Volumes bis zu 2 Terrabyte. Diese werden „große Dateien“, „große Pubsets“ und „große Volumes“ genannt.
Die von BS2000 unterstützten Grenzwerte betragen:
Die maximale Kapazität eines Pubsets oder Volume-Sets beträgt ca. 4TB.
Die maximale Kapazität einer einzelnen Platte beträgt ca. 2 TB.
Die maximale Dateigröße beträgt ca. 4 TB (entspricht der maximalen Größe eines Pubsets oder Volume-Sets abzüglich SVL, F5-Label und Systemdateien).
Große Dateien und große Volumes werden nur in speziellen Pubsets unterstützt, die für die Verwendung dieser großen Objekte vom Systembetreuer attributiert werden müssen.
Erweiterung des Katalogeintrags
Zentral für die Aufhebung der 32-GB-Grenze für die Volume- und Dateigröße ist die Einführung von 4-Byte-Feldern für folgende im Katalogeintrag abgelegte Daten:
FILE-SIZE, der für die Datei allokierte Speicherplatz
HIGHEST-USED-PAGE, der davon aktuell durch Daten belegte Speicherplatz
LHP (Logical halfpage number) und PHP (physical halfpage number) der einzelnen Extents in der Extent-Liste, die den logischen Halbseiten „physikalische“ Halbseiten von Volumes zuordnet.
3-Byte- und 4-Byte-Felder
Blocknummern und Blockzähler sind an verschiedenen Benutzerschnittstellen des BS2000 sichtbar. Während alle neueren Ausprägungen dieser Schnittstellen konsequent 4-Byte-Felder verwenden, werden bei manchen älteren Schnittstellenversionen 3-Byte-Felder verwendet. Hier ist beim Vorhandensein von Dateien >= 32 GB und in seltenen Fällen auch bei Volumes >= 32 GB mit Kompatibilitätsproblemen zu rechnen.
Neues Format für die Extent-Liste
Mit Einführung von 4-Byte-Feldern für LHP und PHP wurde für die Extent-Liste auch ein neues (zusätzliches) Format eingeführt.
Der Zusammenhang zwischen der maximalen Größe von Datenträgern und Dateien und der Feldbreite von LHP und PHP wird in Bild 6 dargestellt:
Bild 6: Datei- und Datenträgergröße im Zusammenhang mit der Feldbreite von LHP und PHP
Aus Kompatibiltätsgründen unterstützt BS2000 beide Formate der Extent-Liste wie folgt:
Grundsätzlich wird das „alte“ Format mit 3-Byte-Blocknummern verwendet.
Nur im Fall von großen Dateien oder von Dateien, für deren Adressierung PHPs > X'FFFFFF' benötigt werden, wird das neue Format mit 4-Byte-Blocknummern verwendet.
Extent-Listen enthalten also entweder Extents mit 3-Byte-Blocknummern oder Extents mit 4-Byte-Blocknummern.
Einschränkungen für große Dateien
Eine SYSEAM-Datei darf keine Datei >= 32 GB sein.
Dateien mit BLKCTRL=PAMKEY:
Im Systemteil des Pamkey ist die logische Seitennummer als 3-Byte-Feld hinterlegt.
Übersicht über die 32-GB-relevanten DVS-Makro-Schnittstellen
Schnittstelle | Änderung |
FCB | neuer Operand für große Dateien |
FILE | neuer Operand für große Dateien |
FSTAT | Prüfungs- und Umstellungsaufwand bei VERSION=0/1 |
OPEN | Semantikproblem beachten |
RDTFT | Ausgabe des Dateiattributes „große Datei“ |
DIV | neuer Operand für große Dateien; |
FPAMACC | vergrößerter Wertebereich für BLOCK |
FPAMSRV | neuer Operand für große Dateien |
Benutzerprogramme
Wie bereits erwähnt, kann man nicht davon ausgehen, dass alle Programme für den Zugriff auf große Objekte vorbereitet sind, d.h. mit 4 Byte breiten Blocknummern und Blockzählern zurecht kommen, wobei Benutzerprogrammen nur Schnittstellen für Zugriff auf und Bearbeitung von Dateien und deren Metadaten zur Verfügung stehen.
Dabei lässt sich das Verhalten von Programmen wie folgt klassifizieren:
Klasse A: | Ein Programm ist in der Lage, große Dateien ohne Einschränkung zu verarbeiten. Dieses Verhalten wird als LARGE_FILES-fähig bezeichnet. |
Klasse B: | Ein Programm ist zwar nicht auf die Bearbeitung großer Dateien und/oder ihrer Metadaten vorbereitet, ist aber in der Lage, entsprechende Zugriffe, die als fehlerhaft betrachtet werden müssen, definiert abzuweisen oder es erfolgen im Programm keine Zugriffe auf Dateien und ihre Metadaten. Dieses Verhalten wird als LARGE_FILES-kompatibel bezeichnet. |
Klasse C: | Ein Programm ist nicht auf die Bearbeitung großer Dateien vorbereitet und ist auch nicht in der Lage, entsprechende Zugriffe definiert abzuweisen. Dieses Verhalten wird als LARGE_FILES-inkompatibel bezeichnet. |
Für Konfigurationen, die große Dateien beinhalten, müssen LARGE_FILES-kompatible oder -fähige Programme vorausgesetzt werden. Dabei ist als Regelfall LARGE_FILES-Kompatibität zu sehen. Das Wachstum über 32 GB hinaus dürfte sich vorerst auf relativ wenige Dateien beschränken; nur Programme, die auf diese zugreifen, müssen LARGE_FILES-fähig sein.
Eine Konkretisierung dieser Klassifizierung für die relevanten DVS-Schnittstellen des BS2000 und weitere, ausführliche Informationen zum Thema finden Sie im Handbuch „Dateien und Volumes größer 32 GB“ [19].