GEBIET DER ERFINDUNG
Die vorliegende Erfindung bezieht sich auf Systeme und Verfahren zum
Emulieren eines Bandspeichers.
HINTERGRUND DER ERFINDUNG
Datensicherung ist ein wesentliches Element des Datenschutzprozesses
in jeder Organisation. Historisch schloss es das Senden einer Sicherungskopie der
Daten an eine Bandspeichervorrichtung mit ein. Exponentielles Datenwachstum, ein
schrumpfendes Sicherungsfenster, heterogene Plattformen und Anwendungen (eine offene
Systemumgebung) und steigende Stillstandszeitkosten sind einige der Datenspeicherherausforderungen
denen sich IT-Administratoren heutzutage gegenüberstehen sehen. Als Ergebnis
ist die Datensicherung jetzt typischerweise das Nr. 1 Speicherproblem für IT-Administratoren.
Eine herkömmliche Sicherungssystemarchitektur 10, wie
in 1 gezeigt, hat eine Sicherungsanwendung, die auf
einem Sicherungsserver 14 angesiedelt ist und als der Verwaltungspunkt
und die Steuerung für sowohl den Sicherungsprozess als auch die zugehörige
Bandhardware fungiert. Der Sicherungsserver 14 ist typischerweise in einem
lokalen Netzwerk (LAN) 16 angeordnet, in dem er mit mehreren lokalen Hosts
(zum Beispiel PC's und anderen Servern (nicht gezeigt), die Datensicherung benötigen)
und mit einer Bandbibliothek 18 verbunden ist. Es sind jetzt allerdings
eine Vielzahl von verschiedenen Sicherungsanwendungen von verschiedenen Anbietern
verfügbar, wobei jede mit verschiedenen Betriebssystemen, Speichersystemen
und Anwendungen kompatibel ist. Das Integrieren dieser verschiedenen Sicherungsanwendungen
in einer offenen Systemumgebung mit heterogenen Hosts und heterogenen Bandspeichersystemen
ist eine erhebliche Herausforderung.
Neben diesen Schwierigkeiten der Integration der verschiedenen Systeme,
ist das Sichern und Wiederherstellen von Band selbst von Natur aus arbeitsintensiv,
komplex und ein fehleranfälliger Prozess. Die Erfolgsrate bei der Bandsicherung
variiert zwischen 95 und 99 %; für die Bandwiederherstellung, was ein weniger
häufiger aber besonders kritischer Vorgang ist, ist sie sogar geringer. Die
Betriebskosten, die zur Bandsicherungs- und Wiederherstellungsverwaltung gehören,
steigen weiter, sowie die Komplexität des Systems und die Menge der Daten sich
vergrößern.
Als Ergebnis dieser Probleme wurden neue Datenschutzschemata vorgeschlagen.
Ein Vorgehen ist, einen plattenbasierten Cash (eine teure Form von vorübergehenden
Speicher, die typischerweise für Anwendungsdaten verwendet wird) zu integrieren,
um die Sicherungsleistung zu verbessern und die Wiederherstellungszeit zu verringern.
Eine andere Vorgehensweise ist, einen plattenbasierten Bibliotheksspeicher für
die Datensicherung zu verwenden, was ebenfalls eine teurere Alternative als Bandspeicherung
ist. Manche Systeme emulieren eine Bandspeichervorrichtung mit einer Plattenspeichervorrichtung.
In einem solchen Emulationssystem, das gewöhnlich in einer Computersystem(zugehöriger
Host und Speichervorrichtung)Umgebung verwendet wird, werden Bandanfragen in dem
Hostserver angenommen und in Plattenanfragen umgewandelt, so dass eine unveränderte
magnetische Plattenspeichervorrichtung eine magnetische Bandspeichervorrichtung
emulieren kann (als virtuell agieren kann).
Während sie einige der Probleme von herkömmlichen bandbasierten
Sicherungs- und Wiederherstellungsverfahren lösen, haben diese Vorgehensweisen
ihre eigenen Probleme erzeugt. Viele dieser neuen Vorgehensweisen können nicht
nahtlos in die Vielzahl von existierenden Sicherungsanwendungen und Prozeduren von
offenen Systemumgebungen integriert wird. Manche Vorgehensweisen benötigen
neue Systemhardware und ebenfalls Software. Andere sind zu teuer, benötigen
zusätzlichen Plattenspeicher, hauptsächlich (teure, mit hoher Leistung)
Speicherplattenarrays. Darüber hinaus vereinigen viele dieser Vorgehensweisen
nicht die Sicherungsdatenprozeduren, sondern sind Nischenlösungen, die nur
für einen Teil der Daten geeignet sind, die von einem Datencenter gehandhabt
werden.
Dahingegen war die Bandspeicherung zentral für die Datensicherung,
der Plattenspeicher war zentral für Anwendungsspeicher (d.h. Hauptspeicher),
der eher einen sofortigen Zugriff auf die Daten benötigt. Folglich wurden herkömmliche
Diskarrays für die Anwendungsspeicherleistung optimiert. Diese Speicherarrays
weisen RAID-Architekturen für die Datenverfügbarkeit auf, redundante Hilfssysteme
für die Zuverlässigkeit des vollständigen Datenarrays, Breitbandkanäle,
um einen hohen Durchsatz zu unterstützen und das Schreiben in Cashs, um Eingabe/Ausgabe
(I/O) Wartezeiten zu verringern. Wegen ihrer Kritikalität für den Systembetrieb, werden
Anwendungsspeicherarrays auch mit redundanten Komponenten (einschließlich der
Platten selbst) konstruiert, die entfernt und ausgetauscht werden können, ohne
den Systembetrieb zu unterbrechen (was als "Hotswap"-Fähigkeit bezeichnet wird).
Als Ergebnis ihrer vergrößerten Komplexität, kosten Anwendungsspeicherarrays
typischerweise wenigstens 10 mal des Betrages von rohem Plattenplatz.
Für die meisten Datenschutzanwendungen, und insbesondere für
die Sicherung, werden viele dieser Konstruktionskomplexitäten nicht benötigt.
Da Anwendungsspeichersysteme zusätzlich so konstruiert werden müssen,
dass das gesamte Datenarray zu jeder Zeit verfügbar ist, benötigen die
meisten Datenschutzanwendungen nur einen kleinen Anteil (zum Beispiel 10 % oder
weniger) der Daten aktiv zu jeder Zeit.
2 veranschaulicht eine verbesserte Sicherungsarchitektur
20, die sowohl einen Platten- als auch einen Bandspeicher aufweist. In
dieser schematischen Zeichnung sind mehrere Hosts 21 (zum Beispiel Computer)
durch ein LAN 22 verbunden. Mehrere Server 24, zum Beispiel Anwendungsserver
25, E-Mail Server 26, Webserver 27 und ein Sicherungsserver
28, auf denen die Sicherungsanwendung 29 angesiedelt ist, sind
durch ein Speichernetzwerk (SAN) 30 und mit LAN 22 verbunden.
Es existieren Datenpfade 32, 34, 35 zwischen dem Sicherungsserver
28 und jeder Plattenbibliothek 38, die als ein Ziel für Sicherungsdaten
dient, und Bandbibliothek 36, die als Ziel für Archivierungsdaten
dient.
Systeme dieser Art wurden ad hoc ausgeführt, um Sicherungszeiten
zu reduzieren und/oder das Vertrauen und die Vollständigkeit (Erfolgsrate)
der Sicherung innerhalb eines gegebenen Sicherungsfensters zu vergrößern.
Allerdings ist die Möglichkeit so eine Architektur zu skalieren, begrenzt,
insbesondere bei den offenen Systemumgebungen, die Ausstattung von mehreren verschiedenen
Anbietern aufweisen.
Folglich besteht ein Bedarf, ein Sicherungsdatenschutzsystem bereitzustellen,
das eine eher kosteneffektive Kombination von einigen (und vorzugsweise allen) der
folgenden Eigenschaften hat: Kapazität; Leistung; Verfügbarkeit; Kosten;
Kompatibilität; Einfachheit; und Skalierbarkeit.
Es wird auf WO 02/27462 Bezug
genommen, die ein System bereitstellt, das eine in einem Bandlaufwerk eingebrachte
Bandkassette emuliert. Eine oder mehrere Speichereinrichtungen stellen die Emulation
des Bandlaufwerks und eine Vielzahl von. virtuellen Speichermedien bereit. Ein Schnittstellenverwalter,
der zwischen dem Client und den Speichereinrichtungen angeordnet ist, hängt
die virtuellen Speichermedien, wie benötigt, ein, um die emulierte Bandkassette
herzustellen. Die bevorzugte Speichertechnologie für die Speichereinrichtungen
sind Platten.
WO 02/27462 erfüllt teilweise den Bedarf,
auf den oben Bezug genommenen wurde, im Zusammenhang mit der Emulation von Bandlaufwerken.
Es existieren allerdings andere Speichertechnologien, eingeschlossen die mit Roboterhandling.
Siehe beispielsweise US 5438674, die ein
optisches Plattenspeichersystem offenbart.
In Übereinstimmung mit einem Aspekt der Erfindung, wird ein Verfahren
in Übereinstimmung mit Anspruch 1 bereitgestellt.
Ein anderer Aspekt der Erfindung stellt einen virtuellen Bandserver
in Übereinstimmung mit Anspruch 6 bereit.
Ein dritter Aspekt der Erfindung stellt ein Computerprogrammprodukt
nach Anspruch 13 bereit.
In den verschiedenen Ausführungen, die in dieser Anmeldung beschrieben
sind, ist die Reihenfolge der Verfahrensschritte oder Anordnung von Vorrichtungselementen,
die bereitgestellt werden, nicht einschränkend, solange sie nicht besonders
als solche bezeichnet werden.
KURZBESCHREIBUNG DER ZEICHNUNGEN
1 ist ein schematisches Diagramm einer Stand der Technik
Sicherungssystemarchitektur, die eine Sicherungsanwendung aufweist, die auf einem
Sicherungsserver angesiedelt ist;
2 ist ein schematisches Diagramm einer aufwendigeren
Stand der Technik Sicherungsarchitektur, die sowohl Platten- als auch Bandspeichervorrichtungen
aufweist;
3 ist ein schematisches Diagramm eines Ausführungsbeispiels
in Übereinstimmung mit der Erfindung, das einen virtuellen
Speicherpool bereitstellt;
4 ist ein schematisches Diagramm einer Netzwerkarchitektur
für ein Ausführungsbeispiel in Übereinstimmung mit der Erfindung,
das einen virtuellen Bandbibliotheks(VTL)-Server und eine Platten-Bibliotheks-Einheit
(DLU) aufweist;
5 ist eine schematische Veranschaulichung einer Netzwerkarchitektur
eines anderen Ausführungsbeispiels, das mehrere Platten-Bibliotheks-Einheiten
(DLU) aufweist;
6 ist ein schematisches Diagramm einer Netzwerkarchitektur
für ein weiteres Ausführungsbeispiel, das mehrere VTL-Server und mehrere
DLU aufweist;
7 ist ein schematisches Diagramm einer Netzwerkarchitektur
für ein weiteres Ausführungsbeispiel, das eine lokale Sicherungsdatenstelle
aufweist und ein äußere Archivierungsstelle;
8 ist ein schematisches Diagramm für eine Netzwerkarchitektur
für ein weiteres Ausführungsbeispiel, das eine lokale Stelle zum Speichern
der Sicherungsdaten aufweist und eine Desaster-Wiederherstellungsstelle zum entfernten
Spiegeln;
9 ist eine schematische Veranschaulichung der Hardwarekomponenten
eines VTL-Servers in Übereinstimmung mit einem Ausführungsbeispiel in
Übereinstimmung mit der Erfindung;
10 ist ein entsprechendes Softwareblockdiagramm für
den VTL-Server von 9;
11 ist eine schematische Veranschaulichung einer DLU-Systemarchitektur
für ein Ausführungsbeispiel in Übereinstimmung mit der Erfindung;
12 ist ein Beispiel einer DLU-Datenbankvorrichtungs-Datenstruktur
gemäß einem Ausführungsbeispiel in Übereinstimmung mit der Erfindung;
13 ist ein Beispiel einer DLU-Kassettenvorrichtungs-Datenbankstruktur
gemäß einem Ausführungsbeispiel in Übereinstimmung mit der Erfindung;
14 veranschaulicht eine Befehlsfolge für einen
SCSI-Lesebefehl; und
15 veranschaulicht eine Befehlsfolge für einen
SCSI-Schreibbefehl.
DETAILLIERTE BESCHREIBUNG
Es werden nun verschiedene Ausführungsbeispiele in Übereinstimmung
mit der Erfindung beschrieben. Diese Verfahren und Systeme, die die Erfindung veranschaulichen,
stellen verschiedene Kombinationen von Vorteilen, zum Beispiel bzgl. der Kapazität,
Leistung, Verfügbarkeit, Kosten, Kompatibilität, Einfachheit und Skalierbarkeit,
bereit.
Entsprechend einem Ausführungsbeispiel zeigt 3
eine offene Systemumgebung mit einem LAN-Netzwerk 40, das mehrere gemischte
Unix und NT Computer-Hosts 41, 42, 43, 44 verbindet.
Diese Hosts sind auch mit einem Speichernetzwerk (SAN) (engl.: storage area network)
46 verbunden, welches ein geteiltes Netzwerk von Speichervorrichtungen
umfasst. Das SAN ist mit dem verbunden, was schematisch als ein "virtueller Speicherpool"
48 gezeigt ist. Dieser virtuelle Speicherpool weist plattenbasierte Speichervorrichtungen
auf und ein System zum Verwenden des Plattenspeichers, um Bandspeicher zu emulieren.
Der Pool kann nahtlos in eine offene Systemsicherungs- und Wiederherstellungsumgebung
integriert werden. Mit "nahtlos integriert" ist gemeint, dass keine wesentlichen
Änderungen (insbesondere der Software oder der Konfiguration) der Host-Sicherungsanwendung
benötigt werden, der Treiber oder andere Komponenten der IT-Infrastruktur,
einschließlich der plattenbasierten Speichervorrichtungen.
Der virtuelle Speicherpool kann (in einem Beispiel) mit wenigstens
einem virtuellen Bandbibliothek (VTL) Server, der weiter unten beschrieben wird,
ausgebildet werden, der Sicherungsbandbefehle von heterogenen Hosts empfängt
und verbindbar mit einer oder mehreren Plattenspeichervorrichtungen ist, um erkennbar
virtuelle Pools von Bandspeichern in ungleichartigen Systemen zu erzeugen. Es erlaubt
Benutzern, Bandvorrichtungen von verschiedenen Anbietern in demselben Speicherpool
zu emulieren. Die hierin verwendete Bandvorrichtung bedeutet eine
Bandspeichervorrichtung, wie eine Bandbibliothek, Bandlaufwerk oder andere bandbasierte
Speichervorrichtung.
Besondere Beispiele schließen ein QuantumTM DLT7000
Bandlaufwerk und eine automatisierte ATL P3000 Bandbibliothek ein.
Der VTL-Server erlaubt mehreren heterogenen Hosts, die verschiedene
Betriebssysteme und verschiedene Sicherungsanwendungen laufen lassen, gleichzeitig
verschiedene Plattenvorrichtungen von Anbietern zu verbinden.
Eine Plattenvorrichtung bedeutet hierin eine Plattenspeichervorrichtung,
wie beispielsweise ein Plattenlaufwerk oder ein Plattenarray. Solche Plattenvorrichtungen
sind verfügbar von EMCTM, HPTM, IBMTM, usw.,
einschließlich ATA-basierten Plattenarrays (eine neue Niedrigkosten Plattentechnologie).
Ein bestimmtes Beispiel eines Plattenarrays ist die EMC SymmetrixTM 5.5.
Wenn eine Sicherungsanwendungshost einen Sicherungsbefehl sendet,
der an eine bestimmte Bandspeichervorrichtung adressiert ist, antwortet der VTL-Server
an den Host, als ob er (der VTL-Server) die adressierte Bandspeichervorrichtung
wäre, und dann emuliert er den angefragten Bandbetrieb mit einer oder mehreren
Plattenvorrichtungen. Der Host glaubt, basierend auf der Kommunikation mit dem VTL-Server,
dass die Sicherungstransaktion auf der adressierten Bandspeichervorrichtung stattgefunden
hat.
In dieser offenen Systemumgebung können verschiedene Hosts verschiedene
Betriebssysteme (zum Beispiel UNIX, Windows NT) von mehreren Anbietern laufen lassen.
Die Hosts können auch verschiedene Sicherungsanwendungen von Anbietern (zum
Beispiel ArcServeTM, NetBackupTM, NetworkerTM,
TSMTM) laufen lassen. Eine Sicherungsanwendung, wie sie hierin verwendet
wird, stellt eine Bandverwaltung zur Sicherung und Wiederherstellungsfunktionen
bereit.
Ein bestimmtes Ausführungsbeispiel des virtuellen Speicherpools
ist in 4 veranschaulicht. 4
zeigt mehrere Host 50, die durch eine Faserkanal(FC)-Struktur
52 mit einem VTL-Server 54 verbunden sind; der VTL-Server wiederum
ist durch eine Faserkanal(FC)-Verbindung 56 mit einer zugehörigen
Platten-Bibliotheks-Einheit (DLU) 58 verbunden. Das "Vorderende" (engl.:
front end) 53 des VTL-Servers, was durch die Faserkanalstruktur
52 mit den mehreren Hosts 50 verbunden ist, stellt eine skalierbare
Verbindung mit mehreren Host-Sicherungsanwendungen bereit. Das "Hinterende" (engl.:
back end) 55 des VTL-Servers ist mit DLU 58 verbunden, die mehrere
plattenbasierte Speichervorrichtung oder Arrays 59 aufweist.
In einem anderen Ausführungsbeispiel, das in 5
veranschaulicht ist, sind wiederum mehrere Host 70 durch eine FC-Struktur
72 mit einem VTL-Server 74 verbunden, aber hier ist der VTL-Server
an dem hinteren Ende durch mehrere Faserkanäle 76 und 78
mit mehreren DLU 80, 82 (hier zwei) verbunden. In diesem Beispiel
stellt das hintere Ende 75 des VTL-Servers 74 eine skalierbare
Verbindung bereit und kann verschiedene DLU-Plattenarrays parallel verwenden.
In wiederum einem weiteren Ausführungsbeispiel, das in
6 gezeigt ist, sind mehrere Host 90 durch
eine FC-Struktur 92 mit mehreren VTL-Servern 94, 98,
102 (hier drei) verbunden, welche wiederum durch eine FC-Struktur
106 mit mehreren Platten-Bibliotheks-Einheiten 108,
110 (hier zwei) verbunden sind. In diesem Beispiel wird eine skalierbare
Verbindung an beiden Vorderenden 93, 97, 101 des jeweiligen
entsprechenden VTL-Servers mit den mehreren Hosts 90 bereitgestellt und
die hinteren Enden 95, 99, 103 der jeweiligen entsprechenden
VTL-Server mit den mehreren DLU 108, 110.
Diese Ausführungsbeispiele veranschaulichen, was als "virtueller
Banddatenspeicher" bezeichnet werden kann, unter einer Vielzahl von verschiedenen
Hosts und einer Vielzahl von verschiedenen Plattenspeichervorrichtungen. Dies beseitigt
den Bedarf für zugehörige Laufwerke, zum Beispiel dort, wo ein bestimmtes
Plattenlaufwerk einem bestimmten Sicherungsanwendungshost zugeordnet ist. In diesem
Beispiel können Daten von einem oder mehreren Hosts gleichzeitig über
einen oder mehrere VTL-Server gestreamt werden und auf eine oder mehrere Plattenvorrichtungen,
die eine oder mehrere Bandvorrichtungen emulieren.
In diesen Beispielen stellt der VTL-Server ein "virtuelles Bild" einer
kompatiblen Bandspeichervorrichtung an seinem Vorderende dem Host(s) bereit. Der
VTL-Server erscheint auch an seinem hinteren Ende der Plattenspeichervorrichtung(en)
als ein kompatibler Host.
In diesen Beispielen können Daten direkt von einem oder mehreren
Hosts zu einem oder mehreren physikalischen Plattenspeicherlaufwerken
oder Plattenbibliotheken gestreamt werden. Mit "direkt" ist gemeint, dass kein zwischenliegender
Festplattenarray-Rückspeicherbereich existiert, dessen zusätzliches Speichersystem
und Speicherschritt dazu führen könnte, die Kosten und/oder Komplexität
des Systems zu vergrößern. Weiterhin existiert kein Zwischen- oder zweiter
Verwaltungspunkt und Steuerung, die für Sicherungsoperationen hinzugefügt
sind. Die Sicherungsanwendung des Hosts fährt stattdessen damit fort, als ein
einzelner Verwaltungspunkt zu dienen und als Steuerung für Sicherungsvorgänge.
Die hierin verwendeten Sicherungsvorgänge schließen sowohl Sicherungs-
als auch Wiederherstellungsvorgänge ein.
Darüber hinaus benötigen die oben beschriebenen Ausführungsbeispiele
keinen zusätzlichen Plattenplatz in Haupt-(teuer, hohe Leistung) Speicherplattenarrays.
Ein weiterer Vorteil ist, dass der VTL-Server auf einem Standard-von-der-Stange-Server
laufen kann, wie beispielsweise einem IntelTM-basierten Linux oder Unix-Server,
zum Beispiel DellTM 4600, und SunTM Solar 5.8 Server.
Die oben beschriebenen Ausführungsbeispiele unterscheiden sich
vom Stand der Technik, der Festplattenarraysrückspeicherbereiche verwendet,
um die Sicherungsleistung zu verbessern und die Zeit für die Datenwiederherstellung
zu verringern. Diese Stand der Technik Systeme nehmen die Last der herkömmlichen
Sicherungstransaktion von den Bandbibliotheken auf den Rückspeicherbereich,
durch Platzieren der Sicherungsdaten in, zum Beispiel einen RAID-Cash, die über
eine Bandbibliothek zu einer späteren gegebenen Zeit übertragen werden
sollen. Folglich schreiben diese die Daten, anstelle des Schreibens der Daten direkt
in den Host in die Speichervorrichtung, auf eine Hochgeschwindigkeits-RAID-Cashplatte,
bei welcher die Daten später auf eine andere Speichervorrichtung geschrieben
werden können zu einer Zeit, die völlig unabhängig von der ist, zu
der die Daten gesichert wurden, d.h. nicht innerhalb des Sicherungsfensters.
Es sind ebenfalls virtuelle Bandserver unterscheidbar, die in einer
Hauptrechnerumgebung verwendet werden, wie sie beispielsweise durch IBMTM
und StorageTekTM verkauft werden, welche nicht die Bandbibliothekspeicherung
ersetzen, aber deren Funktionalität verbessern, durch Bereitstellen eines Zwischenplattencashes,
der als Puffer für die Bandlaufwerke fungiert und durch Bereitstellen einer
zusätzlichen Verwaltungsfähigkeit für die Bandbibliotheks-Speicherungsysteme.
Anstelle dessen sind, in einem Ausführungsbeispiel in Übereinstimmung
mit der Erfindung, die Bandbibliotheken durch eine virtuelle Bandbibliothek(VTL)-Einheit
ersetzt, welche eine einrichtbare Anzahl von virtuellen Bandlaufwerken und virtuellen
Bandkassetten aufweist. Das System kann sowohl eine Band-Bibliotheks-Einheit(TLU)-Robotik
emulieren und eine einrichtbare Anzahl von Bandlaufwerkvorrichtungen. Es ist einrichtbar,
um den Bedarf eines Verbrauchers zu befriedigen, zum Beispiel hinsichtlich der Anzahl
von virtuellen Bandkassetten, virtueller Bandgröße und Schutzgrad (RAID).
Darüber hinaus weist das VTL-System einen VTL-Server auf, der
Bandlaufwerke emuliert und erkennbare Bibliotheks-Einheiten. Die VTL virtuellen
Bandlaufwerke können sich selbst durch einen SCSI-Befehl (der weiter unten
detailliert beschrieben wird) als eine SCSI-Bandlaufwerkvorrichtung identifizieren
(zum Beispiel, dessen Anbieter-ID Quantum ist und Produkt-ID DLT7000 ist). Auf ähnliche
Art und Weise kann die VTL virtuelle Band-Bibliotheks-Einheit sich selbst durch
einen SCSI-Befehl als eine SCSI-Bandlaufwerkseinheit identifizieren (zum Beispiel,
deren Anbieter-ID Quantum ist und Produkt ID-ATL P3000 ist). Folglich erscheint
der VTL-Server dem Host als eine zugehörige physikalische Bandspeichervorrichtung.
Andere Ausführungsbeispiele sind in 7
und 8 veranschaulicht. In diesen beiden Ausführungsbeispielen
weist eine lokale Stelle einen VTL-Server 124 bzw. 146 auf und
eine Platten-Bibliotheks-Einheit (DLU) 128 bzw. 150, welche als
Haupt-(obwohl sie virtuell ist)Bibliothek für aktive Sicherungsdaten dient.
In beiden Fällen sind mehrere Hosts 120, 142 durch eine FC-Struktur
122, 144 mit dem VTL-Server 124, (bzw.) 146
verbunden und die VTL-Server 124, 146 sind über eine FC
126, 148 mit der DLU 128, (bzw.) 150 verbunden.
Worin diese sich unterscheiden ist, dass in 7 eine
physikalische Band-Bibliotheks-Einheit (TLU) 103 auch über eine FCE-Struktur
122 verbunden ist und als eine Daten-Import/Export-Vorrichtung funktioniert,
um äußeren Stellen zu ermöglichen, Daten zu archivieren (siehe Pfeil
134). Eine Sicherungsanwendung 121 im Host 120 initiiert
und steuert die Medienduplizierung (siehe Pfeile 135; 136) von
Daten, die in der DLU 128 gespeichert sind (der virtuelle Speicherpool),
welche dann zu der DLU 130 gesendet werden, um archiviert zu werden. Die
einzelnen Bandkassetten 131 in der TLU können dann physikalisch entfernt
werden (beispielsweise durch Roboterarme 133) und zu einer Außenstelle
zum Außenstellen-Archivieren (Pfeil 134) transportiert werden. Die
Duplizierung ist ein gemeinsames Merkmal in offenen Sicherungssystemanwendungen,
wie beispielsweise VeritasTM NetBackup, LegatoTM, NetWorker,
usw.
In 8 weist eine lokale Stelle
140 einen VTL-Server 146 und eine DLU 150 als die Haupt-(virtuelle)
Bibliothek für aktive Sicherungsdaten auf. Als eine entfernte Desaster-Wiederherstellungsstelle
160 ist dort ein weiterer VTL-Server 166 bereitgestellt, der über
eine FC-Struktur 164 mit mehreren Hosts 162 verbunden ist und
durch eine FC-Verbindung 167 mit DLU 168. Das entfernte Spiegeln
zwischen den lokalen und den entfernten DLU 168 und 150 (siehe
Pfeil 170) wird verwendet, um Daten von der Desaster-Wiederherstellungsstelle
160 wiederherzustellen, die an der lokalen Stelle 140 verloren
wurden.
9 bis 10 veranschaulichen
ein bestimmtes Ausführungsbeispiel eines VTL-Servers, der als ein plattenbasiertes
Bandemulationssystem 180 in einer offenen Systemumgebung agiert, in Übereinstimmung
mit der Erfindung. Bei 9 ist eine schematische Veranschaulichung
der Hardwarekomponenten, während 10 eine schematische
Veranschaulichung der Softwarekomponenten ist.
Wie in 9 gezeigt ist, ist ein NT (oder
Unix)-Host 182 über einen Faserkanal 184 mit einem Front-End
(vorderen Ende) 168 eines VTL-Servers 188 verbunden. Ein Back-End
(hinteres Ende) 192 des VTL-Servers 188 ist über einen Faserkanal
194 mit einer Platten-Bibliotheks-Einheit 196 verbunden. Der Host
182 weist eine Sicherungsanwendung 183 auf, die als ein "Initiator"
agiert durch Ausstellung eines Endbefehls zu einer "Ziel"-Bandspeichervorrichtung.
Dieses Ausführungsbeispiel verwendet das Faserkanalprotokoll (FTP = engl: fibre
terminal protocol) für SCSI, zweite Version (nachfolgend FCP-2), eine Vorversion,
die durch das amerikanische Nationalstandard technisches Komitee T10 ("American
National Standards Technical Committee") vorgeschlagen wurde, Projekt 1144D, Revision
8, 23. September 2002 (verfügbar bei www.t1.org). Dieser Standard beschreibt
ein Frameformat und ein Protokoll zum Übertragen von Befehlen und Daten zwischen
einem SCSI (= small computer system interface) Initiator und einem Ziel, das die
FC (fibre channel = Faserkanal) Übertragungsstandards verwendet. Vor der weiteren
Diskussion des Ausführungsbeispiels von 9 bis
10 wird eine Kurzfassung der SCSI- und FC-Standards
bereitgestellt.
Der Kleincomputersystem-Schnittstellen (= engl.: small computer system
interface) (SCSI) Befehlssatz ist heutzutage für viele verschiedene Vorrichtungsarten
weit verbreitet. Die Übertragung von SCSI-Befehlen über Faserkanalverbindungen
erlaubt dem großen Teil von SCSI-Anwendungen und Treibersoftware in der Faserkanal
(FC)-Umgebung verwendet zu werden.
FCP-2 ist Teil der SCSI-Familie von Standards, die von T10 entwickelt
wurde, um die Verwendung von SCSI-Befehlssätzen für verschiedene Arten
von Vorrichtungen über viele verschiedene Arten von physikalischen Verbindungen
zu verwenden. Die Modellarchitektur für die Familie von Standards ist in dem
NCITS-Projekt 11570 ausgeführt, Information Technology-SCSI Architecture Model-2
(SAM2).
Der Faserkanal (FC) ist als eine serielle Hochgeschwindigkeits-Architektur
ausgeführt, der entweder optische oder elektrische Verbindungen bei Datenraten
von 265 Megabits bis zu 4 Gigabits pro Sekunde erlaubt. Topologien, die durch Faserkanäle
unterstützt werden, weisen Punkt-zu-Punkt, fasergeschaltete und vermittelte
Schleifen auf. Alle FC-Verbindungen verwenden dasselbe Standardframeformat und dieselbe
Standardhierarchie von Übertragungseinheiten, um Informationseinheiten (IU)
zu übertragen, die SCSI-Informationen tragen.
Der Faserkanal (FC) ist ein logischer serieller Funkt-zu-Punkt Datenkanal.
Die Architektur kann mit Hochleistungshardware ausgeführt werden, die wenig
Echtzeitsoftwareverwaltung benötigt. Das FC-Protokoll verwendet das Multiplexen
und geteilte Bandbreitenfähigkeiten, die von verschiedenen FC-Klassen von Diensten
bereitgestellt werden und stellt Optionen für eine zuverlässige Fehlererkennung
und Fehlerwiederherstellung bereit, die unabhängig der Klasse des Dienstes
ist.
FCP-2 legt eine Faserkanalabbildungsschicht (FC-4) fest, die die Dienste
verwendet, die durch das NCITS-Projekt 1311D, "Private Channel Framing And Signaling
Interface (FC-FS)", festgelegt sind, um SCSI-Befehle, Daten und Statusinformation
zwischen einem SCSI-Initiator und einem SCSI-Ziel zu übertragen. Die folgenden
Definitionen von FCP-2 sind relevant:
- 3.1.6 Anwendungsclient: Ein Objekt, das die Quelle von SCSI-Befehlen ist.
- 3.1.9 Befehl: Eine Anfrage, die eine Arbeitseinheit beschreibt, die durch einen
Vorrichtungsserver ausgeführt werden soll.
- 3.1.12 Daten im Übertragungsdienst: Ein bestätigter Service, der von
dem Vorrichtungsserver verwendet wird, um die Übertragung von Daten zu dem
Anwendungsclient anzufragen.
- 3.1.13 Datenauslieferungsdienst: Ein bestätigter Dienst, der von dem Vorrichtungsserver
verwendet wird, um die Übertragung von Daten von dem Anwendungsclient anzufragen.
- 3.1.16 Vorrichtungsserver: Ein Objekt innerhalb der logischen Einheit, die SCSI-Aufgaben
ausführt und die Regeln für die Aufgabenverwaltung durchsetzt.
- 3.1.20 FCP-Austausch: Ein SCSI-I/O-Vorgang für die Faserkanal FC-2-Schicht.
Der SCSI-I/O-Vorgang für den Faserkanal ist in einem Faserkanalaustausch enthalten.
- 3.1.21 FCP-I/O-Vorgang: Ein SCSI-I/O-Vorgang für die Faserkanal FC-4-Schicht,
wie in FCP-2 festgelegt ist.
- 3.1.22 FCP_Port: Ein N Port oder NL Port, der das SCSI Faserkanalprotokoll unterstützt.
- 3.1.27 Informationseinheit: Eine organisierte Sammlung von Daten, die durch
das Faserkanalprotokoll spezifiziert sind, die als eine einzelne Abfolge durch die
Faserkanaldienstschnittstelle übertragen werden sollen.
- 3.1.28 Initiator: Eine SCSI-Vorrichtung, die Anwendungsclients enthält,
die Ursprung der Vorrichtungsdienstanfragen und Aufgabenverwaltungsfunktionen sind,
die durch einen Ziel SCSI-Vorrichtung ausgeführt werden sollen. In diesem Standard
bezieht sich das Wort "Initiator" auch auf einen FCP_Port, der das Faserkanalprotokoll
verwendet, um die SCSI-Intiatorfunktionen, die durch SAM-2 festgelegt sind, auszuführen.
- 3.1.31 Logische Einheit: Eine Funktionseinheit, die am Ziel angesiedelt ist,
die ein Vorrichtungsmodell verwirklicht und SCSI-Befehle, die von einem Anwendungsclient
gesendet wurden, verarbeitet.
- 3.1.32 Logische Einheitsnummer: Ein 64-Bit kodierter Kennzeichner für eine
logische Einheit.
- 3.1.54 SCSI-Vorrichtung: Eine Vorrichtung, die SCSI-Befehle hervorbringt oder
bedient.
- 3.1.55 SCSI-I/O-Vorgang: Ein Vorgang, der durch einen SCSI-Befehl festgelegt
ist, durch eine Reihe von verbundenen SCSI-Befehlen oder eine Aufgabenverwaltungsfunktion.
- 3.1.58 Ziel: Eine SCSI-Vorrichtung, die SCCI-Befehle empfängt und solche
Befehle an eine oder mehreren logische Einheiten zur Ausführung weiterleitet.
In diesem Standard bezieht sich das "Ziel" auch auf einen FCP_Port, der das Faserkanalprotokoll
verwendet, um die SCSI-Zielfunktionen, die durch SAM2 festgelegt sind, auszuführen.
- 3.1.60 Aufgabe: Ein Objekt innerhalb der logischen Einheit, das Arbeit repräsentiert,
die mit einem Befehl oder einer Gruppe von verbundenen Befehlen verknüpft ist.
Die physikalische Faserkanalschicht FC-2-Schicht, die durch FC-FS
beschrieben ist, führt diese Funktionen aus, die benötigt werden, um Daten
von einem Port zu einem anderen zu übertragen (bezeichnet als FCP_Ports). Eine
Schaltfaser erlaubt die Kommunikation unter mehr als zwei FCP_Ports. Eine vermittelte
Schleife (FC-AL) ist eine alternative Mehrporttopologie, die Kommunikation zwischen
zwei Ports in der Schleife erlaubt, oder zwischen einem Port in der Schleife und
einem Port einer Schaltfaser, die mit der Schleife verbunden ist.
Die FCP-Vorrichtung und Aufgabeverwaltungsprotokolle legen die Abbildung
von SCSI-Funktionen, die in dem SCSI-Architektur Modell-2 (SAM-2) festgelegt sind,
zu der Faserkanalschnittstelle fest, die durch FC-FS festgelegt ist.
Der I/O-Vorgang, der durch SAM-2 festgelegt ist, ist in einen Faserkanalaustausch
abgebildet. Ein Faserkanalaustausch, der Information für eine SCCI-I/O Vorgang
trägt, ist ein FCP-Austausch. Die Anfrage- und Antwortgrundformen eines I/O-Vorgangs
werden auf Informationseinheiten (IO), wie in Tabelle 1 gezeigt, abgebildet.
Tabelle 1 – SCSO und Faserkanalprotokollfunktionen
SCSI-Funktion
FCP-Aquivalent
I/O-Vorgang
Austausch
Protokolldienstanfrage und -antwort
Abfolge
Sende SCSI-Befehlsanfrage
unverlangte Befehls-IU (FCP_CMND)
Datenübertragungsanfrage
Datendeskriptor-IU (FCP_XFER_RDY)
Datenübertragungsaktion
angeforderte Daten-IU (FCP_DATA)
Sende Befehl vollständige Antwort
Befehlsstatus-IU (FCP_RSP)
REQ/ACK für Befehl vollständig
Bestätigungs-IU (FCP_CONF)
Ein Anwendungsclient beginnt einen FCP-I/O-Vorgang durch Aufruf eines
Ausführbefehls entfernten Prozeduraufruf (siehe SAM-2). Der Ausführ-Befehl
Ruf übermittelt eine einzelne Anfrage oder eine Liste von verbundenen Anfragen
von dem Anwendungsclient an das FCP-Dienst-Übertragungs-Subsystem.
Jede Anfrage enthält alle Informationen, die für die Ausführung
eines SCSI-Befehls notwendig sind, einschließlich der lokalen Speicheradresse
und Eigenschaften von Daten, die durch den Befehl übertragen werden
sollen. Das FCP führt dann die folgenden Aktionen unter Verwendung der FC-FS-Dienste
aus, um den SCSI-Befehl auszuführen.
Der FCP_Port, der der Initiator für den Befehl ist, startet einen
Austausch durch Senden einer unangefragten Befehls-IU, die die FCP_CMND IU Nutzdaten
enthalten, einschließlich einiger Befehlssteuerungen, Adressinformation und
dem SCSI-Befehlsdeskriptorblock (CDB).
Wenn der Vorrichtungsserver für den Befehl die Interpretation
des Befehls abgeschlossen hat, bestimmt hat, dass eine Schreibdatenübertragung
benötigt wird und darauf vorbereitet ist, den Datenübertragungsdienst
anzufragen, sendet er eine Datendeskriptor-IU, die die FCP_XFER_RDY IU Nutzdaten
enthält, an den Initiator, um anzuzeigen, welcher Teilbereich der Daten übertragen
werden soll. Der FCP_Port, der der Initiator ist, überträgt dann die angefragten
Daten-IU an das Ziel, das die FCP_DATA IU Nutzdaten enthält, die von der FCP_XFER_RDY
IU angefragt wurde. Die Datenübertragungsanfrage und das Rückgeben der
Nutzdaten wird vorgeführt, bis die Datenübertragung, die von dem SCSI-Befehl
angefragt wurde, vollendet ist.
Alternativ, wenn der Vorrichtungsserver für den Befehl die Interpretation
des Befehls vollendet hat und bestimmt hat, dass eine Lesedatenübertragung
benötigt wird, überträgt der FCPPort, der das Ziel ist, eine angefragte
Daten-IU an den Initiator, der die FCP_DATA IU Nutzdaten enthält.
Datenübertragungen, die Nutzdaten enthalten, werden fortgeführt,
bis alle Daten, die durch den SCSI-Befehl beschrieben wurden, übertragen wurden.
Nachdem alle Daten übertragen worden sind, überträgt
der Vorrichtungsserver die Sende-Befehl vollständige Protokoll-Dienst-Antwort
(siehe SAM-2) durch Anfragen der Übertragung einer IU, die die FCP_RSP IU Nutzdaten
enthält. Die Nutzdaten enthalten den SCSI-Status, und wenn der SCSI-Status
eine Prüfbedingung ist, die Autoerkennungsdaten, die die Bedingung beschreiben.
Die FCP-RSP IU zeigt die Vervollständigung des SCSI-Befehls an. Wenn keine
Befehlsverbindung, Fehlerwiederherstellung oder bestätigte Vervollständigung
angefragt ist, ist die FCP_RSP IU die Schlussabfolge des Austauschs. Andere Details
des Protokolls sind über www.t10org. verfügbar.
Zurückkommend zu 9, ist an dem Front-End
186 des VTL-Servers 188 ein Vorrichtungstreiber 200,
der als ein SCSI-Ziel fungiert und die Host-(Initiator)-Anfrage (Befehl) akzeptiert.
Folglich empfängt der Treiber 200 Faserkanalframes, die einen SCSI
über FC (FCP)-Befehl enthalten (der FCP_CMND Informationssatz). Der Treiber
200 speichert die Frames in dem Speicher 201 in dem VTL-Server
188. Dann leitet der Treiber 200 die Frames (die den FCP-Befehl
enthalten) an einen Zielemulator 204 weiter.
Der Zielemulator 204 empfängt die Hostanfrage (Befehl)
und identifiziert sich selbst als entweder ein Bandlaufwerk (SCSI-Streamvorrichtung)
oder eine Band-Bibliotheks-Einheit-Robotik (SCSI-Medienwechsler). Die Zielemulatorsoftware
versteht den Inhalt dessen und verarbeitet FCP-Befehle. Für diesen Zweck muss
sie vier Felder in dem FCP-Befehl verstehen, nämlich:
- • Opcode
- • Logische Einheitsnummer (LUN)
- • Lesen/Schreiben (hier in dem Zielemulator bedeutet lesen und schreiben
"Daten im Übertragungsdienst" oder "Daten aus dem Übertragungsdienst")
- • Befehls-/Aufgabenverwaltung.
In diesem Zusammenhang ist ein SCSI-Befehl an eine bestimmte LUN (zum
Beispiel eine bestimmte Bandvorrichtung-Bandlaufwerk oder TLU-Robotik adressiert).
Das Ziel (zum Beispiel eine TLU) kann das Front-End für mehrere LUN sein. Im
Gegensatz dazu ist ein SCSI-Aufgabenverwaltungsbefehl für das gesamte Ziel
vorgesehen. Der Zielemulator 204 überprüft, ob er sieht, wenn
die Bandvorrichtung, die durch die LUN in dem Befehl identifiziert ist, existiert.
Der Zielemulator 204 überprüft auch das Schreibfeld des Befehls,
und wenn es gesetzt ist, überprüft er, ob ein Puffer verfügbar ist,
um die Daten zu halten. Wenn dem so ist, sendet der Emulator 204 ein Übertragungs-Fertig-Signal
zurück an den Host. Er fügt FCP-Details der Antwort hinzu, ohne zu spezifizieren,
welche Art von Speicher verbunden ist.
Genauer gesagt kann der Emulator 204, der das Format des
FPCCMND-Informationssatzes kennt, auf den Speicher 201 zugreifen, in dem
der Befehl gespeichert ist und damit fortfahren, diesen zu analysieren:
- • Er überprüft den "SCSI CDP opcode" und verifiziert, dass
er ein gültiger opcode ist.
- • Er überprüft die LUN (welche eine bestimmte virtuelle Bandlaufwerksvorrichtung
oder eine virtuelle Bandbibliotheksrobotik identifiziert) und verifiziert, dass
sie existiert.
- • Wenn der opcode illegal ist oder keine virtuelle Vorrichtung existiert
(Bandlaufwerk oder Robotik), die zu der LUN gehört, verwirft der Emulator
204 den Befehl, indem er eine Antwort an den Host 182 zurücksendet
(durch Treiber 200) mit einem Fehlercode (diese Antwort wird FCP_RSP genannt).
- • Wenn der opcode legal ist und eine virtuelle Vorrichtung existiert,
die zu dem Befehl gehört:
- • Wenn der Befehl ein "Datenausgabe"-Befehl ist, was bedeutet, dass die
Hosts Daten an den VTL-Server senden (schreiben), startet der Emulator
204 die Datenübertragung (das heißt benachrichtigt Host
182, dass der VTL-Server 188 bereit ist und der Host das Senden
der Daten an den VTL-Server starten kann). Die Daten werden an einen bestimmten
Puffer im Speicher 201 des VTL-Servers übertragen (es existieren zwei
Puffer, die jeweils einem VTL virtuellem Bandlaufwerk für diesen Zweck zugewiesen
sind).
- • Wenn es kein "Datenausgabe"-Befehl ist, oder wenn es ein "Datenusgabe"-Befehl
ist und alle Daten bereits an die VTL übertragen worden sind, leitet der Emulator
204 (durch eine Schlange) den FLP-CMD (und den Puffer, der die Daten enthält,
wenn es ein "Datenausgabe"-Befehl war) an den Band/Platten-Befehlsumwandler
206 weiter.
Folglich wird der Befehl als nächstes zu dem Umwandler
206 gesendet, der den Bandbefehl in einen Plattenbefehl umwandelt und ein
Plattenspeichermodell erzeugt. Die Umwandlungssoftware weiß, wie sie die Daten
auf der Platte speichern muss, wie sie katalogisieren kann, welche Daten dort geschrieben
sind und wie die Platte verwaltet werden soll.
Umwandler 206 wird den SCSI CDB opcode überprüfen
und die/den bestimmte Aktion/Vorgang, die von dem opcode angefragt wurde, ausführen.
Umwandler 206 führt entweder die/den Aktion/Vorgang selbst aus oder
durch Aufrufen einer Funktion der DLU 196. Die DLU 196 ist für
die Speicherung der Daten in den Platten verantwortlich und für die Verwaltung
des Status der virtuellen Bandbibliothek. Jedes simulierte Bandlaufwerk und Bandrobotik
wird einer unterschiedlichen LUN entsprechen. Folglich kann die LUN in dem Adressfeld
des FCP_CMD entweder für eine Streamvorrichtung (Bandlaufwerk) oder einen Medienwechsler
(Bandrobotik) sein. Umwandler 206 weiß, wie er Befehle an die Platte
entweder in einem Bandvorrichtungsformat oder Robotikformat senden muss.
Wenn die/der angefragte Aktion/Vorgang vollendet ist, sendet der Umwandler
206 eine Antwort über den Emulator 204 an den Host
182, der den Vollendungsstatus anzeigt (FCP_RSP).
10 ist das entsprechende schematische Softwareblockdiagramm
für den VTL-Server 188 von 9. Ein erster
Block, der mit dem Eingang FCP Verbindung 184 verbunden ist, ist ein FC-Treiberblock
220, der dem Vorrichtungstreiber 200 in 9
entspricht. Ein zweiter Block ist ein FC-SCSI Portblock 222, der die Funktionalität
des Zielemulators 204 bereitstellt. Ein dritter Block stellt eine emulierte
SCSI-Bandspeichervorrichtung 224 bereit. Der Block 224 kann mehrere
Instanzen (eine Instanz 226 pro virtuellem Bandlaufwerk oder virtuellen
Roboter) der VTL-Band- und Roboterobjekte aufweisen, die jeweils eine verschiedene
LUN aufweisen, und das Bandspeichermodell umfassen; er weist weiter einen Satz
228 von zugehörigen DLU-Band- und Roboterobjekten auf, die auch das
Plattenspeichermodell umfassen. Jedes VTL-Bandobjekt 227 hat ein entsprechendes
DLU-Bandobjekt 229 in dem Speichermodell 228. Auf ähnliche
Art und Weise weist jedes VTL-Roboterobjekt 230 ein entsprechendes DLU-Roboterobjekt
231 in dem Plattenspeichermodell auf. Die Objekte in dem Plattenspeichermodell
228 entsprechen den Daten, die dann in der Platten-Bibliotheks-Einheit
196 gespeichert werden. Die DLU 196 hält sowohl die Daten,
die sie von dem Host 82 empfangen hat, und die Daten, die die emulierte
Bandvorrichtung beschreiben (siehe zum Beispiel 11).
Letzteres kann eine Datenbank umfassen, wie beispielsweise eine relationale Tabelle,
die in der DLU gespeichert ist. Eine detailliertere Beschreibung einer bestimmten
DLU-Systemarchitektur folgt.
Ein genaueres Ausführungsbeispiel einer DLU-Systemarchitektur
zur Emulation einer Band-Bibliotheks-Einheit (TLU) ist in 11
gezeigt. Diese Figur veranschaulicht auch die Korrelation eines LUN-Kennzeichners
317 mit VTL-Vorrichtungen (Bandlaufwerke 319 und TLU-Robotik
315).
Ein VTL-310-Server, der schematisch gezeigt ist, hat zwei
Front-End-Ports, Front-End-Port 0 (312) und Front-End-Port 1 (314).
Der VTL-Server 310 hat zwei Back-Eend-Ports 316, 318,
die über eine FC-Faser 320 mit dem DLU-Plattenarray 322 verbunden
ist. Plattenarray 322 weist eine DLU-Datenbankvorrichtung 324
auf und mehrere DLU-Kassettenvorrichtungen 326.
Der VTL-Server 310 hat darauf eine VTL-Software
311 angesiedelt, mit einem DLU-Modell 313 der emulierten Bandvorrichtungen
– virtuelle Bandlaufwerke 319 und virtuelle TLU-Robotik
315. Das DLU-Modell 313 verwaltet den DLU-Plattenarraydauerspeicher,
der aufweist:
- • DLU-Kassetten; und
- • DLU-Robotik, Behälter, Import-/Export-Einschübe und Bandlaufwerke.
DLU 322 emuliert die TLU-Robotik und eine einrichtbare Anzahl
von Bandlaufwerkvorrichtungen; die DLU virtuellen Bandlaufwerke stellen einen "sequentiellen
Zugriff" auf Zufallzugriffsvorrichtungen bereit (DLU-Kassettenvorrichtung
326).
Die DLU-Datenbankvorrichtung 324 enthält Einrichtinformationen
für alle Elemente in der virtuellen Bandbibliothek, die durch die DLU emuliert
wird. Sie enthält weiter den Status all dieser Elemente in der virtuellen Bandbibliothek:
- • Roboter;
- • Behälter (Einschübe, die die virtuellen Kassetten enthalten);
- • Bandlaufwerke;
- • Import-/Exporteinschübe; und
- • geteilte Einschübe, die es ermöglichen, zwei oder mehr VTL-Server
demselben DLU-Plattenarray zuzufügen.
Die Information in der DLU-Datenbankvorrichtung 324 wird
jedes Mal aktualisiert, wenn ein Befehl vorhanden ist, der den Status eines oder
mehrerer Elemente in der virtuellen Bandbibliothek verändert. Zum Beispiel
fragt ein SCSI-Bewegen-Befehl, der an den DLU-Roboter (315) im DLU-Modell
313 gesendet wurde, den Roboter, eine Kassette von einem Behälter
in ein Bandlaufwerk (319 in DLU-Modell 313) zu bewegen; dies verändert
den Status des entsprechenden Behälters und den Status des entsprechenden Bandlaufwerks,
während entsprechende Statusänderungen in der DLU-Datenbankvorrichtung
324 vorgenommen werden.
Die DLU-Datenbankvorrichtung 324 dieses Beispiels hat eine
Datenstruktur 330, wie in 12 veranschaulicht,
mit den folgenden Feldern:
- • Einrichtinformation (322), die aufweist: Anzahl von Robotern;
Anzahl von Behältern; Anzahl von Bandlaufwerken; Anzahl von Import-/Exporteinschüben;
Anzahl von geteilten Einschüben; virtuelle Kassetteninformation;
- • Roboterbrieffach 334, das die Information und den Status des
Roboters enthält; wobei jeweils ein Eintrag für jeden eingerichteten Roboter
existiert (normalerweise existiert nur ein eingerichteter Roboter);
- • Brieffachbehälter 336, der die Information und den Status
des Behälters enthält; zum Beispiel kann der Behälter voll oder leer
sein; wenn er voll ist, wird die Kennzeichnung der virtuellen Kassette bereitgestellt,
die den Behälter besetzt; es gibt so viele Einträge wie es eingerichtete
Behälter gibt;
- • Bandbrieffach 338, das den Informationenstatus des Bandlaufwerks
enthält; zum Beispiel kann das Bandlaufwerk voll oder leer sein; wenn es voll
ist, wird die Kennzeichnung der virtuellen Kassette, die das Bandlaufwerk besetzt,
bereitgestellt; es gibt so viele Einträge wie eingerichtete Bandlaufwerke;
- • Import-/Exportbrieffach 340, das die Information des Status
des Import-/Exporteinschubs enthält; es gibt so viele Einträge wie eingerichtete
Einschübe;
- • Geteiltes Brieffach 342, welches die Information des VTL-Servers
enthält, der mit dem DLU-Plattenarray verbunden ist; es existiert ein Eintrag
für jeden VTL-Server, der mit dem DLU-Plattenarray verbunden ist.
Das DLU-Plattenarray 322 (siehe 11)
weist eine oder mehrere DLU virtuelle Kassetten 326 auf. Jede virtuelle
Kassette enthält:
- • Einige Einrichtinformationen, wie beispielsweise die virtuelle Kassettenkennzeichnung,
den virtuellen Kassettenstrichcode, usw.;
- • die Daten, die von dem Benutzer geschrieben wurden;
- • das Kassettenverzeichnis, das die Daten beschreibt, die auf die Kassette
geschrieben wurden und die aktuelle Position der Kassette.
Die DLU-Kassettenvorrichtung (siehe 11)
dieses Beispiels hat eine Datenstruktur 350, wie in 13
veranschaulicht, mit den folgenden Feldern:
- • DLU virtuelle Kassette 352, welche Einrichtinformationen enthält,
wie beispielsweise Kennzeichen, Strichcode, usw.;
- • DLU virtuelles Kassettenverzeichnis 354;
- • DLU virtuelle Kassenbenutzerdaten 356;
- • Frühwarnanzeiger 358;
- • Ende-des-Mediums-Anzeiger 360.
Die aktuelle Verzeichnisposition 353 in Feld 354
und die aktuelle Datenposition 355 in Feld 356 speichert den aktuellen
Status der Kassette und stellt ein sequentielles Zugriffsverfahren auf die DLU-Kassettenvorrichtung
326 bereit.
Zum Beispiel kann ein 32 K SCSI Schreibbefehl folgendermaßen
verwirklicht werden:
- • Die DLU wird einen Eintrag in das Kassettenverzeichnis 354
hinzufügen an der Position, auf die durch die "aktuelle Verzeichnisposition"
353 gezeigt wird. Dieser Eintrag wird die Größe des IO (zum Beispiel
32 K) festsetzen;
- • Die "aktuelle Verzeichnisposition" 353 wird um einen Eintrag
nach vorne bewegt;
- • Die DLU wird die 32 K-Daten, die in dem Schreibbefehl gesendet wurden,
an der Position speichern, auf die durch die "aktuelle Datenposition"
355 gezeigt wird;
- • Die "aktuelle Datenposition" 355 wird um 32 K vorwärtsbewegt;
- • Wenn die "Frühwarnanzeige" 358 oder die "Ende-des-Mediums-Anzeige"
360 während des Schreibens der Daten erreicht wird, wird die entsprechende
Anzeige in der Antwort dem Schreibbefehl (in dem FCP_RSP) zurückgesendet.
Als ein weiteres Beispiel kann ein SCSI-Platzbefehl ("Platz zurück
um einen Block") auf folgende Art und Weise verwirklicht werden;
- • Die "aktuelle Verzeichnisposition" 353 wird um einen Eintrag
zurückbewegt;
- • Der Inhalt des Eintrags, auf den durch die "aktuelle Verzeichnisposition"
353 gezeigt wird, wird gelesen (zum Beispiel 32 K);
- • Die "aktuelle Datenposition" 353 wird entsprechend dem Verzeichniseintrag
32 K gelesenen Wert zurückbewegt.
11 veranschaulicht auch die Zuweisung eines VTL-Front-End
FC-Ports (312, 314) zu einer oder mehreren VTL-Vorrichtungen (VTL-Band
319 und/oder VTL-Roboter 315). Sie veranschaulicht weiter "sichtbare
LUN" 317, die jeweils mit einer VTL-Vorrichtung (zum Beispiel LUND und
LUN1, die zum Port 0 gehören und LUN 4 und LUN 1, die zum Port 1 gehören)
verknüpft sind.
Front-End-Ports 312, 314 und sichtbare LUN
317 sind in einer VTL-Einrichtungsdatei festgelegt: vtl.cfg. Fast alle
SCSI-Befehle sind an eine bestimmte LUN adressiert. Befehle, die nicht an eine bestimmte
LUN adressiert sind, werden von dem Fron-End-Port selbst gehandhabt ("Zielsammler");
ein Beispiel ist eine Bericht-LUN. SCSI-Befehle können klassifiziert werden
als: Daten-Eingangsbefehle (zum Beispiel Lesen); Daten-Ausgabebefehle (zum Beispiel
Schreiben); und keine Datenbefehle (zum Beispiel zurückspulen).
14 veranschaulicht eine Zeitfolge zum Weiterleiten
und Ausführen eines SCSI-Daten-Eingabefehls für den Lesevorgang. Der Host
sendet einen FCP_CMD-Befehl an den Zielsammler (222 in 10);
er wird an die VTL-Vorrichtung (226 in 10)
weitergeleitet und dann an die DLU-Vorrichtung (228 in 10).
Die DLU-Vorrichtung 228 führt den Befehl aus, durch Lesen der Daten
von dem physikalischen DLU-Plattenarray (126 in 10).
Die gelesenen Daten werden zurück zur VTL-Vorrichtung 226 übermittelt
und in eine FCP_DATA Antwort eingeschlossen, die durch die VTL-Vorrichtung
226 erzeugt wurde und über einen Zielsammler 222 zurück
zu dem Host weitergeleitet. Die VTL-Vorrichtung 226 erzeugt auch eine FCP_RSP
Antwort, die zurück an den Host gesendet wird.
15 veranschaulicht eine Zeitabfolge für einen
SCSI-Schreibbefehl. Der Host stellt einen FCP_CMD (einen SCSI-Schreibbefehl) aus,
der von einem FCP_DATA (der Datenübertragung) gefolgt wird, die dann zu dem
Zielsammler 222 des VTL-Servers gesendet werden. Der Zielsammler leitet
die Daten an die VTL-Vorrichtung 226 weiter, welche als Antwort eine FCP_RSP
Antwort zurück an den Host sendet. Die VTL-Vorrichtung 226 leitet
die Daten an die DLU-Vorrichtung 228 weiter, welche wiederum die Daten
an das physikalische DLU-Plattenarray 296 weiterleitet.
15 veranschaulicht weiter einen Dual-Puffermechanismus,
der die VTL-Software in die Lage versetzt, Befehle sowohl an ihrem Front-End, das
mit dem Host verbunden ist, und dem Back-End, das mit dem Plattenspeicher verbunden
ist, gleichzeitig zu verwalten. Während das Back-End beschäftigt ist,
auf die Platte zu schreiben, kann das Front-End den nächsten Schreibbefehl
verarbeiten (siehe gepunkteter Pfeil mit FCP_CMD Befehl in 15).