22.6. Einige Beispiele

Vinum verwaltet eine Konfigurationsdatenbank für alle einem individuellen System bekannten Objekte. Zu Beginn erzeugt ein Benutzer mit gvinum(8) eine Konfigurationsdatenbank aus einer oder mehreren Konfigurationsdateien. Vinum speichert danach eine Kopie der Konfigurationsdatenbank in jedem von ihm kontrollierten Slice (von Vinum als Device bezeichnet). Da die Datenbank bei jedem Statuswechsel aktualisiert wird, kann nach einem Neustart der Status jedes Vinum-Objekts exakt wiederhergestellt werden.

22.6.1. Die Konfigurationsdatei

Die Konfigurationsdatei beschreibt individuelle Vinum-Objekte. Die Beschreibung eines einfachen Volumes könnte beispielsweise so aussehen:

    drive a device /dev/da3h
    volume myvol
      plex org concat
        sd length 512m drive a

Diese Datei beschreibt vier Vinum-Objekte:

  • Die drive-Zeile beschreibt eine Plattenpartition (drive) sowie ihre Position in Bezug auf die darunter liegende Hardware. Die Partition hat dabei den symbolischen Namen a. Diese Trennung von symbolischen Namen und Gerätenamen erlaubt es, die Position von Platten zu ändern, ohne dass es zu Problemen kommt.

  • Die volume-Zeile beschreibt ein Volume. Dafür wird nur ein einziges Attribut, der Name des Volumes, benötigt. In unserem Fall hat das Volume den Namen myvol.

  • Die plex-Zeile definiert einen Plexus. Auch hier wird nur ein Parameter, und zwar die Art des Aufbau, benötigt (in unserem Fall concat). Es wird kein Name benötigt, das System generiert automatisch einen Namen aus dem Volume-Namen und dem Suffix .px wobei x die Nummer des Plexus innerhalb des Volumes angibt. So wird dieser Plexus den Namen myvol.p0 erhalten.

  • Die sd-Zeile beschreibt eine Subdisk. Um eine Subdisk einzurichten, müssen Sie zumindest den Namen der Platte, auf der Sie die Subdisk anlegen wollen, sowie die Größe der Subdisk angeben. Analog zur Definition eines Plexus wird auch hier kein Name benötigt: Das System weist automatisch Namen zu, die aus dem Namen des Plexus und dem Suffix .sx gebildet werden, wobei x die Nummer der Subdisk innerhalb des Plexus ist. Folglich gibt Vinum dieser Subdisk den Namen myvol.p0.s0.

Nach dem Verarbeiten dieser Datei erzeugt gvinum(8) die folgende Ausgabe:

      # gvinum -> create config1
      Configuration summary
      Drives:         1 (4 configured)
      Volumes:        1 (4 configured)
      Plexes:         1 (8 configured)
      Subdisks:       1 (16 configured)

	D a                     State: up       Device /dev/da3h        Avail: 2061/2573 MB (80%)

	V myvol                 State: up       Plexes:       1 Size:        512 MB

	P myvol.p0            C State: up       Subdisks:     1 Size:        512 MB

	S myvol.p0.s0           State: up       PO:        0  B Size:        512 MB

Diese Ausgabe entspricht dem verkürzten Ausgabeformat von gvinum(8) und wird in Abbildung 22.4, „Ein einfaches Vinum-Volume“ grafisch dargestellt.

Abbildung 22.4. Ein einfaches Vinum-Volume
Ein einfaches Vinum-Volume


Dieses und die folgenden Beispiele zeigen jeweils ein Volume, welches die Plexus enthält, die wiederum die Subdisk enthalten. In diesem trivialen Beispiel enthält das Volume nur einen Plexus, der wiederum nur aus einer Subdisk besteht.

Eine solche Konfiguration hätte allerdings keinen Vorteil gegenüber einer konventionellen Plattenpartion. Das Volume enthält nur einen einzigen Plexus, daher gibt es keine redundante Datenspeicherung. Da der Plexus außerdem nur eine einzige Subdisk enthält, unterscheidet sich auch die Speicherzuweisung nicht von der einer konventionellen Plattenpartition. Die folgenden Abschnitte beschreiben daher verschiedene interessantere Konfigurationen.

22.6.2. Verbesserte Ausfallsicherheit durch Spiegelung

Die Ausfallsicherheit eines Volumes kann durch Spiegelung der Daten erhöht werden. Beim Anlegen eines gespiegelten Volumes ist es wichtig, die Subdisks jedes Plexus auf verschiedene Platten zu verteilen, damit ein Plattenausfall nicht beide Plexus unbrauchbar macht. Die folgende Konfiguration spiegelt ein Volume:

	drive b device /dev/da4h
	volume mirror
      plex org concat
        sd length 512m drive a
	  plex org concat
	    sd length 512m drive b

