Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Einführungsbeispiel zum Schnelleinstieg in das bs2fs-Dateisystem

&pagelevel(4)&pagelevel

In diesem Abschnitt erfahren Sie, wie eine Sitzung mit zwei bs2fs-Dateisystemen typischerweise abläuft:

Zunächst richtet der Systemadministrator den bs2fs-Container ein und hängt ihn ein. Anschließend hängt er zwei bs2fs-Dateisysteme für eine Benutzerkennung ein. Danach kann der Benutzer mit den Dateien der bs2fs-Dateisysteme arbeiten. Zum Abschluss hängt der Systemadministrator die bs2fs-Dateisysteme wieder aus.

Einrichten und Einhängen des bs2fs-Containers mit dem POSIX-Installationsprogramm

Mit der append-Funktion des POSIX-Installationsprogramms (Administrate POSIX filesystems) wird ein neues ufs-Dateisystem mit der Option bs2fscontainer erstellt und gleich mit Automount=Y eingehängt. Das Erstellen eines neuen ufs-Dateisystems bzw. das Überschreiben eines existierenden ufs-Dateisystems mit der Option bs2fscontainer bewirkt, dass dieses intern die Eigenschaft bs2fs-Container erhält, die den Einsatz des ufs-Dateisystems als bs2fs-Container erst ermöglicht.

                     Definition of BS2000 Container File

BS2000 filename:  :V70A:$SYSROOT.FS.BS2FSCONTAINER

BS2000 filesize:  1000000   PAM-Pages

POSIX filesystem? (y/n): Y
A new BS2000 container file has been created
=============================================================================

                        Definition of POSIX filesystem

Size of filesystem: 100000    PAM-Pages     Journaling? (y/n): N

POSIX mountpoint: /bs2fscont
Automount? (y/n): Y          Mountoptions:  bs2fscontainer

Overwrite existing filesystem? (y/n):       POSIX filesystem marker (y/n): Y
No filesystem in BS2000 container yet
=============================================================================
Save definitions:  ENTER                                                        
Help            :  F1                                       terminate: F2       

Nach dem erfolgreichen Einhängen und der Beendigung des Installationsprogramms werden automatisch zwei Kopierdämonen bs2fsd gestartet.

# ps -efT|grep bs2fsd
    ROOT   163  74MR     1  0 15:29:55 ?         0:00 [bs2fsd]
    ROOT   162  74MQ     1  0 15:29:55 ?         0:00 [bs2fsd]

Zu diesem Zeitpunkt hat der bs2fs-Container noch keinen Inhalt:

# ls -l /bs2fscont
Gesamt 0
#

Alternative: Einhängen des bs2fs-Containers mit dem mount-Kommando

Ein einmal mit dem POSIX-Installationsprogramm erstelltes bs2fs-Containerdateisystem (Eigenschaft bs2fs-Container, siehe oben) kann auch mit dem mount-Kommando unter Angabe der Option –o bs2fscontainer eingehängt werden, z.B. mit

# mount –F ufs –o bs2fscontainer /bs2fscont

Auch in diesem Fall werden zwei Kopierdämonen automatisch gestartet.


Zusatzinformationen zum Einhängen des bs2fs-Containers:

Das ufs-Dateisystem, das als bs2fs-Container dient, wird als leeres Dateisystem erwartet. Falls es nicht leer ist, wird sein Inhalt beim Einhängen mit der Option -o bs2fscontainer gelöscht.

Die Löschung erfolgt bei allen mount-Vorgängen: mount-Kommando, Automount beim POSIX-Start, Automount durch das Installationsprogramm.

Die Eigenschaft bs2fs-Container wurde als Sicherheitsvorkehrung eingeführt, um das unbeabsichtigte Leeren eines ufs-Dateisystems beim Einhängen als bs2fs-Container zu verhindern.

Einhängen von bs2fs-Dateisystemen

Nachdem der bs2fs-Container eingehängt ist und die Kopierdämonen gestartet sind, können bs2fs-Dateisysteme eingehängt werden. Dies erfolgt – analog zu nfs-Dateisystemen – nicht mit dem POSIX-Installationsprogramm, sondern mit dem mount-Kommando.

Folgende Dateien unter der Benutzerkennung BACH und mit der Katalogkennung :V70A: sollen in bs2fs-Dateisystemen bereitgestellt werden:

  1. Alle Dateien, deren Name dem Muster ASS.*.S entspricht, sollen unter /home/bach/bs2.1 bereitgestellt werden

  2. Alle Dateien, deren Name dem Muster PLAMLIB* entspricht, sollen unter /home/bach/bs2.2 bereitgestellt werden

