mtio(7) mtio(7)
NAME
mtio - Magnetband-Schnittstelle
BESCHREIBUNG
Das IOS-Band-Subsystem /dev/iosb/[r]stapeppu[c][h][n][o][v][g] wird
als Magnetband-Schnittstelle benutzt. Weitere Informationen hierzu
finden Sie unter stape(7).
Bei E/A-Subsystemen haben Dateinamen für Magnetbänder folgendes Format:
/dev/iosb/[r]stapeppu[c][h][n][o][v][g]
b Gibt die Nummer des rechnereigenen Busses für das Subsystem an
(immer 0).
r Gibt das zeichenorientierte Gerät (raw) an.
pp Gibt abhängig vom Subsystem die Controller-Nummer(n) an. Weitere
Informationen hierzu finden Sie unter stape(7).
u Die Nummer des SCSI-Plattenlaufwerks. Dabei handelt es sich um
eine Nummer im Bereich 0 bis 15. Die Werte 10 bis 15 werden in
hexadezimaler Form als a bis f dargestellt. Es ist darauf zu ach-
ten, daß die Geräteadresse nicht mit der SCSI-ID des Host-Adap-
ters kollidiert.
h Gibt das Gerät hoher Schreibdichte an.
n Gibt an, daß das Band beim Schließen des Geräts nicht zurückge-
spult wird.
c Gibt das Gerät mit Datenkomprimierung an.
o Gibt das OSX-Gerät an, daß beim Schließen nicht zurückgespult
werden soll.
v Gibt bei Geräten, bei denen der variable und feste Blockmodus
möglich ist, den variablen Blockmodus an.
g Bei diesen Geräten kann über eine ioctl-Schnittstelle direkt mit
den entsprechenden SCSI-Befehlen auf das Laufwerk geschrieben
bzw. von dem Laufwerk gelesen werden.
Bei Bedarf können die Dateien /dev/rmt0, /dev/rmt4, /dev/rmt8 und
/dev/rmt12 als Bindeglied zu dem Gerät in /dev/ios0 angelegt werden.
Die rmt-Dateien werden wie folgt eingebunden:
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
mtio(7) mtio(7)
rmt0 Gibt das Standardgerät niedriger Schreibdichte an.
rmt4 Gibt an, daß das Band beim Schließen des Geräts nicht
zurückgespult wird.
rmt8 Gibt das Gerät hoher Schreibdichte an.
rmt12 Gibt das Gerät hoher Schreibdichte an, das beim Schlie-
ßen nicht zurückgespult werden soll.
Bei Neun-Spur-Bandlaufwerken entspricht eine niedrige Schreibdichte je
nach Gerätetyp entweder 800 oder 1600 bpi (bits per inch) und eine
hohe Schreibdichte entweder 1600 oder 6250 bpi. Bei QIC-Bandlaufwerken
(Quarter-Inch Compatible) hängen die Werte bei niedriger und hoher
Schreibdichte vom benutzten Band und vom Gerätetyp ab. Für Bandlauf-
werke vom Typ DDS (Digital Data Storage)/DAT (Digital Audio Tape) sind
eine niedrige und hohe Schreibdichte gleich (es ist nicht falsch, ein
Gerät mit hoher Schreibdichte anzugeben, aber das Laufwerk reagiert
nicht anders).
Das Verhalten des Bandlaufwerks beim Schließen des Geräts hängt davon
ab, mit welchen Zugriffsberechtigungen das Gerät geöffnet und für wel-
chen Zweck es benutzt wurde.
So schreibt das Standardbandlaufwerk (z. B. /dev/ios0/rstape004) beim
Schließen des Geräts zwei Bandmarken (eine Bandmarke bei einem QIC-
Bandgerät) auf das Band und spult das Band an den Anfang zurück (BOT -
Beginning-of-Tape), wenn es zum Schreiben geöffnet worden ist. Wenn es
dagegen zum Lesen geöffnet worden ist, wird es beim Schließen des Geräts
lediglich zum Bandanfang zurückgespult. Die Daten werden mit der Stan-
dardschreibdichte des jeweiligen Laufwerks auf das Band geschrieben.
Ein Band hoher Schreibdichte (z. B. /dev/ios0/rstape004h) verhält sich
wie das oben beschriebene Standardband, nur werden die Daten mit hoher
Schreibdichte (der Wert ist gerätespezifisch) auf das Band geschrie-
ben.
Ein Band ohne Rückspulfunktion (z. B. /dev/ios0/rstape004hn oder
/dev/ios0/rstape004n) weist wesentliche Unterschiede zum Standardband
auf. Wenn das Gerät zum Schreiben geöffnet worden ist, werden beim
Schließen zwei Bandmarken auf das Band geschrieben (eine Bandmarke,
wenn es sich um ein QIC-Laufwerk handelt); zusätzlich wird das Band
hinter der ersten Bandmarke positioniert. Wenn das Gerät zum Lesen
geöffnet worden ist, wird das Band hinter der Bandmarke positioniert.
Wenn Sie daher gerade ein Band lesen, das Gerät schließen und das Band
sich aktuell nicht hinter einer Bandmarke befindet, führt der Treiber
das Kommando fsf (Forward Space File) durch, um das Band hinter der
nächsten Bandmarke zu positionieren. Wenn Sie das Gerät zum Lesen
geöffnet haben, das Gerät schließen und das Band aktuell exakt hinter
einer Bandmarke positioniert ist, bleibt seine Position unverändert.
Die Schreibdichte, mit der die Daten auf das Band geschrieben werden,
hängt davon ab, ob das Gerät mit der Option h geöffnet worden ist.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
mtio(7) mtio(7)
Ein OSX-Band ohne Rückspulfunktion (z. B. /dev/ios0/rstape004o) ver-
hält sich wie ein Standardband ohne Rückspulfunktion mit dem Unter-
schied, daß das OSX-Band nach Lesezugriffen nicht positioniert wird.
Derzeit wird nur die zeichenorientierte Schnittstelle (raw) vom IOS-
Band-Subsystem unterstützt. Der Zugriff auf ein blockorientiertes
IOS-Bandgerät führt zur Übergabe des Fehlers EINVAL.
Wird ein Band als blockorientiertes Gerät gelesen, muß das Band mit
2048 Byte großen Sätzen beschrieben worden sein. Dies kann mit einem
zeichenorientierten Gerät geschehen. Anschließend kann das blockorien-
tierte Gerät gelesen werden, vorausgesetzt, es wird unterstützt. Das
Band wird in Sätzen von jeweils 2048 Byte gelesen. Mit dieser Methode
ist es möglich, wenn auch ineffizient, ein blockorientiertes Bandgerät
wie eine beliebige andere Datei zu behandeln. Plattenzugriffe haben
ihre übliche Bedeutung und es ist möglich, jeweils 1 Byte zur Zeit zu
lesen. Das Schreiben in sehr kleinen Einheiten ist jedoch nicht emp-
fehlenswert, da dadurch in Bändern mit variabler Blockgröße sehr große
Lücken zwischen den Sätzen entstehen können. Dies kann sich negativ
auf den Durchsatz auswirken.
Bei jedem Aufruf von read oder write wird der nächste Datensatz auf
dem Band entweder gelesen oder geändert. Bei einem write-Aufruf ent-
spricht die Länge des Datensatzes der Länge des vorhandenen Puffers.
Bei einem read-Aufruf wird die Datensatzlänge als Anzahl der eingele-
senen Bytes zurückgegeben, vorausgesetzt, sie übersteigt nicht die
Puffergröße; andernfalls wird ein Fehler ausgegeben. E/A-Suchoperatio-
nen auf ein Raw-Band werden ignoriert. Beim Lesen einer Bandab-
schnittsmarke wird der Zählerwert Null Byte zurückgegeben. Danach wer-
den weiterhin Lesezugriffe ausgeführt, bis eine weitere Bandmarke
gefunden oder ein weiterer Fehler (z. B. Bandende) festgestellt wird.
Für Raw-Magnetbänder gibt es eine Reihe von ioctl-Operationen. Die
folgenden Informationen sind in /usr/include/sys/mtio.h enthalten:
/*
* Strukturen und Definitionen für E/A-Steuerkommandos auf Magnetbänder
*/
/* Struktur für MTIOCTOP - Kommando für Magnetband-Operationen */
struct mtop
{
short mtop; /* Nachfolgend definierte Operationen */
daddrt mtcount; /* Anzahl */
};
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
mtio(7) mtio(7)
/* Operationen */
#define MTWEOF 0 /* Dateiende-Datensatz schreiben */
#define MTFSF 1 /* Zum Anfang der nächsten Datei vorspulen */
#define MTBSF 2 /* Zum Anfang der vorhergehenden Datei
zurückspulen */
#define MTFSR 3 /* Zum Anfang des nächsten Datensatzes
vorspulen */
#define MTBSR 4 /* Zum Anfang des vorhergehenden Datensatzes
zurückspulen */
#define MTREW 5 /* Zurückspulen */
#define MTOFFL 6 /* Zurückspulen und Laufwerk offline schalten */
#define MTNOP 7 /* Keine Operation, nur Einstellen des Status */
#define MTRET 8 /* Nachspannen */
#define MTRST 9 /* Rücksetzen */
#define MTBLKSIZE 10 /* Blockgröße abfragen */
#define MTONL 11 /* Laufwerk online schalten */
#define MTAPP 12 /* Zum Datenende vorspulen */
#define MTERA 13 /* Band auf fester Länge löschen */
#define MTRETEN 14 /* Nachspannen (nur Bandkassette) */
#define MTWSM 15 /* Wird derzeit nicht benutzt */
#define MTFSSM 16 /* Wird derzeit nicht benutzt */
#define MTBSSM 17 /* Wird derzeit nicht benutzt */
#define MTRELOF 18 /* Permanentes Reservieren */
/* Struktur für MTIOCGET - Kommando zum Abfragen des Bandstatus */
struct mtget
{
short mttype; /* Art des Magnetbandgeräts */
/* Die beiden folgenden Register sind geräteabhängig */
short mtdsreg; /* Register "Gerätestatus" */
short mterreg; /* Register "Fehler" */
/* Ende der geräteabhängigen Register */
daddrt mtresid; /* Restzähler */
/* Die beiden folgenden Aufrufe sind noch nicht implementiert */
daddrt mtfileno; /* Dateinummer der aktuellen Position */
daddrt mtblkno; /* Blocknummer der aktuellen Position */
/* Ende der noch nicht implementierten Aufrufe */
};
/*
* Konstanten für das Byte mttype
*/
#define MTTIOC 0x08 /* IOC/Tapemaster-Bandlaufwerk */
#define MTTTPE 0x09 /* TPE/Pertec-Bandlaufwerk */
#define MTTIOS 0x0a /* IOS-Bandlaufwerk */
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
mtio(7) mtio(7)
/* Steuerkommandos für Magnetband-E/A */
#define MTIOC ('t'<<8)
#define MTIOCTOP (MTIOC|1) /* Magnetband-Operation ausführen */
#define MTIOCGET (MTIOC|2) /* Magnetband-Status abfragen */
#define MTIOCPOSTEOTOK (MTIOC|3) /* Schreiben hinter Bandende (EOT)
möglich */
#define MTIOCEOTCOMPAT (MTIOC|4) /* EOT-Kompatibilität EIN */
#define MTIOCGETIOSTAT (MTIOC|5) /* E/A-Zeitpunkt abfragen */
#define MTIOSGETERROR (MTIOC|6) /* Fehlerstatus abfragen */
Wird der Knoten eines Bandgerätes geöffnet, so reserviert der Band-
Treiber dieses Gerät für die Dauer des Auftrages und gibt es nach dem
Schließen wieder frei. Hochleistungsbandlaufwerke verfügen manchmal
über zwei unabhängige SCSI-Busse und können somit zur gleichen Zeit an
zwei Systeme gleichzeitig angeschlossen werden. Aus diesem Grund wurde
das ioctl-Kommando MTRELOF eingeführt, damit sich eines der ange-
schlossenen Systeme das Bandlaufwerk über mehrere Aufträge hinweg per-
manent reservieren kann. Das ioctl-Kommando MTRELOF besitzt eine
eigene Struktur zur Kommunikation mit dem Betriebssystem. Außer dem
permanenten Reservieren und dem Freigeben kann auch der Reservierungs-
status eines Bandgerätes abgefragt werden.
/* Struktur für MTRELOF-Kommando zum permanenten
Reservieren von Bandgeräten */
struct resrel {
short rescmd; /* Kommando zum Reservieren, Abfragen */
/* oder zum Feststellen des Status */
short stat; /* Rückgabe des Reservierungsstatus */
};
/* Definitionen der Kommandos und zurückgegebenen Status */
#define RESRELEASE 0
/* Kommando zum Freigeben einer Reservierung */
#define RESRESERVE 1
/* Kommando zum permanenten Reservieren */
#define RESSTATUS 2
/* Kommando zur Abfrage des Reservierungsstatus */
#define RESRESERVELOCAL 3
/* Status in resrel.stat, wenn das Gerät vom */
lokalen System aus reserviert wurde */
#define RESRESERVEREMOTE 4
/* Status in resrel.stat, wenn das Gerät vom */
remote-System aus reserviert wurde */
#define RESUNDEF 5
/* Status in resrel.stat, wenn der Reservierungsstatus */
nicht ermittelt werden konnte */
Konnte einer Reservierung oder die Freigabe des Laufwerkes nicht
durchgeführt werden, wird die Variable errno auf die Werte EIO oder
EACCES gesetzt. Lautet der Wert EACCES (kein Zugriffsrecht), so wurde
das Gerät von einem anderem System aus reserviert.
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98
mtio(7) mtio(7)
Neben den hier dargestellten ioctl(2)-Operationen stehen im Band-
Treiber alle Operationen des generischen sgen-Treibers zur Verfügung.
Dies ist für alle Bandgeräte mit angeschlossenem Medienwechsler ver-
wendbar, wenn der Medienwechsler und das Bandlaufwerk eine gemeinsame
SCSI-ID besitzen und somit über einen Knoten angesprochen werden. Mit
Hilfe dieser Schnittstelle können Datenträger z. B in das eigentliche
Laufwerk geladen und in den entsprechenden Slot entladen werden. Soll
mittels SCSI-Befehlen direkt auf das Band geschrieben oder vom Band
gelesen werden, so ist der Knoten mit der Endung "g" (z. B.
/dev/ios0/rstape0XXg) zu verwenden. Knoten mit dieser Endung existie-
ren aber nur für hoch performante Laufwerke. Alle notwendigen Informa-
tionen zu dieser ioctl-Schnittstelle können der Manualseite sgenio(7)
entnommen werden.
DIAGNOSE
Im folgenden sind sämtliche Fehlerbedingungen aufgeführt, die während
des Bandbetriebs auftreten können. Jede Fehlerbedingung wird durch
eine kurze Beschreibung ergänzt, in der die Ursache des Fehlers sowie
der Zustand des Bands nach dem Auftreten des Fehlers erläutert wird.
Beginning-of-Tape (BOT) encountered
Während der letzten Bandoperation wurde die physische BOT-Markie-
rung (Folie) vom Laufwerk festgestellt. Die gerade laufende Ope-
ration wird als fehlgeschlagen betrachtet, und der Fehler EIO
wird zurückgegeben. Wenn das Laufwerk als blockorientiertes Gerät
genutzt wurde, wird beim Feststellen der BOT-Bedingung intern ein
Status aktiviert, in dem bis zum Schließen und erneuten Öffnen
des Laufwerks keine weiteren Operationen mehr auf das Band ausge-
führt werden können. Da es nach einer BOT-Bedingung nicht sicher
ist, welche Stelle des Bands sich am Schreib-/Lesekopf befindet,
wird durch das Setzen dieses Status eine unkorrekte Bandpositio-
nierung verhindert.
Attempt to read blank tape or density mismatch
Nach dem Start der aktuellen Operation konnte das Laufwerk inner-
halb einer bestimmten Bandlänge keine formatierten Daten auf dem
Band feststellen. (HINWEIS: Diese Bandlänge ist auf jedem Lauf-
werk unterschiedlich festgelegt). Bei dieser Fehlerbedingung wird
der Fehler EIO an den Benutzer zurückgegeben; alle gefundenen
Daten sollten gelöscht werden. Wenn das Laufwerk als blockorien-
tiertes Gerät genutzt wird, wird beim Feststellen eines leeren
Bands intern ein Status aktiviert, in dem bis zum Schließen und
erneuten Öffnen des Laufwerks keine weiteren Operationen mehr auf
das Band ausgeführt werden können. Da es nach einer BOT-Bedingung
nicht sicher ist, welche Stelle des Bands sich am Schreib-/Lese-
kopf befindet, wird durch das Setzen dieses Status eine unkor-
rekte Bandpositionierung verhindert. Diese Fehlerbedingung kann
auch dadurch verursacht werden, daß die Schreibdichte nach dem
Einlegen eines Bands manuell geändert wurde und die Formatinfor-
mationen vor dem ersten Block des Bands (Identitäts-Burst) gele-
sen werden. Einige Bänder scheinen danach für das Laufwerk leer
zu sein, so daß der Fehler für ein leeres Band gemeldet wird.
Seite 6 Reliant UNIX 5.44 Gedruckt 11/98
mtio(7) mtio(7)
Correctable error
Während der letzten Bandoperation stellte das Laufwerk einen
behebbaren Fehler fest. Handelte es sich dabei um einen Lesezu-
griff, bleiben die Daten unverändert erhalten; der Benutzer
erhält dann keine Fehlermeldung, obwohl für das System ein Fehler
protokolliert worden ist. Handelte es sich um einen Schreibzu-
griff und das Kommando wfm (Write File Mark), so wird dem Benut-
zer erst nach einigen erneuten Versuchen der Fehler EIO gemeldet.
Das Band wird zum jeweils letzten Datensatz zurückgespult, das
Band wird auf einer festen Länge gelöscht, und die E/A-Operation
wird erneut versucht. Wenn auch der neue Versuch fehlschlägt,
wird der Treiber in einem Status gelassen, in dem bis zum Schlie-
ßen und erneuten Öffnen des Geräts keine weiteren Operationen auf
das Laufwerk mehr möglich sind.
Drive is already in use
Das Laufwerk ist bereits durch einen anderen Prozeß geöffnet wor-
den. An den Benutzer wird der Fehler EBUSY zurückgegeben.
Drive not ready (offline)
Das Laufwerk ist während bzw. unmittelbar vor der letzten Bando-
peration physisch offline geschaltet worden; an den Benutzer wird
der Fehler ENXIO zurückgegeben. Zur Beseitigung der Fehlerbedin-
gung wird das Laufwerk vor dem Starten der nächsten Operation
wieder offline geschaltet. Wenn das Laufwerk als blockorientier-
tes Gerät genutzt wird, wird das Gerät beim Offline-Schalten mit
einem schweren Fehler markiert; bis zum Schließen und erneuten
Öffnen des Laufwerks sind dann keine weiteren Operationen mehr
möglich. Da es nach dem Offline-Schalten des Laufwerks nicht
sicher ist, welche Stelle des Bands sich am Schreib-/Lesekopf
befindet, wird durch das Setzen dieses Status eine unkorrekte
Bandpositionierung verhindert.
Drive write protected
Es wurde versucht, das Laufwerk zum Schreiben zu öffnen, obwohl
das Band schreibgeschützt war (es war kein Schreibschutzring ein-
gelegt bzw. unkorrekte Einstellung der Schreibschutzlasche). An
den Benutzer wird der Fehler ENXIO zurückgegeben; das Gerät wird
nicht geöffnet. Das Band muß dann erneut mit dem Schreibschutz-
ring (bzw. mit korrekt eingestellter Schreibschutzlasche) einge-
legt werden - es sei denn, Sie möchten das Gerät nur zum Lesen
öffnen.
End-of-File (EOF/FM) encountered:
Während der letzten Operation wurde vom Laufwerk eine Bandmarke
festgestellt. Dies wird auf Benutzerebene in den Rückgabewert
Null Byte umgesetzt. Der Schreib-/Lesekopf befindet sich mit
Sicherheit am Anfang des nächsten Datensatzes. Wenn das Laufwerk
als blockorientiertes Gerät genutzt wird, wird beim Feststellen
einer Bandmarke intern ein Status eingestellt, in dem so lange
keine weiteren Lese- oder Suchoperationen in Vorwärtsrichtung
mehr möglich sind, bis das Band wieder zurückgespult wird (lseek
Seite 7 Reliant UNIX 5.44 Gedruckt 11/98
mtio(7) mtio(7)
in Rückwärtsrichtung) und die Bandmarke durch zusätzliche Daten
überschrieben wird.
End-of-Tape (EOT) encountered
Die Band-E/A-Operationen am Bandende (EOT) sind folgendermaßen
festgelegt:
SCHREIBOPERATIONEN:
Die Schreiboperationen werden so lange fortgesetzt, bis die EOT-
Markierung (Ende der Bandspule) festgestellt wird. Der Software-
treiber protokolliert diese Bedingung; da er jedoch davon aus-
geht, daß die Schreiboperation vollständig durchgeführt wurde,
(Anzahl der zurückgegebenen Bytes entspricht Anzahl der angefor-
derten Bytes), wird dem Benutzer kein Fehler gemeldet. Bei jeder
nachfolgenden Schreiboperation wird dem Benutzer ein Fehler
(ENOSPC) gemeldet, wobei das Band nicht bewegt wird.
LESEOPERATIONEN:
Die Leseoperationen werden so lange fortgesetzt, bis die EOT-
Markierung festgestellt wird. Dem Benutzer wird kein Fehler
gemeldet. Das Einlesen kann so lange fortgesetzt werden, bis die
Eingabe vollständig verarbeitet worden ist, eine Bandmarke
(zurückgegebener Zählerwert Null Byte) festgestellt wird oder der
Treiber eine Fehlermeldung über ein leeres Band zurückgibt.
In früheren Betriebssystemversionen wurde die EOT-Bedingung
anders verarbeitet als hier beschrieben; sie wurde von einigen
Kommandos wie z. B. cpio als Ende der Bandspule interpretiert.
Datenarchive über mehrere Magnetspulen, die mit derartigen Kom-
mandos angelegt wurden, müssen beim Rückspeichern mit den neuen
Subsystemen in manchen Fällen gesondert behandelt werden. Zu die-
sem Zweck gibt es die neue ioctl-Funktion MTIOCEOTCOMPAT.
MTIOCEOTCOMPAT zwingt den Softwaretreiber, bei dieser Bedingung
einen Fehler zu melden. Zusätzlich muß der Softwaretreiber mit
einem bestimmten Argument angewiesen werden, die Meldung von EOT
um eine bestimmte Anzahl von Leseoperationen zu verzögern. Hier
wird in der Regel der Wert 1 angegeben; allerdings kann für Bän-
der, die in Kennedy-Bandlaufwerken mit 6250 bpi beschrieben wer-
den, der Wert 2 erforderlich sein. Der Grund hierfür liegt in den
verschiedenen Möglichkeiten, wegen dener die Laufwerke die Bedin-
gung EOT feststellen und melden sowie im Einfluß der Blockgröße
und der Schreibdichte auf diese Informationen. Die ioctl-Funktion
MTIOCEOTCOMPAT kann zu einem beliebigen Zeitpunkt nach dem Öffnen
eines Geräts und vor dem Feststellen von EOT aufgerufen werden.
FIFO over/underflow
Während der letzten Bandoperation kam es in der FIFO des Lauf-
werks zu einem Unterlauf (es war gerade ein write-Aufruf aktiv)
oder einem Überlauf (es war gerade ein read-Aufruf aktiv). Der
Fehler EIO wird dem Benutzer erst nach einigen erneuten Versuchen
Seite 8 Reliant UNIX 5.44 Gedruckt 11/98
mtio(7) mtio(7)
gemeldet. Sowohl bei einem Unter- als auch einem Überlauf wird
das Band um einem Datensatz zurückgespult und die E/A-Operation
erneut versucht. Wenn die erneuten Versuche fehlschlagen, bleibt
der Treiber in einem Status, in dem bis zum Schließen und erneu-
ten Öffnen des Geräts keine weiteren Operationen mehr möglich
sind.
Hard error
Während der letzten Band-Operation wurde ein Defekt auf dem Band
festgestellt. EIO wird dem Benutzer erst nach einigen erneuten
Versuchen gemeldet. Handelte es sich um einen Lesezugriff, wird
das Band zum vorhergehenden Datensatz zurückgespult, und die
E/A-Operation wird erneut versucht. Handelte es sich um eine
Schreiboperation, wird das Band auf einer festen Länge gelöscht,
und die E/A-Operation wird erneut versucht. Wenn die erneuten
Versuche fehlschlagen, bleibt der Treiber in einem Status, in dem
bis zum Schließen und erneuten Öffnen des Geräts keine weiteren
Operationen mehr möglich sind.
Reservation conflict
Es wurde auf ein Bandlaufwerk zugeriffen, das bereits von einem
anderen System reserviert wurde. Moderne Hochleistungsbandlauf-
werke bieten zum Teil die Möglichkeit, an zwei Systeme gleichzei-
tig angeschlossen zu werden, da sie über zwei unabhängige SCSI-
Busse verfügen. Hat eines der Systeme das Bandlaufwerk permanent
reserviert und versucht das zweite System auf das Bandlaufwerk
zuzugreifen, wird ein Reservation conflict gemeldet.
Parity error
Während der letzten Bandoperation kam es bei der Datenübertragung
auf das Band zu einem Paritätsfehler. EIO wird dem Benutzer erst
nach einigen erneuten Versuchen gemeldet. Das Band wird zum vor-
hergehenden Datensatz zurückgespult, und die E/A-Operation wird
erneut versucht. Wenn die erneuten Versuche fehlschlagen, bleibt
der Treiber in einem Status, in dem bis zum Schließen und erneu-
ten Öffnen des Geräts keine weiteren Operationen mehr möglich
sind.
Timeout on formatter - busy true
Während einer früheren Operation wurde vom Bandformatierer des
Laufwerks ein Fehler festgestellt; die Schnittstelle blieb in
einem undefinierten Status. Die nachfolgende Operation konnte
nicht ausgeführt werden, da eines der Schnittstellensignale (for-
matter - busy) nicht innerhalb eines bestimmten Zeitlimits
zurückgesetzt wurde. Die Ursache für diesen Fehler ist in den
meisten Fällen der Versuch, Blöcke zu schreiben, die von der
Speicherverwaltungs-Firmware eines Bandlaufwerks mit Cache-
Speicher wegen ihrer Größe nicht verarbeitet werden können.
Seite 9 Reliant UNIX 5.44 Gedruckt 11/98
mtio(7) mtio(7)
HINWEISE
Post-EOT I/O:
Post-EOT I/O (E/A hinter EOT-Markierung) ist eine Einrichtung,
mit der Daten auf Bänder im Nicht Reliant UNIX Format geschrieben
werden können, die nach einem EOT Postambel-Informationen auf ein
Band schreiben möchten (z. B. EOV). Bänder, die auf diese Weise
formatiert wurden, können jetzt zurückgelesen werden. Diese Ein-
richtung arbeitet folgendermaßen:
SCHREIBOPERATIONEN:
Nach der EOT-Markierung ist unter zwei Bedingungen eine weitere
E/A-Operation zulässig: Zum einen, wenn das betreffende Bandgerät
als Gerät ohne Rückspulfunktion geöffnet worden ist (dafür muß
Bit 2 der Gerätenummer gesetzt sein). Beim Schließen des Bands
bei einem EOT wird ein Status aktiviert, in dem E/A-Operationen
beim nachfolgenden Öffnen des Geräts auch hinter der EOT-Markie-
rung möglich sind. Beachten Sie, daß eine Bandmarke zwischen den
Bandabschnitten vor und hinter der EOT-Markierung auf dem Band
verbleibt. Bei der zweiten Bedingung muß kein spezielles Gerät
geöffnet, sondern beim Feststellen der EOT-Bedingung die ioctl-
Funktion MTIOCPOSTEOTOK aufgerufen werden. Dadurch können weitere
E/A-Operationen ausgeführt werden, ohne daß das Gerät geschlossen
werden muß; außerdem bleibt keine zwischengeschaltete Bandmarke
auf dem Band. In beiden Fällen sind maximal acht weitere E/A-
Operationen zulässig. Danach wird der Fehler EIO ausgegeben. Die-
ser Status bleibt für alle weiteren Schreibzugriffe und auch nach
allen weiteren open-Aufrufen aktiv, bis eine der folgenden zwei
Operationen durchgeführt wird: das Gerät wird geschlossen
und/oder zurückgespult, oder der Schreib-Lese-Kopf wird mit dem
ioctl-Funktionsaufruf BSR/BSF vor der EOT-Markierung positio-
niert.
LESEOPERATIONEN:
Es werden weiterhin Leseoperationen durchgeführt, bis die EOT-
Bedingung festgestellt wird. Dem Benutzer wird kein Fehler gemel-
det. Die Leseoperationen können so lange durchgeführt werden, bis
die gesamte Eingabe verarbeitet ist, eine Bandmarke (zurückgege-
bener Zählerwert Null Byte) festgestellt wird oder der Treiber
eine Fehlermeldung über ein leeres Band zurückgibt. HINWEIS: Wenn
ein Band in einem derartigen System erstellt wurde und die erste
Bedingung (Schließen und Neuöffnen des Geräts ohne Rückspulfunk-
tion bei EOT; siehe Absatz oben) zutrifft, wird die zwischenge-
schaltete Bandmarke festgestellt. Dies sollte in allen Programmen
vorgesehen werden, die für das Lesen derartiger Bänder konzipiert
sind.
Seite 10 Reliant UNIX 5.44 Gedruckt 11/98
mtio(7) mtio(7)
DIAGNOSE
Der Status sollte in einem geräteunabhängigen Format zurückgegeben
werden.
Die SCSI-Status-Bytes werden für IOS-Bänder nicht zurückgegeben.
DATEIEN
/dev/iosb/[r]stapeppu[c][h][n][o][v][g]
/dev/rmt*
SIEHE AUCH
cpio(1), mt(1), tar(1), sgenio(7), stape(7), autoconf(8), tpsetup(8).
Seite 11 Reliant UNIX 5.44 Gedruckt 11/98