Bei diesem Beispiel war es nicht nötig, noch einmal eine Platte a zu spezifizieren, da Vinum die Übersicht über alle Objekte und seine Konfigurationsdatenbank behält. Nach dem Abarbeiten dieser Definition sieht die Konfiguration wie folgt aus:

	Drives:         2 (4 configured)
	Volumes:        2 (4 configured)
	Plexes:         3 (8 configured)
	Subdisks:       3 (16 configured)

	D a                     State: up       Device /dev/da3h        Avail: 1549/2573 MB (60%)
	D b                     State: up       Device /dev/da4h        Avail: 2061/2573 MB (80%)

    V myvol                 State: up       Plexes:       1 Size:        512 MB
    V mirror                State: up       Plexes:       2 Size:        512 MB

    P myvol.p0            C State: up       Subdisks:     1 Size:        512 MB
    P mirror.p0           C State: up       Subdisks:     1 Size:        512 MB
    P mirror.p1           C State: initializing     Subdisks:     1 Size:        512 MB

    S myvol.p0.s0           State: up       PO:        0  B Size:        512 MB
    S mirror.p0.s0          State: up       PO:        0  B Size:        512 MB
    S mirror.p1.s0          State: empty    PO:        0  B Size:        512 MB

Abbildung 22.5, „Ein gespiegeltes Vinum Volume“ stellt diese Struktur grafisch dar.

Abbildung 22.5. Ein gespiegeltes Vinum Volume
Ein gespiegeltes Vinum Volume


In diesem Beispiel enthält jeder Plexus die vollen 512 MB des Adressraumes. Wie im vorangegangenen Beispiel enthält jeder Plexus nur eine Subdisk.

22.6.3. Die Leistung optimieren

Das gespiegelte Volume des letzten Beispieles ist resistenter gegenüber Fehlern als ein ungespiegeltes Volume, seine Leistung ist hingegen schlechter, da jeder Schreibzugriff auf das Volume einen Schreibzugriff auf beide Platten erfordert und damit mehr der insgesamt verfügbaren Datentransferrate benötigt. Steht also die optimale Leistung im Vordergrund, muss anders vorgegangen werden: Statt alle Daten zu spiegeln, werden die Daten über so viele Platten wie möglich gestriped. Die folgende Konfiguration zeigt ein Volume mit einem über vier Platten hinwegreichenden Plexus:

	drive c device /dev/da5h
	drive d device /dev/da6h
	volume stripe
	plex org striped 512k
	  sd length 128m drive a
	  sd length 128m drive b
	  sd length 128m drive c
	  sd length 128m drive d

Wie zuvor ist es nicht nötig, die Platten zu definieren, die Vinum schon bekannt sind. Nach dem Abarbeiten dieser Definition sieht die Konfiguration wie folgt aus:

	Drives:         4 (4 configured)
	Volumes:        3 (4 configured)
	Plexes:         4 (8 configured)
	Subdisks:       7 (16 configured)

    D a                     State: up       Device /dev/da3h        Avail: 1421/2573 MB (55%)
    D b                     State: up       Device /dev/da4h        Avail: 1933/2573 MB (75%)
    D c                     State: up       Device /dev/da5h        Avail: 2445/2573 MB (95%)
    D d                     State: up       Device /dev/da6h        Avail: 2445/2573 MB (95%)

    V myvol                 State: up       Plexes:       1 Size:        512 MB
    V mirror                State: up       Plexes:       2 Size:        512 MB
    V striped               State: up       Plexes:       1 Size:        512 MB

    P myvol.p0            C State: up       Subdisks:     1 Size:        512 MB
    P mirror.p0           C State: up       Subdisks:     1 Size:        512 MB
    P mirror.p1           C State: initializing     Subdisks:     1 Size:        512 MB
    P striped.p1            State: up       Subdisks:     1 Size:        512 MB

    S myvol.p0.s0           State: up       PO:        0  B Size:        512 MB
    S mirror.p0.s0          State: up       PO:        0  B Size:        512 MB
    S mirror.p1.s0          State: empty    PO:        0  B Size:        512 MB
    S striped.p0.s0         State: up       PO:        0  B Size:        128 MB
    S striped.p0.s1         State: up       PO:      512 kB Size:        128 MB
    S striped.p0.s2         State: up       PO:     1024 kB Size:        128 MB
    S striped.p0.s3         State: up       PO:     1536 kB Size:        128 MB

Abbildung 22.6. Ein Striped Vinum Volume
Ein Striped Vinum Volume


Dieses Volume wird in Abbildung 22.6, „Ein Striped Vinum Volume“ dargestellt. Die Schattierung der Stripes zeigt die Position innerhalb des Plexus-Adressraumes an. Die hellsten Stripes kommen zuerst, die dunkelsten zuletzt.

22.6.4. Ausfallsicherheit und Leistung

Mit entsprechender Hardware ist es möglich, Volumes zu bauen, welche gegenüber Standard-UNIX®-Partitionen beides, nämlich erhöhte Ausfallsicherheit und erhöhte Leistung, aufweisen können. Eine typische Konfigurationsdatei könnte etwa so aussehen:

	volume raid10
      plex org striped 512k
        sd length 102480k drive a
        sd length 102480k drive b
        sd length 102480k drive c
        sd length 102480k drive d
        sd length 102480k drive e
      plex org striped 512k
        sd length 102480k drive c
        sd length 102480k drive d
        sd length 102480k drive e
        sd length 102480k drive a
        sd length 102480k drive b

Die Subdisks des zweiten Plexus sind gegenüber denen des ersten Plexus um zwei Platten verschoben. Dadurch wird sichergestellt, dass Schreibzugriffe nicht auf den gleichen Subdisks auftreten, auch wenn eine Übertragung über zwei Platten geht.

Abbildung 22.7, „Ein gespiegeltes, Striped Vinum Volume“ veranschaulicht die Struktur dieses Volumes.

Abbildung 22.7. Ein gespiegeltes, Striped Vinum Volume
Ein gespiegeltes, Striped Vinum Volume


Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.

Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.