Es werden also zwei bs2fs-Dateisysteme benötigt, die mit folgenden Kommandos eingehängt werden können:

# mount –F bs2fs –o ftyp=text ':v70a:$bach.ass.*.s'  /home/bach/bs2.1
# mount –F bs2fs –o ftyp=text ':v70a:$bach.plamlib*' /home/bach/bs2.2


Dabei wird die Datei /etc/mnttab automatisch durch das mount-Kommando um folgende Einträge erweitert:

:V70A:$BACH.ASS.*.S

:V70A:$BACH.PLAMLIB*

/home/bach/bs2.1

/home/bach/bs2.2

bs2fs

bs2fs

ftyp=text

ftyp=text

1196152657

1196152666

Im bs2fs-Container befinden sich nun die (noch leeren) Verzeichnisse, die Kopien der BS2000-Dateien der beiden bs2fs-Dateisysteme aufnehmen sollen. Reine Auskunftfunktionen wie das ls-Kommando bewirken noch keine Kopieraktion. Erst bei einem open() auf eine bs2fs-Datei wird der bs2fsd-Dämon aktiv. Details zur Struktur des bs2fs-Containers finden Sie in "Der Ein- und Aushängevorgang im Überblick".

# ls -l /bs2fscont
Gesamt 16
drwx--x--x   2 SYSROOT  SYSROOT     2048 Nov 27 11:40 V70A.BACH.1
drwx--x--x   2 SYSROOT  SYSROOT     2048 Nov 27 11:41 V70A.BACH.2
#

Die Schutzbit-Attribute des bs2fs-Containers sind durch den mount-Vorgang automatisch so gesetzt, dass sein Inhalt für nicht privilegierte Benutzer nicht sichtbar ist (drwx--x--x).

Arbeiten mit bs2fs-Dateisystemen

Nach dem Einhängen der beiden bs2fs-Dateisysteme kann das Ergebnis der Einhängevorgänge überprüft werden.

Zeigen Sie den Inhalt des unter /home/bach/bs2.1 eingehängten Dateisystems an:
# ls -l /home/bach/bs2.1
Gesamt 3620
-rwx------   1 BACH     OS315      12288 Nov 22 14:54 ass.consio.s
-rwx------   1 BACH     OS315      18432 Nov 22 14:54 ass.lock.s
-rwx------   1 BACH     OS315       6144 Nov 22 14:54 ass.lockadm.s
-rwx------   1 BACH     OS315      18432 Nov 22 14:55 ass.lockwrk.s
-rwx------   1 BACH     OS315       2048 Nov 22 14:55 ass.posasto.s
-rwx------   1 BACH     OS315      18432 Nov 22 14:55 ass.posbs2fs.s
-rwx------   1 BACH     OS315     139264 Nov 22 14:56 ass.posbs2fx.s
...
-rwx------   1 BACH     OS315      69632 Nov 22 14:58 ass.posutil.s
-rwx------   1 BACH     OS315      51200 Nov 22 14:59 ass.posvert.s
-rwx------   1 BACH     OS315      49152 Nov 22 14:59 ass.posvmm.s
-rwx------   1 BACH     OS315       2048 Nov 22 14:59 ass.pprot.s
-rwx------   1 BACH     OS315      18432 Nov 22 15:00 ass.slpwkp.s
-rwx------   1 BACH     OS315      32768 Nov 22 15:00 ass.ttrap.s
-rwx------   1 BACH     OS315       2048 Nov 22 15:00 ass.uaddr.s
#

Unter /home/bach/bs2.1 ist also eine Reihe von einfachen BS2000-Dateien eingehängt.

Zusatzinformationen zur Darstellung der bs2fs-Dateien:

Schutzbits

bilden entweder die BS2000-Standardattribute (USER-ACCESS, ACCESS) oder die BACL-Eigenschaften ab. In unserem Fall z.B. die Standardattribute USER-ACCESS=*USER-ONLY und ACCESS=*WRITE.

Eigentümer (USER)

ist immer die Kennung des bs2fs-mount.

Gruppe (GROUP)

ist immer die POSIX-Gruppe der Eigentümerkennung. Diese Gruppenzuordnung ist aber bei bs2fs-Zugriffen nicht relevant. Es gelten die BS2000-Gruppenzuordnungen mit / ohne SECOS. Siehe hierzu auch Kapitel 3.

Dateigröße

von nicht geöffneten Dateien ist ein Vielfaches von 2048 an belegten PAM-Seiten. Die kleinste Datei ist laut ls-Kommando also 2048 Byte groß.

Dateiname:

Namen werden in Kleinbuchstaben angezeigt. Dies gilt auch für Bibliotheks- und Elementnamen. Die Bezugnahme auf bs2fs-Objekte mit Shell-Kommandos oder C-Programmschnittstellen kann dagegen beliebig in Groß-/Kleinschreibung erfolgen.
Ausnahme: In Wildcard-Konstrukten in der Shell und mit dem Kommando find ist die Kleinschreibung erforderlich.

Zeigen Sie nun den Inhalt des zweiten unter /home/bach/bs2.2 eingehängten Dateisystems an:
# ls -l /home/bach/bs2.2
Gesamt 5224
drwx------   2 BACH     OS315    1562624 Nov 19 17:39 plamlib.1
drwxrwxrwx   2 BACH     OS315    1112064 Nov 19 17:30 plamlib.2

Bei diesem Dateisystem handelt es sich um zwei PLAM-Bibliotheken, erkennbar an der Darstellung als Verzeichnis.

Lassen Sie sich den Inhalt der Bibliothek plamlib.1 anzeigen:
# ls -l /home/bach/bs2.2/plamlib.1
Gesamt 32
drwx------   2 BACH     OS315         48 Nov 19 17:39 d
drwx------   2 BACH     OS315         48 Nov 19 17:39 j
drwx------   2 BACH     OS315         48 Nov 19 17:39 l
drwx------   2 BACH     OS315         48 Nov 19 17:39 m
drwx------   2 BACH     OS315         48 Nov 19 17:39 p
drwx------   2 BACH     OS315       4032 Nov 19 17:39 s
drwx------   2 BACH     OS315         48 Nov 19 17:39 x

Das Bibliotheksverzeichnis enthält Unterverzeichnisse, deren Namen den Elementtypen (D, J, L, M, P, S, X) entsprechen.

Zusatzinformationen zu den Bibliotheks- und Typverzeichnissen:

Die Verzeichnisstruktur und die Verzeichnisattribute sind nicht veränderbar. Aktionen wie Löschen, Umbenennen, Neueinrichten, Attributänderung auf Bibliotheks- und Typverzeichnisse werden generell abgewiesen.

Es kann also beispielsweise mit mkdir keine neue PLAM-Bibliothek eingerichtet werden.

Zeigen Sie nun die Elemente des Typs S an:
# ls -l /home/bach/bs2.2/plamlib.1/s
Gesamt 6024
-rwx------   2 BACH     OS315       8192 Nov 19 17:33 acct.c
-rwx------   2 BACH     OS315       8192 Nov 19 17:33 acct.c+001
-rwx------   2 BACH     OS315      51200 Nov 19 17:33 bio.c
-rwx------   2 BACH     OS315      51200 Nov 19 17:33 bio.c+001
-rwx------   2 BACH     OS315       8192 Nov 19 17:33 bitmap.c
-rwx------   2 BACH     OS315       8192 Nov 19 17:33 bitmap.c+001
-rwx------   2 BACH     OS315       4096 Nov 19 17:33 bitmasks.c
-rwx------   2 BACH     OS315       4096 Nov 19 17:33 bitmasks.c+001
-rwx------   2 BACH     OS315      12288 Nov 19 17:34 bs.c
-rwx------   2 BACH     OS315      12288 Nov 19 17:34 bs.c+001
...
-rwx------   2 BACH     OS315      14336 Nov 19 17:39 vm_pageout.c
-rwx------   2 BACH     OS315      14336 Nov 19 17:39 vm_pageout.c+001
-rwx------   2 BACH     OS315      18432 Nov 19 17:39 vm_pgout.c
-rwx------   2 BACH     OS315      18432 Nov 19 17:39 vm_pgout.c+001
-rwx------   2 BACH     OS315       6144 Nov 19 17:39 vm_subr.c
-rwx------   2 BACH     OS315       6144 Nov 19 17:39 vm_subr.c+001
-rwx------   2 BACH     OS315       4096 Nov 19 17:39 xmmu.c
-rwx------   2 BACH     OS315       4096 Nov 19 17:39 xmmu.c+001
-rwx------   2 BACH     OS315       8192 Nov 19 17:39 xsys.c
-rwx------   2 BACH     OS315       8192 Nov 19 17:39 xsys.c+001
#

Das Bibliotheksverzeichnis enthält einige Elemente des Typs S. Jedes dieser Elemente liegt im Beispiel mit der einzigen Version '001' vor. Daher sind für jedes Element zwei Einträge vorhanden: Ein Eintrag für den Elementnamen ohne Versionsbezeichnung und einer mit der (einzigen) Versionsbezeichnung.

Zur Erläuterung:

Im bs2fs-Dateisystem kann das Element mit der höchsten Version auch als Elementname ohne Version angesprochen werden (intern realisiert als Hard Link). Die Darstellung und der Bezug auf Elemente mit niedrigeren Versionen erfolgt dagegen immer mit Version. Siehe auch Kapitel 3.

Auf die Dateien der bs2fs-Dateisysteme können Sie jetzt z.B. POSIX-Kommandos anwenden:
# grep ETPND /home/bach/bs2.1/*.s
/home/bach/bs2.1/ass.consio.s:    ETPND   &MODNAME,VER=&MODVERS,PATCH=200
/home/bach/bs2.1/ass.lock.s:      TITLE    '&MODNAME - ETPND/XREF'
/home/bach/bs2.1/ass.lock.s:      ETPND    &MODNAME,VER=&MODVERS,PATCH=200
# tail /home/bach/bs2.1/ass.posvert.s
         HDRCHECK UNIT=228,FUNCT=(187,1)
         @BEND
         @BEND
         @EXIT
         @END
         EJECT
******************************* ETPND **********************************
         ETPND &MODNAME,VER=&MODVERS,PATCH=200
*
         END
#

Aushängen der bs2fs-Dateisysteme

Wenn die Dateien der bs2fs-Dateisysteme in POSIX nicht mehr benötigt werden, können die entsprechenden Dateisysteme wieder ausgehängt werden.

Um einzelne bs2fs-Dateisysteme auszuhängen, verwenden Sie das Kommando umount, in diesem Beispiel also:

umount /home/bach/bs2.1

und

umount /home/bach/bs2.2

Um alle bs2fs-Dateisysteme auszuhängen, können Sie das Kommando umountall verwenden:

entweder

    umountall –F bs2fs

oder

    umountall –b

Nach dem Aushängen mit umount oder umountall sind die entsprechenden Einträge in der Datei /etc/mnttab gelöscht.

Automatisierung der bs2fs-mount-Vorgänge

Es gibt u.a. folgende Möglichkeiten, die bs2fs-mount-Vorgänge zu automatisieren:

  1. Die mount-Kommandos in Shell-Scripts eintragen und diese Scripts zu einem beliebigen Zeitpunkt ausführen.

  2. Einträge in der Dateisystemtabelle /etc/vfstab mit Automount=Y erstellen.
    Die bs2fs-mount-Vorgänge werden dann beim Start des POSIX-Subsystems automatisch ausgeführt. Außerdem wird die Tabelle /etc/vfstab vom mountall-Kommando ausgelesen, falls keine andere Dateisystemtabelle angegeben wird.

    Um alle bs2fs-Dateisysteme aufgrund der Einträge in der Tabelle /etc/vfstab einzuhängen, können Sie das Kommando mountall verwenden: 

    entweder

        mountall –F bs2fs

    oder

        mountall –b

  3. Einträge in einer eigenen Dateisystemtabelle (analog zu /etc/vfstab) erstellen. Diese Tabelle kann dann als Argument des Kommandos mountall verwendet werden.

    Beispiel: Eintrag in einer mountall-Tabelle erstellen (/etc/vfstab wäre analog)

    Um eine Datei zu erstellen, die bereits eine geeignete Zeile im vfstab-Format enthält, können Sie das Kommando mount -p nutzen:

    # mount -p |grep /home/bach/bs2.1 >> /etc/bs2fstab
    # cat /etc/bs2fstab
    :V70A:$BACH.ASS.*.S - /bs2test/bs2fs bs2fs - no  ftyp=text

    Um das automatische Einhängen mit dem Kommando mountall zu ermöglichen, müssen Sie den Automount-Eintrag von no auf yes ändern, z.B. mit:

    # edtu /etc/bs2fstab
    :V70A:$BACH.ASS.*.S - /bs2test/bs2fs bs2fs - yes  ftyp=text

    Um alle bs2fs-Dateisysteme aufgrund der Einträge in der Tabelle /etc/bs2fstab einzuhängen, können Sie das Kommando mountall verwenden:

    entweder

        mountall –F bs2fs /etc/bs2fstab

    oder

        mountall –b /etc/bs2fstab